四、I/O约束理论与实践

四、I/O约束理论与实践本文介绍了在项目中如何通过调整 inputdelay 包括 PLL 相位调整和数据延时 以及 outputdelay 来优化接口时序 重点关注了 DDR 双沿采样方式下的约束设置和时序分析

大家好,欢迎来到IT知识分享网。

前言:上一讲完成了基本时钟和生成时钟的约束,确定了整个工程的时钟频率,本次内容要添加合理的 input 和 output delay, 把接口时序调整到一个最佳状态。

一、 I/O常用约束分类:

IO约束包括引脚分配位置、空闲引脚驱动方式、外部走线延时(InputDelay 、OutputDelay)、上下拉电阻、驱动电流强度等。

1.input delay

set_input_delay :设置管脚输入延迟

set_input_delay -clock clk0 5 [get_ports din]
含义:是din 端口与 clk0 关联,输入延迟约束为 5ns。
在这里插入图片描述

一般分为两类(MAX MIN):

set_input_delay -max -clock sysClk 5.4 [get_ports DIN]
含义:设定最大建立时间为5.4ns,即设计工具将确保数据在时钟边沿到来之前的 5.4 ns 期间保持稳定。
set_input_delay -min -clock sysClk 2.1 [get_ports DIN]
含义:设定最小保持时间为2.1ns,即设计工具将确保数据在时钟边沿到来之后的 2.1 ns 期间继续保持稳定。
在这里插入图片描述


2.output delay

set_output_delay :设置管脚输出延迟

set_output_delay -min -0.5 -clock CLK [get_ports DOUT]
含义:表示设计内部直到DOUT 管脚的延迟必须至少超过0.5ns,才能满足保持时间
的需要。
在这里插入图片描述

一般分为两类(MAX MIN):

set_output_delay -max -clock sysClk 2.4 [get_ports
DOUT] 含义:设定最大建立时间为2.4ns,即设计工具将确保输出信号 DOUT 从时钟边沿起,最多延迟 2.4 ns
才变为有效。

set_output_delay -min -clock sysClk -1.1 [get_ports DOUT]
含义:设定最小保持时间为1.1ns,-1.1 ns 表示数据可能在时钟边沿之前最多 1.1 ns 就变为有效。
在这里插入图片描述

一、项目回顾

本次使用的项目案例中,时钟关系如下:
150Mhz的主时钟,采用DDR双沿采样的方式进行数据传输。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、input delay 约束

1.基础理论

Input delay 需要约束的是发射沿 lunch 沿到数据有效的延迟
在这里插入图片描述在这里插入图片描述
计算公式如下:在这里插入图片描述

2.实操方法一:输入时钟经过PLL后调整相位。

关于input delay约束,有两种操作方式:
1.输入时钟经过PLL后调整相位。
2.输入数据延时
且:本项目中是DDR双沿采样方式,因此需要双沿(上升沿,下降沿都需要)进行约束设置。
上面得到参数设置: max = 2.1 min =1.9

1.上升沿设置:
  • 先设置上升沿的 max delay 用于建立时间分析
    (这里要设置时钟和数据源端口,时钟为 PLL 移相之后的时钟 rx_clk_90.
    在这里插入图片描述
  • 再设置上升沿的 min delay 用于保持时间分析
    (同样这里要设置时钟和数据源端口,时钟为 PLL 移相之后的时钟 rx_clk_90.
    在这里插入图片描述
2.下降沿设置:

将上升沿改为下降沿即可,其余操作与上述一致。

3.查看效果
  • 完成设置后要保存设置文件,自动更新到XDC文件,效果如下:
    这里需要注意:打开 xdc 文件看看是否把之前的管脚约束覆盖了,如果覆盖了需要手动补充上之前的管脚约束
    在这里插入图片描述

时序分析报告如下:
在这里插入图片描述
在这里插入图片描述

  • 需要重新综合工程和布局布线工程,分析时序分析报告。(此处忘记保存图了)
    分析目前的时序特点是:建立时间余量较大,但保持时间余量较小,有时序违例的风险。
    在这里插入图片描述

问: 那如何进一步进行优化呢?

答:目前我们是通过输入时钟 PLL 调整相位达到的时序要求,此外,我们还可以进行数据延时(input
delay control)。
需要用到IDELAYE2原语。 IDELAYE2原语有两种配置模式:1.动态(自动调整匹配)2.静态(固定的延迟值)

3.实操方法二:数据延时

在这里插入图片描述
注意:每单位增加的延时值需要具体查看手册
在这里插入图片描述
本项目的F(REF) =200mHZ,则每单位增加78.125ps
对比不同value值的时序报告:
在这里插入图片描述

结论:可以看到IDELAY_VALUE增大,建立时间余量减小,保持时间余量增大

在这里插入图片描述

二、output delay 约束

1.基础理论

首先回顾之前讲的output delay一些关键参数的计算方式:
在这里插入图片描述

注意:这里设置的 bskew 和 askew 和 input delay 是不一样的思想。 input delay 是根据上游器件的参数决定的。 而 output delay 是我们设置约束使得我们的时钟不要落到 skew的区间内,这样我们可以通过调整skew 的值使时钟在一个中心位置。
在这里插入图片描述

2.实操方法一:输入时钟经过PLL后调整相位。

和input delay一样,output delay也包括PLL时钟相移和数据延迟两种。
PLL时钟相移的具体操作和input delay一致,关键在于找对output delay的源时钟。
这里对比一下0相位时钟和90°相位时钟的时序报告
在这里插入图片描述

3.实操方法二:数据延迟

但output delay使用数据延迟的方式需要看具体使用的bank类型,例如下图中ARTIX-7没有output delay的原语,而Kintex UltraScale就有。
在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/146213.html

(0)
上一篇 2025-04-16 15:10
下一篇 2025-04-16 15:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信