赞
踩
前言:上一讲完成了基本时钟和生成时钟的约束,确定了整个工程的时钟频率,本次内容要添加合理的 input 和 output delay, 把接口时序调整到一个最佳状态。
本次使用的项目案例中,时钟关系如下:
150Mhz的主时钟,采用DDR双沿采样的方式进行数据传输。
Input delay 需要约束的是发射沿 lunch 沿到数据有效的延迟
计算公式如下:
关于input delay约束,有两种操作方式:
1.输入时钟经过PLL后调整相位。
2.输入数据延时
且:本项目中是DDR双沿采样方式,因此需要双沿(上升沿,下降沿都需要)进行约束设置。
上面得到参数设置: max = 2.1 min =1.9
将上升沿改为下降沿即可,其余操作与上述一致。
时序分析报告如下:
问: 那如何进一步进行优化呢?
答:目前我们是通过输入时钟 PLL 调整相位达到的时序要求,此外,我们还可以进行数据延时(input
delay control)。 需要用到IDELAYE2原语。 IDELAYE2原语有两种配置模式:1.动态(自动调整匹配)2.静态(固定的延迟值)
注意:每单位增加的延时值需要具体查看手册
本项目的F(REF) =200mHZ,则每单位增加78.125ps
对比不同value值的时序报告:
结论:可以看到IDELAY_VALUE增大,建立时间余量减小,保持时间余量增大
首先回顾之前讲的output delay一些关键参数的计算方式:
注意:这里设置的 bskew 和 askew 和 input delay 是不一样的思想。 input delay 是根据上游器件的参数决定的。 而 output delay 是我们设置约束使得我们的时钟不要落到 skew的区间内,这样我们可以通过调整skew 的值使时钟在一个中心位置。
和input delay一样,output delay也包括PLL时钟相移和数据延迟两种。
PLL时钟相移的具体操作和input delay一致,关键在于找对output delay的源时钟。
这里对比一下0相位时钟和90°相位时钟的时序报告
但output delay使用数据延迟的方式需要看具体使用的bank类型,例如下图中ARTIX-7没有output delay的原语,而Kintex UltraScale就有。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。