已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AMI/HDB3编译码子单元CPLD设计姓名: 序号: 摘要:在某些具有低通特性的有线信道中,特别是传输距离不太远的情况下,数字基带信号可以直接传输,实际中常用的码型有AMI码和HDB3码。AMI码是传号交替反转码,HDB3码是AMI码的一种改进型,其目的是保持AMI码的优点而克服其缺点,使连“0”个数不超过3个,以利于位定时信号的提取。本文将具体介绍在Quartus II软件下用VHDL硬件描述语言编写的AMI/HDB3编译码子单元CPLD设计实现。关键词:AMI HBD3 编译码 CPLD设计一、 设计思路与程序流程:整个设计分为AMI/HDB3编码子单元和译码子单元两个部分。AMI/HDB3编码子单元端口如图1所示,图中的NRZ、ctrl、pout1和pout2分别与NRZ输入、HDB3/AMI选择、AMI码或HDB3码的正极性信号和负极性信号相对应。当ctrl端口接高电平时模块进行HDB3编码,当ctrl端口接低电平时进行AMI编码。编码时需输入NRZ码及位时钟信号,它们分别接数字信源模块的NRZ-OUT信号及BS-OUT信号。子单元输出两路并行信号pout1和pout2,分别与AMI码或HDB3码的正极性信号和负极性信号相对应,这两个信号作为AMI/HDB3编译码模块中的单双极性变换器的输入信号,经极性变换后得到AMI码或HDB3码。NRZBS-INpout1pout2ctrlAMI/HDB3编码子单元图1 AMI/HDB3编码子单元端口示意图 AMI/HDB3编码子单元对应的程序为code.vhd,程序中共设置6个变量:buff1存储AMI码或HDB3码的正极性信号buff2存储AMI码或HDB3码的负极性信号bw记录前一个“1”码或“B”码的符号,1代表“+”,0代表“”bv记录前一个“V”码的符号,1代表“+”,0代表“”i指针,指向当前的输出比特k指针,指向代表“B”码的比特编码算法流程如图2所示。如果接收到的NRZ码为“1”,则根据符号交替反转的原则确定编码为+1或1,并更新变量bw的值;如果接收到的NRZ码为“0”,则将变量buff1和buff2的相应比特置为0。如果buff1和buff2的数据均为“0000”并且模块进行HDB3编码(ctrl=1),需要用“000V”或“B00V”取代此连0信息码,否则不改变buff1和buff2的值。在对“0000”信息码进行编码的时候,首先判断变量bw和bv的关系:如果bv=bw,说明两个相邻“V”码之间有偶数个信息“1”码(包括0个信息“1”码),将“0000”编码为“B00V”,根据符号交替反转的原则,“B”码和“V”码的符号与变量bw代表的符号相反,然后更新变量bw和bv的值;如果bvbw,说明两个相邻“V”码之间有奇数个信息“1”码,将“0000”编码为“000V”,其中“V”码的符号与变量bv代表的符号相反,然后更新变量bv的值。最后将变量buff1和buff2的数据分别输出至pout1和pout2端口。AMI/HDB3译码子单元端口如图3所示,图中的pin1、pin2、ctrl分别与图1中的pout1、pout2、ctrl相对应,pout为译码输出。 pin1BS-RpoutctrlAMI/HDB3译码子单元pin2图3 AMI/HDB3译码子单元端口示意图 AMI/HDB3译码子单元对应的程序为decode.vhd,程序中共设置3个变量:buff存储译码得到的NRZ信号bw记录前一个非零码的符号,1代表“+”,0代表“”i指针,指向当前的输出比特图2 AMI/HDB3编码算法流程图译码算法流程如图4所示,当ctrl端口接高电平时模块进行HDB3译码,当ctrl端口接低电平时进行AMI译码。位同步信号BS-R来自本模块的滤波法位同步器。译码时,需将AMI码或HDB3码变换成两路单极性信号分别送往子单元的pin1和pin2端口,译码得到的NRZ信号经pout端口输出。在进行HDB3译码时,如果输入信号为0,则将变量buff的相应比特置为0,反之则需要根据输入信号和变量bw的值判断两个相邻非零码的符号是否相同:若相同,则说明符号交替反转原则被破坏,当前输入的HDB3信号是V码,需要将变量buff的值修改为0000;如果两个相邻非零码的符号不同,说明输入信号不是V码,将buff的相应比特置为1,并更新变量bw的值。在进行AMI译码时,如果输入信号为0,则将buff的相应比特置为0,反之则置为1。最后将变量buff的比特数据输出至pout端口。图4 AMI/HDB3译码算法流程图二、设计程序及注释: 1. AMI/HDB3编码子单元程序: = - 程序名称:code.vhd- 程序功能:将NRZ码转换为AMI码或HDB3码-=LIBRARYieee;USEieee.std_logic_1164.all;ENTITYcodeisport(BS_R:in bit; - 位同步信号 NRZ:in bit;- 输入的NRZ信号 ctrl:in bit;- 控制信号,高电平时进行HDB3编码,低电平时进行AMI编码 pout1 :out bit; - 输出AMI码或HDB3码的正极性信号 pout2:out bit - 输出AMI码或HDB3码的负极性信号 );ENDcode;ARCHITECTUREfofcodeisBEGINPROCESS(BS_R)variablebuff1:bit_vector(3 downto 0):=(others=0);- 存储AMI码或HDB3码的正极性信号 variablebuff2:bit_vector(3 downto 0):=(others=0); - 存储AMI码或HDB3码的负极性信号 variablebw: bit :=1;- 记录前一个“1”码或“B”码的符号 variablebv: bit :=0; - 记录前一个“V”码的符号 variablei:integer range 0 to 3 :=3; - 指针指向当前的输出比特 variablek:integer range 0 to 3 :=0; - 指针指向代表“B”码的比特 BEGINifBS_R=0 thenifNRZ=1then- 当输入信号为1时,根据符号交替反转原则确定编码值 buff1(i):=not bw;buff2(i):=bw;bw:=not bw; - 更新变量bw elsebuff1(i):=0;- 当输入信号为0时,将buff1和buff2的相应比特置为0 buff2(i):=0;ifbuff1=0000 and buff2=0000 and ctrl=1 then ifbv=bwthen- 如果bv=bw,说明两个相邻“V”码之间有偶数个信息“1”码k:=i+3; - 那么“0000”编码为“B00V”buff2(k):=bw;- “B”码的符号和变量bw代表的符号相反 buff2(i):=bw;- “V”码的符号和变量bw代表的符号相反 bw:=not bw;- 更新变量bw buff1(k):=bw;buff1(i):=bw;bv:=bw;- 更新变量bv else - 如果bv?bw,那么“0000”编码为“000V” buff1(i):=bw;-“ V”码的符号和变量bv代表的符号相反,和bw代表的符号相同 buff2(i):=not bw; bv:=bw;- 更新变量bvend if;endif;end if;i:=i-1;end if;pout1=buff1(i) and (not BS_R);- 输出AMI码或HDB3码的正极性信号 pout20);-存储译码得到的NRZ信号variablebw: bit :=1; -记录前一个非零码的符号variablei:integer range 0 to 3 :=3;-指针指向当前的输出比特BEGINwait until BS_REVENT and BS_R=1;pout0);bw:=1;- 将buff的值修改为“0000”else- 如果两个相邻非零码的符号不同 buff(i):=1;bw:=1;- 输入信号不是“V”码,将buff1的相应比特end if;- 置为1,并更新变量bw值end if;ifpin2=1thenifbw=0thenbuff:=(others=0);bw:=0;elsebuff(i):=1;bw:=0;end if;end if;ifpin1=0 and pin2=0then- 如果输入信号为0,将变量buff的相应比特buff(i):=0;bw:=bw;- 置为0 end if;else - 如果ctrl=0,进行AMI译码 buff(i):=pin1 or pin2;end if;- 置为0,反之则置为1 i:=i-1;ENDPROCESS;ENDf;三、设计模块连接图:四、仿真结果及结果分析: AMI编译码 (ctrl=0)分析:当ctrl为低电平时,设计为AMI编译码子单元。当NRZ信号为“1”码时,POUT1和POUT2分别表示编码的正负极性信号交替输出,当NRZ信号为“0”码时,编码输出为“0”不变。译码器根据编码器输出的正负极性信号能够正确译码通过POUT输出。编码和译码都存在一定时间的时延。 HDB3编译码 (ctrl=1)分析:当ctrl为高电平时,设计为HDB3编译码子单元。当NRZ信号连“0”个数不超过3个时,仍按AMI码规则编制;当NRZ信号连“0”个数超过3个时,将第四个“0”改为+V或V(破坏脉冲),V码极性与前一个非“0”脉冲的极性相同,例如上图中POUT2的第3个脉冲,否则,四连“0”的第一个“0”更改为与该破坏脉冲相同极性的脉冲+B或B,例如上图中POUT2的第4个脉冲,且破坏脉冲之后的传号码也交替。POUT译码输出与NRZ输入相同,编码和译码都存在一定的时延。五、总结: 这次AMI/HDB3编译码子单元的CPLD设计,让我对AMI和HDB3码的编译码过程不再仅仅拘泥于理论知识,在实践中更加深刻的认识到两种常用码型的编码特点和各自的优缺点,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业类考试试题及答案
- 2026八年级下语文修辞手法运用技巧
- 公司年休制度
- 2026五年级数学上册 解方程的检验
- 伴伴直播的惩罚制度
- 会计信息报告制度、财务风险防范制度、工作评价制度和财务监督检查制度
- 企业汽柴油采购制度
- 代理记账行业绩效评价制度
- 装饰公司安全员奖惩制度
- 创业基础课小组奖惩制度
- 采购员转正述职报告
- 2025年初级护工考试试题及答案
- 焊接技术培训(基础教程)课件
- 返乡安全教育
- 化工设备使用与维护课程标准
- DG-TJ 08-2122-2021 保温装饰复合板墙体保温系统应用技术标准
- 半导体车间安全培训课件
- 中风与中西医治疗
- 米勒黑曼策略销售培训
- 卫生院综合楼施工组织设计
- 卡西欧手表GW-M5610中文使用说明书
评论
0/150
提交评论