FPGA工程师快速入门JESD204b(一)——高速接口基础知识储备

       下期预告​​:fpga工程师快速入门jesd204b协议-CSDN博客https://blog.csdn.net/zh9468y/article/details/147114117?spm=1011.2415.3001.5331将详解如何根据ADC手册计算LMFS参数,并通过Vivado工程演示链路建立全过程。

         📘本文为JESD204B系列教程首篇,专为FPGA工程师和电子工程专业学生打造。全文采用​​"先底层后协议"​​的递进式教学法,帮助读者在接触协议前建立扎实的基础认知。       

        在学习JESD204B协议前,你需要具备一些高速基础的知识和概念。高数接口的初学者目前可以暂时了解,不需要深入,否则面对庞大的高数接口知识系统,直接劝退。

 1️⃣SerDes:高速传输的基石​

        JESD204B依赖于FPGA内置的高速串行收发器(SerDes),理解其工作原理是实现JESD204B的基础。所谓的GTP/GTX/GTH,其实都是xilinx给SerDes的另一种命名,不同芯片使用的SerDes可能有一些差异,所以有了GTP/GTX/GTH。

1.1 什么是SerDes?

SerDes(Serializer/Deserializer)是高速串行收发器的核心模块,承担着​​"并行转串行"发送​​与​​"串行转并行"接收​​的关键任务。以Xilinx FPGA为例,不同芯片系列的SerDes命名不同:

芯片系列SerDes型号典型速率范围
Artix-7GTP0.5-6.6 Gbps
Kintex-7GTX0.5-12.5 Gbps
UltraScaleGTH0.5-16.3 Gbps
SERDES的通用框图

1.2 发送路径(TX)关键技术

  • ​并行转串行(PISO)​​:将16位并行数据压缩为串行流。
    示例:125MHz时钟下,16位并行数据 → 2Gbps串行速率。
  • ​8b/10b编码​​:每8位有效数据插入2位冗余位。8b/10b编码下,数据率为线速率的80%
    作用:平衡直流分量(0/1数量均衡)、嵌入时钟信息。
  • ​预加重技术​​:提升高频信号幅度,补偿传输损耗,增加眼图开口度,眼图开口度表示信号质量。

1.3 接收路径(RX)关键技术

  • ​自适应均衡器​​:自动调整滤波参数,对抗信号失真
    常见类型:CTLE(连续时间线性均衡)、DFE(判决反馈均衡)
  • ​时钟数据恢复(CDR)​​:从信号跳变沿提取时钟
    精度要求:抖动通常<0.3 UI(Unit Interval)
  • ​通道绑定​​:多通道数据由于电路走线不同等原因,不一定同时到达,需要相位对齐。相位对其使用对齐标记和缓冲机制实现同步。其中JESD204B协议在此基础上实现更高级别同步

1.4 SerDes的时钟架构

        GT的收发器的时钟是非常灵活的,如下图GTX时钟架构:每个GTX的每个BANK有一个QUAD,有4个CHNNEL,也就是4个收发器。每个收发器有一个单独的PLL(锁相环)称为CPLL,这四个CHNNEL也组合为了一个QUAD,一个QUAD里面的4个CHNNEL有一个公共的PLL称为QLL。

        每个PLL的参考时钟可以来自用户提供的差分时钟(有两路),但是需要经过IBFDS_GTE2原语(不能使用通用的IOBFDS,区别在于IBUFDS_GTE2用于高速传输的参考时钟输入,IBUFDS用于低速传输的参考时钟输入)转单端,参考时钟也可以来自相邻的其他QUAD (南北各自有两路)。全部就是6个PLL的参考时钟来源可以选择,当然,也可以把本QUAD的时钟共享给相邻的其他QUAD。

         这些PLL产生的时钟就是串行化以后的数据的时钟频率,这个频率需要我们在JESD204 PHY 的IP里面配置,这个也就是为什么在第二篇里面会要求计算LMFS计算线速率,就是这个原因。

       这5个PLL的控制非常灵活,根据不同的配置和时钟路由组合,可以用于每个收发器(每lane、每差分对,说的都是一个意思) 产生不同线速率,Rx和Tx也可以使用不同的时钟速率。
的通信,一对serdes的Rx和Tx也可以不同的线速率。

        QPLL与CPLL核心差异对比​​:

特性QPLLCPLL
​覆盖范围​整个Quad内4个通道共享单个通道专用
​时钟生成能力​支持更高线速率(如12.5Gbps)大于6G时选择适合中低速(如3-10Gbps)
​相位噪声​更低(典型值0.3ps RMS)略高(典型值0.5ps RMS)
​功耗​约200mW(全Quad共享)约150mW/通道(4通道共600mW)
​时钟同步性​保证Quad内各个通道严格同步通道间可能存在微小相位差

 为什么要高这么灵活?目的是为了适应多种场景。因为有时候4个通道用途和速度不一定相同,有时候还会时候用比如8个同速收发器(如PCIe x8),就需要两个相邻的QUAD的参考时钟都需要同源。

场景1:多通道同速率传输(JESD204B经典场景)

  • ​案例​​:4通道ADC@6.25Gbps
  • ​方案​​:启用QPLL
  • ​优势​​:
    • 节省75%的PLL功耗(200mW vs 4×150mW)
    • 消除通道间时钟偏移

场景2:混合速率传输(多协议共存)

  • ​案例​​:2通道10G以太网 + 1通道PCIe Gen2
  • ​方案​​:启用CPLL
  • ​优势​​:
    • 允许各通道独立设置线速率
    • 避免QPLL频率限制冲突

高速接口设计里面,有很多的ip(PCIe/JESD204/以太网等)都有个"Shared Logic"选项:

这两个选项的区别是什么?​

选项适用场景硬件影响典型应用案例
​Include Shared Logic in core​单一IP核控制全局资源某些资源内嵌于IP核,但是可能会把资源接口引出,允许其他模块共享。多通道同步系统(如8通道ADC)
​Include Shared Logic in example design​多IP核独立工作ip内不要这些资源,需要外部资源提供接口给ip,需手动分配。通常是使用其他内嵌了共享资源的ip所引出来的接口。混合速率系统(JESD+以太网)

        配置是可以看到有哪些资源属于共享资源:

        这样就明白了,其实就是有些设计需要“混合速率传输(多协议共存)”。

        更多使用方法参考:Vivado IP中的Shared Logic到底是干嘛的?_vivado share logic-CSDN博客

DRP技术(了解):        

        可以看到,这些高速接口虽然都依赖于硬件,但是非常灵活,可以随意的根据需要来设置。但是是不是配置好了就没法变了?

        实际上,DRP即动态可重配置处理器,能够动态的调整硬件运算单元的逻辑电路,简单来说就是能够在运行时动态地重新配置部分收发器的设置,而不需要重新编程整个FPGA。这使系统可以灵活地调整收发器的参数以适应不同的通信需求。

2️⃣时钟体系:协议同步的生命线​

2.1 三大核心时钟

时钟类型作用典型来源
Device Clock控制ADC/DAC采样以及fpga的时钟,理解为并行数据的时钟,慢。外部时钟芯片
Reference ClockSerDes 的QPLL/CPLL的参考时钟,用于PLL生成线速率(线速率理解为串化后的数据时钟,快)。板载低抖动晶振
LMFC协议层的逻辑同步时钟Device Clock分频生成

ip的时钟介绍

         refclk_n/p:这是CPLL或者QPLL的参考时钟Reference Clock,时钟频率在ip配置时设置。复位,sysref同步信号在该时钟域完成。

        axi_aclk:这是ip寄存器配置接口的axi时钟,ip配置时默认100Mhz。

        tx_core_clk / rx_core_clk:这是ip输出的时钟,是用户传输(并行L*32bit)数据的时钟。

计算公式为:0.8Lanerate  / (32)        Lanerate:线速率,0.8:8b/10b编码,32:每次接收每lane的bit数(解码后)。

2.2 同步机制详解

        本节内容为ip自动化完成,了解即可。便可理解其完成“确定性延时”的原理。

2.2.1 SYSREF触发同步

        (该步骤只有子类1才有,子类0和子类2似乎没有。)

    在子类1中,SYSREF用于校准Device Clock与LMFC的相位关系,确保确定性延迟。时序要求:

        SYSREF信号是芯片时钟提供的,Tx和Rx分别捕获到这个被拉高以后,Tx和Rx各自的帧计数器开始计数(LMFS),计数范围是0~[(K*F)-1],计数到最大值时,LMFS经有一个标志,标志着这一个多帧完成了。

        SYSREF需要在tx_aresetn或tx_aresetn拉高以后,才有效,可以是单个脉冲(宽度大于一个deviceclock时钟),也可以是多周期脉冲,但是周期最好是多帧时钟的整数倍。一般配置时钟芯片输出的SYSREF信号为周期信号,大于4倍帧时钟周期。

2.2.2 CGS组码同步

        该阶段将完成每条lane串并转换后内部的bit对齐

  1. Rx端拉低SYNC~信号。
  2. Tx接收到SYNC~拉低后,移植发送K28.5(0xBC)。
  3. Rx接收并进行bit对齐,每个lane都连续收到4个K28.5时,说明每个lane分别完成bit对齐。拉高SYNC~。
  4. 对齐完成后进行ILAS,否者继续等待4个K28.5。
2.2.3 ILAS组码同步

        该阶段将完成每条lane之间的同步,Tx通过发送4个多帧来确保Rx对齐所有链路的lanes

  1. 多帧1:以/R/字符[K28.0]开始,以/A/字符[K28.3]结束。

  2. 多帧2:以/R/字符开始,紧跟/Q/[K28.4]字符,然后紧跟14个字节的链接配置参数,最后以/A/字符结束。14个字节的链接配置参数可以查器件手册:

  3. 多帧3:和多帧1结构一致

  4. 多帧4:和多帧1结构一致

  5. Rx确认多通道对齐,进入数据传输状态,就开始传输用户的数据了。

3️⃣8b/10b编码:链路层的守护者​

3.1 编码目的

        1、将8位数据转换为10位代码,目标是实现直流平衡和足够的比特转换,串行数据中连续出现的1/0达到一个平衡均匀的状态,当高速串行流动逻辑1或逻辑0有多个位没有产生变化时,信号经过交流耦合(高通滤波器)以后就会因为电压位阶段关系而造成信号错误。

不同信号经过交流耦合

       2、提供特殊控制字符(K码)用于链路管理

3.2 编码过程拆解

原始数据:8bit → 拆分3b+5b → 分别查表编码为4b+6b →调换顺序为6b+4b→组合为10b

具体的编码可以不用学会,ip已经自动化了,除非你要手搓ip。编码过程可以了解:SERDES关键技术总结-腾讯云开发者社区-腾讯云

8b/10b编码流程示意图

3.3 关键控制字符

K字符编码值用途
K:K28.50xBC通道对齐、逗号检测
R:K28.00x1C帧起始/结束标记
A:K28.30x7C多帧边界标识jesd
Q:K28.40x9C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值