当前位置:首页 > 智能硬件 > 智能硬件
[导读]摘要:为了在USB 3.0中实现数据的8 b/10 b编解码,采用了查找表法和组合逻辑相结合的方法,把8b/10b编解码分解成5 b/6 b编解码和3 b/4 b编解码,用Verilog HDL语言实现了算法的描述,并通过了Modelsim仿真,然后

摘要:为了在USB 3.0中实现数据的8 b/10 b编解码,采用了查找表法和组合逻辑相结合的方法,把8b/10b编解码分解成5 b/6 b编解码和3 b/4 b编解码,用Verilog HDL语言实现了算法的描述,并通过了Modelsim仿真,然后在FPGA上实现了具体的硬件电路。采用500 MHz的时钟信号,经过测验满足了USB 3.0的传输速率5 Gb/s。该创新方法使用了少量逻辑,实现了8 b/10 b编解码器,并且满足USB 3.0高速数据传输的要求。
关键词:USB 3.0;8 b/10 b编解码;RTL设计;仿真验证

0 引言
    8 b/10 b是目前许多高速串行总线采用的编码机制,如USB 3.0,1394b,Serial ATA,PCI Express,Infini-band,Fiber Channel,RapidIO等总线或网络。8 b/10 b编码方式最初由IBM公司于1983年发明并应用于ESCON(200M互连系统),发表Al Widmet和Peter Franaszek IBM刊物的“研究与开发”。8 b/10 b编解码之所以能得到广泛的运用,主要有以下优点:采用嵌入式时钟,可保持DC平衡;能够更加有效地检测错误;隔离数据码元和控制码元。

1 USB 3.0中的8 b/10 b编解码原理
    在USB 3.0分层结构中,发送端先对数据或者控制字(K)加扰,然后把加扰后的8 b数据编码成10b发送出去;接收端先把接收到的10b数据进行解码得到8 b数据,然后再解扰得到原始数据。
    8 b/10 b编码包含对256个数据字符和12个控制字符的编码。数据字符和控制字符分别用Dx,y和Kx,y表示,其中x表示与8 b的低5位(EDCBA)对应的十进制数值;y表示与8 b的高3位(HGF)对应的十进制数值。发送端在编码时,根据编码表将低5位变成6位,高3位变成4位。编码完成后,将10 b的并行字符转换成串行发送出去。接收端在解码时先进行串并转换得到10 b字符,再将该字符分解成6 b和4 b,根据相应编码表看是否有效,最后完成解码。编解码转换流程如图1所示。


    不平衡度disp(disparity)表示编码后1个码字中“1”数目与“0”的数目差。“1”用+1表示,“0”用-1表示,码字中的所有“+1”与“-1”之和就是disp。8 b/10 b编码的disp取3种状态:“+2”(6个1与4个0),“0”(5个0与5个1),“-2”(6个0与4个1)。而运行不一致RD(Running Disparity)是一个二进制参数,只有正、负2种状态,用于编码模式控制。在8 b/10 b编码表中,10 b字符分为2种码表(RD-和RD+)。编码过程中,通过对RD值正负的判断来选择对应码表,如果当前RD为负(RD-),编码器会在RD-编码表中选择对应值输出,并且检测对应输出的10 b值的disp,如果disp=0,则RD不变保持RD-,否则RD值变为RD+;如果当前RD为正(RD+),则在RD+编码表中选择对应值输出,并且检测输出值对应的disp,如果disp=0,则RD不变保持RD+,否则RD变为负RD-。总之,在disp为正或者负时,RD发生交替变换,这种方法是为了使0和1分布更均匀,减小差分信号的直流分量。

2 8 b/10 b编码器的设计
    8b/10b编码器是把8 b数据输入拆成低5位和高3位分别进行5 b/6 b和3 b/4 b编码,根据编码表执行编码。因为其中有些特殊的3b/4 b编码,所以需要一个特殊3 b/4 b编码模块。编码后数据通过RD控制模块选择输出,并且把此时的RD状态反馈给下一轮编码。对于8 b控制输入,由于K控制编码只有12种有效,所以需要一个对无效K码的识别模块。因此,编码器分为5个模块:5 b/6 b编码、3 b/4 b编码、特殊3 b/4 b编码、无效K码检测、RD_controller,前4个部分在RD_controller的控制下进行并行编码,如图2所示。图中,kin为8 b控制输入,data_in为8 b数据输入。由于USB 3.0传输速度为5 Gb/s,编码器clk为500MHz。


    5 b/6 b编码模块、3 b/4 b编码模块对输入的8 b数据输入分为低5位和高3位进行并行编码,输出6 b和4 b数据构成10 b编码,而输出disp_6b,disp_4b是6 b和4 b数据的不平衡度。
    由于在8 b/10 b转换表中,8 b数据输入高3位为“111”、低五位分别为“01011”,“01101”,“01110”,“10001”,“10010”,“10100”时,输出的4 b是特殊情况,特殊3 b/4 b编码模块就是完成对这几种特殊情况输出,输出sp_4b_RDN和sp_4b_RDP是特殊编码的不
平衡度。
    当8 b输入是控制K码时,控制码只有12种是有效的,无效K码检测模块就是检测输入的控制码是否有效,如果无效输出invalid_k=1,如果有效则输出invalid_k=0。
     RD控制模块除了将编码后数据选择输出,主要是根据disp_6b,disp_4b,sp_4b_RDN和sp_4b_RDP来跟新当前RD值,并反馈到下一轮编码的RD输入,保持差分信号传输的直流平衡。

3 8 b/10 b解码器的设计
    8b/10b解码器接收到的数据是10 b,根据8 b10 b解码原理,把10 b数据分开为低6 b和高4 b,然后分别对低6位和高4位进行解码,划分为2个模块6 b/5 b解码、4b/3b解码。这些10位的数据分为特殊K字符和有效数据字符,特殊K字符是控制字符。解码器结构如图3所示,分为4个模块:6 b/5 b解码,4 b/3 b解码,无效码检测、不平衡度检测。


    6b/5b解码和4b/3b解码模块根据编码表,选择输入10 b数据对应输出5 b或3 b。当高4位为“1001”,“0110”,“1010”,“0101”时,数据字符和控制字符其对应的输出是不同的;并且高4位为“0001”,“1110”时也是特殊情况。输入10 b数据中有1 024个数据,有440个有效数据字符,24个控制字符,还有560个错码。当输入为错码时,无效码检测模块会检测出错,输出1个errdetect。不平衡度检测模块主要是根据前面模块输出的disp和当前的disp(current-disp),判断解码是否发生错误。当disp_4 b=0时,disp_6 b!=0,则current_disp应该等于disp_6 b,如果不等则发生错误。即要保持不平衡度在“+2,0,-2”三个值中变化,超出则发生编码错误。

4 仿真分析
    本文完成了8 b/10 b编解码器的RTL设计,并在Modelsim上进行功能仿真。编码、解码的仿真波形图4,图5所示。


    图6是编解码联调的仿真波形,可以看出输入的数据经过编码器编码成10 b的数据,然后在经过解码器所还原的数据跟之前输入的数据一样,说明编解码功能正确,并且最高的工作频率能够达到500 MHz,满足USB 3.0的数据传输速度。

5 结语
    本文采用的分块编解码方法,使用了少量的逻辑完成了8 b/10 b编解码器设计。该编解码器在USB 3.0数据传输中能够得到很好的运用,满足了USB 3.0高速数据传输的要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭