求教DC综合时设置input_delay与output_delay问题!
时间:10-02
整理:3721RD
点击:
如题,我的理解是设置模块的input_delay即是当clk信号到来后延迟要延迟input_delay个时间单位才能到达模块的输入端,在做时序分析的时候,这个路径的延迟要加上这个input_delay,同理output_delay即是该模块的输出时序要留出output_delay个时间单位来留给下游模块的输入组合逻辑,时序分析的时候,路径延迟也要加上这个delay值,那么如果一个设计的输入和输出都由reg来锁定,那么是不是就不需要设置input_delay和output_delay了?(新人自学中,望有经验的人给予解答)
input_delay要设,因为输入数据不会早于时钟沿前一个周期,这个约束要告诉工具。
除非前级模块都是寄存器输出,后级模块一进来都先用寄存器直接采,那就不用设。但这种设计太浪费延时了,一般不会出现。
问题1: 什么叫输入数据不会早于时钟沿前一个周期?如果是reg输入,那么input_delay怎么设置? 问题2:设计不是一般都是输入端有组合逻辑,输出都是reg输出,那么这样的话我觉得input_delay就是0啊,output_delay只要不大于clock的时钟周期,多少都不影响设计啊。
就是设成input delay 0。如果你不设,那它有可能帮你自动设成0,也有可能完全不计算input路径,看工具和变量设置了。
不计算和设置成0不是一样的效果啊?
比如时钟周期是10ns,设0的话输入寄存器前的逻辑延时就最多10ns,否则Slack为负。不设的话,这里延时多大工具不管。
谢谢,明白啦,总结一下就是不管什么情况,input_delay和output_delay都是要设置的喽,后级直接reg输入的时候,前级的output_delay设置为0,前级的为reg输出时,后级的input_delay设置为0.
input delay ,约束input port 到register 路径的延时,output delay 约束register 到output port path 的延时
