output delay含义

output delay的含义是数据在时钟沿前什么时候稳定才能被正确采样。
包含Tpd(路径传输延迟)和Tsetup(后级触发器建立时间)

在这里插入图片描述

在进行时序检查计算时,应该将output delay放在require time路径中,并减去output delay值
如下图:数据必须在7.4前稳定(setup),必须在20后0.2ns内稳定(hold)
数据相对于capture clock的关系,在capture clock edge前为正,后为负。
在时序检查时应该减去Tsetup的值,加上Thold的值,因此在output delay中应该减去Thold。
在这里插入图片描述
在这里插入图片描述
The max path delay is 7.4ns(=max Tc2 plus Tsetup = 7+0.4)。The min path delay is -0.2(=min Tc2 minus Thold = 0-0.2).

This depicts that the data must be ready at the output port before the required stable region starts and must remain stable until the end of the stable region.

set_output _delay是你对外部电路的所需时间的估计,你设定好了外部所需的时间,综合工具就为按照你给的条件对内部的电路进行优化。

A hold requirements of 1.5ns maps to a set_output_delay min of -1.5ns.

### set_output_delay的具体含义 `set_output_delay` 命令用于定义FPGA输出端口的数据相对于设计中的参考时钟边沿的延迟。该命令允许设计师精确控制数据何时到达目标位置,从而确保满足外部器件的要求。需要注意的是,此命令设定的延迟并不包括从内部逻辑到封装引脚之间的固有延迟(pin delay),而是指定了td_bd+Tsu_hd-tc_bd的时间差[^2]。 对于正向路径上的应用而言,当数据需要提前于时钟有效边缘达到接收器,则应设置一个正值;反之如果希望推迟数据发送时间使得其更接近下一个周期内的采样时刻,则可配置成负数形式。这种灵活性有助于补偿不同组件间的传播差异以及优化整体性能表现。 ### 使用场景实例展示 假设存在如下情况: - 设计者正在开发一款基于Xilinx FPGA平台的产品; - 需要连接至一片DDR SDRAM存储芯片作为高速缓存单元; - DDR接口协议规定了严格的读写操作定时参数范围来保障稳定工作状态。 在这种情况下,通过合理运用 `set_output_delay` 可以帮助实现上述需求。下面给出一段简单的Vivado TCL代码片段用来说明如何针对特定端口施加相应的约束条件: ```tcl # 定义全局变量保存时钟对象 set clk [get_clocks {sys_clk}] # 对DDR控制器模块下的DQ总线实施输出延时调整 foreach pin_name {"dq[7:0]" "dm"} { set_property PACKAGE_PIN L18 [get_ports $pin_name] # 设置输出延时为3纳秒, 并关联系统时钟源 set_output_delay 3.0 -clock $clk [get_ports $pin_name] } ``` 这段程序首先获取了名为 `sys_clk` 的时钟信号并将其赋值给局部变量 `clk` 。之后遍历所有属于DDR DQ组及其对应的DM标志位成员列表,并分别为它们分配物理管脚编号L18。最后一步则是调用 `set_output_delay` 函数指定这些I/O资源对外部世界呈现出来的行为特性——即每当遇到上升沿触发事件发生之时起算经过大约三亿分之一秒钟后才真正把电平变化传递出去[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值