基于FPGA的HDB3编译码verilog实现,结合MATLAB进行辅助验证

目录

一、理论基础

二、核心程序

三、测试结果


一、理论基础

       HDB3码(三阶高密度双极性码)是串行数据传输的一种重要编码方式,和最常用的NRZ码(非归零码)相比,以上所说的有点使HDB3码具有明显的优势,同时,HDB3码具有较强的检错能力,当数据序列用HDB3码传输时,若传输过程中出现单个误码,其极性交替变化规律将受到破坏,因而在接收端根据HDB3码这一独特规律特性,可检出错误并纠正错误,同时HDB3码方便提取位定时信息。

   HDB3码是AMI码的改进型,通常被称为三阶高密度双极性码。 HDB3码的编码规则第一步:检查消息代码的连0串,当没有4个或4个以上连零串的时候,按AMI码的编

码规则对消息代码进行编码;AMI编码规则如下所示:

    原码:   1 0 0 0 0  1 0 0 0 0  1  1 0 0 0 0   1  1

  AMI码:-1 0 0 0 0  +1 0 0 0 0 -1  +1 0 0 0 0   -1  +1

第二步:当检测到连续4个或4个以上的连续零的时候,那么将每4个连零段的第4个零变换成与前一非0符号相同极性的符号,同时保证相邻符号的极性交替。

第三步:检查相邻符号间非零符号的个数的奇偶性,若为偶数,则将当前的符号的前一非零符号后的第1个零变为+B或-B符号,且B的极性与前一非零符号的极性相反,并使后面的非零符号从V符号开始再交替变化。

    编码分为信源编码和信道编码两种类型:

信源编码是针对信源统计特性进行编码,主要任务就是减少冗余度,提高编码效率。由于信源符号之间存在分布不均匀和相关性,使得信源存在冗余度,信源编码的基本途径有两个:一是使序列中的各个符号尽可能的互相独立,即解除相关性;二是使编码中各个符号出现的概率尽可能相等,即概率均匀化。

      信道编码主要是针对信道统计特性进行编码,主要目的是提高信息传输的可靠性。由于实际信道存在噪声和干扰,使得经信道传输后与所接收的码字之间存在差异,称为差错。通常,信道噪声和干扰越大,码字产生差错的概率也就越大。信道编码的任务就是通过在选择发射的数据中引入冗余,防止数据出现差错

       AMI码全称是传号交替反转码,又称双极性方式码,属于单极性码的变型,编码规则是:消息码的1交替的变换为+1-10保持不变。优点:无直流,零频附近的低频分量少;有一定检错能力,当发生1位误码时,可按AMI规则发现错误,以ARQ纠错;接收后只要全波整流,则变为单极性码,如果它是AMI-RZ型,可直接提取同步。

缺点码流中当连 0过多时,同步不易提取。举例如下:

消息代码:0  1   1  1  0  0   1  0 …

AMI  0  +1  –1  +1  0  0  -1  0 …

      0  -1  +1  –1  0  0  +1  0 …

首先将消息代码变换成AMI码;然后检查AMI码中的连0情况,当无4个或4个以上的连0串时,则保持AMI的形式不变;若出现4个或4个以上连0串时,则将1后的第4个0变为与前一非0符号(+1或-1)同极性的符号,用V表示(+1记为+V,-1记为-V);最后检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,则再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化。

第一步:检查消息代码的连0串,当没有4个或4个以上连零串的时候,按AMI码的编

码规则对消息代码进行编码;AMI编码规则如下所示:

    原码:   1 0 0 0 0  1 0 0 0 0  1  1 0 0 0 0   1  1

  AMI码:-1 0 0 0 0  +1 0 0 0 0 -1  +1 0 0 0 0   -1  +1

第二步:当检测到连续4个或4个以上的连续零的时候,那么将每4个连零段的第4个零变换成与前一非0符号相同极性的符号,同时保证相邻符号的极性交替。

第三步:检查相邻符号间非零符号的个数的奇偶性,若为偶数,则将当前的符号的前一非零符号后的第1个零变为+B或-B符号,且B的极性与前一非零符号的极性相反,并使后面的非零符号从V符号开始再交替变化。

二、核心程序

module hdb3_decode(
                   i_rst,
                   i_clk,
                   hdb3_code,
                   hdb3_decode
                   );

input       i_rst;
input       i_clk;
input [1:0] hdb3_code;
output      hdb3_decode;


reg [9:0] fifo_decode;
always@(posedge i_clk or negedge i_rst)
begin
     if(!i_rst)
     begin
     fifo_decode <= 10'b0;
     end
else begin
           if(fifo_decode[5:4] == hdb3_code && fifo_decode[3:0] == 4'b0000)
           begin
                if(fifo_decode[7:6] == 2'b11)
                fifo_decode <= {2'b01,8'b0000_0000};
                else
                fifo_decode <= {fifo_decode[7:6],8'b0000_0000};
           end
           
      else if(fifo_decode[7:6] == hdb3_code && fifo_decode[5:0] == 6'b00_0000)
           fifo_decode <= {2'b01,8'b0000_0000};
           
      else if(fifo_decode[7:6] == 2'b01 || fifo_decode[7:6] == 2'b11)
           fifo_decode <= {2'b01,fifo_decode[5:0],hdb3_code};
           
      else
           fifo_decode<= {fifo_decode[7:0],hdb3_code};
    end
end

assign hdb3_decode = (fifo_decode[9:8] == 2'b01)?1'b1:1'b0;

endmodule

系统总体结构如下图所示:

三、测试结果

通过对系统的综合,可以看到其RTL结构图:

测试结果如下

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
摘 要 HDB3码是基带传输码型之一,因为它具有无直流分量、低频分量少、连0数不超过3个这些特点,所以有利于信号的恢复和检验,所以HDB3码被广泛应用到井下电缆遥传系统以及高速长距离书记通信中等。FPGA具有成本低、可靠性高、开发周期短、可重复程等特点。利用EDA技术,可对其实现硬件设计软件化,加速了数字系统设计的效率,降低了设计成本。本文先对HDB3码,FPGA器件和EDA技术的发展背景进行简述。接着阐述EDA技术中常用的VHDL语言的发展与优点,并以VHDL为核心,简要说明硬件电路的设计的方法步骤。然后介绍HDB3码的译码原理以及其特点。最后,对HDB3码的译原理进行重点分析,并且以VHDL语言为主,分别对码器部分和译码器部分的具体实现方法进行说明,给出具体设计的思考方案和程序流程图,并对设计方案进行软件仿真,同时给出仿真结果并对其进行分析,证明设计方案的正确性。最后,完成曼彻斯特码码器与译码器的设计,进行对比学习。 关键词:HDB3码;FPGA;EDA;VHDL;曼彻斯特码;译码 Abstract HDB3 code is one of codes used in the transmission system. It has no DC components and a few of LF components. Moreover, it has continuous zeros no more than three. The features of HDB3 code help the signal to be rebuilt and be checked for error easily, so HDB3 code is the commonly used code in the transmission system. Low cost, dependability, short design cycle and repeated program ability are the features of FPGA. You can design hardware of digital circuits by using software as a result of using FPGA with EDA. It will construct the digital system quickly system quickly and reduce the cost of design. This paper first introduces the development and background of HDB3.FPGA and EDA, and then expands VHDL. which is commonly used as design-entry language for EDA.A summary of digital circuits’ design by using VHDL is provided. Moreover, the principle and decoder is designed by using VHDL. Finally, the plan of design, the flow of software design and the simulated waveform of HDB3 encoder and decoder is presented, showing correctness of the design.Finally, the design of the encoder and decoder of the Manchester encoder and decoder is completed and compared with the study. Keywords: HDB3 code; FPGA ; EDA ; VHDL; Manchester code; Encoder and Decoder 目录 第一章 概述 1 1.1 HDB3码的简述 1 1.2 FPGA简介 2 1.2.1 FPGA的发展历程 2 1.2.2 FPGA基本结构及其特点 3 1.3 EDA技术 4 1.4 VHDL硬件描述语言 4 1.4.1 简介 4 1.4.2 VHDL具有的特点 5 1.4.3 VHDL的优点 7 1.4.4 VHDL设计硬件电路的方法 7 第二章 HDB3码的译规则 10 2.1主要的基带传输码型 10 2.1.1 NRZ码的码规则 10 2.1.2 AMI码的码规则 10 2.2 HDB3码的码规则 11 2.3 HDB3码的译码规则 12 2.4 HDB3码的检错能力 12 第三章 HDB3码器的FPGA实现 13 3.1 HDB3码器的实现分析 13 3.2 HDB3码器的设计思路 13 3.2.1 4连‘0’的检出加V及判‘1’极性 13 3.2.2 取代节的选取 13 3.3设计建模 14 3.3.1插“V”码模块设计及仿真 15 3.3.2插“B”码模块设计及仿真 17 3.3.3 HDB3码器的极性转换模块设计及仿真 20 第四章 HDB3译码器的FPGA实现 24 4.1 译码器的实现分析 24 4.2 HDB3译码器的设计思路 24 4.3 V的检测 25 4.4 扣V扣B 25 4.5 设计建模 25 4.5.1扣V扣B的实现 26 4.6 软件仿真 26 第五章 结论 28 参考文献 29 附录 30 谢辞 38

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值