文档详情

EDA编码器译码器设计.doc

发布:2017-03-21约3.49千字共6页下载文档
文本预览下载声明
VHDL语言的编码器 1.设计原理 1.1编码器的设VHDL 是一种行为描述语言,其编程结构类似于计算机中的 C 语言,在描述复杂逻辑设计时,非常简洁,具有很强的逻辑描述和仿真能力,是未来硬件设计语言的主流。在本设计中,应用 VHDL 语言,在 Altera 公司的 Quartus II 7.2 软件环境下,按照自顶而下的设计方法,对编译码器进行设计仿真。根据给定的 (n,k) 值选定生成多项式 g (x),即从 xn+1 的因子中选一个 (n-k) 次多项式作为,假设给定信息码组为 m (x)= (mk-1,mk-2...m0),其次数小于 k,则 xn-km (x) 的次数必定小于n。用 g (x) 除 xn-km (x),得到余式 r (x),r (x) 的次数必定小于 g (x) 的次数,即小于 (n-k)。将此余式 r (x) 加于信息位之后作为监督位,即 r (x) 和 xn-km (x) 相加,得到多项式必定是一个码组多项式。因为它必定能被 g (x) 整除,且商的次数不大于 (k-1)。 根据以上原理,循环码的编码步骤可以归纳如下:(1) 用 xn-k 乘信息码 m (x),这一运算实际上是在信息码后附加上 (n-k) 个“0”。 2) 用 g (x) 除 xn-km (x),得到商 Q (X)(3) 编出的码组 T (x) =xn-km (x) +r (x)。由此可见,编码的核心是如何确定余式 r (x),找到 r (x)后,可直接将其所代表的编码位附加到信息位之后,完成编码。编码电路可采用 (n-k) 级反馈移位寄存器和异或门 (模2 加) 组成的除法电路实现。 该程序流程主要通过输入一组四位信息码组,然后根据编码后的余数输出对编码进行检错判断,若输出余数为000 则无错码。 2.3 程序设计 根据程序流程图编写程序,源程序如下所示: 编码器设计: LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY cycle_74 IS PORT ( datain: IN STD_LOGIC; clk,clr: IN STD_LOGIC; tout: out std_logic_vector(6 downto 0) ); END cycle_74; ARCHITECTURE arc_cycle OF cycle_74 IS SIGNAL d0,d1,d2:STD_LOGIC; signal dataout: std_logic; signal din: std_logic_vector(6 downto 0); --signal din: std_logic_vector(6 downto 0):=0000000; BEGIN u1:process (clk) variable g:std_logic; variable m:integer range 1 to 8; begin if (clkevent and clk=1) then if clr=1 then g:=0; m:=1; dataout=0; else if m=8 then if m=4 then dataout=datain; case m is when 1 = din(6)=dataout; when 2 = din(6)=dataout; when 3 = din(5)=dataout; when 4 = din(4)=dataout; when 5 = din(3)=dataout; when 6 = din(2)=dataout; when 7 = din(1)=dataout; when 8 = din(0)=dataout; end case; g:=datain XOR
显示全部
相似文档