版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要 本课程设计概括了HDB3数字编码器的研究背景、意义,同时对EDA技术和编码技术作了简要的说明。设计方面包括规划基于VHDL的HDB3编码器设计的总体方案;基于VHDL的HDB3编码器的软件实现。其中HDB3码的编码程序设计是在Quartus软件环境下进行的,首先在Quartus软件环境下建立一个工程,工程名和程序的实体名一致,并将其作为该工程的设计文件。然后在VHDL文本编辑窗中输入设计的VHDL源程序,进行编译。程序编译成功后要进行时序仿真,这一部分同样是在Quartus软件环境下完成的。关键词:HDB3;建模;VHDL;编码;QUARTUSI目 录1、引言12、VHDL语言的介绍2
2、3、HDB3码编码器的建模与实现33.1 HDB3码的编码规则33.2 基于VHDL的编码器的建模及实现43.2.1 编码器的VHDL建模43.2.2 基于VHDL编码器的实现43.3编码中单/双极性转换的实现63.3.1单/双极性转换的流程图63.4 HDB3码编码器完整源程序83.5 HDB3码编码器的波形仿真及分析134、总结与心得155、参考文献161、引言数字基带信号的传输是数字通信系统的重要组成部分之一。特别是HDB3码的使用,其不但保持AMI码的优点,更使连0串的个数减到至多0个的优点,而且还克服了AMI码的关于可能出现长连0串而造成提取定时信号困难的缺点。基于上述的特点HDB3
3、码在通信传输领域应用很广泛,因此其作为CCITT推荐使用的码型之一。本课程设计的主要工作是HDB3码的编码的建模与实现,对于HDB3编码模块,一般以硬件的方式来实现的。但它具有产品更新慢、设计灵活性差、不可重配置及现场升级性能缺乏等缺点。因此拟采用可编程逻辑电路来实现。可编程逻辑电路是EDA的一个重要技术基础,主要包括FPGA和CPLD,它们具有丰富的可重配置逻辑资源,既包含有大量实现组合逻辑的资源;还包含有相当数量的触发器,因此采用EDA技术进行电子系统的设计有以下优点:l 系统可现场编程,在线升级;l 用软件的方式设计硬件;l 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高;l 用软
4、件方式设计的硬件系统的转换是由有关的开发软件自动完成,降低了系统设计的难度。2、VHDL语言的介绍常用的硬件描述性语言有VHDL、Verilog和ABEL语言。VHDL语言起源于美国国防部的VHSIC,VHDL是一种高级描述语言,适用于行为级和RTL级的描述相对与Verilog语言和ABEL语言这些较低一级的适合描述门级电路的描述性语言而言,其具有以下的优点:设计方法灵活、支持广泛系统硬件描述能力强VHDL语言描述与工艺不发生关系VHDL语言标准、规范,易于共享和复用基于上述的特点,可知VHDL语言可读性好,又能被计算机识别。VHDL语言中设计实体、程序包、设计库,为设计人员重复利用已有的设计
5、提供了诸多技术手段。可重复利用他人的IP模块和软核也是VHDL的另一特色,许多设计不必每次都从头再来,只要在更高层次上把IP模块组合起来,就能达到事半功倍的效果。这样,设计人员自行开发的IP模块在集成电路设计中占有重要的地位。因此本课程设计采用VHDL语言设计一个完善的HDB3码编码器。基于FPGA的HDB3编译码的建模与实现 附录二3、HDB3码编码器的建模与实现3.1 HDB3码的编码规则在基带传输中,常用的码型有AMI码、HDB3码、4B/3T码、CMI码、以及双相码等。其中,AMI码是将输入单极性波形的所有正脉冲变为适合于在信道传输的正负极性交替的脉冲,而HDB3码则是在AMI码基础上
6、改进的一种双极性归零码,它除具有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
7、个连“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符号开始再交替变换。3.2 基于VHDL的编码器的建模及实现3.
8、2.1 编码器的VHDL建模图1 HDB3码编码器模型如图所示:整个HDB3码的编码器包括3个功能部分:添加破坏符号“V”、添加符号“B”和单极性码转变成双极性码,各部分之间采用同步时钟作用,并且带有一个异步的复位(清零)端口。3.2.2 基于VHDL编码器的实现1. 添加破坏符号“V”的实现 添加破坏符号“V”模块的功能实际上就是对消息代码里的四个连0串的检测,即当出现四个连0串的时候,把第四个“0”变换成符号“V”,而在其他的情况下,则保持消息代码的原样输出,同时为了区别代码“1”、 “V”和“0”,在添加破坏符号“V”时,用“11”标识符号“V”,用“01”标识符号“1”,用“00”标识
9、符号“0”。因此,添加破坏符号“V”的设计思想如下:首先判断输入的代码是什么,如果输入的符号是“0”码,则接着判断这是第几个“0”码,如果是第四个“0”码,则把这个“0”码变换成“V”码。在其他的情况下,让原码照常输出。程序流程图如图3.2所示:图2 添加破坏符号“V”符号流程图假设输入某信息序列,根据设计思想,输入代码一添加破坏符号“V”后的关系如下:信息序列: 10000100001100011添加破坏符号V后:01000000110100000011010100000001012.添加符号“B”的实现根据HDB3码的编码规则可知:添加破坏符号“V”模块的功能是为了保证附加“V”符号后的序
10、列不破坏“极性交替反转”造成的无直流特性,即当相邻“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”
11、符号流程图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 单双极性变换控制的程
12、序流程图“11”部分图6 单双极性变换控制的程序流程图-“00”部分其中在图中:以01表示+1。以11表示-1。以00表示0。3.4 HDB3码编码器完整源程序-本程序在添加破坏符号V时用11表示V,00表示0,01表示1-添加符号B时用00表示0,01表示1,10表示B-最终输出时是以11表示+1,00表示-1,10表示0LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENHDB3 IS PORT(CODEIN : IN STD_LOGIC; CLK : IN STD_LOGIC; CLR : IN STD_LOGIC; CODEOUT : O
13、UT STD_LOGIC_VECTOR(1 DOWNTO 0);END ENTITY ENHDB3;ARCHITECTURE RTL OF ENHDB3 IS SIGNAL CODEOUTV: STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL COUNT0: INTEGER:=0; SIGNAL S0: STD_LOGIC_VECTOR(4 DOWNTO 0):=00000; SIGNAL COUNT1: INTEGER RANGE 1 DOWNTO 0;-0表示在V之间有偶数个1,1表示在V之间有奇数个1 SIGNAL CODEOUTB: STD_LOGIC_VECT
14、OR(1 DOWNTO 0); SIGNAL S1: STD_LOGIC_VECTOR(4 DOWNTO 0):=00000; SIGNAL CLKB: STD_LOGIC; SIGNAL S3: STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL FLAGOB: INTEGER RANGE 2 DOWNTO 0; SIGNAL FLAGOV: INTEGER RANGE 2 DOWNTO 0; SIGNAL FIRSTV: INTEGER RANGE 1 DOWNTO 0; SIGNAL FIRST_1: STD_LOGIC; SIGNAL COUNT0_S:STD_L
15、OGIC; COMPONENT DFF -调元件DFF,即D触发器 PORT(D: IN STD_LOGIC; CLK: IN STD_LOGIC; Q: OUT STD_LOGIC); END COMPONENT DFF; BEGIN ADD_V: PROCESS(CLK,CLR) -添加破坏符号V程序 BEGIN IF(CLKEVENT AND CLK=1)THEN IF(CLR=1)THEN CODEOUTV=00; COUNT0CODEOUTV=01; -01表示1 COUNT0 IF(COUNT0=3)THEN COUNT0_S=1; CODEOUTV=11; COUNT0=0; E
16、LSE COUNT0_S=0; COUNT0=COUNT0+1; CODEOUTV CODEOUTV=00; COUNT0=COUNT0; COUNT0_S=0; END CASE; END IF; END IF; END PROCESS ADD_V; 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),CL
17、K,S0(2); DS13: DFF PORT MAP(S1(2),CLK,S1(3); DS03: DFF PORT MAP(S0(2),CLK,S0(3); -调元件DFF,即D触发器 BCLK: CLKB=NOT CLK; ADD_B: PROCESS(CLKB) BEGIN IF(CLKBEVENT AND CLKB=1)THEN IF(CODEOUTV=11)THEN IF(FIRSTV=0)THEN IF(FIRST_1=1)THEN COUNT1=0; FIRSTV=1; S1(4)=S1(3); S0(4)=S0(3); ELSE IF(COUNT0_S=1)THEN FIRS
18、TV=1; S1(4)=1; S0(4)=0; COUNT1=0; ELSE COUNT1=0; FIRSTV=1; S1(4)=S1(3); S0(4)=S0(3); END IF; END IF; ELSE IF(COUNT1=0)THEN-v之间的1为偶数 S1(4)=1; S0(4)=0; COUNT1=0; ELSE S1(4)=S1(3); S0(4)=S0(3); COUNT1=0;END IF; END IF; ELSIF(CODEOUTV=01)THEN IF(COUNT1=0)THEN FIRST_1=1; COUNT1=1; S1(4)=S1(3); S0(4)=S0(3
19、); ELSE FIRST_1=1; COUNT1=0; S1(4)=S1(3); S0(4)=S0(3); END IF; ELSE COUNT1=COUNT1; S1(4)=S1(3); S0(4)=S0(3); END IF; END IF; END PROCESS ADD_B; CODEOUTB=S1(4)&S0(4); OUTPUT: PROCESS(CLK) -01表示为+1,11表示为-1,00表示为0 BEGIN IF(CLKEVENT AND CLK=1)THEN IF(CODEOUTB=01) OR (CODEOUTB=10)THEN -1/B IF(FLAGOB=0)TH
20、EN IF(FLAGOV=0)THEN CODEOUT=01; FLAGOB=1; ELSIF(FLAGOV=1)THEN CODEOUT=11; FLAGOB=2; ELSIF(FLAGOV=2)THEN CODEOUT=01; FLAGOB=1; END IF; ELSIF(FLAGOB=1)THEN CODEOUT=11; FLAGOB=2; ELSIF(FLAGOB=2)THEN CODEOUT=01; FLAGOB=1; -判01/10 END IF; -FLAGOB/FLAGOV:0表示还未遇到V/B,1表示遇到奇数个V/B,2表示遇到偶数个V/B ELSIF(CODEOUTB=1
21、1)THEN IF(FLAGOV=0)THEN IF(FLAGOB=0)THEN CODEOUT=01; FLAGOV=1; ELSIF(FLAGOB=1)THEN CODEOUT=01; FLAGOV=1; ELSIF(FLAGOB=2)THEN CODEOUT=11; FLAGOV=2; END IF; ELSIF(FLAGOV=1)THEN CODEOUT=11; FLAGOV=2; ELSIF(FLAGOV=2)THEN CODEOUT=01; FLAGOV=1; -判V END IF; -FLAGOB/FLAGOV:0表示还未遇到V/B,1表示遇到奇数个V/B,2表示遇到偶数个V/B
22、 ELSE CODEOUT=00; FLAGOB=FLAGOB; FLAGOV=FLAGOV; END IF; END IF; END PROCESS OUTPUT;END ARCHITECTURE RTL;3.5 HDB3码编码器的波形仿真及分析图7 输入全 “0”时编码输出图8 输入全“1”时编码输出图9 输入“000000000000001000000”时编码输出图10 输入“100001000011000011000010” 时编码输出由仿真波形可以得出:CODEIN: 00000000000000000000CODEOUT:010000011100001101000001110000
23、1101000001CODEIN: 11111111111111111111 CODEOUT:0111011101110111011101110111011101110111CODEIN: 00000000000001000000CODEOUT:01000001110000110100000100110000000110100CODEIN: 100001000011000011000010CODEOUT:010000000111000000110111010000011101110000110100从图3.9图3.12可知,其输出的代码与根据HDB3码编码原理算出来的代码完全一致,从码元的输入到编码输出的延迟为913.2ms,满足实时通信对延
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年限量版别墅购买合同版
- 双柱带锯床卧式带锯床安全操作规程
- 企业竞争对手分析报告服务合同
- 双模轮胎硫化机安全操作规程
- 挤压机认准意美德安全操作规程
- 2025年度旅游节目导演编排与旅游体验服务合同3篇
- 2024年高档住宅区门卫服务合同
- 2024水电工程劳务承包合同(含设备采购)范本3篇
- 2024版加工定做合同模板
- 大气重金属在线测定仪器安全操作规程
- 新能源发电技术 电子课件 1.4 新能源发电技术
- 异面直线及其夹角教案 人教版
- 康复科年度工作亮点与展望计划
- 冀教版二年级(上)数学加减乘除口算题卡
- 【期中考后反思】《反躬自省,砥砺奋进》-2022-2023学年初中主题班会课件
- 材料采购服务方案(技术方案)
- 2024反诈知识竞赛考试题库及答案(三份)
- 中国传统文化知识竞赛考试题库300题(含答案)
- 合伙经营木材加工厂协议书
- 写作思路要清晰省公开课一等奖新名师比赛一等奖课件
- 前列腺癌根治术护理查房课件
评论
0/150
提交评论