FPGA的JESD204B接口调试思路

一、M、N、N'、F、K

M:204B接口中转换器的数量,双通道(数据)ADC就是M=2,两个单通道(数据)ADC也是M=2.连接几个204B接口。

N:ADC的分辨率,12bit =ADC,N=12;16bit ADC ,N=16;

N’:以半字节为单位(4bit)的分辨率,如12bit 的ADC ,N’=12bit / 4=3;常用的有14bit、16bit,此时的N’=4,14bit也是用16bit来传输,空出来的2bit使用CS、T补位,CS是控制位,T是结束位;

F:每一帧中的字节数

K:多帧中包含多少个帧

下图就是配置IP过程的F和K参数:

二、关于几个时钟信号的仿真验证

1、drpclk

需要提供频率稳定的时钟信号,用于GT物理层的启动

2、tx_core_clk/rx_core_clk

204B PHY的核时钟,用于产生内部高速接口工作的txusrclk2,频率是线速率的1/40,手册中说明只有Ultra和ULtra+系列的FPGA该时钟可以由txoutclk/rxoutclk提供,而7系列中txoutclk/rxoutclk经过BUFG驱动之后也可以提供给核时钟,经上板验证时钟工作不正常,无法支持ILA的识别

3、sysref

tx与rx的仿真需要提供正确的sysref,才能保证rx与txlink

三、关于IP的AXI4-Lite初始化配置

不进行初始化配置的情况下,仿真IP无法正常工作。但实际板卡测试的条件下,只需要提供稳定的AXI时钟信号和aresetn复位信号即可保证IP完成正常初始化,如果不提供相关逻辑则IP无法正常启动。

四、关于204B链路建立的各个阶段和调试方法

1、代码组同步(Code Group Sunc,CGS)

这个阶段高速的每个lane必须能够接收到K28.5的K码,且这些lane必须是对齐的并且逗号对齐(comma alignment)用于确保对齐

GT物理层的调试端口gt_rxcommadet[(LANES-1):0]将会拉高标志逗号对齐模块检测到有效的逗号(comma)当该信号拉低之后,逗号对齐操作完成,同时调试状态寄存器的bit 0会拉高

代码组同步完成需要每个lane连续接收到4个K28.5的K码,完成后sync信号拉高,调试状态寄存器bit 1拉高。

对于子类0:一旦接收到4个连续的K码后会进入ILA阶段

对于子类1和2 :会一直接收K码直到下一个LMFC开始的边界,之后开始ILA,同时sync拉高用来标志这个阶段的结束

【调试CGS阶段的思路】

(1)GT部分

判断GT是否正常锁定,检查CPLL和QPLL的lock状态,这是导致CGS失败的主要原因

其他GT的调试可参考 Xilinx Answer37181

(2)Lane数据

判断是否有一路缺少数据,判断收发两侧的Lane数量是否设置一致且正常连接

(3)抖动

链路的抖动可能导致无法通过CGS

(4)供电

(5)信号完整性

检查K码接收有误的链路信号完整性,检查GT数据和char_is_k信号,判断具体故障的lane

(6)逗号对齐(Comma Alignment)

不同步的时候204B核会触发逗号对齐,这是因为单个错误的字节可能成为跨越字节边界的逗号,这反过来可能导致GT重新对齐并坚持错误的对齐方式。

结果是所有后续的数据字节都将成为错误。

例如:

2字节的编码后10bit数据,1100110000和1110100010

如果第一个字节有2bit误码变成了1100110011和1110100010。由此第一个字节的后4bit和第二个字节的前6bit会组成0011111010,这是一个没对齐的comma,但是与一个K28.5的编码一致。禁用逗号对齐意味着不会发生这种情况-只有在同步期间才需要执行逗号对齐。

(7)对齐字符

对齐字符替换只应该发生在多帧的最后一个字节,并且只有当数据与前一个多帧的最后一个字节中的数据匹配时才应该发生——这应该总是落在多帧边界上。

如果这种情况发生在数据中的其他位置,RX将放弃同步。

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JESD204B是一种高速数据传输标准,可以通过FPGA实现。实现JESD204B需要一些硬件资源和FPGA编程知识。以下是一些实现JESD204B所需的步骤: 1. 确定FPGA和外部器件的JESD204B接口电路。JESD204B需要使用高速串行收发器和时钟管理器等硬件资源。这些资源需要被分配和配置。 2. 设计和实现FPGAJESD204B传输协议。JESD204B使用了一种特殊的协议来发送和接收数据。该协议需要在FPGA中被实现。 3. 配置FPGA的时钟和数据率。JESD204B使用了一组时钟信号来同步数据传输。FPGA需要正确地配置时钟信号以保证数据传输的正确性。 4. 编写FPGA代码并进行仿真和测试。FPGA代码需要实现JESD204B协议和接口电路。测试可以通过仿真和硬件验证来进行。 需要注意的是,实现JESD204B需要一定的FPGA编程和电路设计知识。同时,JESD204B的实现需要考虑时序和电磁兼容等问题。因此,在进行JESD204BFPGA实现前,需要仔细评估自己的技术能力和实现难度。 ### 回答2: FPGA(现场可编程门阵列)是一种集成电路设备,其可以通过编程来实现特定的功能和操作。JESD204B是一种高速数字接口标准,用于数据传输。那么如何用FPGA实现JESD204B呢? 首先,需要准备一个合适的FPGA芯片,该芯片应该具备足够的计算和逻辑资源,以及高速的连线和数据传输能力。 然后,需要了解JESD204B的工作原理和协议规范。JESD204B使用一组差分信号线来传输数据,其中包括数据线、时钟线、控制线等。这些信号需要通过FPGA的输入输出引脚和内部逻辑电路进行处理和转换。 接下来,可以开始设计FPGA的逻辑电路和信号处理模块。首先,需要设计一个接收模块,用于接收JESD204B传输的数据和时钟信号。这个模块需要解析接收到的数据包,并将数据和时钟信号提取出来。 然后,需要设计一个发送模块,用于将处理好的数据和时钟信号重新编码成JESD204B标准的数据包,并通过输出引脚发送出去。这个模块需要按照JESD204B协议规定的格式和时序要求来生成数据包。 在设计过程中,还需要考虑FPGA内部的时序和时钟分频问题。因为JESD204B是一个高速接口,需要精确的时钟同步和数据传输。因此,需要适当地设置FPGA的时钟频率和分频比例,以满足JESD204B的要求。 最后,需要对FPGA设计进行验证和测试。可以使用模拟器或开发板来验证设计的正确性和性能。通过测试验证后,就可以将设计烧录到实际的FPGA芯片中进行应用和使用了。 综上所述,通过对FPGA的逻辑电路和信号处理模块进行设计和实现,可以实现JESD204B数字接口的功能和操作。这样就可以通过FPGA来实现JESD204B数据传输,实现高速数据传输和处理的需求。 ### 回答3: FPGA(现场可编程门阵列)可以实现JESD204B(SERDES接口标准)。JESD204B是一种高速串行数据传输接口标准,用于将数据从高速ADC(模数转换器)传输到数字处理单元。以下是FPGA实现JESD204B的详细过程。 首先,FPGA需要集成合适的SERDES IP核。SERDES(串行器/解串器)是一种数字电路,用于将串行数据转换为并行数据或者将并行数据转换为串行数据。由于JESD204B使用高速串行数据传输,因此需要SERDES来完成数据的收发。 接下来,在FPGA中创建主机/设备控制器。主机控制器负责配置JESD204B接口、设置时钟和同步数据传输等操作。设备控制器负责处理和解析从ADC传输过来的数据,进行必要的数字信号处理和分析。 然后,在FPGA中配置逻辑电路以配合JESD204B接口。这包括实现数据缓冲区、时钟管理和数据校验等功能。数据缓冲区用于存储从ADC传输过来的数据,以便设备控制器进行处理。时钟管理模块用于生成和同步时钟信号,以确保数据传输的准确性和稳定性。数据校验模块用于检测和纠正传输过程中可能发生的错误。 最后,根据需要进行集成测试和调试。通过验证FPGA实现的JESD204B接口是否能够正常工作,以及数据的正确性和稳定性。在测试过程中,可以使用实际ADC和数字处理单元来模拟实际应用场景,并使用示波器和逻辑分析仪等工具进行调试和分析。 总结而言,FPGA实现JESD204B需要集成SERDES IP核、创建主机/设备控制器、配置逻辑电路和进行集成测试。通过这些步骤,我们可以成功实现JESD204B接口,并实现高速串行数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值