基于VHDL的3B4B线路编解码..doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于VHDL的3B4B线路编码/解码实现 摘 要: mBnB 码是光纤通信系统中常用的码型之一, 本次设计了一种简单实用的3B4B 编码方法, 并提出了用A ltera开发系统的硬件描述语言VHDL 实现全数字3B4B 编译码电路的设计思想和方法, 最后给出了波形仿真结果。本文给出了针对该编码方法的除数字锁相环之外的一种简单方便的VHDL 语言设计方法。 关键词: 3B4B 码; FPGA; VHDL 语言; 波形仿真 编码部分(Encode3B4B): 一、 3B4B 编码原理 大多数mBnB 码都采用两种模式编码, 两种模式交替使码字中的不均值为零。这种编码电路多采用可编程只读存储器PROM 查找表的方法实现。下面介绍一种3B4B码, 可用更为简单的电路实现, 其编码规则具体说明如下: 先将输入的数字信号每3 b 为一码字, 在同样长的时间间隔内变换成4 b 一组的输出码字。 ①变换后4 b 的一个码字中, 第1 与第4 比特位分别由变换前3 b 码字中的第1 与第3 比特位取反而得到; ②变换前的第1 与第2 比特位分别作为变换后的第2与第3 比特位。其编码情况如表1 所示。 表1 3B4B 编码表 3B 000 001 010 011 100 101 110 111 4B 1001 1000 1011 1010 0101 0100 0111 0110 二 3B4B 的编码电路设计 3B4B 编码电路的工作原理: 为了实现3B4B 编码, 本设计是以随机码作为输入的数字信号。因此, 完整的3B4B 编码电路包括分频电路、串并转换电路、编码电路和并串转换电路组成, 如图1 所示。 图1 1:分频模块: a 三分频 序列发生器的输入时钟脉冲三分频,从而可以实现每输入3BIT的串行信号就同步转换输出出三位的并行信号,实现时钟信号的同步。 b 四分频 序列发生器的输入时钟脉冲四分频,从而可以实现每输入4BIT的并行信号就把转换给变量 if clk4event and clk4=1 then REG=Q; 2:串并转换模块(用循环移位实现) Clk0来一次有效,Y接收串行的数据就向右移一位,当三分频的信号clk3有效时把Y输出。 architecture one of SER2PAR is signal q: std_logic_vector(2 downto 0); begin p1:process(clk0) variable n:integer:=0; begin if clk0event and clk0=1 then q=shift_in q(2 downto 1); end if; end process p1; p2:process(clk3) begin if clk3event and clk3=1 then Y=q; end if; end process p2; 3:编码 根据自己的码表,确定3位码对应的4位码,利用类似查表的方法,把输入的三位数据当作rom中的地址,然后输出对应的4位码。 ARCHITECTURE ONE OF PROM IS SIGNAL REG:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN P1:PROCESS(Y,F) BEGIN if F=0 then case Y is when 000=REG=1011;--11 when 001=REG=1110;--14 when 010=REG=0101;--5 when 011=REG=0110;--6 when 100=REG=1001;--9 when 101=REG=1010;--10 when 110=REG=0111;--7 when 111=REG=1101;--13 WHEN OTHERS=REG=NULL; end case; end if; if F=1 then case Y is when 000=REG=0100;--4 when 001=REG=0001;--1 when 010=REG=0101;--5 when 011=REG=0110;--6 when 100=REG=1001;--9 when 101=RE

文档评论(0)

sa74g0hj + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档