1、set_output_delay的本质
set_output_delay是对模块output信号在模块外部延迟的约束,本质上EDA工具会根据约束调整内部器件(UFF0)的类型,摆放位置以及组合逻辑(C1)以满足约束要求,即EDA工具保证模块DUA的UFF0的Tclk2q+Tc1延时能够满足约束要求。
约束指导原则:尽量照顾设计外部逻辑延时
max 正值尽量大
set_output_delay -max delay_vaule : delay_vaule 数值越大,对自身的约束越严格,对外部的要求越宽松,本质上是对setup time的约束。
set_output_delay -min delay_vaule : delay_vaule 可以是负值,delay_vaule 数值越小,需要自身的延时(Tclk2q+Tc1)越大,本质上是对hold time的约束。delay_vaule 为0 表示要求信号的自身的延时(Tclk2q+Tc1)至少要大于capture(UFF1)的hold time。
2、set_output_delay示意图
图7-23显示了DUA(the design under analysis )的输出路径。触发器UFF0在DUA内部,并向DUA外部的触发器UFF1提供数据。数据由UFF0的Q端输出,经过组合逻辑C1,通过输出端口OUTB输出经过组合逻辑C2到达UFF1。触发器UFF0和触发器UFF1的采样时钟均为CLKQ。不考虑CLKQ时钟偏移,该时钟周期是两个触发器UFF0和UFF1之间采样时间差。针对DUA输出管脚OUTB设置的set_output_delay指的就是相对于时钟CLKQ的Tc2延时加上UFF1的setup time延时。
set Tc2 3.9 set Tsetup 1.1 set_output_delay -clock CLKQ -max [expr Tc2 + Tsetup] [get_ports OUTB]
3、set_output_delay简单案例
如图所示,组合逻辑Tc2的延时范围为0ns~7ns。外部触发器的Tsetup 为0.4ns,Thold为0.2ns,因此外部路径的最大延时为7.4ns (= max Tc2 plus Tsetup = 7 + 0.4),外部路径的最小延时为-0.2ns (= min Tc2 minus Thold = 0 - 0.2)。(PS:12nm~5nm工艺,hold time和setup time仅仅只有几十~十几ps。)
create_clock -period 20 -waveform {0 15} [get_ports CLKQ] set_output_delay -clock CLKQ -min -0.2 [get_ports OUTC] set_output_delay -clock CLKQ -max 7.4 [get_ports OUTC]
审核编辑:刘清
-
EDA工具
+关注
关注
4文章
268浏览量
31981 -
触发器
+关注
关注
14文章
2019浏览量
61397 -
延时器
+关注
关注
1文章
36浏览量
15195 -
Dua
+关注
关注
0文章
3浏览量
7154 -
CLK
+关注
关注
0文章
127浏览量
17247
原文标题:浅谈时序:set_ouput_delay
文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
FPGA设计约束技巧之XDC约束之I/O篇 (上)
![FPGA设计约束技巧之XDC约束之I/O篇 (上)](https://file1.elecfans.com//web2/M00/A6/EA/wKgZomUMQT2ADr0PAAAT7Zpr-WQ849.png)
Xilinx Vivado I/O延迟约束介绍
时序约束中如何精确找到匹配的template?
![<b class='flag-5'>时序</b>约束中如何精确找到匹配的template?](https://file.elecfans.com/web1/M00/E9/E4/o4YBAGBxAtSAEccyAAA1pJkcusI393.png)
STM32上进行Delay延时的方法
![STM32上进行<b class='flag-5'>Delay</b>延时的方法](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
详解FPGA的时序input delay约束
![详解FPGA的<b class='flag-5'>时序</b>input <b class='flag-5'>delay</b>约束](https://file.elecfans.com//web2/M00/42/D5/pYYBAGJ7Gn2AAR-JAANEsUq1p1s327.png)
FPGA的虚拟时钟用于什么地方?
创建输入输出接口时序约束的窍门
![创建输入输出接口<b class='flag-5'>时序</b>约束的窍门](https://file.elecfans.com/web2/M00/1F/6B/pYYBAGGYH_SAOI_fAAPHF3eoQbs200.png)
介绍基本的sdc时序特例
![介绍基本的sdc<b class='flag-5'>时序</b>特例](https://file1.elecfans.com/web2/M00/8B/EC/wKgaomSiegOAXVNzAAA3TM8-wio770.jpg)
怎样查看input/output delay是否生效
![怎样查看input/<b class='flag-5'>output</b> <b class='flag-5'>delay</b>是否生效](https://file1.elecfans.com/web2/M00/C1/3A/wKgZomXdPnOAA_frAABT1-AZf1o916.png)
评论