您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 数字基带信号HDB3码的编码器设计与建模
I摘要本课程设计概括了HDB3数字编码器的研究背景、意义,同时对EDA技术和编码技术作了简要的说明。设计方面包括规划基于VHDL的HDB3编码器设计的总体方案;基于VHDL的HDB3编码器的软件实现。其中HDB3码的编码程序设计是在QuartusⅡ软件环境下进行的,首先在QuartusⅡ软件环境下建立一个工程,工程名和程序的实体名一致,并将其作为该工程的设计文件。然后在VHDL文本编辑窗中输入设计的VHDL源程序,进行编译。程序编译成功后要进行时序仿真,这一部分同样是在QuartusⅡ软件环境下完成的。关键词:HDB3;建模;VHDL;编码;QUARTUSⅡ目录1、引言...............................................................12、VHDL语言的介绍.....................................................23、HDB3码编码器的建模与实现..........................................33.1HDB3码的编码规则························33.2基于VHDL的编码器的建模及实现·················43.2.1编码器的VHDL建模...........................................43.2.2基于VHDL编码器的实现.......................................43.3编码中单/双极性转换的实现····················63.3.1单/双极性转换的流程图........................................63.4HDB3码编码器完整源程序·····················83.5HDB3码编码器的波形仿真及分析·················134、总结与心得........................................................155、参考文献..........................................................161、引言数字基带信号的传输是数字通信系统的重要组成部分之一。特别是HDB3码的使用,其不但保持AMI码的优点,更使连0串的个数减到至多0个的优点,而且还克服了AMI码的关于可能出现长连0串而造成提取定时信号困难的缺点。基于上述的特点HDB3码在通信传输领域应用很广泛,因此其作为CCITT推荐使用的码型之一。本课程设计的主要工作是HDB3码的编码的建模与实现,对于HDB3编码模块,一般以硬件的方式来实现的。但它具有产品更新慢、设计灵活性差、不可重配置及现场升级性能缺乏等缺点。因此拟采用可编程逻辑电路来实现。可编程逻辑电路是EDA的一个重要技术基础,主要包括FPGA和CPLD,它们具有丰富的可重配置逻辑资源,既包含有大量实现组合逻辑的资源;还包含有相当数量的触发器,因此采用EDA技术进行电子系统的设计有以下优点:系统可现场编程,在线升级;用软件的方式设计硬件;整个系统可集成在一个芯片上,体积小、功耗低、可靠性高;用软件方式设计的硬件系统的转换是由有关的开发软件自动完成,降低了系统设计的难度。2、VHDL语言的介绍常用的硬件描述性语言有VHDL、Verilog和ABEL语言。VHDL语言起源于美国国防部的VHSIC,VHDL是一种高级描述语言,适用于行为级和RTL级的描述相对与Verilog语言和ABEL语言这些较低一级的适合描述门级电路的描述性语言而言,其具有以下的优点:⒈设计方法灵活、支持广泛⒉系统硬件描述能力强⒊VHDL语言描述与工艺不发生关系⒋VHDL语言标准、规范,易于共享和复用基于上述的特点,可知VHDL语言可读性好,又能被计算机识别。VHDL语言中设计实体、程序包、设计库,为设计人员重复利用已有的设计提供了诸多技术手段。可重复利用他人的IP模块和软核也是VHDL的另一特色,许多设计不必每次都从头再来,只要在更高层次上把IP模块组合起来,就能达到事半功倍的效果。这样,设计人员自行开发的IP模块在集成电路设计中占有重要的地位。因此本课程设计采用VHDL语言设计一个完善的HDB3码编码器。基于FPGA的HDB3编译码的建模与实现附录二3、HDB3码编码器的建模与实现3.1HDB3码的编码规则在基带传输中,常用的码型有AMI码、HDB3码、4B/3T码、CMI码、以及双相码等。其中,AMI码是将输入单极性波形的所有正脉冲变为适合于在信道传输的正负极性交替的脉冲,而HDB3码则是在AMI码基础上改进的一种双极性归零码,它除具有AMI码功率谱中无直流分量,可进行差错自检等优点外,还克服了AMI码当信息中出现连“0”码时定时提取困难的缺点,同时HDB3码频谱能量主要集中在基波频率以下,占用频带较窄,因此被广泛用作PCM线路传输码型,因此要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码变为极性交替的正、负脉冲。将“0”码保持不变,把“1”码变为+1、-1交替的脉冲。如:信息序列:10011010111100001AMI码:+100-1+10-10+1-1+1-10000+1HDB3码是一种AMI码的改进型,它的编码过程为:①没有4个或4个连“0”串时,HDB3编码规律与AMI码相同,即“1”码变为“+1”、“-1”交替脉冲。②当代码序列中出现4个或4个以上连“0”串时,则将每4个连“0”小段即“0000”的第4个0变换成与前一非“0”符号同极性的符号,用破坏符号V表示。③为了使附加V符号后的序列不破坏“极性交替反转”造成的无直流特性,还必须保证相邻V符号也应极性交替。这一点,当相邻V符号之间有奇数个非0符号时,则是能得到保证,当有偶数个非0符号时,则就得不到保证,这时再将该小段的第一个0变换成+B或-B,B符号的极性与前一非0符号的极性相反,并让后面的非0符号从V符号开始再交替变换。基于FPGA的HDB3编译码的建模与实现附录二3.2基于VHDL的编码器的建模及实现3.2.1编码器的VHDL建模图1HDB3码编码器模型如图所示:整个HDB3码的编码器包括3个功能部分:添加破坏符号“V”、添加符号“B”和单极性码转变成双极性码,各部分之间采用同步时钟作用,并且带有一个异步的复位(清零)端口。3.2.2基于VHDL编码器的实现1.添加破坏符号“V”的实现添加破坏符号“V”模块的功能实际上就是对消息代码里的四个连0串的检测,即当出现四个连0串的时候,把第四个“0”变换成符号“V”,而在其他的情况下,则保持消息代码的原样输出,同时为了区别代码“1”、“V”和“0”,在添加破坏符号“V”时,用“11”标识符号“V”,用“01”标识符号“1”,用“00”标识符号“0”。因此,添加破坏符号“V”的设计思想如下:首先判断输入的代码是什么,如果输入的符号是“0”码,则接着判断这是第几个“0”码,如果是第四个“0”码,则把这个“0”码变换成“V”码。在其他的情况下,让原码照常输出。程序流程图如图3.2所示:图2添加破坏符号“V”符号流程图基于FPGA的HDB3编译码的建模与实现附录二假设输入某信息序列,根据设计思想,输入代码一添加破坏符号“V”后的关系如下:信息序列:10000100001100011添加破坏符号V后:01000000110100000011010100000001012.添加符号“B”的实现根据HDB3码的编码规则可知:添加破坏符号“V”模块的功能是为了保证附加“V”符号后的序列不破坏“极性交替反转”造成的无直流特性,即当相邻“V”符号之间有偶数个非0符号的时候,把后一小段的第一个“0”变换成一个非破坏符号——“B”符号。如图3.3所示。其中:①FIRSTV作为前面是否出现“11”即符号“V”的标志位,其中0表示前面没有出现V,1表示前面已经出现过符号V。②COUNT1作为记非0符号的奇偶数,其中0表示为偶数,1表示为奇数。③FIRST_1遇1状态寄存器,1表示前面遇到过1,0表示没有遇到过。④在本程序中用“10”来标识符号“B”。⑤在本程序中用“01”来标识符号“1”。⑥在本程序中用“00”来标识符号“0”。⑦在本程序中用“11”来标识符号“V”。图3添加符号“B”符号流程图基于FPGA的HDB3编译码的建模与实现附录二3.3编码中单/双极性转换的实现3.3.1单/双极性转换的流程图根据HDB3码的编码规则,可知“V”的极性是正负交替变换的,而余下的“1”和“B”本毕业设计把其看成为一体且是正负交替变换的,同时满足“V”的极性与前面的非零码极性一致。由此本设计就把“1”和“B”看成一组,而“V”单独作为一组来做正负交替变换。同时,已知“1”、“V”,“B”已经分别用双相码“01”,“11”,“10”标识,所以对“1”,“V”,“B”的正负交替变换很容易实现。由此可得到程序流程图如图3.4、图3.5、图3.6所示。图4单双极性变换控制的程序流程图—“01”和“10”部分图5单双极性变换控制的程序流程图—“11”部分基于FPGA的HDB3编译码的建模与实现附录二图6单双极性变换控制的程序流程图--“00”部分其中在图中:①以01表示+1。②以11表示-1。③以00表示0。3.4HDB3码编码器完整源程序--本程序在添加破坏符号V时用'11'表示'V',00表示0,01表示1--添加符号B时用00表示0,01表示1,10表示B--最终输出时是以11表示+1,00表示-1,10表示0LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYENHDB3ISPORT(CODEIN:INSTD_LOGIC;CLK:INSTD_LOGIC;CLR:INSTD_LOGIC;CODEOUT:OUTSTD_LOGIC_VECTOR(1DOWNTO0));ENDENTITYENHDB3;ARCHITECTURERTLOFENHDB3ISSIGNALCODEOUTV:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALCOUNT0:INTEGER:=0;SIGNALS0:STD_LOGIC_VECTOR(4DOWNTO0):=00000;SIGNALCOUNT1:INTEGERRANGE1DOWNTO0;--0表示在V之间有偶数个1,1表示在V之间有奇数个1SIGNALCODEOUTB:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALS1:STD_LOGIC_VECTOR(4DOWNTO0):=00000;SIGNALCLKB:STD_LOGIC;SIGNALS3:STD_LOGIC_VECTOR(1DOWNTO0);基于FPGA的HDB3编译码的建模与实现附录二SIGNALFLAGOB:INTEGERRANGE2DOWNTO0;SIGNALFLAGOV:INTEGERRANGE2DOWNTO0;SIGNALFIRSTV:INTEGERRANGE1DOWNTO0;SIGNALFIRST_1:STD_LOGIC;SIGNALCOUNT0_S:STD_LOGIC;COMPONENTDFF--调元件DFF,即D触发器PORT(D:INSTD_LOGIC;CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDCOMPONENTDFF;BEGINADD_V:PROCESS(CLK,CLR)--添加破坏符号V程序BEGINIF(CLK'EVENTANDCLK='1')THENIF(CLR='1')THENCODEOUTV=00;COUNT0=0;ELSECASECODEINISWHEN'1'=CODEOUTV=01;--01表示1COUNT0=0;WHEN'0'=IF(COUNT0=3)THENCOUN
本文标题:数字基带信号HDB3码的编码器设计与建模
链接地址:https://www.777doc.com/doc-2604399 .html