基于quartusii软件的hdb3码编码器的设计内容摘要:

产生了利用 FPGA 进行 HDB3 码编码的思路:先进行加 V码,加 B码操作,在此过程中,暂不考虑其极性,然后将 V 码, 1码和 B码分成两组,分别进行极性变换来一次实现。 这样可以提高系统的效率,同时减小系统延时。 HDB3 编码器的数字电路部分由三个模块组成: V 码产生单元 (v Gen), B 码产生单元 (B Gen),单极性一双极性转换单元 (single2double)。 9 第三章 基于 Quartus II软件的 HDB3码编码器的设计 HDB3 码的 VHDL 建模思想是在消息代码的基础上,依据 HDB3 编码规则进行插人“ V”符号和“ B”符号的操作,且用 2位二进制代码分别表示。 最后完成单极性信号变成双极性信号的转换。 其编码模型如图所示。 图 35 HDB3 编码实现流程 插“ V” 模块的实现 设计方法 插“ V”模块主要是对消息代码里的四连 0 串的检测,即当 出现四个连 0 串的时候,把第四个“ 0”变换成符号“ V”,用 “ 11”标识。 “ 1”用“ 01”标识,“ 0”用“ 00”标识。 程序流程图如下 : 10 BEGIN add_v:PROCESS(clk,clr) 插 V BEGIN IF(RISING_EDGE(clk)) THEN IF(clr=39。 139。 ) THEN codeoutv=00。 count0=0。 ELSE CASE codein IS WHEN 39。 139。 =codeoutv=01。 01 代表 1 count0=0。 WHEN 39。 039。 = IF(count0=3) THEN 四连 0插 V codeoutv=11。 11 count0=0。 ELSE count0=count0+1。 codeoutv=00。 END IF。 WHEN OTHERS= codeoutv=00。 count0=count0。 END CASE。 END IF。 END IF。 END PROCESS add_v。 与分析 : 经插 v后仿真波形如下: 从仿真波形可以看出当出现四个连 0 串的时候,把第四个“ 0”变换成符号“ V”,用 “ 11”标识。 “ 1”用“ 01”标识,“ 0”用“ 00” 插“ B”模块 12 插“ B”模块的建模思路是当相邻“ V”符号之间有偶数个非 0符号时,把后一小段的第 1 个“ 0”变换成一个“ B”符号。 可调用 D触发器来实现延迟,这样经插“ V”处理过的码元,可在同步时钟的作用下同时进行是否插“ B”的判决,等到码元从移位寄存器里出来的时候 ,就可以决定是应该变换成“ B”符号,还是照原码输出。 输出端用“ 11”表示符号“ V”,“ 01”表示“ 1”码, “ 00”表示“ 0”码,“ 10”表示符号“ B”。 程序流程图如下 : s0(0)=codeoutv(0)。 s1(0)=codeoutv(1)。 ds11:DFF PORT MAP(s1(0),clk,s1(1))。 ―― 例化 ds01:DFF PORT MAP(s0(0),clk,s0(1))。 ―― 例化 ds12:DFF PORT MAP(s1(1),clk,s1(2))。 ―― 例化 ds02:DFF PORT MAP(s0(1),clk,s0(2))。 ―― 例化 ds13:DFF PORT MAP(s1(2),clk,s1(3))。 ―― 例化 ds03:DFF PORT MAP(s0(2),clk,s0(3))。 ―― 例化 13 ds14:DFF PORT MAP(s1(3),clk,s1(4))。 ―― 例化 ds04:DFF PORT MAP(s0(3),clk,s0(4))。 ―― 例化 ds15:DFF PORT MAP(s1(4),clk,s1(5))。 ―― 例化 ds05:DFF PORT MAP(s0(4),clk,s0(5))。 ―― 例化 bclk:clkb=NOT clk。 ―― 时钟 clk倒相 add_b:PROCESS(clkb)―― 进程敏感信号 clkb BEGIN IF(RISING_EDGE(clkb)) THEN―― 时钟 clkb 的上升沿触发 IF(codeoutv=11) THEN IF(firstv=0) THEN count1=0。 firstv=1。 s1(4)=s1(3)。 s0(4)=s0(3)。 ELSE IF(count1=0) THEN s1(4)=39。 139。 s0(4)=39。 039。 count1=0。 ELSE s1(4)=s1(3)。 s0(4)=s0(3)。 count1=0。 END IF。 END IF。 ELSIF(codeoutv=01) THEN count1=count1+1。 s1(4)=s1(3)。 s0(4)=s0(3)。 14 ELSE s1(4)=s1(3)。 s0(4)=s0(3)。 count1=count1。 END IF。 END IF。 END PROCESS add_b。 codeoutb=s1(4)amp。 s0(4)。 实验结果 与分析 其仿真波形如下: 由仿真波形可以分析出 由 输出端用“ 11”表示符号“ V”,“ 01”表示“ 1”码, “ 00”表示“ 0”码,“ 10”表示符号“ B” 单极性变双极性的实现 设计方法 根据编码规则, “ B”符号的极性与前一非零符号相反,“ V”极性符号与前一非零符号一致。 因此,可对“ V”单独进行极性变换 (“ V”已经由“ 11”标识,相邻“ V”的极性是正负交替的 ),余下的“ 1”和“ B”看成一体进行正负交替,从而完成 HDB3的编码。 15 因为经过插“ B”模块后, “ V”、 “ B”、“ 1”已经分别用双相码“ 11”、 “ 10”、 “ 01”标识。 “ 0”用“ 00”标识。 而在。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。