推荐答案
测试一下
题目
如下图所示,当CLK1为100MHz时,约束set_input_delay -clocks CLK1 -max 5 sig_a,如果CLK1变成50MHz,需要保证的约束效果不变,此时input_delay应该设置为多少?
A 15ns B 20ns C 5ns D 10ns
参考答案与知识点
参考答案
正确答案:A 15ns。
解析:set_input_delay 约束定义的是外部输入信号相对于时钟沿的延迟时间,其数值通常由外部器件的输出延迟决定,本身与时钟周期无关。但题目要求“保证约束效果不变”,此处约束效果指的是内部逻辑的建立时间(setup)裕量不变。在静态时序分析中,输入路径的建立时间检查公式为:Tclk - input_delay - Tdp > Tsetup(不考虑时钟偏斜),其中Tclk为时钟周期,Tdp为内部路径延迟,Tsetup为寄存器建立时间。当CLK1从100MHz(周期10ns)变为50MHz(周期20ns)时,若要保持相同的setup裕量,即Tclk - input_delay 的差值不变。原差值=10ns - 5ns = 5ns。新周期下,需要input_delay = 20ns - 5ns = 15ns。因此需将input_delay调整为15ns才能维持相同的时序裕量。若直接保留5ns,则内部可用时间变为15ns,约束效果实际上放松了(裕量变大),不符合“效果不变”的要求。易错点在于混淆input_delay的物理含义与约束效果的关系,误以为input_delay固定不变。
涉及知识点
- set_input_delay 约束定义
- 建立时间裕量计算
- 时钟周期与input_delay的关系
- 静态时序分析中的setup检查
- 约束效果不变的含义