HDB3码编码器及解码器verilog代码编程及实现.pptVIP

HDB3码编码器及解码器verilog代码编程及实现.ppt

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

通信原理消息数字基带信号调制传输

解调基带信号解码

消息

基带信号的选择:AMI码HDB3码HDB3码保持了AMI码的优点,克服了AMI码在遇到连“0”长时难以提取定时信息的困难,因而获得广泛应用。

HDB3码编码规那么HDB3码为3阶高密度双极性码,其编码规那么为:1将消息代码转换为AMI码;2检查AMI码中连“0”的情况,出现4个或4个以上连“0”时,将第4个“0”变为与前一个非“0”符号同极性的符号,用“V”标识〔+V和-V〕;3、 检查相邻V符号之间非“0”符号是否为偶数,如果为偶数,那么将当前V符号前一个非“0”符号后的第一个“0”变为“B”,”B”的极性与前一个非”0“符号相反,并使“V”后的非“0”符号从“V”开始再交替变化。

编码器实现:在实际电路设计时,先在纯粹的数字电路下完成插“V”的操作,再完成插“B”的操作;然后再将单极性变成双极性。这样可以在数字电路中实现,且降低存放器需求。因为“V”、“B”是认为标识的符号,所以在具体电路中,需做以下替换:0-00,1-01,V-11,B-10。

设计步骤:插“V”的实现:1、设置连“0”计数器,复位为0;2、对输入信号进行判断,如果为1那么计数器复位,且输出“01”;3、如果为“0”,那么对“0”进行计数,如果计数值不为4,那么输出“00”;4、如果计数值为“4”,那么计数器复位,同时输出为“11”。

moduleadd_v(data_in,clk,data_out);inputdata_in;inputclk;output[1:0]data_out;reg[1:0]data_out;regcounter;always@(posedgeclk)if(data_in==1b1)begincounter=0;data_out=2b01;endelsebegincounter=counter+1;if(counter==3)begindata_out=2b11;counter=0;endelsebegindata_out=2b00;endendendmodule

RTL图

插“B”的实现:1、 设置对“01”的计数器counter为0,设置对“11”的计数器firstV为0;2、 对输入进行判断,如果为“01”,那么counter加1,仍然输出“01”;3、 如果输入为“00”,输出为“00”,计数器不变;4、 如果输入为“11”,firstV加1,此时如果counter为奇数,那么输出仍为“11”;5、 如果counter为偶数,那么将counter复位,且将此处前第4个数变成“10”。关键要设置四位的移位存放器

moduleadd_b(add_in,addb_out,clk);inputclk;input[1:0]add_in;output[1:0]addb_out;regfirstv;regcounter;reg[1:0]d[3:0];always@(posedgeclk)begin d[3]=d[2];d[2]=d[1];d[1]=d[0];d[0]=add_in;endalways@(posedgeclk)beginif(d[0]==2b11)begincounter=0;firstv=0;end elseif(d[0]==2b01)begincounter=counter+1;firstv=1;endelsebeginfirstv=1;endendassignaddb_out=(counter==0)(firstv==1)(d[0]==2b11)?2b10:d[3];endmodule

RTL图

单双极性变换:由HDB3编码规那么,“V”的极性是正负交替,而“1”和“B”的极性看成一体,为正负交替的,同时“V”的极性与前面的非“0”码一致。1、 设置一个极性标志even=0;2、 如果输入信号为“00”,输出仍为“00”;3、 输入为“01”,或“10”,如果even=1,输出“01”;如果even=0,输出为“10”,然后将even翻转;4、 如果输入为“11”,判断even,如果为1,那么输出“10”,如果位0,输出“01”。注意:输出后的“10”和“01”表示的不再是“1”、“V”、和“B”了,而是标识

文档评论(0)

寒傲似冰 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8071104010000026

1亿VIP精品文档

相关文档