欢迎来到天天文库
浏览记录
ID:6819461
大小:764.00 KB
页数:18页
时间:2018-01-27
《课程设计(论文)-基于vhdl的hdb3编译码器的设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于VHDL的HDB3编译码器的设计专业:通信工程班级:姓名:学号:指导老师:设计时间:2011/12/7-2011/12/21基于VHDL的HDB3编译码器的设计方案1设计流程1.1可编程逻辑器件的一般设计流程可编程逻辑器件的设计过程是利用EDA开发软件和编程工具对器件进行开发的过程。可编程逻辑器件的一般设计流程如图1-1所示,包括设计准备,设计输入,功能仿真,设计处理,时序仿真和器件编程及测试等七个步骤。图1-1可编程逻辑器件的一般设计流程2HDB3码介绍2.1HDB3码的编/译码规则HDB3码的编码规则:(1)将消息代码变换成AMI码;(2)检查A
2、MI码中的连0情况,当无4个以上的连0传时,则保持AMI的形式不变;若出现4个或4个以上连0时,则将1后的第4个0变为与前一非0符号(+1或-1)同极性的符号,用V表示(+1记为+V,-1记为-V(1)检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,则再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化。举例如下:代码101011000001100001HDB3码+10-10+1-1000-10+1-1+100+1-1V、B-V+B+VHDB3码的特点如下:(1)
3、基带信号无直流成分,且只有很小的低频成分;(2)连0串符号最多只有3个,利于定时信息的提取;(3)不受信源统计特性的影响。HDB3码的特点如下:(1)基带信号无直流成分,且只有很小的低频成分;(2)连0串符号最多只有3个,利于定时信息的提取;(3)不受信源统计特性的影响。HDB3码的译码规则:HDB3码的译码是编码的逆过程,其译码相对于编码较简单。从其编码原理可知,每一个破坏符号V总是与前一非0符号同极性,因此,从收到的HDB3码序列中,容易识别V符号,同时也肯定V符号及其前面的3个符号必是连0符号,于是可恢复成4个连0码,然后再将所有的-1变成+1后变
4、得到原消息代码。举例如下:HDB3码+10-10+1-1000-10+1-1+100+1-1V符号-V+V译码1010110000011000013用VHDL语言设计HDB3编码器设计任务与要求将一串行输入码流编为HDB3码输出(编码部分);将一串行输入的HDB3码解码后串行输出(解码部分)。3.1HDB3编码器实现的基本原理从编码规则来分析,这个设计的难点之一是如何判决是否应该插“B”,因为这涉及到由现在事件的状态决定过去事件状态的问题。按照实时信号处理的理论,这是没办法实现的。但在实际的电路中,可以考虑用寄存器的方法,首先把信码寄存在寄存器里,同时设
5、置一个计数器计数两个“V”之间“1”的个数,经过4个码元时间后,由一个判偶电路来给寄存器发送是否插“B”的判决信号,从而实现插“B”功能。即首先完成插“V”工作,接着执行插“B”功能。最后实现单极性变双极性的信号输出。这样做的好处是:输入进来的信号和插“V”、插“B”功能电路中处理的信号都是单极性信号,且需要的寄存器的数目可以少很多。另外,如何准确识别电路中的“1”、“V”和“B”。因为“V”和“B”符号是人为标识的符号,但在电路中最终的表现形式还是逻辑电平“1”。解决的方法是利用了双相码,将其用二进制码去取代。例如,代码:110010双相码101001
6、011001这样就可以识别电路中的“1”、“V”、“B”。也可以人为地加入一个标识符(其最终目的也是选择输出“1”的极性)。控制一个选择开关,使输出“1”的极性能按照编码规则进行变化。3.2HDB3编码器的设计过程插“B”插“V”极性转换在HDB3码的VHDL建模思想是在消息代码的基础上,依据HDB3编码规则进行插人“V”符号和“B”符号的操作,且用2位二进制代码分别表示。最后完成单极性信号变成双极性信号的转换。其编码模型如图1所示:消息码HDB3码图3-1HDB3编码实现流程整个HDB3编码器包含3个功能部分:插“V”、插“B”和单极性码转变成双极性码
7、。各部分之间采用同步时钟作用,并且带有一个异步的复位(清零)端口。(1)插“V”模块的实现1)、插“V”模块的建模插“V”模块的功能实际上就是对消息代码里的四连0串的检测即当出现四个连0串的时候,把第四个“0”变换成为符号“V”(“V”可以是逻辑“1”——高电平),而在其他情况下,则保持消息代码的原样输出。同时为了减少后面工作的麻烦,在进行插“V”时,用“11”标识它,“1”用“01”标识,“0”用“00”标识。插“V”符号的设计思想很简单:首先判断输入的代码是什么(用一个条件语句判断),如果输入的是“0”码,则接着判断这是第几个“0”码,则把这一位码元
8、变换成为“V”码。在其他条件下,让原代码照常输出。startCounter=0D
此文档下载收益归作者所有