FPGA - 7系列 FPGA内部结构之SelectIO -04- 逻辑资源之IDELAY和IDELAYCTRL(一)

简介: FPGA - 7系列 FPGA内部结构之SelectIO -04- 逻辑资源之IDELAY和IDELAYCTRL

前言


本文节选UG471的第二章,进行整理翻译,用于介绍SelectIO资源内部的IDELAY资源和IDELAYCTRL资源。

输入延迟资源 (IDELAY)简介


每个 I/O 模块都包含一个称为 IDELAYE2 的可编程延迟原语。 IDELAY 可以连接到 ILOGICE2/ISERDESE2 或 ILOGICE3/ISERDESE2 块。

IDELAYE2 是一个 31 抽头、环绕式延迟原语,具有校准的抽头分辨率。它可以应用于组合输入路径、注册输入路径或两者。 它也可以直接从 FPGA 逻辑访问。 IDELAY 允许在单个输入引脚的基础上延迟输入信号。 抽头延迟分辨率通过使用 IDELAYCTRL 参考时钟连续校准,该参考时钟来自 7 系列 FPGA 数据手册中指定的范围。

IDELAYE2 原语


IDELAYE2 原语的结构如下:

image.png

端口说明


image.png

来自 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 属性。

image.png

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 模式下使用的控制引脚。

image.png

可加载可变延迟模式 (IDELAY_TYPE = VAR_LOAD)

除了在该模式下具有与 (IDELAY_TYPE = VARIABLE) 相同的功能外,IDELAY 抽头还可以通过来自 FPGA 逻辑的 5 输入位CNTVALUEIN< 4:0 > 加载。 当 LD 产生脉冲时,出现在 CNTVALUEIN< 4:0 > 处的值将是新的抽头值。 由于此功能,IDELAY_VALUE 属性被忽略。 在此模式下使用时,IDELAYCTRL 原语必须被实例化。

下表描述了在 VAR_LOAD 模式下使用的控制引脚。

image.png

IDELAY 时序


下表显示了 IDELAY 开关特性。

image.png

示例时序


下图显示了 IDELAY(IDELAY_TYPE = VARIABLE、IDELAY_VALUE = 0 和 DELAY_SRC = IDATAIN)时序图。

image.png

时钟事件 1

在 C 的上升沿,检测到复位(LD 为高电平),导致输出 DATAOUT 选择抽头 0 作为 31 抽头链的输出。

时钟事件 2

在 C 的上升沿捕获 CE 和 INC 上的脉冲。这表示增量操作。 输出从抽头 0 到抽头 1 无毛刺地变化。

时钟事件 3

CE 和 INC 不再有效,从而完成递增操作。 输出无限期地保持在抽头 1,直到 LD、CE 或 INC 引脚上有进一步的活动。

目录
相关文章
|
2月前
|
移动开发 开发框架 .NET
【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)
【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)
55 0
|
7月前
|
异构计算
fpga内嵌逻辑分析仪使用方法 1
fpga内嵌逻辑分析仪使用方法
48 0
|
5月前
|
异构计算
【FPGA】基本实验步骤演示 | Verilog编码 | 运行合成 | 设备/引脚分配 | 综合/实施 | 设备配置 | 以最简单的逻辑非为例
【FPGA】基本实验步骤演示 | Verilog编码 | 运行合成 | 设备/引脚分配 | 综合/实施 | 设备配置 | 以最简单的逻辑非为例
49 0
|
7月前
|
异构计算
fpga内嵌逻辑分析仪使用方法 2
fpga内嵌逻辑分析仪使用方法
64 0
|
异构计算
FPGA新起点V1开发板(一)——资源介绍(顺便说下无人机的进度状况)
FPGA新起点V1开发板(一)——资源介绍(顺便说下无人机的进度状况)
156 0
FPGA新起点V1开发板(一)——资源介绍(顺便说下无人机的进度状况)
|
算法 测试技术 异构计算
FPGA:逻辑功能的仿真与验证
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
97 0
FPGA:逻辑功能的仿真与验证
|
存储 异构计算
FPGA - 7系列 FPGA内部结构之CLB -01- CLB资源概述
本文节选UG474进行整理翻译,用于对CLB进行简单介绍,同时简单介绍了下针对逻辑资源设计的推荐流程。
299 0
FPGA - 7系列 FPGA内部结构之CLB -01- CLB资源概述
|
存储 Java 异构计算
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述(二)
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述
539 0
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述(二)
|
存储 数据可视化 芯片
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述(一)
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述
392 0
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述(一)
|
存储 异构计算
FPGA - 7系列 FPGA内部结构之SelectIO -09- 高级逻辑资源之IO_FIFO
FPGA - 7系列 FPGA内部结构之SelectIO -09- 高级逻辑资源之IO_FIFO
242 0
FPGA - 7系列 FPGA内部结构之SelectIO -09- 高级逻辑资源之IO_FIFO

热门文章

最新文章