网站大量收购闲置独家精品文档,联系QQ:2885784924

3 用VHDL语言设计HDB3编码器..pdfVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

3用VHDL语言设计HDB3编码器

设计任务与要求

将一串行输入码流编为HDB3码输出(编码部分;将一串行输入的HDB3码解

码后串行输出(解码部分。

3.1HDB3编码器实现的基本原理

从编码规则来分析,这个设计的难点之一是如何判决是否应该插“B”,因为这

涉及到由现在事件的状态决定过去事件状态的问题。按照实时信号处理的理论,这

是没办法实现的。但在实际的电路中,可以考虑用寄存器的方法,首先把信码寄存在

寄存器里,同时设置一个计数器计数两个“V”之间“1”的个数,经过4个码元时间后,

由一个判偶电路来给寄存器发送是否插“B”的判决信号,从而实现插“B”功能。

不过,信号处理的顺序不能像编码规则那样:首先把代码串变换成为AMI码,完

成插“V”、插“B”工作之后,其后的“+1”和“-1”的极性还要依据编码规则的规定

变换。这样做需要大量的寄存器,同时电路结构也变的复杂。若把信号处理的顺

序变换一下:首先完成插“V”工作,接着执行插“B”功能。最后实现单极性变双极性

的信号输出。这样做的好处是:输入进来的信号和插“V”、插“B”功能电路中处理

的信号都是单极性信号,且需要的寄存器的数目可以少很多。

另外,如何准确识别电路中的“1”、“V”和“B”。因为“V”和“B”符号是人

为标识的符号,但在电路中最终的表现形式还是逻辑电平“1”。解决的方法是利

用了双相码,将其用二进制码去取代。例如,

代码:110010

双相码101001011001

这样就可以识别电路中的“1”、“V”、“B”。也可以人为地加入一个标识

符(其最终目的也是选择输出“1”的极性。控制一个选择开关,使输出“1”的极性能

按照编码规则进行变化。

3.2HDB3编码器的设计过程

本设计的思想并不像前面HDB3编码原理介绍的那样首先把消息代码变换成

为AMI码,然后进行V符号和B符号的变换,而是在消息代码的基础上,依据HDB3

编码规则进行插入“V”符号和插入“B”符号的操作,最后完成单极性信号变成双极

性信号的变换。

图3-1HDB3码的编码器模型框图

整个HDB3编码器包含3个功能部分:插“V”、插“B”和单极性码转变成双极

性码。各部分之间采用同步时钟作用,并且带有一个异步的复位(清零端口。下面

将详细介绍各个部分的设计流程、编写的源程序模拟仿真的波形图。

(1插“V”模块的实现

1、插“V”模块的建模

插“V”模块的功能实际上就是对消息代码里的四连0串的检测即当出现四个

连0串的时候,把第四个“0”变换成为符号“V”(“V”可以是逻辑“1”——高电平,

而在其他情况下,则保持消息代码的原样输出。同时为了减少后面工作的麻烦,在进

行插“V”时,用“11”标识它,“1”用“01”标识,“0”用“00”标识。

插“V”符号的设计思想很简单:首先判断输入的代码是什么(用一个条件语句判

断,如果输入的是“0”码,则接着判断这是第几个“0”码,则把这一位码元变换成为

“V”码。在其他条件下,让原代码照常输出。

图3-2所示为插“V”符号的流程图2插”V”模块的程序设计

插V的程序如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityhdb3ais

port(reset,clk,datain:instd_logic;

dout:outstd_logic_vector(1downto0;

endentity;

architecturertlofhdb3ais

signalcounter:integerrange0to3;

begin

process(reset,clk,datainis

beginbegin

ifdatain=0then

counter=counter+1;

ifcounter=3then

文档评论(0)

153****9248 + 关注
实名认证
文档贡献者

专注于中小学教案的个性定制:修改,审批等。本人已有6年教写相关工作经验,具有基本的教案定制,修改,审批等能力。可承接教案,读后感,检讨书,工作计划书等多方面的工作。欢迎大家咨询^

1亿VIP精品文档

相关文档