0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HDB3编解码简析

OpenFPGA 来源:OpenFPGA 2023-05-15 10:41 次阅读

2.设计

2.1.需求分析

此次需求提供的十分明确,给出了编码规则及示例,明确了编解码端口要求;仿真模块根据设计进行适配。

2.2.HDB3编码模块

对HDB3编码规则解读如下:

复位(RST)有效(1)时,进行初始化,输出VALID为0、HDB3_CODE为0编码(000)。采用异步复位、同步释放。当复位(RST)无效(0)时进行编码。

在输入时钟CLK的上升沿进行转换。

在CLK上升沿进行判别时,当输入READY为有效(1),DATA_IN有效,为0或1。

对READY和DATA_IN打一节拍,人为产生1个CLK的延时。

在CLK上升沿进行编码判别,DATA_IN有效为1时,立即进行编码,若存在待转换的0,待转换的0也进行编码,并加入待输出编码队列;当DATA_IN有效为0时,若存在待转换的0的个数为(0~3)、也即当前为第4个0,则进行编码,并加入待输出编码队列,否则暂停编码。

在CLK上升沿进行编码输出,若存在待输出编码,则输出VALID为1、HDB3_CODE为对应编码。

一共7种编码形式,对应0、±1、±B、±V;1可能被编码为+1、-1,0可能被编码为0、+B、-B、+V、-V。1、B极性交替(+、-交替出现)、V极性交替;第一个编码极性为+。当出现0时,若是连续的第4个0,则替换为V(极性按交替规则),然后若V极性和前一个1或B的极性不同,则将连续4个0中的第1个0替换为B且极性和V相同,其余0编码为0.由此可见,编码应在RST无效(为0)、READY有效(为1)时按照DATA_IN(0或1)、积累的待编码0数量(0~3)、上一个1或B的极性、上一个V的极性开展,编码后更新待输出编码数量和待输出编码队列。故在编码模块“tt_hdb3_encoder”中设置了如下信号量:

tmp_rst:std_logic_vector(1 downto 0),初始化为00,用于复位同步释放,同时将复位输入RST有效性由1变为0.

tmp_din,tmp_ready:std_logic,分别对DATA_IN和READY打一节拍。

tmp_dataout,深度为4、宽度为3的输出编码缓冲,最多4个。

flag_1BPOL、flag_VPOL:std_logic,1或B极性、V极性标志位,表征上一个1/B/V的极性,0表示-、1表示+。

cnt_tbpo:natural range 0 to 7 := 0,待输出编码个数,实际范围为(0~4)。

cnt_tbc:natural range 0 to 3 := 0,待编码0个数,范围为(0~3)。当cnt_tbpo>0时,每个clk上升沿将输出编码缓冲的(cnt_tbpo-1)编码对外输出。具体代码实现使用VHDL,在ISE14.7中完成,文件为“tt_hdb3_encoder.vhd”。2.3.HDB3解码模块相对于编码,HDB3解码较为简单,输入有效时,将±1解码为1、将0/±B/±V解码为0;解码模块tt_hdb3_decoder的复位、输入打节拍处理同编码模块。

具体代码实现使用VHDL,在ISE14.7中完成,文件为“tt_hdb3_decoder.vhd”。2.4.编解码仿真模块编解码仿真需要提供可控的输入数据流DATA_IN。此次,通过附加test_2bit模块来提供仿真数据流,建立一个多位的std_logic_vector(80位),在CLK时钟上升沿从低位逐位移出。仿真准备:将test_2bit、tt_hdb3_encoder、tt_hdb3_decoder例化在test_top工程下,但是将test_2bit的输入时钟和编解码模块的输入时钟取反,便于在编解码仿真时输入数据稳定。

a690e724-f0aa-11ed-90ce-dac502259ad0.png

3.验证

由于预建立了仿真工程test_top,仿真文件tbw_test_top处理较为简单,设置RST和READY即可。在ISE14.7环境下使用ISim完成了仿真验证。

在Vivado2018.3环境下(仿真Vivado Simulator)也进行了仿真验证。

a6a93bbc-f0aa-11ed-90ce-dac502259ad0.png

资源使用情况(Target Device: xc7k325t-2ffg900,ISE14.7):

Module Name Slices Slice Reg LUTs BUFG 说明
test_top 1/36 0/47 1/79 1/1 测试top文件
Inst_test_2bit 3/3 8/8 8/8 0/0 测试激励文件1
Inst_tt_hdb3_decoder 4/4 8/8 3/3 0/0 解码模块
Inst_tt_hdb3_encoder 28/28 31/31 67/67 0/0 编码模块






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • VHDL语言
    +关注

    关注

    1

    文章

    113

    浏览量

    17986
  • 编解码
    +关注

    关注

    1

    文章

    140

    浏览量

    19594
  • RST
    RST
    +关注

    关注

    0

    文章

    31

    浏览量

    7381
  • CLK
    CLK
    +关注

    关注

    0

    文章

    127

    浏览量

    17122

原文标题:【手撕代码】HDB3编解码

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA的HDB3编解码系统

    基于FPGA的HDB3编解码系统,谁有这方面的资料,谢了!
    发表于 04-07 15:14

    基于XC9572实现HDB3编解码的完整电路及VHDL程序

    请问各位大哥谁有基于XC9572实现HDB3编解码的完整电路及VHDL程序,发一份给我,在此先谢谢了。邮箱251093703@qq.com
    发表于 05-30 15:00

    基于FPGA的HDB3编解码的实现

    原理可以看出,HDB3码的编码虽然比较复杂,但解码比较简单。编码规则可以看出,每一个破坏脉冲V总是与前一个“0”脉冲同极性(包括B在内)。这就是说,从收到系列中可以容易地找到破坏点V,于是也断定V符号及前面
    发表于 04-15 21:54

    HDB3码 基于labview

    HDB3码的labview
    发表于 11-13 20:50

    labview设计HDB3码型输出

    关于labview的HDB3码型输出的设计
    发表于 12-11 16:54

    如何设计一个简单的HDB3的电路?

    有懂得两兆误码仪的么?哪位大神能帮忙设计一个简单的HDB3的电路?不求测试误码,能测通断就行
    发表于 11-22 22:54

    怎样去设计一种基带HDB3编解码系统

    【STM32】基带HDB3编解码系统设计一、设计背景及说明  长期以来,人类进行信息交互的基本方式不外乎语言、文字和图像。随着数字技术的发展,三大信息网:电话、电视、和因特网在数字通信的平台
    发表于 08-09 07:44

    基于CPLD的HDB3编解码电路的设计

    HDB3码是基带传输系统中经常采用的传输码型。本文阐述了HDB3编解码电路的基本原理,在MAX+PLUSⅡ软件平台上,给出了利用复杂可编程逻辑器件设计的HDB3
    发表于 02-24 15:59 52次下载

    基于CD22103的AMI/HDB3编解码电路设计

    基于AMI/HDB3编解码原理,设计了一种用CD22103集成芯片实~AMI/HDB3编解码的硬件电路.详细分析了编解码的实现过程、单双极性
    发表于 04-13 08:56 147次下载

    基于FPGA的HDB3编解码器设计

    分析了HDB3编解码原理,提出了一种适合于在现场可编程门阵列FPGA上实现的HDB3编译码器的硬件实现方案,在FPGA上完成了布局布线和时序仿真,最后给出了仿真和实验结果。结果表明该方
    发表于 07-28 17:36 33次下载

    用XC9572实现HDB3编解码设计

    用XC9572实现HDB3编解码设计 介绍了HDB3编解码的原理和方法,给出了用CPLD(Complex Programmable Logic Device)实现E1信号
    发表于 03-28 15:15 1623次阅读
    用XC9572实现<b class='flag-5'>HDB3</b><b class='flag-5'>编解码</b>设计

    用XC9572实现HDB3编解码设计

    摘要:介绍了HDB3编解码的原理和方法,给出了用CPLD(Complex Programmable Logic Device)实现E1信号HDB3编解码的方法,同时给出了它的实现原理图
    发表于 06-20 13:44 1150次阅读
    用XC9572实现<b class='flag-5'>HDB3</b><b class='flag-5'>编解码</b>设计

    HDB3特点及编码规则

      【HDB3的全称 】  High Density Bipolar of order 3code,三阶高密度双极性码。   【HDB3的编码规则】   一、编码规则:   1 先将消息代码变换成AMI码,若AMI码
    发表于 07-28 17:39 2.3w次阅读

    基于Verilog HDL语言设计用于数字通信系统中的HDB3编解码

    G.703建议中规定,对于2 MHz、8 MHz、32 MHz速率的数字接口均采用HDB3(三阶高密度双极性)码。HDB3码具有无直流分量,低频成分少,连零个数不超过3个等特点,便于时钟信号的提取和恢复,适合在信道中直接传输。这
    发表于 07-16 09:32 5138次阅读
    基于Verilog HDL语言设计用于数字通信系统中的<b class='flag-5'>HDB3</b><b class='flag-5'>编解码</b>器

    基于VHDL语言的HDB3编解码器设计

    电子发烧友网站提供《基于VHDL语言的HDB3编解码器设计.doc》资料免费下载
    发表于 10-13 09:22 4次下载
    基于VHDL语言的<b class='flag-5'>HDB3</b>码<b class='flag-5'>编解码</b>器设计