光纤通信系统5B6B码译码的设计与仿真.doc_第1页
光纤通信系统5B6B码译码的设计与仿真.doc_第2页
光纤通信系统5B6B码译码的设计与仿真.doc_第3页
光纤通信系统5B6B码译码的设计与仿真.doc_第4页
光纤通信系统5B6B码译码的设计与仿真.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

光纤通信系统5b6b码译码的设计与仿真中文摘要在电力系统通信中,数字光纤通信由于其本身的优点得到越来越广泛的应用。在数字光纤通信系统中,从电端机传输过来的电信号均要结合数字光纤通信传输的特点经过线路码型的转换。通过线路码型的转变平衡数字码流中的“0”和“1”码字,从而避免码流中出现长“0”或者长“1”的现象。在数字光纤通信系统中比较常用的线路码型就是mbnb码型,mbnb线路码型的最大优点是最大相同码元连码数少、定时信息丰富、且有简单成熟的误码监测与码组同步的方法。5b6b码编码是将自己编写的数据按照一定的规律,编成6b码流后输出;而译码则是将传输到接收机的6b码流,翻译成5b码流后输出。5b6b码译码的过程是编码的逆过程,本文主要涉及到的是译码的过程,译码部分由序列产生模块、缓冲模块以及译码模块构成。这篇论文重要介绍了光纤通信系统的优缺点,组成以及发展趋势;常见的线路码型;quartus2软件的介绍;5b6b码的译码原理和设计,最后对程序以及电路译码的仿真,最终得到正确的结果。关键词:5b6b码译码;fpga;vhdl 语言;quartus2 软件;波形仿真5b6b code decoding of optical fiber communication system design and simulation abstractin power system communication, digital optical fiber communication because of its advantages to get itself more and more widely used. in the digital optical fiber communication system, from the electric machine transmission to come over to the electrical signals to combine the characteristics of the digital optical fiber communication transmission via the line type conversion. through balance the digital stream line type 0 and 1 in the code word, thus avoiding stream in 0 or 1 long. are frequently used in the digital optical fiber communication system in the line type is mbnb type, the biggest advantage of this type is the same biggest mbnb line element even less yards, timing, abundant information, simple and mature method of error monitoring and synchronization code group.5b6b code coding is to write your own data, according to certain rules into after 6b stream output; the decoding is 6b stream will be transmitted to the receiver, after translated into 5b stream output. 5b6b code decoding is the process of the inverse process of coding, this paper mainly involves is the process of decoding, decoding part produced by sequence module and buffer module and decoding module. this paper the advantages and disadvantages of important optical fiber communication system are introduced, the composition and development trend; common line type; the introduction of quartus2 software; 5b6b code decoding principle and design, finally, the decoding process and circuit simulation, finally get the correct result. key word:5b6b decoding; fpga; vhdl language; quartus2 software; waveform simulationiii目录第一章 光纤通信系统11.1光纤通信的优点与缺点11.2光纤通信系统的组成21.3光纤通信的发展趋势2第二章 光纤通信中的线路编码42.1线路扰码42.2mbnb码52.3插入码5第三章 quartus2 软件的简单介绍63.1 创建工程文件63.2 设计输入63.3 设计项目编译73.4 项目的仿真73.5 编程下载7第四章 5b6b码译码94.1 5b6b码译码原理94.2 5b6b码译码的设计104.3 译码电路的电路模块划分104.3.1序列产生模块114.3.2译码模块114.4 5b6b码译码的vhdl程序设计124.4.1 序列产生模块的设计与仿真124.4.2 缓冲电路模块的设计与仿真154.4.3 译码模块的设计与仿真174.4.4 顶层原理图的设计与仿真204.5禁码的还原224.6 5b6b码译码设计与仿真总结23第五章 结束语24参考文献25致谢26附录1:图表目录i附录2:5b6b码码码表ii附录3:序列产生模块make_6b代码iii附录4:缓冲电路的程序代码iv附录5:译码模块decode_change6bto5b代码ivii 第一章 光纤通信系统 高锟博士在1966年提出了光纤通信,此后光纤通信的迅速发展远远超出了人们的想象,并且以其独特的优点掀起了通信领域的革命性改革。无论人们是在玩电脑,打电话还是在购物,我们无时无刻都在使用着光纤通信技术,即我们每次通过电子设备进行的远距离通信,就是在使用光纤通信技术。从光纤通信系统的链路上来看,光纤是指光发射机与光接收机之间的强大链路,并且它有着强大的运载信息能力,在目前看来,我们对带宽日益增长的需求,除了光纤通信系统以外,再也没有其他的途径可以满足我们这一需求了1。1.1光纤通信的优点与缺点没有好的光源以及理想的传输煤质这两大因素曾严重地阻碍了光纤通信向实用化的方向发展,在目前看来,这些因素都得到了非常圆满的解决。1982年后光纤通信的迅速发展促进了光纤产业化应用,因此光纤的需求量呈现了指数规律的增长趋势。光纤在世界各国的各个领域都得到广泛应用,它也成为了高质量的信息传输的重要手段。在光纤通信系统中,载波的光波频率要比电波频率高,但是对于传输介质的光纤又比同轴电缆或者波导管的损要低,所以相对于电缆通信来说,光纤通信有以下优点: 抗电磁干扰性能很好 泄漏小,保密性能很好 重量比较轻,体积也很小 频带很宽,传输的容量比较大 节约材料,有利于资源合理利用 损耗小,误码率小,中继距离长, 事情都是有利有弊的,光纤通信有很多的优点,但是也存在着一些弊端,如下: 抗拉强度比较低。在抗拉强度方面,光纤的抗拉强度要远大于钢的。光纤在的生产过程的中,表面会多多少少存在一些微型的裂痕,为了保护光纤可以增加涂覆层,或者增加一些特殊的抗拉元件。 光纤连接比较困难。在光纤的连接上,必须使两根光纤的纤芯特别细,并且要加上石英,因为石英的熔点很高,这样才能使得光纤的连接损耗小,所以总体来说,光纤的连接还是很困难的2。1.2光纤通信系统的组成光纤通信系统的组成有光发射机、光纤和光接收机,每个部分如下图所示。光发射机光接收机光纤信道光源光耦合器光检测器光解调器光耦合器光调制器图1光纤通信系统的组成 光发射机主要由光源、光耦合器以及光调制器组成。光发射机主要负责将电信号转换为光载波并且还要通过光耦合器注入到光纤信道中。光源采用与光纤通信信道兼容的发光管或者是激光器。光调制器主要用来完成由光载波到光信号的调制。光耦合器利用微透镜,以它最大的效率将光信号注入到光纤信道中。光纤起着光信号通道的作用。光纤将光信号没有变化的从光发射机传送到光接收机中去。光纤的衰减系数决定了长途光纤通信系统的中继器或者放大器的间距。光纤通信系统的传输距离和传输速率主要受光纤的色散系数来限制。光接收机主要由光解调器、光检测器以及光耦合器组成。光接收机主要负责将光纤输出端接受到的光信号变换成原来的电信号。光解调器主要是利用直接光强度调制技术,通过判决电路来辨别光检测器所产生的电信号幅值是比特“0”或者是“1”,来完成对光的解调。光检测器主要是用来实现光电转换的。光耦合器则是将接收到的光信号集合至光检测器3。1.3光纤通信的发展趋势随着现代科技技术的进步,电信的改革及电信市场对外的全方面开放,再一次地呈现了光纤通信蓬勃发展的新新局面,以下介绍的就是光纤通信领域中的几个主要的发展趋势:1、向超高速系统的方向发展网络容量的需求以及提高传输速率一直以来都是在过去20多年的电信发展史上的一对非常主要的矛盾。每当传输速率提高时,传输每比特的成本就会下降,所以说高比特率的经济效益会按照一定的指数规律来增长。2、 向超大容量wdm系统的演进 波分复用的好处是: 光纤的带宽资源,可以扩大传输的容量; 长距离传输时可以通过节约光纤来降低成本; 引进宽带新业务,与电调制方式以及信号速率无关;3、 实现了光联网波分复用系统的基础是点到点的通信,所以在一定程度上来说,其灵活性以及它的可靠性还不够完善。光联网的好处有: 实现了网络的透明性; 实现了网络快速恢复; 实现了网络的扩展性; 实现了超大容量的光网络; 实现了网络的可重塑性,以提高灵活性;4、 新型光纤随着ip业务量的增长而增长传统的g.652单模光纤不能够适应长距离超高速传送网络的发展需要了,因此需要开发出新型的光纤。而在此时电信网正向下一代可持续发展的方向努力发展着,新一代的非零色散光纤的设计思路是在1550窗口工作波长区具有合适的较低色散,可以不需要色散的补偿来支持长距离的传输4。30第二章 光纤通信中的线路编码 光纤通信系统中,从输出端输出来的都是双极性码。然而光源是不可以发射出负的光脉冲的,所以码型的变换在这种情况下是非常重要的。在光纤通信系统中,“无光脉冲”表示“0”码,“有光脉冲”表示“1”码,它采用的都是二电平码,这种码也存在着以下问题: 在随机的码流中,极易出现长串连码,即长连“0”码和长连“1”码,这样会带来位同步信息的丢失,会造成定时误差。 不能进行在线的误码检测,而且也适合于长距离通信。 因此在光纤通信系统中线路码型的传输透明性很重要的,具体的要求如下: 为了减小随机波动,必须限制信号的带宽,减小高低频分量,以此来提高灵敏度。 给光接收机足够的定时信息,保证定时信息足够丰富。 合理地减小冗余度。线路编码是数字光发射机中的重要组成部分,其主要是将电端机输出的代码按照光纤通信系统的基本要求来进行码型的相关变换。在光纤通信系统中,常用的线路码型有:扰码,mbnb码以及插入码5。2.1线路扰码 线路扰码就是对输入的二进制序列进行转换,这样这个二进制序列就会接近随机的序列。然后再接收端再将扰码解扰还原,因此保证了信息传输的透明度。在系统光发射机的调制器前面可以增加一个扰码器,这样做的目的是保证传输的透明性,以此来将原始的二进制码序列进行一些简单的变换,让其基本上接近于随机序列。如:扰码前序列:1100000011000扰码后序列:1101110110011 m序列可以用来实现扰码器,在发射端产生m序列,然后将m序列与信息序列做模二加的运算,这样输出来的就是经过加扰的随机序列了。解扰器在使用相同的扰码序列与接收到的序列做模二加运算,用来恢复原始的信息。扰码也有它的一些缺点:不能控制连续码的出现;不能在线误码检测;不能够解决随机波动。2.2mbnb码该码型又称为块码、分组码以及字母平衡型码等等。在一般情况下都是nm。将输入的二进制码每mb分成一组作为一个码字,将输入的码字在相同的时间间隔内,根据一定的编码规则,将其变换成nb一组的新码字,最后以不归零或归零格式传输这些新码流,此新码就是mbmb码。m,n都为正整数,且多数用n=m+1这种形式,经过一些变换,线路码速率就会相比原二进制码率提高了n/m倍。常见的有1b2b,2b3b,3b4b,4b5b,5b6b码,8b9b等,其中5b6b码在高次群光纤通信系统中用得比较频繁。mbnb码的编码原理以最简单的1b2b码(曼彻斯特码)即将原码中的“0”码变换为“01”码,将“1”码变成“10”码6。2.3插入码 插入码是将原始输入的二进制码按照每m比特一组进行分组操作,然后在每组码的后面插入一个码字,组成一组新的线路码型长度为m+1,插入码根据其插入码字的规律不同可以分为以下几种码型:mb1c码、mb1h码以及mb1p码7。 第三章 quartus2 软件的简单介绍quartus2是美国altera公司研制的第四代有关pld的开发软件,这款软件是适合单芯片可编程系统(sopc)的最全面的设计环境。quartus2软件所支持的器件有很多,如max3000a、max 7000b、max 7000s、max7000ae、max2、mercury、cyclone、cyclone 2、stratix2、stratix gx、stratix、flex6000、flex10k、flex10ka以及flex0ke等。quartus2软件包的编程器可以提供功能强大的设计处理,因为它是整个系统的主要部分,设计者可以通过增加一定的约束条件来提高芯片的利用率。quautus2软件有它自带的仿真器与综合器,这些可以用来完成从设计输入到硬件配置的整个设计过程。它可以支持altera的ip核,并且含有一些宏功能模块库8。quartus2软件的项目设计过程可以划分为下面几个步骤:设计流程如下图所示 输入电路 创建新工程 项目编译 项目仿真 编程下载 图2 项目设计过程的步骤3.1 创建工程文件在quartus2软件上创建一个新的工程。所谓工程就是你的设计的描述、设置、数据以及输出的整个集合,此软件会将这些存储在不同类型文件集中放在同一个文件夹下,所以要创建一个工程。创建一个新的工程步骤如下: 打开quartus2软件,点击“file”,选择“new project wizard”; 在新弹出的窗口中分别键入新工程的工作路径、项目名称以及实体名称,且项目名称和实体名称要一致; 然后用鼠标点击下方的“finish”按钮即可完成对新工程的创建。3.2 设计输入 在设计输入之前还有重要的一步是电路的设计部分,在整个系统的设计之前首先必须进行的是方案的论证、系统的设计以及fpga芯片的选择等等。一般来说采用的设计方案都是自顶向下的,即将整个系统划分为若干个小模块,然后再每个模块划分为下一个层次的小模块,直到直接可以调用元件库里的元件。设计输入是将所设计的电路按照开发系统要求的形式表达出来的过程9。设计输入有如下三种方式: 原理图输入方式。这种方式非常适合于对各部分电路都很熟悉的设计。 硬件描述语言输入方式。硬件描述语言就是用文本方式描述出来的设计,硬件描述语言有abel、ahdl、vhdl、verilog等。 波形输入方式。 一般常用的设计输入方式是和,我的本次设计采用的是原理图输入的方式。3.3 设计项目编译 打开“processing”菜单,点击“start compilation”即可执行项目的编译功能,编译器将运行预先指定的各个模块的功能。编译成功后,编译器将会产生相应的输出文件。如果有错误出现,编译器将停止编译,并会相应的给出错误的信息栏,用鼠标点击“error”的信息条,一般下可以指出错误的地方,以便修改,直至所有的错误均消除后,系统就会弹出编译成功的窗口10。3.4 项目的仿真仿真检查综合结果是否与原先要设计的项目功能是否一致。项目的编译成功,需要做的就是对每个模块的功能进行仿真测试,来查看设计的结果是否满足原先设计的基本要求。仿真分为功能仿真、时序仿真以及波形仿真。功能仿真仅仅测试设计的逻辑功能;而时序仿真首先要测试逻辑的功能,而且还要测试有关设计的一些目标器件;波形仿真是在波形编辑器中将设计的逻辑功能用波形图的形式显示,通过查看波形图来检查设计的逻辑功能是否符合设计的要求。波形仿真的步骤包括新建波形文件、设置波形仿真器、插入仿真节点、编辑输入波形、运行仿真器、检查输出波形是否符合设计要求等。3.5 编程下载编程下载之前必须把下载线将计算机与硬件连接好,然后打开电源: 打开编程窗口和配置文件。选择toolpromgrammer,弹出编程窗口。注意核对一下下载路径与文件名,如果此文件没有出现或者出错,需要手动来选择配置文件。最后单击start按钮,进入下载操作。 设置编程器。 器件编程就是编译和波形仿真正确后,quartus2将生成的如.pof和.sof等编程数据文件通过下载电缆载到预先选择的fpga芯片中。下载成功后,该fpga芯片就会执行设计文件描述的功能。器件编程的步骤可以分为:编程硬件连接、编程文件的产生、运行编程操作。器件编程操作成功后,查看fpga功能与设计文件描述的功能是否一致即可。第四章 5b6b码译码4.1 5b6b码译码原理 5b6b码译码是编码过程的逆过程,也就是将发送端送来的已变换的6b信号码流,按照每6比特分为一组,然后读出5b码流。5b6b码译码简单的讲就是将6b的数据怎样变成是5b的数据。5b6b码译码的实现的方法主要有两种:一种是用集成电路来实现,另一种是用码表类实现。我用的是第二种方法实现的。5b6b码线路码型编码是将二进制数据流每5bit划分为个字组,然后在相同时间段内按一个确定的规律编码为6bit码组代替原5bit码组输出。原5bit二进制码组有25共32种不同组合,而6bit二进制码组有26共64种不同组合。所以不可能是一一对应的映射。为了使“0”码“1”码出现的机会相同,为了减小直流漂移和避免出现长连“0”和长连“1”的码组,必须要进行码组的变换。为解决这个问题,必须要进行6b的码表设计。而其它的码组作为不允许使用的码组和禁用码组,如6b码流“011000000110”、“111111”、“000000”前者是由于使用了不允许使用的码组而造成的;后者是由于使用了禁止码组。有了码表,就可以按照码表进行设计了。6bit码组的64种组合中码组数字和wds值分布情况是:wds0的码组有c63 =20个 wds2的码组有c62 + c64=30个wds4的码组有c61 +c65 =12个 wds6的码组有c60 +c66 =2个选择6bit码组的原则是使线路码型的功率谱密度中无直流分量,最大相同码元连码和小,定时信息丰富,编码器、译码器和判决电路简单且造价低廉等等。因为根据线路传输要求,应尽量选择游程差值小的码组11。据此原则选择6bit码组的方法为:d4、d6的6bit码组舍去(共14种),作为禁止码组(或称“禁字”)处理。d0、d2的六位码组都有取舍,并且取两种编码模式:一种模式是d0、2,称模式i;另一种模式是d0、2,称模式ii。当采用模式i编码时,遇到d2的码组后,后面编码就自动转换到模式ii,在模式ii编码中遇到d2的码组时编码又自动转到模式i。码表见附表。码表设计是有一定的原则的: “0”码和“1”码出现的机会相同; 减少相同符号连续数的数量; 选取d值较小的码组。mb码字变换到nb码字都是按照预先设定的码表进行的,码表的不同将会产生不同的线路码。它的线路码速只比原始码速增加百分之二十,但是变换以及逆变换电路并不复杂。5b6b码线路码型也有一定的缺点,主要是:有误码扩散,即当传输线路码中发生一个误码后,在译码变换为原信源码时会产生几个误码,使平均误码劣化,其可视为对接收灵敏度造成一定的功率损失12。4.2 5b6b码译码的设计5b6b码译码就是5b6b编码过程的逆过程,它包含了序列产生模块、缓存电路和译码电路模块,与编码相似。根据fpga系统开发的设计步骤,把5b6b码的译码电路分成若干模块。由fpga的主要设计方法。自顶向下的设计原则,可以将5b6b码的译码电路的功能行为用原理框图表示出来。进而可以设计出各功能模块。6b码组5b码组译码的输出译码的输入译码原理图如下所示: 缓存电路译码电路序列产生模块本地时钟输入时钟变频器图3译码原理图译码器的工作原理:同本地脉冲的驱动下,通过时钟变频器产生5b码和6b码所需要的时钟脉冲,输入的码流通过序列产生模块和缓存电路模块产生6b码组,再通过译码电路,译码成相应的5b码组,这样就可以完成了5b6b码码组的还原,输出即可13。该模块的功能是将序列产生模块产生的序列进行译码。译码的方法是通过调用码表来实现的。即把码表当成是一种映射条件,输入几位得就调用几次。如输入24位的就需要调用4次。4.3 译码电路的电路模块划分由上面的提到的译码电路的原理框图,在设计时,结合实际和vhdl语言的描述特性,可把译码电路划分为以下模块。它们分别是:序列产生模块、缓冲模块、译码模块和顶层模块。以下是这四个模块的设计思路以及相关的编写程序。4.3.1序列产生模块 序列产生模块是由按键cout控制的,当cout为0时清零,cout为2时输出序列一个24位的序列,因为在设计时采用的是循环技术,它可以避免信号的重叠和覆盖 ,所以可以产生所需要的目标序列:6b序列。cout按键的值可以控制输出的序列值,数据经过编码过后将变成是六位的序列。在quartus2软件下5b6b码译码将采用由顶到下的设计方法,译码是比较复杂,模式的转换容易出错,所以我们一定要注意模式的转换,然后还有禁码的简单处理。禁码的处理可以见后面一节。4.3.2译码模块 译码模块的作用主要是负责输入的并行码组的译码。依然采用本地时钟作为其工作时钟。这个译码模块是整个5b6b码译码设计的核心部分。在整个译码过程中,当然还要解决很多的问题,主要要解决的问题有:监视和禁码处理问题,时序同步问题等14。在6b码中,在本设计中我选择的是其中的46个码组,在码表的每种模式下都有一些禁码,所谓禁码就是出现而没有采用的码组。根据光纤通信实际情况来看,本设计用“重传”的方法来解决这一问题或者根据禁字还原表来确定其信源码。译码过程可以采用case语句来表达。在线路传输时,注入一定数量的冗余码,冗余码是按照一定的规律计算出来的。在接收端,在对6b数据进行计算,比较二次计算得来的冗余码,看是否相同。如果相同,则传输无错误;不同则传输有错误。译码过程用vhdl语言描述:如case a is when 011000 = q q q= 00001;4.4 5b6b码译码的vhdl程序设计之前提到的模块划分,是为了进一步了解5b6b码译码模块设计的过程。在具体的实际设计时,一个大模块中可以在划分为若干小模块。为了使代码变得简单点,把串并转换和并串转换可以合并为一个模块,可根据实际需要再设计模块。4.4.1 序列产生模块的设计与仿真该模块的主要功能是产生一个24位的序列。当按键cout=0时,make_6b模块清零,输出是24位的全零;当cout=1、2、3、4、5、6、9、10时,分别输出一份是24位的序列;当cout=7时输出高阻态值;当cout=8时,输出禁码“111111111111111111111111”。编译成功,经过封装后创建的元件make_6b逻辑框图 图4 make_6b封装后的框图 该元件图是可以方便后期的顶层文件设计。仿真成功后,仿真图形如下: 在make_6b模块中,当cout=0时,清零了这一模块,从图中可以看出输出decode_ymin是一个24位的零值仿真之后的图形如下:图5 make_6b cout=0时产生的仿真图下图为make_6b cout=2时的仿真图,当cout=2时输出值为“100110011001100110011001”。由下图的仿真结果可以看出是仿真正确的。图6 make_6b cout=2时产生的仿真图下图为make_6b cout=5时仿真图,当cout=2时输出值为“101010101010101010101010”。由下图的仿真结果可以看出是仿真正确的。图7 make_6b cout=5时产生的仿真图 下图为make_6b cout=8禁码时产生的仿真图,为了在模拟序列光纤传输时受到干扰,所以变成是禁码。当cout=8时,将输出禁码“111111111111111111111111”。从输出仿真图形可以看出仿真结果是正确的。图8 make_6b cout=8时产生的仿真图 由以上几个波形仿真可以看出make_6b模块的vhdl程序设计是正确的。此模块的vhdl代码可以参见附录。4.4.2 缓冲电路模块的设计与仿真 缓冲电路的作用是等序列产生电路序列产生好了以后,在进行输出译码。在序列产生模块make_6b和译码模块decode_change6bto5b之间,起到一定的速度缓冲作用。需要通过按键set来操作.如当set=1时使能。程序的流程图如下:等于1 set不等于1 decodein 高阻态图9 缓冲电路huanchong_cir流程图编译成功,经过封装后创建的元件huanchong_cir逻辑图图10 huanchong_cir框图仿真成功后,仿真图形如下: 下图为huanchong_cir模块中 set=0时的仿真图。当set=0时低电平将不输出输入值,而输出一个高组态值,即一组随机值。从图中我们可以看出仿真结果是正确的。图11 huanchong_cir reset=0时仿真图 下图为 huanchong_cir模块中的 set=1时的仿真图。当set=1时,高电平有效,把输入传给输出,从图中我们可以看出仿真结果是正确的。图12 huanchong_cir set=1时仿真图 由以上几个波形仿真可以看出huanchong_cir 模块的vhdl程序设计是正确的,此模块的vhdl代码可以参见附录。4.4.3 译码模块的设计与仿真该模块的功能是将序列产生模块产生的序列进行译码。译码的方法是通过调用码表来实现的。即把码表当成是函数,输入几位得就调用几次。如输入24位的就需要调用4次15。这样可以简化代码。子程序不可像进程那样可以从其他进程中进行赋值操作,而只能调用后进行端口映射;函数的return的数字类型不能加宽度。decode_change6bto5b程序清零赋值给decode_output ,而不能给decode_ymout因为进程里面必须是中间信号,而不可是外部引脚。程序的流程图如下:decodein24位decodeout20位译码图13译码decode_change6bto5b流程图编译成功,经过封装过后创建的元件decode_change6bto5b逻辑框图图14 decode_change6bto5b逻辑框图 仿真成功后,仿真图形如下: 下图为decode_change6bto5b 模块中,reset=0时仿真图。当reset=0时将复位,直接在输出端口decode_ymout输出20为的零值。从图中的仿真结果可以看出仿真是正确的。图15 decode_change6bto5b reset=0时仿真图 下图为decode_change6bto5b 模块中,reset=1时仿真图。6b码为“101010101010101010101010”,通过译码模块,输出的5b码流为“10101101011010110101”,通过查询码表可以看出此仿真结果是正确的。图16 decode_change6bto5b reset=1时仿真图(无禁码) 下图decode_change6bto5b模块是禁码时的仿真,输出结果为“00000000001010110101”为正确结果。图17 decode_change6bto5b禁码时仿真图 由以上几个波形仿真可以看出decode_change6bto5b这一模块的vhdl程序设计是正确的。此模块的vhdl代码可以参见附录。4.4.4 顶层原理图的设计与仿真其实顶层文件的设计可以用各模块的实体连接电路图来实现。这样做的好处是方便易懂易实现,也可以直接通过vhdl语言的描叙来完成。顶层原理图的流程图如下: make_6bhuanchong_cirdecode_change6bto5b图18 顶层文件_decode流程图 整个5b6b码码码的译码变换顶层文件原理图如下图所示:图19 顶层文件的原理图编译成功后,仿真图形如下: 下图为_decode顶层模块中 ,cout=0时的清零仿真图。图 20_decode cout=0清零仿真图 下图为_decode模块中cout=5时,输入6b码“101010101010101010101010”无禁码输入时的仿真图。当没有禁码输入时,就可以根据前面设计的码表来进行译码。输出的5b码流为“1010110101101011010110101”,经查码表可以看出译码结果是正确的。即整个系统的译码仿真图是正确的。图21 _decode 无禁码输入时仿真图 下图为禁码时的输入,cout=8时的输入为禁码,6b输入的码流为“111111111111111111111111”5b的输出码流为“000000000000000000000000”经验证该仿真结果是正确的。图22 _decode 输入禁码时的仿真图 由以上几个波形仿真可以看出_decode模块的vhdl程序设计是正确的,到此时,整个5b6b码的译码仿真就结束了。此模块的vhdl代码可以参见附录。4.5禁码的还原编码的码表出来以后,就要考虑进一步确定译码的方案了。在6b码64种线路码中,大部分在码表中都已经有了对应的解码信息,可以直接解码。在码表中没有定义的禁码如何来寻找它们的译码呢?理想的情况下是不可能出现禁码的,但是实际的信息传输过程中,是有可能出现禁字的。所以在这种情况下,得依靠建立禁字还原表来将禁字与信源码对应起来。建立禁字还原表可以分为三个步骤来进行:(1) 根据

温馨提示

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

评论

0/150

提交评论