离散延迟
- 更新时间2023-02-17
- 阅读时长4分钟
离散延迟
将输入值延迟指定的值。 节点支持整数标量值和数组值、定点和布尔数据类型、簇和簇数组。
输入/输出

D
待延迟的数据。
注:
D的数据类型未匹配至源。

n-1
内部寄存器到达Q输出的索引。n-1的值位于0到n-1之间,n是项选项卡上最大延迟的值。

初始值
该节点使用的内部寄存器的初始值的设置。

启用
指示该节点是否忽略D的输入的布尔值。
| TRUE | 该节点将所有值移位至下一个内部寄存器,并将D的值传递至第一个内部寄存器。 |
| FALSE | 该节点忽略D且不移位现有的值,表示内部寄存器将保留上一个时钟周期的值。 |
Default value: TRUE

Q
D的延迟值。Q返回通过n-1输入接线端指定的寄存器的值。
最大延迟
指定该函数可延迟D的最大时钟周期数,该周期数相应可用于指定该节点使用的内部寄存器数。该值必须属于16至512周期(包括16和512)。n-1输入可用于指定传递至Q输出的寄存器。
Examples
如设置最大延迟为20个时钟周期,节点也会创建20个寄存器以用于存储值。连线至D的值在连续的时钟周期内从寄存器0移动至寄存器19。但当用户使用n-1指定具体内部寄存器的编号时,Q返回该寄存器的值,而不是上一个寄存器的值。例如,已经过17个时钟周期。在第1个时钟周期发送至D的值位于寄存器16中。如在第18个时钟周期连线16至n–1,节点将返回该值。该值被延迟了17个时钟周期,而不是20。选择离散延迟或反馈节点
离散延迟和反馈节点有所类似,但具有着关键性的区别。下表提供了在两个节点间进行选择的建议。
| 反馈节点 | 离散延迟 | 建议 | |
|---|---|---|---|
| 设计和功能 | 设计用于
|
用于将输入信号延迟固定数量或可变数量的时钟周期。 | 使用代表用户正在编程的条件分支的节点。 |
| 初始条件 | 在下列情况下初始化内部寄存器为自定义值:
|
|
离散延迟通过移位寄存器查找表(SRL),而不是触发器执行延时。SRL可在单个查找表(LUT)中包含多个延迟,从而比触发方式节省更多的FPGA资源。 |
| 定义初始值的方式 | 在程序框图上,连线值至初始化值输入端来定义初始值。 | 使用初始化值输入端来定义初始值。 | 具有初始化VI或需要延迟固定大小的数组的情况下,使用离散延迟。 |
| 动态延时的支持 | 否 | 是 | 需要动态延时时使用离散延迟。 |
| 程序框图上代表反馈的支持 | 是 | 否 | 程序框图上需要表示反馈时可使用“反馈”节点 |
节点执行延迟对性能的影响
该节点通过移位寄存器查找表(SRL)而不是触发器执行延时。SRL可在单个查找表(LUT)中包含多个延迟,从而比触发方式节省更多的FPGA资源。
对仿真的性能影响
当配合下载、停止和运行FPGA VI使用时,该节点将显著增加仿真运行时间。