毕业设计]基于VHDL的3B4B线路编码解码实现.doc_第1页
毕业设计]基于VHDL的3B4B线路编码解码实现.doc_第2页
毕业设计]基于VHDL的3B4B线路编码解码实现.doc_第3页
毕业设计]基于VHDL的3B4B线路编码解码实现.doc_第4页
毕业设计]基于VHDL的3B4B线路编码解码实现.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于VHDL的3B4B线路编码/解码实现摘要:mBnB码是光纤通信系统中常用的码型之一,本次设计了一种简单实用的3B4B编码方法,并提出了用Altera开发系统的硬件描述语言VHDL实现全数字3B4B编译码电路的设计思想和方法,最后给出了波形仿真结果。本文给出了针对该编码方法的除数字锁相环之外的一种简单方便的VHDL语言设计方法。关键词:3B4B码;FPGA;VHDL语言;波形仿真编码部分(Encode3B4B):一、3B4B编码原理大多数mBnB码都采用两种模式编码,两种模式交替使码字中的不均值为零。这种编码电路多采用可编程只读存储器PROM查找表的方法实现。下面介绍一种3B4B码,可用更为简单的电路实现,其编码规则具体说明如下:先将输入的数字信号每3b为一码字,在同样长的时间间隔内变换成4b一组的输出码字。变换后4b的一个码字中,第1与第4比特位分别由变换前3b码字中的第1与第3比特位取反而得到;变换前的第1与第2比特位分别作为变换后的第2与第3比特位。其编码情况如表1所示。表13B4B编码表3B0000010100111001011101114B10011000101110100101010001110110二3B4B的编码电路设计3B4B编码电路的工作原理:为了实现3B4B编码,本设计是以随机码作为输入的数字信号。因此,完整的3B4B编码电路包括分频电路、串并转换电路、编码电路和并串转换电路组成,如图1所示。图11:分频模块:a三分频序列发生器的输入时钟脉冲三分频,从而可以实现每输入3BIT的串行信号就同步转换输出出三位的并行信号,实现时钟信号的同步。b四分频序列发生器的输入时钟脉冲四分频,从而可以实现每输入4BIT的并行信号就把转换给变量ifclk4eventandclk4=1thenREG=Q;2:串并转换模块(用循环移位实现)Clk0来一次有效,Y接收串行的数据就向右移一位,当三分频的信号clk3有效时把Y输出。architectureoneofSER2PARissignalq:std_logic_vector(2downto0);beginp1:process(clk0)variablen:integer:=0;beginifclk0eventandclk0=1thenq=shift_in&q(2downto1);endif;endprocessp1;p2:process(clk3)beginifclk3eventandclk3=1thenYREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREG=NULL;endcase;endif;ENDPROCESSP1;P2:PROCESS(CLK3)BEGINIFCLK3EVENTANDCLK3=1THENQ=REG;ENDIF;ENDPROCESSP2;4并串转换把编码实现的4位码,由并行转换为串行输出。architectureoneofPAR2SERissignalN:INTEGERRANGE0TO3;signalREG:std_logic_vector(3downto0);beginp1:process(clk4,Q)beginifclk4eventandclk4=1thenREG=Q;endif;endprocessp1;PROCESS(CLK0,REG,N)BEGINIFCLK0EVENTANDCLK0=1THENIFN=3THENN=0;ELSENshift_outshift_outshift_outshift_outshift_out=X;endcase;endprocess;三仿真效果:仿真时,在F引脚输1,选第二的码表,串口输入111,对应的编码输出为0010.解码部分(Encode3B4B):设计要求:1)资料查找,系统总体的设计思路2)方案比较(方案分析、比较、总结)3)总体方案的设计与任务细分(系统功能模块总图)4)各功能模块设计(模块的实现方案、算法比较、编程、功能和时序仿真)实验报告撰写(各自撰写自己完成的部分,具备总体设计方案、TOP系统图、各功能模块的设计思路、系统调试、仿真和课题总结)mBnB线路编解码简介:mBnB码是把输入的二进制原始码流进行分组,每组有m个二进制码,记为mB,称为一个码字,然后把一个码字变换为n个二进制码,记为nB,并在同一个时隙内输出。把输入的mB变换为nB输出;本次设计取m=3,n=m+1=4即为3B4B码。“码字数字和”(WDS)是用来来描述码字的均匀性,并以WDS的最佳选择来保证线路码的传输特性。用“-1”代表“0”码,用“+1”代表“”码,整个码字的代数和即为WDS。nB码的选择原则遵循尽可能选择|WDS|最小的码字,禁止使用|WDS|最大的码字。以3B4B为例,应选择WDS=0和WDS=2的码字,禁止使用WDS=4的码字。mBnB码是一种分组码,设计者可以根据传输特性的要求确定某种码表。如下下表为一种3B4B码的码表:线路码(4B)信号码(3B)模式2(负组)模式1(正组)WDS码子WDS码子-20010+211011117-21000+20111110601010010101015010010100110040011000110011300101001010102-20001+211100011-20100+210110000线路码()信号码()模式(负组)模式(正组)码子码子解码原理解码器与编码器基本相同,只是除去组别控制部分。译码时,把送来的已变换的4B信号码流,每4比特并联为一组,作为PROM的地址,然后读出3B码,再经过并-串变换还原为原来的信号码流。并串PROMB1B2B3B4b1b2b3串并组别变换ABC变前时钟已变换的输出4B码流变换时钟待变换输入信号码流解码器包括分频电路、分频电路、串并转换电路、解码电路和并串转换电路组成。TOP系统电路图如下:功能仿真波形图:设定输入为:00010001000100010001000100010001000100013B4B解码输出对应为:001001001001001001001001001001各元器件代码如下:三分频器:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCNT3isport(clk3:instd_logic;newclk1:outstd_logic);end;architectureexamofCNT3issignalq:integerrange0to2;signaltemp:std_logic;beginprocess(clk3)beginifclk3eventandclk3=1thenifq=2thenq=0;temp=1;elseq=q+1;temp=0;endif;endif;endprocess;newclk1=temp;endexam;三分频分频功能仿真波形图:四分频器:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCNT4isport(clk4:instd_logic;cnter:outstd_logic);end;architectureexamofCNT4issignalq:std_logic_vector(1downto0)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论