jesd204b_FPGA实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JESD204B CLASS 1 简介与FPGA的实现
说明:
本文主要分析jesd204b CLASS 1 协议及在FPGA的实现
1、什么是JESD204B协议标准
JESD204B是一个实现高速ADC/DAC数据传输和多ADC/DAC同步的标准。
JESD204标准于2006年初次发布,经过2次修订,最新版本是JESD204B。
最初单条LAN的传输速度从3.125Gbps提升到12.5Gbps,最新标准中最重要的是加入了实现确定延迟的部分。
电气特征部分:定义源端阻抗与负载阻抗为100 Ω±20%;可采用AC/DC偶合方式,具体AC、DC特性可参考JESD204B规范第4章。
2、为什么要重视JESD204B标准
当前ADC/DAC主要采用CMOS和LVDS接口电平。
在数据速率不断提高时CMOS接口电路的瞬态电流会增大,导致更高的功耗。
虽然LVDS的电流和功耗依然相对较为平坦,但接口可支持的最高速度受到了限制。
这是由于驱动器架构以及众多数据线路都必须全部与某个数据时钟同步所导致的。
图1显示一个双通道14位ADC的CMOS、LVDS和CML输出的不同功耗要求。
图1 采样率与驱动方式VS功耗
从图1可知在大约150 –200 MSPS和14位分辨率时,就功耗而言,CML输出驱动器的效率开始占优。
CML的优点是:因为数据的串行化,所以对于给定的分辨率,它需要的输出对数少于LVDS和CMOS驱动器。
JESD204B接口规范所说明的CML驱动器还有一个额外的优势,因为当采样速率提高并提升输出线路速率时,该规范要求降低峰峰值电压水平。
同样,针对给定的转换器分辨率和采样率,所需的引脚数目也大为减少。
表1显示采用200 MSPS转换器的三种不同接口各自的引脚数目,转换器具有各种通道数和位分辨率。
在CMOS和LVDS输出中,数据用作每个通道数据的同步时钟,使用CML输出时,JESD204B 数据传输的最大数据速率为4.0 Gbps。
从该表中可以发现,使用CML驱动器的JESD204B优势十分明显引脚数大为减少。
表1 不同驱动方式VS管脚数
另一方面采用CMOS接口的ADC/DAC器件受限于其接口传输速率,器件只能在较低频率范围内工作。
LVDS相对CMOS接口,其传输速率一般使用也不超过800Mbps,且需要传输随路时钟,对数据传输时序要求严格,对于上Gsps的工作器件通常采用数据分组传输,增加了管脚数,对板卡的布局、时序收敛等带来了非常大的影响。
同时这两种连接方式对要求实现多个高速ADC/DAC同步的系统的设计是非常困难的。
3、常用参数解释
3、JESD204B CLASS 1 关键技术
在子类1中,系统同步指标体现在不同设备间SYSREF和器件时钟间的时序关系,为了满足CALSS1的各项功能要求,除了SYSREF需要满足建立时间和保持时间要求(TSU和THOLD),具体应用对于确定性延迟的容忍程度对于定义SYSREF与器件时钟的应用分布偏斜要求而言至关重要。
图2 同一系统不同器件间SRSREF采样时刻要求
为了满足图2的时序关系,JESD204B的时钟系统要求可以为每一个器件提供各种的SYSREF/DCLK对,且SYSREF和DCLK的时序关系可以调整。
同时SYSREF/DCLK信号对采用相匹配的走线长度,从而保证时序要求。
走线长度匹配限值有SYSREF开关的有效窗口时间确定。
不同SYSREF信号到达器件的偏差尽量小,要保证不同时钟在相同时刻采样到SYSREF有效值。
3、JESD204B帧格式
JESD204B帧格式由3部分组成:
CGS:代码组同步(code group sync):当发送端检测到SYNCb信号为低电平时启动发送8B10B中的K28.5码,本数据段不进行扰码和字节替换操作,接收端检测到最少4个BC字节后可释放SYNCb信号;
ILA:初始化多帧序列(initial lane alignment):该阶段发送连续的4个初始化多帧(多帧是由K个帧组成,字节数为K*F),同样本数据段不进行扰码和字节替换;
图7 ILA初始化多帧序列
初始化多帧以8B10B中的K28.0开始以K28.3结束,其中第二个多帧的第二字节是K28.4关键字用来指示当前多帧在紧跟着K28.4的后续14个字节是参数配置信息。
表2是具体的配置参数定义,字符含义可以参考规范的8.3节。
表2 配置信息字节定义
DATA:数据传输阶段(data transmission),该阶段进行数据传输,规范中要求该阶段的数据需要进行字节替换(注扰码和不扰码的字节替换规则不同),用户可以根据需要确定是否需要对数据进行扰码操作。
字节替换规则:
1、没有使能扰码情况下的字节替换规则
2、使能扰码情况下的字节替换规则
JESD204B规定的扰码、解扰码生成多项式
规范中的扰码和解扰码生成多项式关系,在实际使用中需要根据生成多项式获取并行数据的扰码逻辑关系。
4、JESD204B CLASS 1系统架构
图3 JESD204B class1 多个ADC同步输出到FPGA/ASIC架构
图3 展示的是多个多通道ADC与FPGA或者ASIC的同步采集系统,logic device与ADC各自有独立的工作时钟和独立的sysref信号,系统设计要求工作时钟和sysref信号为同一个时钟源提供。
为了使多个ADC同步logic device要求输出一个相同时序信号的SYNC到每一个ADC器件。
图4 JESD204B class1 FPGA/ASIC 与多个DAC同步架构
图4 展示的是多个多通道DAC与FPGA或者ASIC的同步采集系统,logic device与DAC各自有独立的工作时钟和独立的sysref信号,系统设计要求工作时钟和sysref信号为同一个时钟源提供。
为了方便逻辑器件内部的同步处理,可以将所有的SYNC信号合成一个信号处理。
5、实现JESD204B CLASS 1的逻辑功能框图
图5 FPGA/ASIC内部JESD204B接收数据的逻辑功能框图
高速接口数据先通过serdes接口回复出并行10bits数据后再映射到8bits数据,通常8bits数据域时钟频率较高,我们实际逻辑器件(FPGA)内部使用的频率较低(一般逻辑现在使用的时钟频率大多不超过300MHz),这儿需要将字节数据转换成更宽的32bits数据或者64bits数据位宽,以降低逻辑器件内部工作时钟.数据在转换成更高位宽时没有按照用户的方式进行字节对齐,用户需要手动对齐数据格式.对字节齐后的
JESD204B数据进行多通道(LAN)数据对齐处理,然后根据是否扰码进行字节替换和帧监控处理以及解扰码操作.最后根据JESD204B帧数据复用方式提取出有效数据.
图6 FPGA/ASIC内部JESD204B发送数据的逻辑功能框图
图6是JESD204B发送端在FPGA/ASIC内部实现的逻辑功能框图.整个发送端在SYSREF信号作用下生成帧和多帧时序信号(规范中的帧和多帧是按照8bits即一个字节来定义的,在实际操作过程中由于FPGA内部逻辑采用的时钟频率一般到不到要求如10Gbps的高速接口信号的字节时钟是1GHz,当前如要FPGA内部逻辑运行1G的时钟频率是不可能,那么发送数据端口一般采用32bits或者64bits位宽进行发送数据),在我们实际设计过程中一般多帧的字节数都是按照4的倍数来设计.系统时序信号驱动下当检测到外部SYNC 信号有效时开始输出JESD204B帧头数据BC直到SYNC信号拉高,在下一个多帧计数器信号启始时发送4个初始化多帧,当初始化多帧发送结束,启动发送数据,数据根据配置进行是否扰码操作以及相对应的字节替换操作.最后将处理后的数据通过高速接口编码输出.
6、确定性延迟
确定性延迟即JESD204B CLASS1关键技术的具体体现。
规范中有如下要求:
多帧长度要大于最大的链路延迟。
延迟定义为DelayLINK = ΔTLMFC = TX delay + Lane Delay + RX delay;
时间的延迟在实际操作过程中和规范定义在此有点不同,由于当前serdes发送和接收延迟较大,在多数情况下多帧的字节数又不是很多(如32、64、128等)这种情况下是不满足规范要求的,但是我们一样可以实现确定性延迟设计--这种情况下的延时会超过一个多帧,可能会有2个及以上的多帧延时。
图8是规范中给出的确定延时示例。
图8 规范中定义的确定性延迟示例
从图8中可以看出发送端在LMFC计数器为0时开始启动发送多个Lanes的帧数据,接收端每个Lane有不同延时,反映到接收数据上即每个Lane的数据不是同一时刻通过CDR恢复出来的有时差,但是所有Lane的数据都在当前多帧时间内接收到,在下一个LMFC计数器为0时开始输出数据则可确保多个Lane 的数据是同步输出,且数据从发送到最后接收端输出这段延时是固定的,即为确定性延迟。
实际使用过程中的确定性延时如图9所示
图9 实际情况中的确定性延时
在工程应用中TX和RX端的LMFC可能不是严格对齐的(与整个系统设计相关)存在一个固定的相差。
发送端发送的数据从并行数据编码开始到最后数据输出的Tx.延时可能超过1个多帧周期,在经过线路延时(很小几个字节延时),高速差分信号输入到FPGA管脚到并行数据对齐输出的Rx.延时可能会超过1个多帧周期。
同时每一个LANE之间的数据最后通过接收端解码出来的也存在不同时延差(线路距离差,数据提取相位差等组成),系统中接收端LANE最早于K.a点获取到数据、最迟K.b点获取到数据。
可选的弹性FIFO释放区
间为(1≤Release zone<
K.b
)或者(K.b
≤Release zone≤K),第一种情况将会在第N+1个多帧周期位置输出
对齐后的数据,确定性延迟将会是1
的情形;第二种情况将会在第N个多帧周期位置数据对齐后的数据,
确定性延迟将会是2
的情形。
7 FPGA实现JESD204B CLASS1的功能仿真图
本次设计中:多帧K = 32,帧长F= 1;
高速接口收发送端数据,共8路GTX,每一路的发送数据时钟采用的是相同的1、初始化数据BC段,和初始化的4个多帧数据;
2、发送的数据
3、接收端8路接收数据,GTX接收侧,每一路数据字节和相位是没有对齐的
4、接收数据字节对齐处理
5、接收侧数据相位对齐
6、解扰码和字节替换后的数据
7、发送端数据发送的是8'h12,没有使能扰码,下面是字节替换部分
红色部分是替换后的输出数据,黄色部分是原始数据
8、发送端数据发送的是8'h 12,使能扰码,下面是字节替换部分
红色部分是替换后的输出数据,黄色部分是原始数据
9、发送端数据发送的是递增数据,使能扰码,下面是字节替换部分
红色部分是替换后的输出数据,黄色部分是字节替换的原始数据
10、接收端字节替换和解扰码的数据
黄色是输入数据,红色是字节替换和解扰码的数据
注:高速接口设置的8B10B字节对齐在检测到4个及以上K28.5后需要将对齐方式设置成手动模式0,或者设置成只检测8B10B中逗号的正或者负信号进行对齐。
技术交流:QQ 568327428。