后端面试--每日一题(037)
写时序约束时,是否需要对所有的IO端口加约束?一个信号端口是否可以被多个时钟约束?应该如何对这种端口设置delay?一个时钟端口是否可以定义多个时钟?应该如何定义这些时钟?
难度:2
1,一般都constrain 了所有IO。
2,肯定可以被多时钟约束,因为scan 什么的。
3,后面的好像要去查具体命令了。
CLOCK ports 不需要加
可以,set_input_delay -add_delay
可以,create_clock -add
CLOCK ports 不需要加
可以,set_input_delay -add_delay
可以,create_clock -add
支持3楼的看法
3楼正确
clk port也不叫不加约束吧? 需要拿来定义时钟周期,latency,trans等
一个信号端口是否可以被多个时钟约束?
好像不能,后面的会覆盖前面的相同端口的约束吧
再设置端口约束中加 -clock 就可以了
会把前面的overwrite掉。
如果非得一个pin/port,既作为signal clock,又作为scan clock,在定义的时候是不是应该有些条件控制?
这个 set_input_delay -add_delay 也不对吧 我试了下,
如下执行的话,delay就是1ns,
set_input_delay 2.000 -clock "clk" [get_ports{din1} ]
set_input_delay 1.000 -clock "clk" [get_ports{din1} ]
如果如下,就是2ns的delay
set_input_delay 2.000 -clock "clk" [get_ports{din1} ]
set_input_delay 1.000 -clock "clk"-add_delay [get_ports {din1} ]
但都还是同一个时钟的啊,问题问的不是同一个端口是否可以被多个时钟约束吗?这里难道要在-clock后面,改时钟的名字?要这样吗?
set_input_delay 2.000 -clock "clk1" [get_ports {din1} ]
-add_delay [get_ports {din1} ]