当前位置:网站首页>FPGA - 7系列 FPGA SelectIO -04- 逻辑资源之IDELAY和IDELAYCTRL
FPGA - 7系列 FPGA SelectIO -04- 逻辑资源之IDELAY和IDELAYCTRL
2022-06-21 05:57:00 【Vuko-wxh】
前言
本文节选UG471的第二章,进行整理翻译,用于介绍SelectIO资源内部的IDELAY资源和IDELAYCTRL资源。
输入延迟资源 (IDELAY)简介
每个 I/O 模块都包含一个称为 IDELAYE2 的可编程延迟原语。 IDELAY 可以连接到 ILOGICE2/ISERDESE2 或 ILOGICE3/ISERDESE2 块。
IDELAYE2 是一个 31 抽头、环绕式延迟原语,具有校准的抽头分辨率。它可以应用于组合输入路径、注册输入路径或两者。 它也可以直接从 FPGA 逻辑访问。 IDELAY 允许在单个输入引脚的基础上延迟输入信号。 抽头延迟分辨率通过使用 IDELAYCTRL 参考时钟连续校准,该参考时钟来自 7 系列 FPGA 数据手册中指定的范围。
IDELAYE2 原语
IDELAYE2 原语的结构如下:

端口说明
| Port Name | Direction | Width | Function |
|---|---|---|---|
| C | Input | 1 | 在 VARIABLE、VAR_LOAD 或 VAR_LOAD_PIPE 模式下使用的时钟输入。 |
| REGRST | Input | 1 | 复位流水线寄存器。 仅用于 VAR_LOAD_PIPE 模式。 |
| LD | Input | 1 | 将 IDELAYE2 原语加载到 VARIABLE 模式下的预编程值。 在 VAR_LOAD 模式下,它加载 CNTVALUEIN 的值。 在 VAR_LOAD_PIPE 模式下,它加载当前在流水线寄存器中的值。 |
| CE | Input | 1 | 启用递增/递减功能。 |
| INC | Input | 1 | 增加/减少抽头延迟的数量。 |
| CINVCTRL | Input | 1 | 动态反转时钟 极性。 |
| CNTVALUEIN | Input | 5 | 来自 FPGA 逻辑的计数器值,用于动态加载抽头值。 |
| IDATAIN | Input | 1 | 来自 IBUF 的 IDELAY 数据输入。 |
| DATAIN | Input | 1 | 来自 FPGA 逻辑的 IDELAY 数据输入。 |
| LDPIPEEN | Input | 1 | 使流水线寄存器能够加载数据。 |
| DATAOUT | Output | 1 | 来自两个数据输入端口(IDATAIN 或 DATAIN)之一的延迟数据。 |
| CNTVALUEOUT | Output | 5 | 计数器值进入 FPGA 逻辑以监控抽头值。 |
来自 IOB 的数据输入 - IDATAIN
IDATAIN 输入由其关联的 IOB 驱动。 IDELAY 可以将数据驱动到 ILOGICE2/ISERDESE2 或 ILOGICE3/ISERDESE2 模块,直接进入 FPGA 逻辑,或通过 DATAOUT 端口驱动到两者,延迟由 IDELAY_VALUE 设置。
来自 FPGA 逻辑的数据输入 - DATAIN
DATAIN 输入由提供逻辑可访问延迟线的 FPGA 逻辑直接驱动。 数据通过 DATAOUT 端口驱动回 FPGA 逻辑,延迟由 IDELAY_VALUE 设置。 DATAIN 可以局部反转。 无法将数据驱动到 IOB。
数据输出 - DATAOUT
来自两个数据输入端口的延迟数据。 DATAOUT 可以驱动到 ILOGICE2/ISERDESE2 或 ILOGICE3/ISERDESE2 块,直接到 FPGA 逻辑,或两者兼而有之。
时钟输入 - C
IDELAYE2 原语(REGRST、LD、CE 和 INC)的所有控制输入与时钟输入 同步。 当 IDELAY 配置为 VARIABLE、VAR_LOAD 或 VAR_LOAD_PIPE 模式时,必须将时钟连接到此端口。 C 可以局部反转,并且必须由全局或区域时钟缓冲器提供。 如果 ODELAYE2 原语与 IDELAYE2 原语在同一个 I/O bank 中使用,C 必须为这两个原语使用相同的时钟网络。
模块负载 - LD
在 VARIABLE 模式下,IDELAY 加载端口 LD 加载由 IDELAY_VALUE 属性设置的值。 IDELAY_VALUE 属性的默认值为零。
使用默认值时,LD 端口作为 ILDELAY 的异步复位。
LD 信号为高电平有效信号,与输入时钟信号 同步。
在 VAR_LOAD 模式下,IDELAY 加载端口 LD 加载由 CNTVALUEIN 设置的值。 CNTVALUEIN[4:0] 处的值将是新的抽头值。 在 VAR_LOAD_PIPE 模式下,IDELAY 加载端口 LD 加载流水线寄存器中当前的值。 流水线寄存器中的值将是新的抽头值。
C 引脚极性切换 - CINVCTRL
CINVCTRL 引脚用于动态切换 C 引脚的极性。 这适用于故障不是问题的应用程序。 切换极性时,不要在两个时钟周期内使用 IDELAY 控制引脚。
计数值输入 - CNTVALUEIN
CNTVALUEIN 引脚用于动态切换可加载抽头值。
计数值输出 - CNTVALUEOUT
CNTVALUEOUT 引脚用于报告加载的抽头值。
流水线寄存器复位 - REGRST
当为高电平时,该输入将流水线寄存器复位为全零。
增量/减量信号 - CE、INC
增量/减量由使能信号 (CE) 控制。 此接口仅在 IDELAY 处于 VARIABLE、VAR_LOAD 或 VAR_LOAD_PIPE 模式时可用。
只要 CE 保持高电平,IDELAY 就会在每个时钟 周期递增或递减 TIDELAYRESOLUTION。 INC的状态决定IDELAY是递增还是递减; INC = 1 递增,INC = 0 递减,与时钟 同步。 如果 CE 为低电平,则无论 INC 的状态如何,通过 IDELAY 的延迟都不会改变。
当 CE 变为高电平时,递增/递减操作在下一个时钟正沿开始。 当 CE 变为低电平时,递增/递减操作在下一个时钟正沿停止。
IDELAYE2 原语中的可编程延迟抽头。 当达到最后一个抽头延迟时(抽头 31),随后的增量函数将返回抽头 0。这同样适用于减量函数:从零开始递减移动到抽头 31。
VAR_LOAD_PIPE 模式下的流水线寄存器功能在总线结构设计中非常有用。 可以使用 LDPIPEEN 一次(流水线)加载单个延迟,然后使用 LD 引脚将所有延迟同时更新为新值。
IDELAY 属性
下表总结了 IDELAY 属性。
| Attribute | Value | Default Value | Description |
|---|---|---|---|
| IDELAY_TYPE | String: FIXED, VARIABLE, VAR_LOAD, or VAR_LOAD_PIPE | FIXED | 设置抽头延迟线的类型。 FIXED 延迟设置静态延迟值。 VAR_LOAD 动态加载抽头值。 VARIABLE delay 动态调整延迟值。 VAR_LOAD_PIPE 类似于 VAR_LOAD 模式,能够存储 CNTVALUEIN 值以备将来更新。 |
| DELAY_SRC | String: IDATAIN, DATAIN | IDATAIN | IDATAIN:IDELAY 链输入为 IDATAIN DATAIN:IDELAY 链输入为 DATAIN |
| IDELAY_VALUE | Integer: 0 to 31 | 0 | 指定固定模式下的固定延迟抽头数或可变模式下的初始起始抽头数(输入路径)。 当 IDELAY_TYPE 设置为 VAR_LOAD 或 VAR_LOAD_PIPE 模式时,此值将被忽略并假定为零。 |
| HIGH_PERFORMANCE_MODE | Boolean: FALSE or TRUE | TRUE | 当为 TRUE 时,此属性会减少输出抖动。 Xilinx Power Estimator 工具对功耗差异进行了量化。 |
| SIGNAL_PATTERN | String: DATA, CLOCK | DATA | 使时序分析器考虑数据或时钟路径中适当的延迟链抖动量。 |
| REFCLK_FREQUENCY | Real: 190 to 210, 290 to 310, or 390 to 410 | 200 | 设置时序分析器用于静态时序分析的抽头值(以 MHz 为单位)。 290.0 到 310.0 和 390 到 410 的范围并非在所有速度等级中都可用。 请参阅 7 系列 FPGA 数据表。 |
| CINVCTRL_SEL | Boolean: FALSE or TRUE | FALSE | 启用 CINVCTRL_SEL 管脚以动态切换 C 管脚的极性。 |
| PIPE_SEL | Boolean: FALSE or TRUE | FALSE | 选择流水线模式。 仅当使用 VAR_LOAD_PIPE 操作模式时,该属性才应设置为 TRUE。 |
IDELAY_TYPE 属性
DELAY_TYPE 属性设置使用的延迟类型。
当 IDELAY_TYPE 属性设置为 FIXED 时,抽头延迟值固定为 IDELAY_VALUE 属性设置确定的抽头数。 该值是预设值,配置后无法更改。
当 IDELAY_TYPE 属性设置为 VARIABLE 时,选择可变抽头延迟。
可以通过设置 CE = 1 和 INC = 1 来增加抽头延迟,或者通过设置 CE = 1 和 INC = 0 来减少抽头延迟。增加/减少操作与 C 同步。当 IDELAY_TYPE 属性设置为 VAR_LOAD 或 VAR_LOAD_PIPE 时,可以更改可变抽头延迟并动态加载。 可以通过设置 CE = 1 和 INC = 1 来增加抽头延迟,或者通过设置 CE = 1 和 INC = 0 来减少抽头延迟。递增/递减操作与 C 同步。该模式下的 LD 引脚加载在 CNTVALUEIN 上显示的值 VAR_LOAD 模式或之前在 VAR_LOAD_PIPE 模式下写入流水线寄存器的值。 这允许动态设置抽头值。
IDELAY_VALUE 属性
IDELAY_VALUE 属性指定点击延迟的初始数量。 可能的值是 0 到 31 之间的任何整数。默认值为 0。 当抽头延迟复位(通过置位 LD 引脚)时,抽头延迟的值恢复为 IDELAY_VALUE。 在 VARIABLE 模式下,此属性确定延迟线的初始设置。 在 VAR_LOAD 或 VAR_LOAD_PIPE 模式下,不使用该属性,因此延迟线的初始值始终为零。
HIGH_PERFORMANCE_MODE 属性
当为 TRUE 时,该属性减少输出抖动。 抖动的这种减少导致 IDELAYE2 原语的功耗略有增加。
SIGNAL_PATTERN 属性
时钟和数据信号具有不同的电气特性,因此会在 IDELAY 链中累积不同数量的抖动。 通过设置 SIGNAL_PATTERN 属性,用户启用时序分析器以在计算时序时适当地考虑抖动。 时钟信号本质上是周期性的,没有连续的 1 或 0 的长序列,而数据本质上是随机的,可以有长和短的 1 和 0 序列。
IDELAY 模式
当用作 IDELAY 时,数据输入来自 IBUF 或 FPGA 逻辑,输出到 ILOGICE2/ISERDESE2 或 ILOGICE3/ISERDESE2。 有四种可用的操作模式:
固定延迟模式 (IDELAY_TYPE = FIXED)
在固定延迟模式中,延迟值在配置时预设为属性 IDELAY_VALUE 确定的抽头数。 配置后,此值无法更改。 在此模式下使用时,IDELAYCTRL 原语必须被实例化。
可变延迟模式(IDELAY_TYPE = VARIABLE)
在可变延迟模式下,延迟值可以在配置后通过操纵控制信号 CE 和 INC 来改变。在该模式下使用时,IDELAYCTRL 原语必须被实例化。
下表中描述了在 VARIABLE 模式下使用的控制引脚。
| C | LD | CE | INC | TAP Setting |
|---|---|---|---|---|
| 0 | x | x | x | No Change |
| 1 | 1 | x | x | IDELAY_VALUE |
| 1 | 0 | 0 | x | No Change |
| 1 | 0 | 1 | 1 | Current Value +1 |
| 1 | 0 | 1 | 0 | Current Value –1 |
| 1 | 0 | 0 | 0 | No Change |
可加载可变延迟模式 (IDELAY_TYPE = VAR_LOAD)
除了在该模式下具有与 (IDELAY_TYPE = VARIABLE) 相同的功能外,IDELAY 抽头还可以通过来自 FPGA 逻辑的 5 输入位 CNTVALUEIN< 4:0 > 加载。 当 LD 产生脉冲时,出现在 CNTVALUEIN< 4:0 > 处的值将是新的抽头值。 由于此功能,IDELAY_VALUE 属性被忽略。 在此模式下使用时,IDELAYCTRL 原语必须被实例化。
下表描述了在 VAR_LOAD 模式下使用的控制引脚。
| C | LD | CE | INC | CNTVALUEIN | CNTVALUEOUT | TAP Setting |
|---|---|---|---|---|---|---|
| 0 | x | x | x | x | No Change | No Change |
| 1 | 1 | x | x | CNTVALUEIN | CNTVALUEIN | CNTVALUEIN |
| 1 | 0 | 0 | x | x | No Change | No Change |
| 1 | 0 | 1 | 1 | x | Current Value +1 | Current Value +1 |
| 1 | 0 | 1 | 0 | x | Current Value –1 | Current Value –1 |
| 1 | 0 | 0 | 0 | 0 | No Change | No Change |
IDELAY 时序
下表显示了 IDELAY 开关特性。
| Symbol | Description |
|---|---|
| TIDELAYRESOLUTION | IDELAY抽头分辨率 |
| TICECK/TICKCE | 相对于 C的CE 引脚建立/保持时间 |
| TIINCCK/TICKINC | 相对于 C的INC 引脚建立/保持时间 |
| TIRSTCK/TICKRST | 相对于 C 的 LD 引脚建立/保持时间 |
示例时序
下图显示了 IDELAY(IDELAY_TYPE = VARIABLE、IDELAY_VALUE = 0 和 DELAY_SRC = IDATAIN)时序图。

时钟事件 1
在 C 的上升沿,检测到复位(LD 为高电平),导致输出 DATAOUT 选择抽头 0 作为 31 抽头链的输出。
时钟事件 2
在 C 的上升沿捕获 CE 和 INC 上的脉冲。这表示增量操作。 输出从抽头 0 到抽头 1 无毛刺地变化。
时钟事件 3
CE 和 INC 不再有效,从而完成递增操作。 输出无限期地保持在抽头 1,直到 LD、CE 或 INC 引脚上有进一步的活动。
VAR_LOAD 模式
下图显示了 VAR_LOAD 模式下的 IDELAY 时序图。

时钟事件 0
在 LD 产生脉冲之前,抽头设置和因此 CNTVALUEOUT 处于未知值。
时钟事件 1
在 C 的上升沿,LD 被检测为高电平,导致输出 DATAOUT 具有由 CNTINVALUE 定义的延迟,并将抽头设置更改为抽头 2。更新 CNTVALUEOUT 以表示新的抽头值。
时钟事件 2
在 C 的上升沿捕获 CE 和 INC 上的脉冲。这表示增量操作。 输出从抽头 2 到抽头 3 无毛刺地变化。CNTVALUEOUT 被更新以表示新的抽头值。
时钟事件 3
在 C 的上升沿,LD 被检测为高电平,导致输出 DATAOUT 被 CNTINVALUE 延迟。 CNTVALUEOUT 显示抽头设置的值。
输出将无限期地保持在抽头 10,直到 LD、CE 或 INC 引脚上有进一步的活动。
递增/递减操作后的稳定性
下图显示了响应 INC 和 CE 命令时从抽头 0 变为抽头 1 的延迟线。 显然,当抽头 0 处的数据值与抽头 1 处的数据值不同时,输出必须改变状态。 但是,当抽头 0 和抽头 1 处的数据值相同(例如,两者均为 0 或均为 1)时,从抽头 0 到抽头 1 的转换不会导致输出出现故障或中断。 通过想象接收器数据信号通过 IDELAY 抽头链,可以更好地理解这个概念。 如果抽头 0 和抽头 1 都在接收器数据眼图的中心附近,那么在抽头 0 处采样的数据将与在抽头 1 处采样的数据没有什么不同。在这种情况下,从抽头 0 到抽头 1 的转换不会导致 更改为输出。 为确保这种情况,IDELAY 的递增/递减操作被设计为无毛刺。 同样的解释也适用于图 2-13 中所示的 VAR_LOAD 行为。 然而,VAR_LOAD 确实提供了将延迟更改不止一次的可能性,这可能会导致采样点远离当前眼图中心点。
因此,用户可以在实时用户数据通过 IDELAYE2 原语时实时动态调整 IDELAY 抽头设置。 只要当前延迟线值接近接收数据眼图的中间,这些调整就不会中断实时用户数据。
当在时钟信号路径中使用 IDELAYE2 原语时,无毛刺行为也适用。 调整抽头设置不会导致输出出现毛刺或中断,前提是延迟线值不在接收到的时钟信号中看到的边沿附近。 在这种情况下,可以调整时钟路径中 IDELAYE2 原语的抽头设置,而不会中断任何时钟管理元素或可能在该时钟上运行的状态机。
IDELAYCTRL简介
IDELAYCTRL 概述
如果实例化 IDELAYE2 或 ODELAYE2 原语,则还必须实例化 IDELAYCTRL 模块。 IDELAYCTRL 模块连续校准其区域内的各个延迟抽头 (IDELAY/ODELAY),以减少工艺、电压和温度变化的影响。 IDELAYCTRL 模块使用用户提供的 REFCLK 校准 IDELAY 和 ODELAY。
IDELAYCTRL 原语
下图显示了 IDELAYCTRL 原语。

IDELAYCTRL 端口
RST - 复位
复位输入引脚 (RST) 是高电平有效异步复位。 为确保 IDELAY 和 ODELAY 正常运行,IDELAYCTRL 必须在配置后复位并且 REFCLK 信号稳定。 需要一个复位脉冲宽度 、TIDELAYCTRL_RPW。
REFCLK - 参考时钟
参考时钟 (REFCLK) 为 IDELAYCTRL 提供时间参考,以校准同一区域中的所有 IDELAY 和 ODELAY 模块。 该时钟必须由全局或水平时钟缓冲器(BUFG 或 BUFH)驱动。 REFCLK 必须为 FIDELAYCTRL_REF ± 指定的 ppm 容差 (IDELAYCTRL_REF_PRECISION),以保证指定的 IDELAY 和 ODELAY 分辨率 (TIDELAYRESOLUTION)。 REFCLK 可以直接从用户提供的源或 MMCM 提供,并且必须在全局时钟缓冲器上布线。
RDY - 就绪
就绪 (RDY) 信号指示何时校准特定区域中的 IDELAY 和 ODELAY 模块。 如果 REFCLK 保持高电平或低电平超过一个时钟周期,则 RDY 信号无效。 如果 RDY 置低,则必须复位 IDELAYCTRL 模块。 实现工具允许 RDY 不连接/忽略。 图 2-15 说明了 RDY 和 RST 之间的时序关系。
IDELAYCTRL 时序
下表显示了 IDELAYCTRL 开关特性。
| Symbol | Description |
|---|---|
| F IDELAYCTRL_REF | REFCLK 频率 |
| IDELAYCTRL_REF_PRECISION | REFCLK 精度 |
| T IDELAYCTRLCO_RDY | 重置/启动时间,以准备好 IDELAYCTRL |
如图 2-15 所示,7 系列 FPGA IDELAYCTRL RST 为边沿触发信号。

IDELAYCTRL 位置
IDELAYCTRL 模块存在于每个时钟区域的每个 I/O 列中。 IDELAYCTRL 模块校准其时钟区域内的所有 IDELAYE2 和 ODELAYE2 模块。
图 2-16 说明了 IDELAYCTRL 模块的相对位置。

reference
- UG471
边栏推荐
猜你喜欢

二叉排序树的基本操作

Microbial ecological data analysis - redundancy analysis

After the code is generated by the code generator, the copy is completed, and the module is not displayed on the web page

【JVM】 类加载器(ClassLoader)

应用在电视触摸屏中的十四通道智能触摸芯片

基于注意力的seq2seq模型
![[Prometheus] an optimization record of Prometheus Federation](/img/4a/f026d3b60bb7d2504c7f609cd97ea1.png)
[Prometheus] an optimization record of Prometheus Federation

完善业务细节必填项的确定,根据返回的状态码回显错误信息时,回显的信息与预期不符

C语言课程设计(服装管理系统详解)

Do you want to manually implement CSDN dark mode for web page '?
随机推荐
Excel列数字索引转字符索引
Analog ambient light sensor chip used in backlight display of electronic products
Get string byte size
397-链表(206.反转链表 & 24. 两两交换链表中的节点 & 19. 删除链表的倒数第 N 个结点 & 面试题 02.07. 链表相交 & 142.环形链表II)
【Grafana】Grafana Mimir在海量时间序列指标中的优化
成立时间用了时间插件,但在网页上修改参数的时候,如果未修改时间第一次保存会报错,第二次才行
应用于手机触摸屏中的电容式触摸芯片
【Prometheus】Prometheus联邦的一次优化记录
Connection refused : no futher information : localhost/127.0.0.1:6379
计组必刷题:存储系统(已完结,附详细解析)
How to select a game server with high stability and good defense performance
Connection refused : no futher information : localhost/127.0.0.1:6379
DP backpack summary
numpy.get_include()
Refine business details
The usage of Roca data visualization API 2.0 of Gaode map
Account1 不在 sudoers 文件中。此事将被报告。
Microbial ecological sequencing analysis -- CCA analysis
tf.Operation
Leetcode刷題 ——— (4)字符串中的第一個唯一字符