版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2008级学生通信原理课程设计 通信原理课程设计报告书课题名称HDB3编码的EDA实现姓 名学 号 院 系专 业通信工程指导教师 2010年 12月 29日 一、设计任务及要求:1 掌握HDB3码的编码规则;2 根据编码规则,设计HDB3码的编码模型;3 利用VHDL对HDB3码进行编码设计;4 对设计的程序进行仿真验证,达到与编码规则完全一致。指导教师签名: 年 月 日 二、指导教师评语:指导教师签名: 年 月 日 三、成绩 验收盖章 年 月 日 HDB3编码的EDA实现0812402*01 姚杰(湖南城市学院物理与电信工程系通信工程专业,益阳,413000)一、设计目的实现HDB3的编码。
2、在此次课程设计中,我将通过多方搜集资料与分过这个阶段的研习,更清晰地认识HDB3编码原理,同时加深对EDA这款电子设计软件操作的熟练度。利用自主的设计过程来锻炼自己独立思考,分析和解决问题的能力,为我今后的自主学习研究提供具有使用性的经验。二、设计要求1.掌握HDB3码的编码规则; 2.根据编码规则,设计HDB3码的编码模型; 3.利用VHDL对HDB3码进行编码设计;4.对设计的程序进行仿真验证,达到与编码规则完全一致。三、设计原理3.1HDB3码的建模 要设计一个实用的编码模块,首先要深入研究其编码规则及其特点,然后根据编码规则设计符合电路特性的编码流程。HDB3码的编码规则包括:将消息代
3、码变换成AMI码,AMI码的编码规则是对码流中的非“0”符号进行正负交替;检查AMI码中的连零情况,当连零的个数小于4个时,保持AMI的形式不变;当连零的个数达到4个或超过4个时,则将非零码后的第4个“0”替换成V码,其中V码的极性与前一非零码(+1或-1)的极性保持一致,例如,前面的非零码是+1,则将V码记为+V;完成插V操作后,检查2个相邻V码之间非零码的个数是否为偶数,若为偶数,则再将相邻2个V码中后一个V码的前一非零码后的第一个“0”变为B码,B码的极性与前一非“0”码的极性相反,同时B码后面的非“0”码极性再次进行交替变换,保证极性交替反转特性。例: NRZ码: 1 0 0 0 0
4、1 0 0 0 0 1 1 0 0 0 0 1 1 插V: 1 0 0 0 V 1 0 0 0 V 1 1 0 0 0 v 1 1 插B: +1 0 0 0 +V-1 0 0 0 -V+1 -1 +B 0 0 +V -1 +1 编码规则中出现的V码、B码只是作为标识符,最终的电路实现还是“0”和“1”这两种逻辑电平,因此需要采用二进制编码对“1”、“0”、V、B进行编码,“00”表示“0”、“0l”表示“1”,“10”表示B,“11”表示V。编码过程:首先插入V码,然后插入B码,最后是单双极性变换。如果按照编码规则的顺序设汁应该首先进行单双极性变换,在完成插V和插B后.HDB3码的编码器模型框
5、图如下表所示: 图1 编码模型框图3.2 插入V码过程插入V码过程是对消息代码里的连零串进行检测,一旦出现4个连零串的时候,就把第4个“O”替换成破坏符V,其他情况下消息代码原样输出。输入的代码经插V操作后全部转换成双相码,即“0”变换成“00”,“1”变换成“01”,V变换成“ll”。图2是插入V码过程的流程,代码输入到插V模块后,如果输入是“l”,则输出为“01”,同时计数器清零;如果输入是“O”则对输入“O”的个数进行计数,当计数器计数到第4个“O”时,输出“11”作为V码,同时计数器要清零用于下一轮检测;计数器未满4个“0”,则输出“00”。3.3插入B码过程当相邻两个V码之间有偶数个
6、非“0”码时则把后一个V码之前的第1个非“0”码后面的“0”码变换成B码。该模块设计的难点在于插入B码的过程中涉及一个由现在事件的状态控制过去事件状态的问题,按照实时信号处理的理论,这是无法实现的,这里使用两组4位移位寄存器。采用4位移位寄存器是根据HDB3编码规则的特点确定,经插V后,连零串中的第4个“0”变成V码,代码中连零个数最多是3个,而插入B码操作是把在后一个V码之前的第1个非零码之后的“O”变换成B码,这个长度不超过3个“0”,因此只需4位寄存器就可通过判断现在的输入状态来决定是否应插入B码。2组4位移位寄存器在时钟的作用下逐位将数据移出,在移位的同时还需对寄存器的最低位进行操作,
7、即判断是否需插入B码。这部分功能的实现需设置一个检测当前V码状态的标志位firstv。3.3单双极性变换过程分析HDB3码的编码规则,发现V码的极性是正负交替的,余下的“1”和B码的极性也是正负交替的,且V码的极性与V码之前的非零码极性一致。因此可以将所有的“1”和B码取出来做正负交替变换,而V码的极性则根据“V码的极性与V码之前的非零码极性一致”这一特点进行正负交替变换。具体操作是设置一个标志位flag,通过检测判断标志位的状态来确定是否进行单双极性变换,标志位要交替变换以实现“l”和“B”正负交替,V码的极性也根据标志位变换。“10”表示输出正电平,“0l”表示输出负电平,“00”表示输出
8、为零电平。 四、具体设计程序:-HDB3.vhd-HDB3 Encoder by VHDL-LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;entity hdb3 isport(clk: in std_logic; codein: in std_logic; Codeout ,code_out: out std_logic);end ENTITY hdb3;ARCHITECTURE A of hdb3 is SIGNAL CNT1: STD_LOGIC; SIGNAL CNT0: STD_LOGI
9、C_VECTOR(1 DOWNTO 0); SIGNAL JJ22,REGVV,FLAG: STD_LOGIC; SIGNAL POS_OUT_TEMP,NEG_OUT_TEMP: STD_LOGIC; SIGNAL REG_POS: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL REG_NEG: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CTL,B: STD_LOGIC;BEGIN U1: PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN IF DATA_IN=
10、'0' THEN -输入信号为0时 CNT0<=CNT0+1; IF CNT0="11" THEN -四个连0产生 CNT0<="00" REGVV<=NOT CNT1; IF JJ22=NOT REGVV THEN -两个V之间有奇数个非0 FLAG<='0' CTL<='0' IF CNT1='1' THEN - +V POS_OUT_TEMP<='1' NEG_OUT_TEMP<='0' ELSE - -V PO
11、S_OUT_TEMP<='0' NEG_OUT_TEMP<='1' END IF; ELSE -两个V之间有偶数个非0 FLAG<='1' CTL<='1' B<=CNT1 NOR FLAG; IF CNT1='0' THEN - +V POS_OUT_TEMP<='1' NEG_OUT_TEMP<='0' ELSE - -V POS_OUT_TEMP<='0' NEG_OUT_TEMP<='1'
12、END IF; END IF; ELSE CTL<='0' POS_OUT_TEMP<='0' NEG_OUT_TEMP<='0' END IF; ELSE -输入信号为1时 CTL<='0'CNT0<="00"CNT1<=NOT CNT1;JJ22<=CNT1;-FLAG='0'时,对1的处理和AMI码相同-FLAG='1'时,说明两个V之间有偶数个非0,对1的处理和AMI码相反IF FLAG='0' THEN IF C
13、NT1='0' THEN POS_OUT_TEMP<='1' NEG_OUT_TEMP<='0' ELSE POS_OUT_TEMP<='0' NEG_OUT_TEMP<='1' END IF; ELSE IF CNT1='0' THEN POS_OUT_TEMP<='0' NEG_OUT_TEMP<='1' ELSE POS_OUT_TEMP<='1' NEG_OUT_TEMP<='0'
14、 END IF; END IF; END IF; END IF; END PROCESS; -移位寄存器进程 -CTL='0',不需要添加B信号,不改变POS_OUT_TEMP,NEG_OUT_TEMP中的值 -CTL='1',需要添加B信号,根据B的正负,改变POS_OUT_TEMP,NEG_OUT_TEMP,使输出加上+B,-B U2: PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN REG_POS(0)<=POS_OUT_TEMP; REG_NEG(0)<=NEG_OUT
15、_TEMP; FOR I IN 1 TO 3 LOOP REG_POS(I)<=REG_POS(I-1); REG_NEG(I)<=REG_NEG(I-1); END LOOP; IF CTL='1' THEN IF B='1' THEN REG_POS(3)<='1' REG_NEG(3)<='0' ELSE REG_POS(3)<='0' REG_NEG(3)<='1' END IF; END IF; POS_OUT<=REG_POS(3); NEG_O
16、UT<=REG_NEG(3); END IF;END PROCESS; END A;五、设计结果 5.1在EDA中实现HDB3的编码的产生和EDA软件的仿真。仿真结果如下: 图2 HDB3仿真结果如图 5.2 HDB3编码模块仿真分析对该HDB3编码模块进行仿真验证,图2是仿真波形图,clk为时钟信号,仿真时钟频率为32 MHz,clr为清零信号高电平有效,Codein表示待编码的输入信号,输入的二进制代码为:00100001000011;Codeout是单双极性变换后波形,“2”表示正电平,“1”表示负电平。Coudeout输出编码信号为00100012000212。该HDB3编码模块
17、正确实现编码功能。六、仪器和设备系统开发平台为Windows7,使用工具软件为 Quartus 。七、设计总结: 在这次课程设计中,我通过多方面地搜集资料,对HDB3码进行深入理解分析,成功地用VHDL语言编写HDB3码的编译及仿真实现。在设计过程中,我面对着一系列的难点:将EDA技术与通信原理结合起来运用。这些具体的问题在书上只有少量的理论介绍,要在实际运用中结合这些理论是一件不太容易的事。接到课程设计任务书后,我积极投入,去图书馆借阅相关资料,上网浏览相关信息,获得了大量的信息,为完成本次课程设计奠定了基础。对于VHDL语言我开始还有许多未解之处,为了了解各个函数的用法,我多次查阅有关书籍,大体了解了所调用函数的使用方法。然后通过不断的实验与探究总结,终于逐个克服了这些难点,完成了任务。通过这次的实践,我明白了要将理论与实际相结合的道理,尽管这个过程会有一些。参考文献1.王兴亮、寇宝明.数字通信原理与技术M . 西安电子科技大学出版社,2009年5月第3版:32-38.2.程佩青. 数字信号处理教程M. 清华大学出版社,2006年10月:82-84.3.刘树棠. 信号与系统M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年高效节能供水井工程承包协议
- 小学心理健康教育发言稿10
- 八年级上册第四章《光的直线传播》说课稿
- 家具买卖合同范本模板
- 消防培训合同范本
- 2024房地产合作经营协议模板范例
- 2024年球墨铸铁行业政策分析:球墨铸铁行业标准推动重大技术装备
- 松鼠加盟合同范本
- 农业 施工 合同范本
- 2024年企业正式用工协议样式
- GH/T 1419-2023野生食用菌保育促繁技术规程灰肉红菇
- 鼻咽癌的放射治疗课件
- 明孝端皇后九龙九凤冠
- 注塑车间规划方案
- 营养不良五阶梯治疗
- 标本运送培训课件
- 护士与医生的合作与沟通
- GB 42295-2022电动自行车电气安全要求
- 产品系统设计开发 课件 第4、5章 产品系统设计类型、产品系统设计开发综合案例
- 1编译原理及实现课后题及答案
- 让阅读成为习惯家长会课件
评论
0/150
提交评论