光纤通信系统5b6b码编码的设计与仿真(编辑修改稿)内容摘要:

于电路设计的系统或以开发所需的软件的形式展示出来,并输入到 EDA 工具的过程。 经常使用的方式 有 HDL、原理流程图等。 示意图是描述的最直接的方式,可编程芯片开发更广泛的适用于早期应用,将各个器件从元器件库中调出来,绘制原理图。 这种方法虽然简单,易于仿真,但是实现效率极低,难以维护和重用,不利于模块结构。 但它的主要缺点是不便于携带,升级后的芯片,所有原理图需要做一些改变。 目前,实际的 HDL 是目前广泛使用的开发语言,利用文字描述设计,可分为一般 HDL 和行为 HDL。 在大型项目中,主要使用 HDL,其主要的语言是 Verilog HDL 与 VHDL。 这两种语言是电气和电子工程师标准的美国协会( IEEE )制定的标 准 ,其常见的突出特点是:独立于语言和芯片技术,这将有助于自顶向下设计,便于共享模块和移植,移植性良好,描述和模拟具有较强的逻辑思维能力,以及输入数据效率很高 [10]。 功能仿真 功能仿真,也称为前仿真,在用户逻辑电路的变异之前进行的电路逻辑功能设计验证,这个时候仿真没有延迟信息,只要预先进行功能测试。 模拟之前,构建波形文件和测试向量(即将信号输入组成一个序列),模拟的结果将产生一个报告文件和输出信号波形,他们可以观察到每个节点的信号变化。 若觉察到有问题,就回到逻辑设计改正 [11]。 7 综合优化 综合优化是使高层次的抽象描述成为一个较低的水平的描述。 整合优化是根据目标的一致性的要求生产,从而使设计水平为 FPGA 布局布线软件实平面化。 目前,集成的优化(合成),是将输入的逻辑与门,非门,或门 ,触发器,内存和其他基本的原始元素设计网表的逻辑单元相连接,而不是真正的门电路。 真正具体的门级电路应使用 FPGA 供应商提供的布线功能,产生的一个全面的准则,该准则是根据归纳后的门级网表生成的。 为了转换成该网表, HDL 代码务必要满足给定的合成器的特定要求。 因为它是一个成熟的技术集成的门级和 RTL 级的 HDL 程序结 构,所有 的 设备都支持合成到这个程度的整合。 综合后仿真 经过全面的仿真,以检查是否和原始设计的综合结果相一致。 在模拟过程中,将标准延迟文件完整的反标记进综合仿真模型里,可以大概估算门延迟造成的硬性。 然而,这一步不能估计线延迟,根据目前的状况,与现实情况仍有很大的差异,不是很精准的。 合成工具目前相对比较成熟,所以整体设计能够舍去此步,不过若发现不符合电路布局设计的意向,就应该回来确认模拟问题。 实现与布局布线 专用芯片 FPGA 布局的创作是综合性应用逻辑网表的一个最重要的过程。 合理布局配置的逻辑网表 的硬件原语和基本的硬件单元结构配置到固有的硬件芯片内,并且经常需要进行最快速度速度和最佳区域之间的选择。 基于相关布线的拓扑结构,运用合理的精确的芯片连接到各个组件的内部。 目前, FPGA 的结构是非常复杂的,尤其是当有限制,需要使用定时驱动布局引擎布线的时候。 布局布线后,该软件工具能够自主产生业务报表,给出相关部分的设计信息。 因为只有 FPGA 芯片制造商了解芯片结构,所以芯片设计工具开发人员必须选择开发商提供的工具。 8 第三章 5B6B编码设计步骤 5B6B 编码 通俗来说, 5B6B 编码就是要如何把一个 5B 码转换成为一个 6B 码。 5B6B编码实现方式主要有两种:使用 MATLAB 或者 FPGA。 这里选择的是 FPGA。 5B6B 编码原理 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 位( nm),最后为这些新的数据流传输,以零或非零的形式。 改造后,码传输速率提高,线路码比原来的二进制码速率增加了(通常会增加 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 称为 正不均等的代码(例如 111 010, 101101 等),以及 d = 2 为负不均等码(例 001 101, 0100 10 等),它们各自是 12 种,为了让“ 0”码和“ 1”码出现的可能性相差不大,所述码字可被相互交换地使用,来表示对应的码图 5B 码额外的 12 码字。 所以, “ 6B ”码中连续相同的最大数目为 6。 时间信息丰富,而且“ 0 ”和“ 1 ”显示的概率相等,各占 50 % ,所以可视为没有直流漂移。 其他未使用的 6 码可以视为禁码,如果出现这些码字,则意味着编码有错误,从而实现了不间断误码监测的功能 [15]。 9 该 5B6B 模型有各种编码方式,根据 CCITT 标准和建议,对 5b6b 表进行使用,其中 D=0 的数字码组 20 个和 D=177。 2 的码组分别取 12 个。 因此在 5B6B 码流中相同数量码的代码和少于 5,数字码和差不大于 3,甚至更小。 5B6B 码表设计 由以上总结出 5B6B 码表的设计规则为: Ⅰ .“ 0”码出现的概率可能性等于“ 1”码 Ⅱ .减少最大连续相同数的个数 Ⅲ .选择 d 值最小的码组 为了实现设计目标,引入了两种模式。 模式 1 是正的,模式 2 是负的。 模式 1和 2 交替。 如下的设计代码表: 10 表 1 5B6B 码表 序号 输入二元 码组( 5bit) 输出二元码组( 6bit) 5B6B— 1 ( 00) 5B6B— 2 ( 01) 模式 1 模式 2 模式 1 模式 2 0 00000 000111 000111 010111 101000 1 00001 011100 011100 100111 011000 2 00010 110001 110001 011011 100100 3 00011 101001 101001 000111 000111 4 00100 011010 011010 101011 010100 5 00101 010011 010011 001011 001011 6 00110 101100 101100 001101 001101 7 00111 111001 000110 001110 001110 8 01000 100110 100110 110011 001100 9 01001 010101 010101 010011 010011 10 01010 010111 101000 010101 010101 11 01011 100111 011000 010110 010110 12 01100 101011 010100 011001 011001 13 01101 011110 100001 011010 011010 14 01110 101110 010001 011100 011100 15 01111 110100 110100 101101 010010 16 10000 001011 001011 011101 100010 17 10001 011101 100010 100011 100011 18 10010 011011 100100 100101 100101 19 10011 110101 001010 100110 100110 20 10100 110110 001001 101001 101001 21 10101 111010 000101 101010 101010 22 10110 101010 101010 101100 101100 23 10111 011001 011001 110101 001010 24 11000 101101 010010 110001 110001 25 11001 001101 001101 110010 110010 26 11010 110010 110010 110100 110100 27 11011 010110 010110 111001 000110 28 11100 100101 100101 111000 111000 29 11101 100011 100011 101110 010001 30 11110 001110 001110 110110 001001 31 11111 111000 111000 111010 000101 11 5B6B 编码模块设计 编码器的工作原理 5B6B 编码电路模型,包括时钟控制模块、串行 /并行转换电路,存储器模块,并行 /串行转换模块等组成,如图 2 所示: 编码器电路的原理是一个本地振荡器产生一个标准时钟,由变频器电路产生的时钟用于编解码电路工作的输出电路的时钟,它们之间的关系 是缓冲电路接收5 位输入码存储为一个编码器,这个编码器电路中,根据 5b6b 码表输出 6 位代码。 再将这 6 位码在时钟脉冲的驱动下再进行并行 /串行转换来输出。 编码电路模块划分 在实际设计中,应当与当前的实际情况和 VHDL 语言相结合,编码电路可分成以下模块。 它们是:串行、并行转换模块,编码模块,并行串行转换模块,序列产生模块和其他的有关模块。 下面描述了设计概念中的 4 个模块,后一些模块将会给出程序。 主要是实现一个时钟分频的功能,为了后面的串并转换模块,缓存电路以及并串转换模块提供一个时 钟。 主要是将输入的串行码流进行并行转换然后输出的功能。 对于 6B 码而言,在查找表之前必须先转换成并行 6B 比特流,然后并行 6B 码聚集起来,再查找串 /并转换模块 存储器模块 并 /串转换模块 串行 6B码组输出 并行 5B 码组 并行 6B 码组 串行 5B码组输入 时钟控制模块。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。