光纤通信系统5b6b码编码的设计与仿真本科论文Word格式.docx
《光纤通信系统5b6b码编码的设计与仿真本科论文Word格式.docx》由会员分享,可在线阅读,更多相关《光纤通信系统5b6b码编码的设计与仿真本科论文Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
![光纤通信系统5b6b码编码的设计与仿真本科论文Word格式.docx](https://file1.bdocx.com/fileroot1/2022-12/12/bb70c3e3-7e63-4d7f-a912-1b7c85358a90/bb70c3e3-7e63-4d7f-a912-1b7c85358a901.gif)
1.2QuartusII软件介绍1
1.3VHDL语言3
1.3.1背景简介3
1.3.2VHDL主要特点4
1.3.3VHDL主要优势5
第二章FPGA系统开发过程6
2.1电路设计6
2.2设计输入6
2.3功能仿真6
2.4综合优化7
2.5综合后仿真7
2.6实现与布局布线7
3.15B6B编码8
3.1.15B6B编码原理8
3.1.25B6B码表设计9
3.25B6B编码模块设计11
3.2.1编码器的工作原理11
3.2.2编码电路模块划分11
3.3系统各个模块的设计12
3.3.1时钟控制模块的设计12
3.3.2串并转换模块的设计12
3.3.3缓存电路的设计12
3.3.4并串转换模块的设计13
3.3.5系统的顶层设计13
3.4系统各个模块的仿真14
3.4.1分频器的仿真14
3.4.2串并转换模块的仿真14
3.4.3存储器模块的仿真14
3.4.4并串转换模块的仿真15
3.4.5完整电路仿真16
第四章总结17
参考文献18
致谢19
图表目录20
第一章绪论
1.1引言
被普遍使用的数字光纤通信系统中的一种路线码型就是5B6B码[1]。
在光纤中的传输线,信号通过5B6B码和串并转换数据后,形成一个连续的长度小于5的Bit0或Bit1串行编码序列,0和1的数据转换的高密度,而且有一个有利于接收电路、时钟恢复电路的设计的直流平衡特性[2]。
5B6B码是一种nBmB分组码,这是一个二进制线路编码,即把一个二进制5位信源码型转为6位二进制线路码型,64个线路码型是基于“0”和“1”的数量来分成两种码型:
即非均匀码和均匀码。
均匀码是指“0”和“1”的数量是一样的,反之,则为非均匀码。
非均匀码又分为正负两个模式,当“0”码个数少于“1”码个数时是为正模式,“0”码个数大于“1”码时为负模式[3]。
因为线路码和信源码的个数不等,因此从5码转换为6码时,有多种编码方案。
本文只选用其中一种编码方案。
1.2QuartusII软件介绍
因为只有通过系统软件的操作和硬件实物平台才能成功实现5B6B的编码设计与仿真,所以在设计前,首先要了解使用QuartusII和FPGA相应的使用方法。
下面做简单的说明。
图1QuartusII运行背景
QuartusII不仅支持AHDL设计输入的形式,同时支持电路原理图,VHDL、VerilogHDL,模拟器和合成器,嵌入其中。
QuartusII在PLD开发软件集成中为了完成PLD的设计过程,可以从设计输入完成的硬件配置。
除了完成使用QuartusTcl脚本、QuartusII的设计过程之外,还可以使用设计完美的图形用户界面,并支持使用Unix、XP或Linux等操作系统[4]。
接口速度快,运行统一,功能设置,简单易用。
为了用户能够充足的使用成熟的完备模块,囊括了LPM/Mega功能库,并且降低了设计过程中的复杂程度,同时,它还支持Altera公司的IP内核,设计速度加快了等等。
其他的EDA工具能够让用户使用EQuartusII,认识在设计过程当中的每个过程,支持全面的可编程逻辑器件开发软件。
支持电路原理图,VHDL语言,AHDLDA和vrilogHDL。
此外,QuartusII开发的工具能够轻松实现各种DSP应用,将DSPBuilder与MATLAB/Simulink结合。
SOPC的开发可在可编程系统芯片上实现,包括已设置的可编程逻辑设计系统和嵌入式软件开发形成一个全面的开发平台[5]。
PLD设计软件拥有Altera公司的优秀的易用性,之前的MAXPLUSII得到了普遍的应用。
MAXPLUSII现在已经不更新了,不仅因为QuartusII充实了不断变化的图形界面的设备的类型,还包括许多QuartusII软件,例如,设计的RTLViewer查看器和编辑器芯片的援助,增强SignalTapIIAltera的图形界面,MAXPLUSII继承和SOPC的硬件复制设计和集成流程。
可编程逻辑设计环境有一个直观的界面和其强大的设计能力,因此受到广大系统开发者的应用[6]。
Altera的第4代开发平台有QuartusII软件。
该平台支持的工作组环境设计要求,包括基于互联网的协同设计支持。
提高LogicLock的设计效力,添加FASTFIT编译器选项,高级编辑网络性能,并提高调试效果。
Max7000/Max3000是开发的第4代产品,它提供了一个完备的功能和高效的设计适合于给定的设计要求[7]。
QuartusⅡ给出了一个便利的输入功能,和迅疾的编译器和编程设备直接访问的能力。
支持超过一百万门的逻辑门数的发展,提供了一个无缝接口,用于第三方工具。
在QuartusⅡ支持的设备有:
StratixⅡ,StratixGX,Stratix,水星,MAX3000A,MAX7000B,MAX7000S,MAX7000AE,MAXⅡ,FLEX6000,FLEX10K,FLEX10KA,FLEX10KE,旋风,旋风Ⅱ等。
QuartusⅡ编程包是整个体系的中枢,为了给出强力的问题解决实力,设计人员能够添加特定的限制,提升整个芯片的利用效率。
在整个设计过程中的每个环节,该软件可以使QuartusⅡ集中于设计,而不是使用软件本身。
同时,自动定位误差,充满了错误和警告信息,使设计更简单和容易。
此外,QuartusⅡ结合SOPCBuilder开发SOPC系统(可编程片上系统),是一种非常有前途的EDA软件。
QuartusⅡ4.1软件光盘能在代理获得,可以在internetitAltera上下载,安装,并得到授权文件,其具体步骤可以参照MAX+PLUSⅡ的操作。
1.3VHDL语言
1.3.1背景简介
VHDL是被开发于1982年的的特高速电路集成硬件描述语言,它最初是由美国国防部开发,为了提高设计的可靠性,小范围内使用的用以减少设计语言发展周期的硬件语言。
1987年底,VHDL是已经确认的标准硬件描述语言[8]。
IEEE-1076后不同的公司都推行了各自的开发环境以适用于VHDL的使用,或表示能够和VHDL的设计相连。
1993年,宣布对VHDL语言就行修订,VHDL语言扩大了抽象和描述性的动力系统的更高层次的审查内容,即IEEE标准的1076-1993版本。
简而言之,VHDL是电路设计语言中的一种。
中国被翻译成VHDL描述超高速集成电路硬件描述语言,主要用于数字电路的设计。
大多数中国人使用的是FPGA、CPLD和EPLD。
显然,相对较强的一些单位的强度,它也可用于ASIC设计[9]。
VHDL语言大部分应用于数字系统的布局、活动、效用和接口的描述。
程序结构工程设计的VHDL,或叫做实体设计(可以为一个功能元器件,电路模块或一个完整的系统体系)的特性被分为外部(可见器件)和内部(不可见的器件)的两个功能,即包括实体里面的功用和算法实现的功用部分。
设计实体确定外部接口后,在其内部设计成功之后,其他模块可以直接使用此实体。
这个概念是分为内部和外部实体设计的VHDL开发和设计的基础部分。
1.3.2VHDL主要特点
1.健壮,灵活的设计
VHDL语言拥有较强的结构,因此能够表现出源代码的清晰和精炼的描述,从而达成繁杂的控制逻辑。
多层次的描绘方式使之具备多层次的设计特征,最后可直接产生电路级的描述。
与其他硬件描述语言相比,VHDL具备有它们所没有的电路设计特征,即:
同步、异步和随机。
VHDL语言也支持其他方面的设计,包括自下而上和自上而下的设计;
同时支持模块化设计和分层设计支持。
2.支持广泛,容易改变
因为VHDL已经成为标准的IEEE标准硬件描述语言,支持基本上所有的EDA工具,所以这为之后的推行以及VHDL的普遍使用垫定了基础。
在硬件的设计过程中,源代码基本上都是由VHDL来撰写的,又由于它的可读性和结构化,很容易改变设计。
3.强大的硬件功能说明
VHDL的设计具备多个分级的描述能力,除了能够作为电路的系统级描述,而且能够用来描述门级电路。
既可以作为一个行为描述,转让或寄存器描述方案,也可用于混合级描述。
此外,VHDL不仅支持惯性的延迟和输送系统的延迟,也有创造电路硬件描述精确模型的能力。
由于VHDL支持数据类型的预定义和自定义两种形式,让硬件描述带来了更大的自由空间,可以很容易地建立高层次的系统模型。
4.设备-自主设计,自主的过程
当使用VHDL设计时,不需要考虑完成设备的设计,可以专注于优化设计。
所描述的设计告终,能够运用各种不一样的元器件结构完成它的功能。
5.可移植性强
VHDL是标准的硬件描述语言,设计的描述可以通过各种工具来支持,从而有可能对移植设计进行描述。
6.轻松共享和重用
基于VHDL的设计方法,可以重新创建所有可用的模块。
这些模块可以预先设计或在最后归档模块设计中使用,这些模块将被存储在库中,它可以在未来的计划中重复使用,可以使设计结果在设计师之间交流,减少硬件电路设计。
1.3.3VHDL主要优势
1.VHDL比其他硬件描述语言有更多的描述能力,使之确定成为了设计描述语言的最佳硬件。
描述结构的行为能力很强,避免特定的设备,系统的描述和大型电子逻辑系统有关的设计。
2.VHDL拥有大量的仿真程序和库函数,能够让设计任意大的系统最早的时候就可以发掘系统的设计特点,准备仿真设计的可能性。
3.行为报表说明,采用VHDL语言编程技巧和结构,决定了支持大规模分解的开发和重用现有的设计。
系统扩展,以满足市场的高效需求、快速实现设计一定要有多人一起完成,更有甚者需要许多个开发组并行工作来实现。
4.VHDL描述设计的相对独立性,设计师不用了解硬件的结构,也不需要知道项目管理的最终目的是实现什么目标设备,在此基础上进行独立的设计。
第二章FPGA系统开发过程
因为FPGA设计和5B6B编解码系统原理是相似的,所以下面对FPGA开发系统的过程作一些简要介绍。
2.1电路设计
在系统的设计中,第一个进行演示程序,前期的系统设计和FPGA芯片的选择。
根据任务要求,如指标和系统的复杂性,各种资源,运行速度和芯片本身的成本与取舍等方面,选择合适的设计和正确类型的设备。
正常情况下设计采用自顶向下这种方法,先将系统划为几个基本的单位,之后的每个基本单位又划为基本单位的下一级,不停如此,直到能够立即运用的EDA库为止。
2.2设计输入
输入设计是将用于电路设计的系统或以开发所需的软件的形式展示出来,并输入到EDA工具的过程。
经常使用的方式有HDL、原理流程图等。
示意图是描述的最直接的方式,可编程芯片开发更广泛的适用于早期应用,将各个器件从元器件库中调出来,绘制原理图。
这种方法虽然简单,易于仿真,但是实现效率极低,难以维护和重用,不利于模块结构。
但它的主要缺点是不便于携带,升级后的芯片,所有原理图需要做一些改变。
目前,实际的HDL是目前广泛使用的开发语言,利用文字描述设计,可分为一般HDL和行为HDL。
在大型项目中,主要使用HDL,其主要的语言是VerilogHDL与VHDL。
这两种语言是电气和电子工程师标准的美国协会(IEEE)制定的标准,其常见的突出特点是:
独立于语言和芯片技术,这将有助于自顶向下设计,便于共享模块和移植,移植性良好,描述和模拟具有较强的逻辑思维能力,以及输入数据效率很高[10]。
2.3功能仿真
功能仿真,也称为前仿真,在用户逻辑电路的变异之前进行的电路逻辑功能设计验证,这个时候仿真没有延迟信息,只要预先进行功能测试。
模拟之前,构建波形文件和测试向量(即将信号输入组成一个序列),模拟的结果将产生一个报告文件和输出信号波形,他们可以观察到每个节点的信号变化。
若觉察到有问题,就回到逻辑设计改正[11]。
2.4综合优化
综合优化是使高层次的抽象描述成为一个较低的水平的描述。
整合优化是根据目标的一致性的要求生产,从而使设计水平为FPGA布局布线软件实平面化。
目前,集成的优化(合成),是将输入的逻辑与门,非门,或门,触发器,内存和其他基本的原始元素设计网表的逻辑单元相连接,而不是真正的门电路。
真正具体的门级电路应使用FPGA供应商提供的布线功能,产生的一个全面的准则,该准则是根据归纳后的门级网表生成的。
为了转换成该网表,HDL代码务必要满足给定的合成器的特定要求。
因为它是一个成熟的技术集成的门级和RTL级的HDL程序结构,所有的设备都支持合成到这个程度的整合。
2.5综合后仿真
经过全面的仿真,以检查是否和原始设计的综合结果相一致。
在模拟过程中,将标准延迟文件完整的反标记进综合仿真模型里,可以大概估算门延迟造成的硬性。
然而,这一步不能估计线延迟,根据目前的状况,与现实情况仍有很大的差异,不是很精准的。
合成工具目前相对比较成熟,所以整体设计能够舍去此步,不过若发现不符合电路布局设计的意向,就应该回来确认模拟问题。
2.6实现与布局布线
专用芯片FPGA布局的创作是综合性应用逻辑网表的一个最重要的过程。
合理布局配置的逻辑网表的硬件原语和基本的硬件单元结构配置到固有的硬件芯片内,并且经常需要进行最快速度速度和最佳区域之间的选择。
基于相关布线的拓扑结构,运用合理的精确的芯片连接到各个组件的内部。
目前,FPGA的结构是非常复杂的,尤其是当有限制,需要使用定时驱动布局引擎布线的时候。
布局布线后,该软件工具能够自主产生业务报表,给出相关部分的设计信息。
因为只有FPGA芯片制造商了解芯片结构,所以芯片设计工具开发人员必须选择开发商提供的工具。
第三章5B6B编码设计步骤
3.15B6B编码
通俗来说,5B6B编码就是要如何把一个5B码转换成为一个6B码。
5B6B编码实现方式主要有两种:
使用MATLAB或者FPGA。
这里选择的是FPGA。
3.1.15B6B编码原理
mBnB是将为二进制输入的源代码流分组,每m个二进制码为一组,表示为mB,称为码字,然后转换成n个二进制代码,表示为nB,并且在同一个时隙间输出[12]。
实际上就是将mB码变成nB码,形成所谓的mBnB,其中m和n正常情况下都为大于零的数,且N>
M,通常选定N=M+1。
mBnB结构的形成方法是:
将二进制代码里的每m个编码流码元分成一组,并且根据给定的编码规则和在相同的时隙内,找到一个相应的n位代码组来替代原来的m位码组。
大部分mBnB代码都可以使用两种编码方式,是用来取代数字和d比较大的数组[13]。
MBnB代码又称为分组码:
这是非常有用的类多余的二进制代码,这是输入比特流(MB)的来源是一组码字,然后在时间变量相同的长度内变为n位(n>
m),最后为这些新的数据流传输,以零或非零的形式。
改造后,码传输速率提高,线路码比原来的二进制码速率增加了(通常会增加N/M倍)。
mBnB类,一般有有1B2B,2B3B,4B5B,5B6B等类型,用的最多的而是5B6B码[14]。
现在用5B6B代码示例来看看它的编码情况:
5B6B码,五位二进制码共有2的5次方=32个字或代码,而六位共有2的6次方=64的二进制码字或代码。
为了选出64种编码中最适合的编码方案去替代5B码中的32个码字,有许多编码方案,分别对应不同的表5B6B编码。
在实践中,引入了一个参数应用于6B码:
不平等的参数d,d=“1”码数—“0”码数,将d=0的6B码(如001101,100110)称为均等码,这类码字有20种不同的,能够分别表示20个不同的5B码。
将d=+2称为正不均等的代码(例如111010,101101等),以及d=-2为负不均等码(例001101,010010等),它们各自是12种,为了让“0”码和“1”码出现的可能性相差不大,所述码字可被相互交换地使用,来表示对应的码图5B码额外的12码字。
所以,“6B”码中连续相同的最大数目为6。
时间信息丰富,而且“0”和“1”显示的概率相等,各占50%,所以可视为没有直流漂移。
其他未使用的6码可以视为禁码,如果出现这些码字,则意味着编码有错误,从而实现了不间断误码监测的功能[15]。
该5B6B模型有各种编码方式,根据CCITT标准和建议,对5b6b表进行使用,其中D=0的数字码组20个和D=±
2的码组分别取12个。
因此在5B6B码流中相同数量码的代码和少于5,数字码和差不大于3,甚至更小。
3.1.25B6B码表设计
由以上总结出5B6B码表的设计规则为:
Ⅰ.“0”码出现的概率可能性等于“1”码
Ⅱ.减少最大连续相同数的个数
Ⅲ.选择d值最小的码组
为了实现设计目标,引入了两种模式。
模式1是正的,模式2是负的;
模式1和2交替。
如下的设计代码表:
表15B6B码表
序号
输入二元
码组(5bit)
输出二元码组(6bit)
5B6B—1
(00)
5B6B—2
(01)
模式1
模式2
00000
000111
010111
101000
1
00001
011100
100111
011000
2
00010
110001
011011
100100
3
00011
101001
4
00100
011010
101011
010100
5
00101
010011
001011
6
00110
101100
001101
7
00111
111001
000110
001110
8
01000
100110
110011
001100
9
01001
010101
10
01010
11
01011
010110
12
01100
011001
13
01101
011110
100001
14
01110
101110
010001
15
01111
110100
101101
010010
16
10000
011101
100010
17
10001
100011
18
10010
100101
19
10011
110101
001010
20
10100
110110
001001
21
10101
111010
000101
101010
22
10110
23
10111
24
11000
101