JESD204B中的8B10B编码器设计
- 格式:pdf
- 大小:1.61 MB
- 文档页数:3
8b10b编码原理
8B/10B编码是一种有线传输技术,用于将高速数字数据流转换为低速可靠数据流。
其原理基于将8位数据块编码为10位传输码。
编码过程如下:
1. 将8位数据块拆分成两个4位的部分(A和B)。
2. 用一种特定的编码表对A和B进行编码,得到两个5位的编码结果(A'和B')。
3. 将A'和B'拼接成一个10位的编码结果。
解码过程如下:
1. 将10位的编码结果拆分成两个5位的部分(A'和B')。
2. 用编码表对A'和B'进行解码,得到两个4位的解码结果(A 和B)。
3. 将A和B拼接成一个8位的解码结果。
通过使用8B/10B编码,可以实现以下优点:
1. 数据的时钟恢复:编码中包含了时钟信息,接收端可以从中恢复出正确的时钟信号。
2. 错误检测:编码中包含了奇偶位,接收端可以根据奇偶位检测出传输过程中的错误。
3. DC平衡:编码中的0和1的数量基本平衡,可以防止传输线上的直流偏置问题。
4. 随机性:编码中的A'和B'被设计成尽可能地随机分布,以避免长时间连续传输相同的位模式。
总结来说,8B/10B编码通过将8位数据块转换为10位传输码,实现了数据的时钟恢复、错误检测、DC平衡和随机分布等功能。
这使得它在高速数据传输场景中得到了广泛应用。
JESD204B是什么?JESD204B种类
JESD204B是什么
JESD204B是一种新型的基于高速SERDES的ADC/DAC数据传输接口。
随着ADC/DAC 采样速率的不断提高,数据的吞吐量也越来越大,对于500MSPS以上的ADC/DAC,动辄就是几十个G的数据吞吐率,而采用传统的CMOS和LVDS已经很难满足设计要求,这个时候,JESD204B应运而生。
现在各大厂商的高速ADC/DAC上基本都采用了这种接口。
使用JESD204B接口的原因
◾不用再使用数据接口,时序控制简单
◾不用担心信道偏移
◾不用再使用大量IO口,布线方便
◾多片IC同步方便
◾减少了PCB布板空间
◾减小了器件的引脚和封装大小
JESD204B与其他接口的对比表
JESD204B种类
JESD204B包括3个子类,分别是子类0,子类1,子类2。
三个子类主要是根据同步方式的不同划分的。
子类0兼容JESD204A,子类1使用SYSREF同步,子类2使用SYNC进行同步。
只有子类1和子类2支持确定性延迟——发送端到接收端之间的链路延迟固定。
分层规范
大部分的ADC和DAC都支持子类1,JESD204B标准协议中子类1包括:传输层,链路层,物理层。
在少部分资料中也会介绍含有应用层,应用层是对JESD204B进行配置的接口,在标准协议中不含此层,只是为了便于理解而添加的一个层。
传输层负责将采样数据。
JESD204B概述JESD204B标准提供一种将一个或多个数据转换器与数字信号处理器件接口的方法(通常是ADC或DAC与FPGA接口),相比于通常的并行数据传输,这是一种更高速度的串行接口。
该接口速度高达12.5Gbps/通道,使用帧串行数据链路及嵌入式时钟和对齐字符。
它减少了器件之间的走线数量,降低了走线匹配要求,并消除了建立与保持时序约束问题,从而简化了高速转换器数据接口的实施。
由于链路需要在数据传输之前建立,因此存在新的挑战,必须采用新的技术来确定接口是否正常工作,以及在接口故障时怎么办。
首先扼要说明该标准的工作原理。
JESD204B通过三个阶段来建立同步链路:代码组同步(CGS)、初始通道同步(ILAS)和数据传输阶段。
链路需要以下信号:共享参考时钟(器件时钟),至少一个差分CML物理数据电连接(称为“通道”),以及至少一个其他同步信号(SYNC~和可能的SYSREF)。
使用哪些信号取决于Subclass:Subclass 0使用器件时钟、通道和SYNC~;Subclass 1使用器件时钟、通道、SYNC~和SYSREF;Subclass 2使用器件时钟、通道和SYNC~。
Subclass 0在许多情况下足以满足需求,因而是本文的重点。
Subclass 1和Subclass 2提供了建立确定性延迟的方法,这在需要同步多个器件或需要系统同步或固定延迟的应用中非常重要,例如一个系统的某个事件需要已知的采样沿,或者某个事件必须在规定时间内响应输入信号。
图1显示了从Tx器件(ADC)到Rx器件(FPGA)的简化JESD204B链路,数据从一个ADC经由一个通道传输图1 JESD204B链路图——1个ADC通过1个通道与FPGA接口虽然JESD204B规范有许多变量,但某些变量对于链路的建立特别重要。
这些关键变量如下所示(注:这些值通常表示为“X-1”):* M:转换器数* L:物理通道数* F:每帧的8位字数* K:每个多帧的帧数* N和N’:分别表示转换器分辨率和每个样本使用的位数(4的倍数)。
高速串行收发器原理及芯片设计——基于jesd204b标准随着通信技术的不断发展,高速数据传输已经成为现代通信系统中的重要组成部分。
在高速数据传输中,高速串行收发器(SerDes)起着至关重要的作用。
本文将介绍高速串行收发器的原理及芯片设计,并以JESD204B标准为基础进行讨论。
高速串行收发器是一种将并行数据转换为串行数据,并通过高速串行链路进行传输的芯片。
它通常由发送端和接收端两部分组成。
发送端将并行数据转换为串行数据,并通过差分驱动器将其发送到传输介质上。
接收端则通过差分接收器将串行数据转换为并行数据。
高速串行收发器的主要功能是实现高速数据的可靠传输。
JESD204B是一种用于高速数据传输的标准,它定义了高速串行收发器的接口和协议。
JESD204B标准采用了多路复用的方式,将多个数据通道通过一个高速串行链路进行传输。
这种方式可以大大减少物理连接的数量,提高系统的可扩展性和灵活性。
在高速串行收发器的芯片设计中,关键的技术包括时钟恢复、数据编码和解码、差分驱动和接收等。
时钟恢复是指在接收端通过接收到的串行数据恢复出发送端的时钟信号。
数据编码和解码是指将并行数据转换为串行数据和将串行数据转换为并行数据的过程。
差分驱动和接收是指通过差分信号进行高速数据的发送和接收。
在JESD204B标准中,时钟恢复采用了多级锁相环(PLL)的方式。
发送端通过PLL产生高速时钟信号,并将其发送到接收端。
接收端通过PLL恢复出发送端的时钟信号,并用于数据的解码和时序控制。
数据编码和解码在JESD204B标准中采用了8B/10B编码方式。
发送端将每8位并行数据编码为10位串行数据,并通过差分驱动器发送到传输介质上。
接收端通过差分接收器将串行数据解码为并行数据。
8B/10B编码方式具有良好的误码性能和时钟恢复能力,适用于高速数据传输。
差分驱动和接收是高速串行收发器中的关键技术。
差分驱动器通过将串行数据转换为差分信号,并通过差分线路发送到传输介质上。
8b10b编码规则
8B10B是一种字符级别的编码方式,将8位二进制数据转换成10位二进制数据。
这种编码方式由IBM公司于1983年推出,常用于FPGA的高速串行通信中,比如PCI Express、SATA、USB等接口。
8B10B编码的规则是将一组连续的8位数据分解成两组数据,一组3位,一组5位,经过编码后分别成为一组4位的代码和一组6位的代码,从而组成一组10位的数据发送出去。
在编码过程中,为了保持0和1数目的平衡,需要采用特殊的算法,也就是K码组和D码组。
具体来说,每一个编码后的数据位由5位控制码和5位数据码组成。
在K 码组中,有4种特殊的控制码,用于控制数据传输过程中的错误校验和时序同步等功能。
而在D码组中,共有256种不同的数据码。
当8位原始数据被编码成10位数据时,为了保持0和1数目的平衡,需要选取一个最适合的D码组进行编码。
除此之外,利用一些特殊的代码(在PCI-Express总线中为K码),可以帮助接收端进行还原的工作,并且可以在早期发现数据位的传输错误,抑制错误继续发生。
以上内容仅供参考,建议查阅关于8B10B编码的专业书籍或咨询专业人士获取更准确的信息。
高速串行收发器原理及芯片设计——基于jesd204b标准
高速串行收发器是一种用于在高速数据传输中进行可靠数据传输的设备。
它通过将并行数据转换为串行数据,并通过高速串行链路发送数据,同时还能将接收到的串行数据转换为并行数据。
JESD204B是一种用于高速串行数据传输的接口标准,它是由带宽要求和时钟数据同步要求较高的类似高速数据转换器和FPGA芯片之间的接口。
JESD204B标准定义了数据格式、时钟、同步、控制和电气特性等方面的要求,以确保高速串行数据的可靠传输。
在设计基于JESD204B标准的高速串行收发器时,需要考虑以下几个关键方面:
1. 数据转换:将并行数据转换为串行数据和将串行数据转换为并行数据是高速串行收发器的核心功能。
它通常通过使用快速ADC和DAC来完成数据转换。
2. 数据编码和解码:为了提高数据传输的可靠性和效率,高速串行收发器通常会使用编码和解码技术。
常见的编码技术有8B/10B和64B/66B等。
3. 时钟和同步:高速串行数据传输需要高精度的时钟和同步机制。
JESD204B标准提供了通过多芯片时钟同步和定向握手等技术来实现时钟和同步。
4. 电气特性:高速串行收发器需要满足特定的电气特性要求,如差分信号传输、信号的端口阻抗匹配和抗噪性等。
基于JESD204B标准的高速串行收发器的芯片设计通常包括上述各个方面的功能模块。
设计工程师需要仔细研究JESD204B 标准,并根据具体的应用需求来选择适当的芯片和设计方案。
同时,还需要对各个功能模块进行设计和调试,并进行整体系统验证,以确保高速串行收发器的性能和可靠性。
教你怎么消除影响JESD204B链路传输的因素JESD204B串行数据链路接口针对支持更高速转换器不断增长的带宽需求而开发。
作为第三代标准,它提供更高的通道速率最大值(每通道高达12.5 Gbps),支持确定延迟和谐波帧时钟。
此外,得益于转换器性能的提升--这些转换器兼容开放市场FPGA 解决方案,并且可扩展--现已能轻松传输大量待处理的数据。
FPGA供应商已讨论了许多年有关千兆串行/解串(SERDES)接口的话题,虽然过去大部分模数转换器(ADC)和数模转换器(DAC)并未配备这类高速串行接口。
FPGA和转换器不与任何通用标准接口,无法利用SERDES的高带宽。
JESD204B兼容型转换器能够解决这个问题,而人们针对这种新功能提出了一些问题。
什么是8b/10b编码,为什么JESD204B接口需使用这种编码?无法确保差分通道上的直流平衡信号不受随机非编码串行数据干扰,因为很有可能会传输大量相反的1或0数据。
通过串行链路传输的随机数据还可能长时间无活动状态,并在相对较长的时间内为全1或全0。
发生这种情况时,未编码串行数据流的直流平衡被隔离,产生两种极端情况中的一种。
此时,若链路上再次传输有效数据,则很有可能发生位错误,因为线路重新开始偏置。
另外,一个长期的问题是电子迁移,因为相对差分对的另一侧,会保持一侧的差分直流电压。
为了克服这些问题,通常在差分串行数据流中(包括JESD204B)采用8b/10b编码方案。
8b/10b编码采用10个数据位,通过查找表方式从源端发送器发送8位初始信息。
这种方式具有25%的固有开销(10b/8b= 1.25),效率较低。
此外,编码允许每个10位符号传输至少3位(但不超过8位)数据。
这样可确保接收器有足够的转换数据来恢复内嵌的时钟信息,而无论底层数据的动态活动状态如何。
使用8b/10b编码时,串行数据流中二进制0和1之间的偏差保持在1以内,因此信号长期保持直流平衡。
然后,必须在接收器端的数据流上执行10位到8位的反向解码,才能利用反向查找表恢复原始数据。
jesd204b的编码格式JESD204B的编码格式JESD204B是一种用于高速数据传输的串行通信协议,广泛应用于数字信号处理和数据转换领域。
它通过一对差分线来传输数据,具有高速、高效和可靠的特点。
在本文中,我们将详细介绍JESD204B的编码格式,以及其在数据传输中的工作原理和优势。
首先,让我们来了解一下JESD204B的基本概念。
JESD204B是由JEDEC Solid State Technology Association制定的一种数据传输协议,用于高速串行数据传输。
它定义了数据的传输格式和传输步骤,同时也规定了数据的时序和控制信号。
JESD204B通常被用于将数据从高速ADC(模数转换器)传输到数字信号处理器(DSP)或FPGA(现场可编程门阵列)等设备。
在JESD204B中,数据是以多个字节的帧的形式进行传输的。
每个帧包含了多个数据字节和一些控制信息。
数据字节表示了采样到的模拟信号的离散值,而控制信息则包含了帧的同步和时序等信息。
通过组合多个帧的传输,JESD204B能够实现高速数据传输。
在传输数据之前,数据需要经过编码处理。
JESD204B使用了一种特殊的编码格式,又称为8b/10b编码。
这种编码格式将每8位数据编码为10位的数据流进行传输。
8b/10b编码采用了固定的编码表,其中包含256个编码对应关系。
每个8位数据对应一个10位编码,编码通过查表得到。
由于10位编码比8位数据长,因此在传输过程中,数据的传输速率也会增加。
编码表中的每个编码对应了一个特定的8位数据,同时也对应了一个控制信息。
通过在编码中嵌入控制信息,JESD204B实现了数据的同步和时序控制。
这些控制信息用于指示数据的起始和结束位置,以及数据的错误检测和纠正。
通过这种方式,JESD204B能够确保数据的可靠传输和正确接收。
总结起来,JESD204B的编码格式是一种8b/10b编码,用于高速数据传输。
它将每8位数据编码为10位的数据流,通过嵌入控制信息实现数据的同步和时序控制。
8B /10B编码器的设计及实现摘要:本文介绍了8B /10B编码技术,提出了一种简单、实用的8B /10B编码器的实现方法,并且采用Verilog语言设计了一种通用的软核。
通过在FPGA器件上进行测试,电路稳定、可靠,可直接嵌入到需要8B /10B编码功能的收发器电路中。
关键词:串行数据传输;8B /10B编码;极性偏差(RD);Verilog语言中图分类号:TN919. 3;TN762文献标识码:ADesign and Realization ofan8B /10B EncoderLIYou-mou(ASIC Design Center,Xi’an Institute ofPosts and Telecommunications,Xi’an 710061,China) Abstract:This paper introduces8B /10B encoding technique,and puts forward a simple and practical real-izationmethod ofan 8B /10B encoder. Furthermore,a versatile soft-core designedwithVerilog ispresen-ted. It is tested to be stable and reliable by FPGA devices,and can be directly embedded in transceivercircuitwith 8B /10B encoding function.Key words:Serial data transmission;8B /10B encoding;Rrunning disparity(RD);Verilog language 一、引言在高速的串行数据传输中,传送的数据被编码成自同步的数据流,就是将数据和时钟组合成单一的信号进行传送,使得接收方能容易准确地将数据和时钟分离,而且要达到令人满意的误码率,其关键技术在于串行传输中数据的编码方法。
㊀2020年㊀第12期仪表技术与传感器Instrument㊀Technique㊀and㊀Sensor2020㊀No.12㊀收稿日期:2019-12-19基于FPGA的JESD204B-光纤传输接口转换器设计王红亮,和㊀爽(中北大学,电子测试技术国家重点实验室,仪器科学与动态测试教育部重点实验室,山西太原㊀030051)㊀㊀摘要:针对目前JESD204B接口转换器在高速数据采集传输系统中逐渐普及,但接口IP尚未开源且接口信号与数据分析存储设备无法对接的现状,设计了JESD204B-光纤传输接口转换器㊂转换器以FPGA为逻辑控制核心,自主设计了JESD204B信号的接口逻辑,并利用SFP光模块与Aurora协议完成光纤接口传输,通过DDR3SDRAM进行数据缓存交互㊂最后对JESD204B链路的建立与整体转换器系统的数据传输进行了测试,验证了所设计的JESD204B接口可成功与外部采集卡建立链路,整体数据能够实现10Gbps的传输速率,且数据传输稳定无误㊂关键词:JESD204B;光纤传输;Aurora协议;高速采集中图分类号:TN919㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1002-1841(2020)12-0110-04JESD204B⁃opticalFiberTransmissionInterfaceConverterBasedonFPGAWANGHong⁃liang,HEShuang(NorthUniversityofChina,NationalKeyLaboratoryforElectronicMeasurementTechnology,KeyLaboratoryofInstrumentationScience&DynamicMeasurement,MinistryofEducation,Taiyuan030051,China)Abstract:InviewofthecurrentpopularityofJESD204Binterfaceconvertersinhigh⁃speeddataacquisitionandtransmissionsystems,buttheinterfaceIPwasnotyetopensourceandtheinterfacesignalscouldnotbeconnectedwithdataanalysisandstor⁃ageequipment,theJESD204B-opticalfibertransmissioninterfaceconverterwasdesigned.TheconverterusedFPGAasthelogiccontrolcore,andtheinterfacelogicoftheJESD204Bsignalwasindependentlydesigned,andtheSFPopticalmoduleandtheAu⁃roraprotocolwasusedtocompletetheopticalfiberinterfacetransmission,anddatabufferinteractionwasperformedthroughDDR3SDRAM.Finally,theestablishmentoftheJESD204Blinkandthedatatransmissionoftheoverallconvertersystemweretested.ItwasverifiedthatthedesignedJESD204Binterfacecansuccessfullyestablishalinkwithanexternalacquisitioncard,andtheoveralldatacanachieveatransmissionrateof10Gbpswiththestableanderror⁃freedatatransmission.Keywords:JESD204B;opticalfibertransmission;Auroraprotocol;high⁃speedacquisition0㊀引言随着星载通信㊁雷达测试等领域的不断发展,高速数据采集技术的需求不断增加,传统并行接口已逐渐难以满足日益增长的数据传输速率[1-2]㊂2011年推出的JESD204B串行接口,大幅提升传输速率,并具有对应封装尺寸小㊁成本低,PCB布局布线简化等优势,已成为目前高速数据转换器的主流接口片[3-5]㊂但JESD204B接口主要针对转换器采集数据收发,不适用于较远距离的传输,无法与常见的高速数据分析存储设备进行互联㊂而JESD204B的相关IP产品也尚未开源,无法针对特定开发进行裁剪,且费用昂贵[6]㊂因此,开发远距离传输JESD204B信号的拓展系统具有重要意义㊂目前,光纤传输由于其带宽高㊁距离远㊁灵敏度高㊁体积小等优势[7],已广泛应用于高速数据分析存储设备㊂在此背景下,本文提出了一种JESD204B-光纤传输接口转换器,并自主设计了JESD204B接口逻辑,实现了高速数据转换器与存储分析设备之间的数据收发㊂1㊀总体设计方案本文在对JESD204B接口和光纤传输接口相关协议进行分析后,以FPGA作为硬件控制平台,设计了相应接口逻辑㊁硬件电路与外围测试环境㊂转换器系统整体方案设计如图1所示㊂系统主要划分为JESD204B接口单元㊁光纤接口单元㊁数据缓存单元以及时钟管理单元㊂AD采集板卡的JESD204B接口通过FMC(FPGAmezzaninecard)插槽与系统的JESD204B接口单元互连,JESD204B接口单元接收到的数据经过处理整合后,传输至数据缓存单元进行缓存;光纤接口单元基于Aurora传输协㊀㊀㊀㊀㊀第12期王红亮等:基于FPGA的JESD204B-光纤传输接口转换器设计111㊀㊀图1㊀系统整体设计结构议,负责将接收数据打包处理并由SFP光模块转换为光纤信号向外部设备传输;时钟管理单元负责向JESD204B接口内部逻辑和外部AD采集板卡,以及光纤接口内部逻辑提供所需时钟㊂2㊀硬件设计2.1㊀JESD204B接口单元设计系统与外部采集板卡互连采用FMC接口㊂FMC接口插拔方便,接口信号类型丰富,包含电源信号㊁JTAG信号㊁IIC信号㊁普通用户信号及吉比特信号等,有助于系统针对不同外部采集板卡实现不同的拓展功能,提高系统设计的灵活性[8]㊂其中,吉比特信号引脚信号完整性可保证高达10Gbps的信号通信,可满足目前常见采集板卡JESD204B接口的数据传输要求㊂外部采集板卡多采用SPI接口进行工作模式等配置㊂为保证采集板与系统之间SPI信号的电平匹配,设计选取4位双电源电平转换芯片SN74AVC4T774对配置信号进行处理,并在两端信号分别串接阻值为22Ω的电阻,以防止信号过冲对电路的影响,电路连接如图2所示㊂图2㊀SPI接口电平转换电路2.2㊀光纤接口单元设计光纤接口选用SFP光模块AFBR-703ASDZ来实现电信号与光信号的转换与传输㊂AFBR-703ASDZ支持10Gb以太网设备设计,最高线路速率达10.313Gbps,最大传输距离300m,可有效传输前端JESD204B接口单元的数据㊂光纤接口单元电路连接如图3所示㊂图3㊀光纤接口单元硬件连接图光模块的收发数据端口RD+㊁RD-㊁TD+㊁TD-内部采用交流耦合方式,与FPGA内部串行收发器相连,走线阻抗需满足差分阻抗100Ω,以保证高速传输的信号完整性㊂其利用输入的高速差分逻辑信号来调节内部发送端的激光驱动器电流㊂FPGA通过TxFAULT和RxLOS信号检测光模块发送与接收链路故障与否,通过TxDIS信号控制光信号关断㊂3㊀FPGA内部逻辑设计FPGA平台选用XilinxKintex系列的XC7K325T芯片,其高性能HPBank适配于DDR缓存接口,内部集成GTX串行收发器,最大线路速率支持12.5Gbps㊂FPGA作为系统的逻辑控制核心,完成JESD204B接口与光纤接口的桥接通信㊂系统上电后,各单元进入初始化阶段,FPGA首先对时钟管理芯片进行配置,确保各单元所需时钟准确无误㊂之后控制JESD204B接口逻辑向外发送同步信号,通知外部采集板卡启动链路同步,待链路建立完成后,控制数据缓存逻辑接收采集数据,同时光纤接口单元与外部设备链接完成后,开始从缓存中读取数据向外传输㊂3.1㊀JESD204B接口逻辑设计接口逻辑构建基于GTX串行收发器与后端通道逻辑组成的数据流逻辑结构,如图4所示㊂在状态控制逻辑的控制下,外部串行数据由GTX串行收发器完成接收,经由通道逻辑部分实现接口协议的相关时序与验证㊂其中,对于GTX串行收发器而言,其内部锁相环需要高精度参考时钟以保证初始化等流程正常运行,其后端的数据通路需要用户时钟作为数据流传输基准㊂通道逻辑作为GTX数据流的承接部分也需要核心时钟确保正确传输㊂为减少时钟输入资源,系统配置通道逻辑数据通路与GTX输出数据通路保持一致,㊀㊀㊀㊀㊀112㊀InstrumentTechniqueandSensorDec.2020㊀图4㊀JESD204B接口逻辑结构从而保证参考时钟与数据流时钟为同一频率,均由串行收发器的MGTREFCLK差分引脚输入的时钟提供㊂时钟分配逻辑结构如图5所示,输入时钟由GTX专用缓冲转换器IBUFDS_GT转换为单端时钟后,一路直接输出至GTX的REFCLK端口,另一路通过全局时钟缓冲BUFG增大扇出能力,然后分别输出至GTX的RX⁃USRCLK端口与通道逻辑的核心时钟[9]㊂图5㊀时钟分配逻辑结构数据流根据JESD204B协议完成同步与传输,流程如图6所示[10]㊂首先拉低同步信号SYNC,通知外部采集板卡开始建立链路并发送/K/码㊂同时拉高GTX的复位信号并选择顺序复位,对GTX进行初始化,以保证内部锁相环与逻辑功能器件状态稳定㊂待复位完成后,对用于串行数据对齐的特殊字符Comma进行检测㊂检测到Comma字符后,对应检测信号拉高,启动串行数据与时钟的对齐,并将对齐后的数据解串解码㊂解串解码后的并行数据,需要进行/K/码检测,当连续无误地检测到4个/K/码后,拉高信号SYNC,协议的码组同步阶段结束㊂初始通道同步阶段开始,外部采集板卡会发送4个包含链路参数的多帧序列,如果序列验证无误,则进入数据传输阶段,链路建立成功;如果验证有误,则回到码组同步阶段,重新初始化GTX以及对齐串行数据㊂3.2㊀光纤接口逻辑设计光纤接口逻辑仍依托于FPGA的底层GTX串行收发器,同时采用Aurora协议进行传输㊂Aurora是一个轻量级链路层协议,在XilinxFPGA中可免费使用,图6㊀协议同步交互流程拓展性强且占用资源成本低,方便用户针对开发需求进行定制,图7是AuroraIP的内部逻辑结构㊂图7㊀AuroraIP内部逻辑结构针对系统的高速数据流设计需求,设计具体采用Aurora64B/66B协议,其相较传统8B/10B编码方式的传输开销更低,线路速率更高,最高可达10.3125Gbps[11]㊂用户数据接口采用通用化总线接口中的AXI4-Stream接口,AXI4-Stream接口面向高速数据流传输,无需考虑地址映射,允许无限制数据突发传输㊂整个接口通过全局逻辑完成通道绑定以及进行通道初始化,由通道逻辑实例化驱动GTX串行收发器,处理数据流的解码和编码,并执行错误检验㊂3.3㊀数据缓存逻辑设计数据缓存单元采用基于XilinxMIGIP的乒乓读写操作控制方案,利用对不同存储区域的读写切换有效降低预充电命令与激活命令之间的时间间隔,并且使用超长突发操作减少发送列寻址和读写命令所造成的时间延时[12],显著地提高数据传输效率㊂本设计中乒乓操作流程如图8所示,将DDR3分为A㊁B两个Bank,当初始化完成之后,缓存逻辑以写满DDR3中的ABank作为开始标志;往BBank写数据至写满后,并自ABank读出数据至读空,组成一个图8㊀DDR3读写乒乓操作流程乒乓操作;同理,自BBank读出数据至读空后,并往A㊀㊀㊀㊀㊀第12期王红亮等:基于FPGA的JESD204B-光纤传输接口转换器设计113㊀㊀Bank写数据至写满,组成另一个乒乓操作,2个操作循环往复;数据传输结束时,缓存逻辑将ABank中数据读出,作为DDR3中数据缓存结束的唯一标志㊂另外,由于只是一块DDR3及一个MIGIP来实现乒乓操作,其中命令地址线是共用的,因此该设计利用分时复用的方法来达到读写数据线和地址线的调用㊂4㊀测试验证为测试系统JESD204B接口单元功能完整性,外部采集板卡选用具有JESD204B接口的ADS54J60EVM采集板,其采样分辨率为16位,采样率设为500Msps,传输编码方式为8B/10B,则测试链路的线路速率为10Gbps㊂由信号源向采集板卡提供2.5MHz的模拟正弦波信号输入,Vivado软件与ILA核抓取FPGA内部逻辑信号,功能测试结果如图9所示㊂可以看出,在GTX复位完成及Comma码检测对齐正确后,通道恢复出正确的K码,并按顺序完成码组同步,初始通道同步,用户数据传输各阶段,采集到稳定平滑的正弦波信号,JESD204B链路建立成功㊂图9㊀JESD204B单元板级逻辑验证时序图其次,测试系统整体链接传输功能㊂为方便数据观测,将采集板卡配置为测试模式,发送连续递增数据序列,并将光纤接口单元与外部高速存储测试记录仪互连㊂序列发送周期为1000个采样点,双通道数据链路发送,FPGA内部数据抓取结果如图10所示,高速存储记录仪记录数据结果如图11所示㊂结果显示,采集板数据可通过系统稳定无误的传输至高速存储记录仪㊂图10㊀递增序列板级逻辑数据抓取结果5㊀结束语本文设计了一种JESD204B-光纤传输接口转换器,实现了JESD204B接口与光纤接口的桥接传输,拓展JESD204B信号的通用性与传输距离,使之能与高速数据分析存储设备对接㊂通过测试,链路传输速率可达10Gbps,且数据传输稳定无误,符合设计要求㊂本文为高速数据采集传输领域的提供了一种解决方图11㊀高速存储记录仪数据记录结果案,对与JESD204B接口自主化的进一步研究具有参考意义㊂参考文献:[1]㊀董伟涛,伊小素,曾华菘,等.基于FPGA的SpaceFibre-USB3.0接口卡设计[J].仪表技术与传感器,2019(8):27-31.[2]㊀田瑞,刘马良.JESD204B协议的高速串行转换器接口[J].西安电子科技大学学报,2017,44(4):69-74.[3]㊀胥京宇.JESD204:更先进的高速转换器至FPGA接口标准[J].世界电子元器件,2013(6):68-69.[4]㊀SPIRIDONS,YANH,EBERHARTH.Alinearityimprovementtechniqueforovercomingsignal⁃dependentinducedswitchingtimemismatchinDAC-Basedtransmitters[C].EuropeanSolid⁃StateCircuitsConference(ESSCIRC),2015:347-347.[5]㊀王红亮,曹京胜.基于JESD204B协议的数据采集接口设计与实现[J].电测与仪表,2018,55(7):87-91.[6]㊀冯克迁.JESD204B协议在Xilinx系列FPGA上的设计与实现[D].成都:电子科技大学,2019.[7]㊀刘祯,王世明,方子穆.光纤通信技术与光纤传输系统的研究[J].中国新通信,2019,21(3):1.[8]㊀罗义军,陈松.基于PCIe接口的高速数据采集系统[J].仪表技术与传感器,2019(5):91-95.[9]㊀Xilinx.LogiCOREIPJESD204v7.2ProductGuide[DB/OL].http://www.xilinx.com,2017.[10]㊀JEDEC.JESD204B.SerialInterfaceforDataConverters[S].3103North10thStreetSuite240SouthArlington:JEDEC,JANUARY2012.[11]㊀Xilinx.LogiCOREIPAurora64B/66Bv12.0ProductGuide[DB/OL].http://www.xilinx.com,2019.[12]㊀项力领,刘智,杨阳,等.单片SDRAM的数据读写乒乓操作设计[J].长春理工大学学报(自然科学版),2013,36(5):140-143.作者简介:王红亮(1978 ),副教授,博士,主要研究方向为测试系统集成㊁目标检测与识别㊁应用软件开发㊁超声成像等㊂E⁃mail:whl_nuc@163.com和爽(1995 ),硕士研究生,主要研究方向为高速数字总线接口技术㊂E⁃mail:1306024217@st.nuc.edu.cn。
8b10b编码转换函数
【原创实用版】
目录
1.8b10b 编码简介
2.8b10b 编码的转换函数
3.8b10b 编码的优点与应用
正文
1.8b10b 编码简介
8b10b 编码是一种数据编码方式,其主要特点是将 8 位的二进制数据编码为 10 位的二进制数据。
这种编码方式可以有效地解决数据传输过程中出现的错误,提高数据传输的可靠性。
2.8b10b 编码的转换函数
在实际应用中,为了实现 8b10b 编码,需要编写相应的转换函数。
一般而言,这种函数可以分为两个部分:一部分是将 8 位的二进制数据转换为 10 位的二进制数据,另一部分是将 10 位的二进制数据还原为
8 位的二进制数据。
具体的转换过程如下:
(1)将 8 位的二进制数据转换为 10 位的二进制数据
这一过程主要是通过增加一些校验位来实现的。
具体而言,可以将 8 位的二进制数据的每一位都转换为一个 10 位的二进制数,然后在这些二进制数的前面添加一些校验位。
这些校验位的选取可以采用一定的算法,例如奇偶校验、CRC 校验等。
(2)将 10 位的二进制数据还原为 8 位的二进制数据
这一过程主要是通过去除一些校验位来实现的。
具体而言,可以将 10 位的二进制数的后两位去掉,这样就得到了 8 位的二进制数据。
3.8b10b 编码的优点与应用
8b10b 编码具有以下优点:
(1)可以有效地检测和纠正数据传输过程中的错误;
(2)具有较高的数据传输效率,因为其只需要增加很少的校验位。
因此,8b10b 编码被广泛应用于数据通信、数据存储等领域。
JESD204B接口协议中的8B10B编码器设计
霍兴华;姚亚峰;贾茜茜;刘建
【期刊名称】《电子器件》
【年(卷),期】2015(038)005
【摘要】基于JESD204B接口协议设计和实现了一种新型8B10B编码器.利用极性信息简化编码码表;利用3B4B与5B6B并行编码提升电路工作频率;利用人为加入一位均衡信息,减少逻辑处理层数.仿真结果表明,电路单元面积1 756 μm2、功耗1.13 mW及最大工作频率342 mHz,相较于传统方法具有一定的改进且完全符合JESD204B协议规范.可应用于基于JESD204B接口协议的高速串行接口的设计中.
【总页数】5页(P1017-1021)
【作者】霍兴华;姚亚峰;贾茜茜;刘建
【作者单位】中国地质大学机械与电子信息学院,武汉430074;中国地质大学机械与电子信息学院,武汉430074;中国地质大学机械与电子信息学院,武汉430074;中国地质大学机械与电子信息学院,武汉430074
【正文语种】中文
【中图分类】TN919.3
【相关文献】
1.基于JESD204B协议的数据采集接口设计与实现 [J], 王红亮;曹京胜
2.JESD204B接口协议中的8B/10B解码器设计 [J], 陈登;姚亚峰;欧阳靖;霍兴华
3.JESD204B接口协议中的加扰电路设计 [J], 霍兴华;姚亚峰;贾茜茜;陈登
4.基于JESD204B协议的高速数据传输接口设计与实现 [J], 张金凤;孟爱权;袁子乔
5.基于JESD204B协议的ADC高速串行接口设计与实现 [J], 梁晨
因版权原因,仅展示原文概要,查看原文内容请购买。
摘要8b/10b编码是把并行8 位数据字节转换成传输使用的10位码。
8B /10B编码保证了1和0的相对平衡组合,而与数据值无关,简化了时钟恢复,降低了接收机成本。
编码提供的其它位还促进了误码检测。
8B /10B 编码提供了构建串行通信使用的一套基础数据和控制字符。
并且采用FIFO进行数据的时钟域切换,将输入数据的8M时钟转换为输出数据的10M 时钟。
实现中采用Verilog HDL描述、ModelSim进行功能仿真、QuartusII进行逻辑综合和适配下载,最后在Altera公司的芯片cyclone器件上实现并完成测试。
在此过程中,根据任务书中的设计分工,完整地建立了测试平台,完成了功能和时序仿真,从而保证了设计的功能与时序的正确性。
关键词Verilog HDL;FPGA;仿真;综合目录引言 (1)1 总体电路结构设计 (2)1.1电路功能与性能 (2)1.2关键功能电路的设计 (3)1.3电路接口 (4)1.4电路功能框图 (5)1.5验证方案 (5)2 模块设计 (6)2.1FIFO输入控制模块设计 (6)2.28B10B数据转化模块设计 (8)3 电路代码仿真 (9)4 电路约束与综合实现 (10)4.1时序约束 (10)4.2引脚锁定约束 (13)4.3电路综合报告 (13)4.4设计实现与下载 (14)结论 (15)参考文献 (16)附录 (16)引言随着可编程器件FPGA/CPLD成本的逐渐降低,以及开发测试技术的日益普及,FPGA/CPLD以其较好的集成度和稳定性、可编程实现与升级的特点,在电子设计领域得到了越来越多的应用[1]。
本设计要实现一个8b10b编码电路,完成数据转,同时实现时钟域的切换,将输入为8bit时钟为8M的数据转化为输出为10bit时钟为10M的数据。
一般情况下实现该功能已经有了现成的芯片可用,这里采用FPGA的方法主要便于进一步的数据处理,将编码长度512个时钟的数据包通过FIFO实现8M到10M的时钟域切换。
教你怎么消除影响JESD204B链路传输的因素教你怎么消除影响JESD204B链路传输的因素JESD204B串行数据链路接口针对支持更高速转换器不断增长的带宽需求而开发。
作为第三代标准,它提供更高的通道速率最大值(每通道高达12.5 Gbps),支持确定延迟和谐波帧时钟。
此外,得益于转换器性能的提升--这些转换器兼容开放市场FPGA 解决方案,并且可扩展--现已能轻松传输大量待处理的数据。
FPGA供应商已讨论了许多年有关千兆串行/解串(SERDES)接口的话题,虽然过去大部分模数转换器(ADC)和数模转换器(DAC)并未配备这类高速串行接口。
FPGA和转换器不与任何通用标准接口,无法利用SERDES的高带宽。
JESD204B兼容型转换器能够解决这个问题,而人们针对这种新功能提出了一些问题。
什么是8b/10b编码,为什么JESD204B接口需使用这种编码?无法确保差分通道上的直流平衡信号不受随机非编码串行数据干扰,因为很有可能会传输大量相反的1或0数据。
通过串行链路传输的随机数据还可能长时间无活动状态,并在相对较长的时间内为全1或全0。
发生这种情况时,未编码串行数据流的直流平衡被隔离,产生两种极端情况中的一种。
此时,若链路上再次传输有效数据,则很有可能发生位错误,因为线路重新开始偏置。
另外,一个长期的问题是电子迁移,因为相对差分对的另一侧,会保持一侧的差分直流电压。
为了克服这些问题,通常在差分串行数据流中(包括JESD204B)采用8b/10b编码方案。
8b/10b编码采用10个数据位,通过查找表方式从源端发送器发送8位初始信息。
这种方式具有25%的固有开销(10b/8b= 1.25),效率较低。
此外,编码允许每个10位符号传输至少3位(但不超过8位)数据。
这样可确保接收器有足够的转换数据来恢复内嵌的时钟信息,而无论底层数据的动态活动状态如何。
使用8b/10b编码时,串行数据流中二进制0和1之间的偏差保持在1以内,因此信号长期保持直流平衡。
JESD204B协议规范-名词术语-中文版翻译一、术语和定义8B / 10B代码:参考文献1第36.2.4节中规定的面向DC平衡八位字节的数据编码。
(参考文献。
IEEE 802.3)ceil(x):大于或等于x的最小整数。
character:由八位字节的8B / 10B编码产生的符号。
注1:虽然所有八位字节都可以编码为数据字符,但某些八位字节也可以编码为控制字符。
注2:根据运行差异,相同的字符可能存在两个不同的代码组。
字符时钟:用于对8B / 10B字符或八位字节进行排序的信号。
时钟发生器:用于为JESD204B系统中的各种器件生成同步,相位对齐器件时钟的电路。
注:时钟发生器电路可以包括一个或多个时钟发生器设备,但它们必须使用公共源时钟。
代码组:一组十位,在表示数据时,传送一个八位字节。
(参考IEEE 802.3)控制接口:用于在转换器设备和逻辑设备之间和/或在设备和更高层应用程序级别之间传递信息(通常是状态和控制信息)的特定于应用程序的接口。
注:控制接口的详细信息超出了本标准描述的串行接口的范围。
转换时钟:用于定义转换器中模拟采样时刻的信号。
注:通常转换时钟与采样时钟相同,但内插DAC或抽取ADC的情况除外,其中转换时钟比采样时钟快。
在所有情况下,转换时钟都来自器件时钟。
转换器:模数转换器(ADC)或数模转换器(DAC)。
注:在本标准中,假设转换器通过单个数字样本流接口。
转换器设备:包含一个或多个转换器的组件包。
注:本标准规定了一个逻辑器件与一个或多个转换器器件之间的相互作用。
数据链路:由两个设备的部分和互连数据电路组成的组件,由一个链接协议控制,使数据能够从数据源传输到数据接收器。
(ANSI T1.523-2001中“终端”替换为“设备”。
)descrambler:扰码器的倒数注:解扰器输出是一个信号,恢复到进入相关扰码器时的状态,前提是没有发生错误。
设备时钟:设备必须从中生成本地时钟的主时钟信号。
根据JESD204B标准设计了高速串行接口发送端控制层电路高性能数据转换器是第五代移动通信基站系统的核心器件,其采样速率不低于3 GS/s、分辨率高于12 bit,因此高速串行接口取代传统接口电路成为必然趋势。
基于JESD204B协议设计了一种应用于3 GS/s 12 bit ADCs的高速串行接口控制层电路。
在保证高速传输的前提下,折中考虑功耗和资源,该电路在传输层采用预分频技术完成组帧;在数据链路层采用极性信息简化编码技术实现8 B/10 B编码。
在Vivado 16.1环境下,采用Xilinx公司的ZC706 FPGA中PHY IP和JESD204B Receiver IP完成控制层接口电路的验证。
实验结果表明数据传输正确,且串化后的传输速度达到7.5 Gb/s,相较于同类型的接口设计,其传输速度提高了50%。
0 引言在第五代移动通信中,高性能A/D、D/A转换器是其发展的核心器件。
因此,随着转换器分辨率和采样速率的提高,多路并行数据传输不仅增加芯片的引脚设计,还增加板级布线和系统互联的硬件开销,直接增加系统成本。
而且当数据速率超过1 Gb/s时,低电压差分信号(Low-V oltage Differential Signaling,LVDS)技术难以满足转换器带宽的需要。
因此,用于数据转换器的高速串行接口正在形成一种趋势,以支持更高速转换器、灵活的时钟以及确定性延迟等日渐严苛的要求[1]。
JESD204B针对高速数据转换器的串行数据接口,不仅可以克服LVDS并行数据传输带来的性能下降,同时最高可支持12.5 Gb/s,比LVDS吞吐量提高10倍,降低I/O需求及封装尺寸,降低静态功耗和节省系统成本。
目前,主流的高速高精度数据转换器芯片均采用JESD204B接口,如ADI近期发布的14 bit 2.6 GS/s双通道模数转换器AD9689和TI推出的12 bit 8 GS/s射频模数采样芯片ADC12J4000[2]等。
• 110•JESD204B中的8B/10B编码器设计重庆邮电大学 模拟集成电路重点实验室 何 基模拟集成电路重点实验室 蒲 杰重庆邮电大学 模拟集成电路重点实验室 孙 伟 杨 鑫本文在深刻理解了JESD204B 接口协议和8B/10B 原理基础上,提出了一种简单、高效的帧时钟域双字节8B/10B 编码方法。
利用极性信息简化码表且在码表上加入不平衡度(Disparity )和输出极性(rd_out )信息,构成新型码表,减少逻辑处理层数。
采用流水线结构对高、低字节进行交叉编码继而在帧时钟域输出双字节的帧。
利用Verilog 语言设计成通用的软核并且在Modelsim 上进行仿真测试,结果表明8B/10B 编码器设计正确,可将该软核嵌入基于JESD204B 接口协议的高速串行接口发送电路中。
引言:数据转换器的速度和分辨率越来越高,处理数据的能力越来越强,这就导致了应用于数据转换器的接口问题,传统的并行接口(CMOS ,LVDS 等)已经不能满足大量且高速的数据传输。
因此,JEDEC 国际组织于2006年提出了JESD204接口标准,现在已发展到JES-D204B 版本,支持多链路多通道传输且单通道最高传输速度为12.5Gbit/s 。
基于JESD204B 接口标准的发送端电路主要包括传输层,数据链路层和物理层。
编码器位于数据链路层,传输层主要进行数据组帧,这里规定一帧中含有两个字节,而本文所设计的双字节8B/10B 编码器就是将帧中高低字节在帧时钟域内交叉编码提高编码速度,编码器的编码速度影响着系统的性能,故设计一个编码高效的编码器至关重要。
8B/10B (Widmer AX.A DC-Balanced ,Partitioned-Block ,8B/10B Transimission Code :IBM Journal of Research and Development ,1983(27):440-451)实现可以采用直接查表法(李宥谋,8B/10B 编码器的设计及实现:电讯技术,2005,45(6):26-32)和纯逻辑方法(舒志兴,黄鲁,杜学亮,一种新的8B/10B 编码器设计:微电子学与计算机,2015(9):181-184)。
查表法电路简单易理解,纯逻辑方法难度大,电路复杂且伴有一些竞争、冒险等潜在风险。
本文进行改进,选择分块查表法结合逻辑的方法实现。
通过分析加入逻辑判定条件,简化码表,从而减小实现的复杂度;同时将帧中高低字节交叉编码提高编码速度。
1 8B/10B编码原理8B/10B 编码由IBM 公司开发,把8位的并行数据编码成10位并行数据,保证了数据流中1和0的相对平衡,达到了直流平衡的目的。
把8bit 中3bit 和5bit 分别编码成10bit 中的4bit 和6bit 。
8bit 中的最高位到最低位分别用H 、G 、F 、E 、D 、C 、B 、A 表示,即高三位H 、G 、F (y )和低五位E 、D 、C 、B 、A (x )。
10bit 中从最高位到最低位用a 、b 、c 、d 、e 、i 、f 、g 、h 、j 表示,即高六位a 、b 、c 、d 、e 、i 和低四位f 、g 、h 、j 。
8bit 分为数据字符D 和控制字符K 两种,如图1所示为8bit 到10bit 的映射关系。
4bit 和6bit 代码中1和0个数差称为不平衡度,有+2、0、-2三种,用Disparity (Alkafi A ,Imran R ,Islam M ,Development of FSM based Running Disparity Controlled 8b/10b Encoder/Decoder with Fast Error Detection Mechanism :2013)表示。
不平衡度为0(Disparity=0)的称为完美平衡代码,不平衡度为+2、-2(Disparity=1)的称为非完美平衡代码。
4bit 代码中有6种完美平衡代码,6bit 代码中有20种完美平衡代码,如果只用完美平衡代码来表示3bit 中的8个编码值和5bit 中的32个编码值是不够的,所以必须引入非完美平衡代码,这也就解释了8B/10B 编码只保证数据流中1和0相对平衡的原因。
图1 8bit映射成10bit这里引入极性偏差RD (Alkafi A ,Imran R ,Islam M ,Devel-opment of FSM based Running Disparity Controlled 8b/10b Encoder/Decoder with Fast Error Detection Mechanism :2013),它表示编码后数据流中Disparity 值,Disparity 值为0或2时称为RD+,Disparity 值为0或-2时称为RD-,代码不平衡时通过交替使用RD+代码和RD-代码来保证数据流中1和0的相对平衡。
8B/10B 编码规定编码后10bit 中的不平衡度只能为+2、0、-2。
2 编码整体方案和框架本文所设计的双字节编码方法将会采用交叉流水线结构,利用编码模块的复制来提升编码速度,代价是面积有所增加。
数据处理分为两个步骤,先进行低字节编码,将其输出的极性偏差和编码值暂存,再根据低字节输出极性偏差来编码高字节并暂存。
分别在两相时钟clk_h ,clk_l (周期相同,相位反相)上升沿处进行高低字节交叉编码,待编码完成后,在帧时钟frame_clk 上升沿处将该帧输出。
虽然第一个帧数据输出会延迟一段时间到来,但是以后每个帧时钟周期都会不间断输出一个帧数据,提升了编码速速。
图2是编码整体结构图,高低字节有各自的处理模块,分别为K 编码模块、5B/6B 编码模块、3B/4B 编码模块,处理模块的复用会提升编码速度。
数据处理第一步:系统上电之后,输入极性偏差rd_in 为负,若判断位K=1,则直接根据rd_in 进行低字节特殊字符编码,若K=0,根据rd_in 进行低字节5B/6B 编码同时计算编码后的输出极性偏差rd6,再根据rd6进行低字节3B/4B 编码同时计算其输出基金项目:模拟集成电路重点实验室基金资助项目(6142802010101)。
• 111•极性偏差rd4,则rd4为该低字节最终输出极性偏差rd_out ;数据处理第二步:过程跟第一步类似,最终将高字节的输出极性偏差rd_out 作为下一个低字节的输入极性偏差rd_in 。
如图3所示为极性偏差RD对字节编码的控制。
图2 编码整体结构图图3 RD对字节编码的控制3 各模块具体实现方法本文8B/10B 编码器主要由四个模块实现,即特殊字符(K )编码模块、5B/6B 编码模块、3B/4B 编码模块、极性(RD )控制模块。
3.1 RD极性控制模块由本文前面部分可知在编码过程中,RD 控制模块扮演着重要角色。
在8B/10B 编码中RD 极性变化逻辑如图4所示。
具体实现过程中可以采用查表法实现,将不平衡度Disparity 和RD 的变化加入到8B/10B 原始码表中,构成新型码表,如表1、表2、表3。
图4 8B/10B编码中RD极性变化3.2 特殊字符(K)编码模块采用新型查找表的方法实现。
8B/10B 编码中特殊字符有12个而在JESD204B 接口协议中只用到了5个,分别为K.28.0、K.28.3、K.28.4、K.28.5、K.28.7。
原始码表中正负极性RD-、RD+下编码结果按位取反,所以可以简化原始码表,只保留RD-列下的码值并且加入不平衡度Disparity 列和输出极性rd_out 列,构成新型码表,如表1所示。
当判断位K 为高电平时,输入字节是控制字符,根据输入极性rd_in 正负进行编码,若极性为负则直接根据表2取值,若极性为正则取表中相应编码的按位取反值,结果暂存于k_tem[9:0]。
编码结果不平衡度Disparity 暂存于k_tem[10],当k_tem[10]=0则输出极性rd_out 与rd_in 保持一致;当k_tem[10]=1则输出极性rd_out 与rd_in 相反。
3.3 5B/6B编码模块采用新型查找表方法实现。
当判断位K 为低电平时表明输入字节为数据字符(D ),数据字符(D )编码分为两部分,先进行5B/6B 编码,再进行3B/4B 编码。
4bit 代码中有6种完美平衡代码,6bit 代码中有20种完美平衡代码,原始码表中绝大部分完美平衡代码在RD-和RD+下是相同的,但要注意3B/4B 码表中Dx.3和5B/6B 码表中D07在RD-和RD+列是按位取反的关系。
其余编码值为非平衡代码,RD-和RD+列按位取反,故可以简化原始码表,并且加入不平衡度Disparity 列和输出极性rd6列,构成新型码表,如表2所示。
表2 5B/6B新型码表D码EDCBA Disparityabcdei(RD-)rd6D0000001100111~rd_in D1000011011101~rd_in D2000101101101~rd_in D3000110110001rd_in ..............................D12011000001101rd_in D13011010101100rd_in D14011100011100rd_in D15011111010111~rd_in ..............................D28111000001110rd_in D29111011101110~rd_in D30111101011110~rd_in D31111111101011~rd_in新型码表中Disparity 代表6bit 码值的不平衡度,rd6为6bit 编码后的输出极性。
按照输入极性为负的情况将编码中间结果暂存于d6b[5:0]中,编码中间结果不平衡度暂存于d6b 中,若编码结果不平衡度为0则记d6b 为0;反之,则记为1。
根据输入极性rd_in 和d6b 进行5B/6B 最终编码。
若前后两者为{0,0}则直接按码表取值;若为{0,1}则取表中对应编码的按位取反值;若为{1,0}则直接按码表取值;若为{1,1}则取表中对应编码的按位取反值。
若d6b 为0,则rd6与rd_in 极性保持• 112•相同,若d6b 为1,则rd6与rd_in 极性相反。
3.4 3B/4B编码模块然后根据rd6极性进行3B/4B 编码,简化原始码表,并且加入不平衡度Disparity 列和输出极性rd4列,构成新型码表,如表3所示。
新型码表中Disparity 代表4bit 码值的不平衡度,rd4(rd_out)为4bit 编码后的输出极性(10bit 编码后的输出极性)。