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

上传人:我*** 文档编号:134419036 上传时间:2020-06-05 格式:PPT 页数:29 大小:1.58MB
返回 下载 相关 举报
HDB3码编码器及解码器verilog代码编程及实现_第1页
第1页 / 共29页
HDB3码编码器及解码器verilog代码编程及实现_第2页
第2页 / 共29页
HDB3码编码器及解码器verilog代码编程及实现_第3页
第3页 / 共29页
HDB3码编码器及解码器verilog代码编程及实现_第4页
第4页 / 共29页
HDB3码编码器及解码器verilog代码编程及实现_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《HDB3码编码器及解码器verilog代码编程及实现》由会员分享,可在线阅读,更多相关《HDB3码编码器及解码器verilog代码编程及实现(29页珍藏版)》请在金锄头文库上搜索。

1、通信原理 消息数字基带信号调制传输解调基带信号解码消息 基带信号的选择 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

2、 符号从 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 ou

3、t inputdata in inputclk output 1 0 data out reg 1 0 data out regcounter always posedgeclk if data in 1 b1 begincounter 0 data out 2 b01 endelsebegincounter counter 1 if counter 3 begindata out 2 b11 counter 0 endelsebegindata out 2 b00 endendendmodule RTL图 插 B 的实现 1 设置对 01 的计数器counter为0 设置对 11 的计数器f

4、irstV为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 b

5、egind 3 d 2 d 2 d 1 d 1 d 0 d 0 add in endalways posedgeclk beginif d 0 2 b11 begincounter 0 firstv 0 endelseif d 0 2 b01 begincounter counter 1 firstv 1 endelsebeginfirstv 1 endendassignaddb out counter 0 endmodule RTL图 单双极性变换 由HDB3编码规则 V 的极性是正负交替 而 1 和 B 的极性看成一体 为正负交替的 同时 V 的极性与前面的非 0 码一致 1 设置一个极性

6、标志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 了 而是标识符号的正负极性 再将输出控制4选1的开关 就可以将 00 01 10 转化为0 1和 1了 modulepolar addb out clk BP BN input 1 0 addb out inputclk outputBP BN reg 1 0 polar out re

7、gBP BN regeven always posedgeclk if addb out 2 b11 beginif even 1 beginpolar out 2 b01 endelsebeginpolar out 2 b11 endendelseif addb out 2 b01 addb out 2 b10 if even 1 begineven 0 polar out 2 b11 endelsebegineven 1 polar out 2 b01 endelsebeginpolar out 2 b00 endalways polar out beginif polar out 2 b

8、01 beginBP 0 BN 1 endelseif polar out 2 b11 beginBP 1 BN 0 endelsebeginBP 0 BN 0 endendendmodule RTL图 顶层模块设计modulebian clk data BP BN inputclk data outputBP BN add vu1 clk clk data in data data out a add bu2 clk clk add in a addb out b polaru3 clk clk addb out b BP BP BN BN endmodule RTL图 译码器 译码原理 根

9、据编码规则 破坏点V脉冲与前一个脉冲同极性 因此可从所接受的信码中找到V码 然后根据加取代节的原则 V码与前面的三位码必然是取代码 需要全部复原为四连0 只要找到V码 不管V码前是两个 0 码 一律把取代节清零 完成了扣V扣B功能 进而得到原二元信码序列 可实现HDB3译码的模型框图如图4 1所示 HDB3译码器包括双 单极性变换 V码检测 时钟提扣V扣B四部分组成 BP BN转换模块moduletrans clk BP BN P N inputclk BP BN outputP N reg 1 0 P reg 1 0 N always posedgeclk beginif BP 0 P 2

10、b00 elseP 2 b01 if BN 0 N 2 b00 elseP 2 b01 endendmodule 1 V检测模块为了方便起见 设从正整流电路输出的信号为 B 从负整流电路输出的信号为 B V码检测模块 B的控制下 对输入的 B进行检测 其原理是 当 B的上升沿到来时 对输入的 B脉冲进行计数 当计数值等于2时 输出一个脉冲作为 V脉冲 同时计数器清零 而且计数期间 一旦有 B信号为 1 电平时 立即对计数器清零 计数器重新从零开始计数 这是因为在两个 B脉冲之间 存在 B脉冲 说明第二个 B脉冲不是 V码 而只有在连续两个 B脉冲之间无 B脉冲 才能说明这两个 B脉冲在HDB3

11、码中 是真正同极性的于是就可以判定第二个 B脉冲实际上是 V码 达到检测 V码的目的 2 V检测模块V码检测原理与 V码检测的类似 所不同的是 V码检测电路在 B控制下 对来自 B信号进行计数和检测 判定 若检测到 V码 则输出到 V码信号 modulefindv clk P1 N1 out1 out2 inputP1 N1 clk outputout1 out2 reg 1 0 counter1 reg 1 0 counter2 reg 1 0 out1 reg 1 0 out2 always posedgeclk beginif P1 2 b01 beginif counter2 2 b1

12、0 counter1 2 b00 elsebegincounter1 counter1 1 if counter1 2 b10 beginout1 2 b11 counter1 2 b00 endelsebeginout1 2 b01 endendend elseout1 2 b00 endalways posedgeclk beginif N1 2 b01 beginif counter1 2 b10 counter2 2 b00 elsebegincounter2 counter2 1 if counter2 2 b10 beginout2 2 b11 counter1 2 b00 end

13、elsebeginout2 2 b01 endendendelseout2 2 b00 endendmodule 3 扣V扣B模块扣V扣B模块有三个输入信号 即时钟信号 V码信号和来自正 负整流输出的和路信号 由于该和路信号可能包含有B脉冲和V脉冲 因此需要在扣V扣B模块中 去除V和B脉冲 本模块的建模方法是 用V码检测模块所检测出的V码信号 去控制一个移位寄存器 若未碰到V脉冲 则整流输出合成信号在时钟的节拍下 顺利通过移位寄存器 当碰到有V脉冲时 该V脉冲将使移位寄存器清零 考虑到四连0 即V脉冲及其前面的三个码元应为0码 所以 可设置四位的移位寄存器 当V码清零时 同时将移存器中的四位码

14、全变为0 不管是否有B脉冲 在此模块中 一并清零 因而无需另设扣B电路 另外移位四位寄存器起到延时四位时钟周期的作用 以使所检测出的V脉冲与信号流中的V脉冲位置对齐 保证清零的准确性 modulechvb in clk out inputclk input 1 0 in output 1 0 out reg 1 0 d 3 0 always posedgeclk begind 3 d 2 d 2 d 1 d 1 d 0 d 0 in endalways posedgeclk beginif d 3 2 b11 begind 0 00 d 1 00 d 2 00 d 3 00 endendend

15、module 信号叠加模块modulejia in1 in2 clk out0 input 1 0 in1 input 1 0 in2 inputclk outputout0 reg 1 0 a reg 1 0 b always posedgeclk begina in1 b in2 endassignout0 a b endmodule 顶层模块moduleyima clk BP BN out3 inputclk BP BN outputout3 wirea b transu1 clk clk BP BP BN BN P P N N findvu2 clk clk P1 P N1 N out1 out1 out2 out2 chvbu3 clk clk in out1 out a chuvbu4 clk clk in out2 out b jiau5 clk clk in1 a in2 b out0 out3 endmodule

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号