当前位置: 首页 > news >正文

XILINX JESD204B/C IP的AXI配置

   高速的ADC和DAC大都是JESD204B/C接口,我们需要对其进行AXI参数配置。已在优数科技的FMC-702/FMC-704/FMC-708上应用。

  

    1. 时钟

JESD204B规范(www.jedec.org 提供的 JEDEC® 数据转换器串行接口 (JESD204B) )没有定义任何JESD204B链路的特定串行线速,而是定义从 312.5 Mb/s 到 12.5 Gb/s 的有效线速范围。JESD204B 内核支持 1 Gb/s 至 12.5 Gb/s 的线速,具体取决于所选的器件和速度等级。在大多数情况下,串行线速的选择取决于内核所连接的 ADC/DAC 转换器器件的规格。所需的 operating serial line rate 与 core logic 运行的 clock rate (core clock) 直接相关;串行线速率还控制收发器所需的参考时钟的选择。

JESD204 内核使用 32 位 (4 字节) 数据路径运行。核心时钟频率始终是线速除以 40。例如,对于 6.25 Gbs 的串行线路速率,核心时钟频率为 156.25 MHz。AXI 流式 RX 和 TX 数据接口在此内核时钟频率下运行。

Device Clock (设备时钟) – JESD204B 规范定义了一个设备时钟,该时钟分配给系统中的每个设备。

不同器件(如 DAC/ADC 转换器和 FPGA)的器件时钟可以以不同的速率运行以适应各个器件,但必须在频率上相关,并由公共源生成。有关定义,请参见 JESD204B 规范 [参考文献 1] 第 4.7 和 4.8 段。

• 字节时钟 – 每个设备中的帧和多帧周期派生自设备时钟。帧/多帧周期必须与发送和接收设备匹配。从帧周期可以直接推断出八位字节(字节)时钟速率(每帧 F 八位字节)。

• 串行线路速率 — 所有通道的串行线路速率是通用的,并且每个通道以字节时钟速率的10倍运行。

• Core Clock – JESD204 内核使用 32 位(4 字节)数据路径运行。因此, core logic 的 device clock 以字节 clock rate 的四分之一 (serial line rate 的 1/40) 运行。对于 JESD204 内核,这称为内核时钟。

• 参考时钟 – GTP/GTX/GTH/GTY 串行收发器需要一个稳定、低抖动的参考时钟,该时钟具有与设备和速度等级相关的范围。在某些情况下,同一个源时钟可以同时提供参考时钟和内核时钟

      1. 时钟分配

图 3-1 显示了最通用和灵活的 clocking scheme,其中单独的 refclk 和 glblclk inputs分别用于提供收发器参考时钟和核心时钟。通过这种配置, reference clock 和 core clock 在物理上是独立的 clocks,可以在独立的频率上运行,没有额外的限制。对于所选线速,reference clock 可以在 transceiver 限制内的任何频率运行。内核时钟始终以所需的速率(串行线速的 1/40)运行。

      1. mgt_clk

JESD204 内核使用 32 位 (4 字节) 数据路径运行。核心时钟频率始终是线速除以 40。例如,对于 6.25 Gbs 的串行线路速率,核心时钟频率为 156.25 MHz。AXI 流式 RX 和 TX 数据接口在此内核时钟频率下运行。

      1. sysref_clk

SYSREF 输入。当选择 Subclass 1 模式时,此信号是必需的,并且由 core 使用。JESD204B 指定 SYSREF 信号必须与 core clock 同步生成(有关详细信息,请参阅 Clocking )。此输入应由为 TX 和 RX 生成 SYSREF 的外部器件驱动。

        1. sysref握手配置

通过axis_lite总线配置寄存器0x010,来配置sysref_clk握手模式

Bit16:

1 = 链路重新同步事件后需要 SYSREF 事件:TX 内核传输 K28.5,直到 SYSREF 重新对齐 LMFC;RX core 在 SYSREF 事件重新对齐 LMFC 之前不会置低 SYNC。

0 = 链路重新同步事件不需要 SYSREF 事件:TX 核心在下一个 LMFC 上传输 ILA 序列。RX 内核在下一个 LMFC 上置低 SYNC。

Bit[11:8]:

SYSREF 延迟:为 LMFC 计数器 1111 = 15 core_clk 周期延迟的 SYSREF 重新对齐添加额外的延迟。0000 = 0 core_clk 周期延迟

Bit0:

1 = 内核在所有 SYSREF 事件上重新对齐 LMFC 计数器

0 = 内核仅在复位后检测到的第一个 SYSREF 事件上对齐 LMFC 计数器,并忽略后续 SYSREF 事件

    1. Tx/Rx_Sync

      1. LINE相关描述

每个链路的最大通道数为 8。对于需要 8 个以上通道的接口,只需创建多个内核,每个内核最多 8 个通道即可。对于发送接口,发送内核每个通道的通道 ID 可以使用 Lane ID 寄存器独立编程(参见表 2-31)。对于接收接口,可以从每个通道的 ILA Config Data 3 寄存器的 LID 字段中读取每个通道的通道 ID(见表 2-35)。这种可编程 Lane ID 功能还可用于与多个同步转换器共享单个 JESD 内核。例如,八个单通道转换器可以连接到一个 JESD204 内核。如果这是 transmitter core,则所有通道都可以编程为通道 0

    1. JESD IP 的模式配置寄存器

通过axis_lite总线配置寄存器0x010,来配置JESD204的模式

        1. SYSref握手模式配置(0x010)

Bit16:

1 = 链路重新同步事件后需要 SYSREF 事件:TX 内核传输 K28.5,直到 SYSREF 重新对齐 LMFC;RX core 在 SYSREF 事件重新对齐 LMFC 之前不会置低 SYNC。

0 = 链路重新同步事件不需要 SYSREF 事件:TX 核心在下一个 LMFC 上传输 ILA 序列。RX 内核在下一个 LMFC 上置低 SYNC。

Bit[11:8]:

SYSREF 延迟:为 LMFC 计数器 1111 = 15 core_clk 周期延迟的 SYSREF 重新对齐添加额外的延迟。0000 = 0 core_clk 周期延迟

Bit0:

1 = 内核在所有 SYSREF 事件上重新对齐 LMFC 计数器

0 = 内核仅在复位后检测到的第一个 SYSREF 事件上对齐 LMFC 计数器,并忽略后续 SYSREF 事件

        1. 测试模式(0x018)

        1. 错误状态回读

Bit31 :

检测到通道对齐错误警报 1 = 在相对于 LMFC 的未对齐位置检测到接收到的多帧成帧字符。如果任何通道看到 7 个连续未对齐的对齐字符,则断言对齐错误

Bit30:

SYSREF LMFC 警报(仅限子类 1)1 = 检测到 SYSREF 事件,与当前 LMFC 计数不一致

Bit29:

RX 缓冲区溢出警报 1 = 发生 RX 通道对齐缓冲区溢出

Bit[2:0]:

链路错误状态,通道 0

Bit[2:1] = 收到意外的 K 字符

bit1: = 收到异位错误

bit0:  = 未在表中收到错误

每个位表示由于上次读取寄存器,在通道 0 中收到了 1 个或多个该类型的错误。所有 status bits 在读取 register时自动清除。

        1. 每个多帧的帧数/F码()

        1. 每个多帧的帧数/K码()

        1. LINE配置数

    1. TX_DATA

        1. 配置1 (250Msps-line4)

Line_rate = 250Msps * 16bit * 10b/8b / (4line / 2) = 2.5G

        1. 配置2(250Msps-line2)

    1. TX_Timing

此外,为了支持高达 12.5Gb/s 的通道作,Subclass 1 的器件使用 SYSREF 接口支持确定性延迟。图 3-7 显示了 JESD204B 链路上信号之间的时序关系。对于需要确定性延迟的设计,建议使用子类 1

SYSREF 信号被分配到系统中的所有器件。置位时,JESD204接收器将其内部本地多帧时钟 (LMFC) 与输入的 SYSREF 信号对齐,并置低 SYNC~。LMFC 在多帧中通过八位字节进行计数。LMFC 交叉发生在每个多帧的末尾。FPGA 的器件 clock 是 FPGA logic clock (tx_core_clk 或 rx_core_clk)

  1. JESD_AXI_LITE读写驱动
    1. 写驱动示例

      1. 写驱动添加VIO,实时控制AXI_LITE

    1. 读驱动示例

      1. 读驱动添加VIO,实时获取AXI_LITE的回读数据

http://www.lryc.cn/news/593856.html

相关文章:

  • 【HarmonyOS】ArkUI - 自定义组件和结构重用
  • 基于FPGA的多级流水线加法器verilog实现,包含testbench测试文件
  • Python基础-列表
  • Python趣味算法:借书方案知多少 | 排列组合穷举法详解
  • 06 51单片机之矩阵键盘
  • Laravel 框架NOAUTH Authentication required 错误解决方案-优雅草卓伊凡
  • Autosar RTE实现观测量生成-基于ETAS软件
  • MYSQL:从增删改查到高级查询
  • 技术演进中的开发沉思-40 MFC系列:多线程协作
  • [特殊字符] 小程序 vs 智能体:下一代应用开发,谁主沉浮?
  • 社交圈子系统开源社交源码 / 小程序+H5+APP 多端互通的底层技术分析
  • 分享如何在保证画质的前提下缩小视频体积实用方案
  • 敏捷开发的历史演进:从先驱实践到全域敏捷(1950s-2025)
  • Hiredis 构建 Redis 命令实战指南
  • 音视频学习(四十一):H264帧内压缩技术
  • 【AI】文生图文生视频
  • 吴恩达机器学习笔记(3)—线性代数回顾(可选)
  • 17.TaskExecutor与ResourceManager交互
  • 微服务雪崩防护最佳实践之sentinel
  • ThinkSound:阿里开源首个“会思考”的音频生成模型——从“看图配音”到“听懂画面”的技术跃迁
  • SpringBoot 整合 Langchain4j 实现会话记忆存储深度解析
  • Node.js 与 Java 性能对比
  • 【Kafka】深入理解 Kafka MirrorMaker2 - 实战篇
  • Node.js v20.19.4 (LTS)升级
  • Python模块和包
  • 【PTA数据结构 | C语言版】邻接矩阵表示的图基本操作
  • simulink系列之模型接口表生成及自动连线脚本
  • LeetCode|Day19|14. 最长公共前缀|Python刷题笔记
  • CSS篇——第一章 六十五项关键技能(上篇)
  • Python高级数据类型:集合(Set)