我试图了解Altera的TimeQuest中的一些警告。 我从.sdc文件中的以下约束开始
set_output_delay -clock clk -max 3 [get_ports {data[*]}]
set_output_delay -clock clk -min 1 [get_ports {data[*]}]
它给了我像
这样的警告set_output_delay has replaced one or more delays on port "data[0]". Please use -add_delay option.
我的理解是,即使指定了最小和最大延迟,第二个约束也会覆盖第一个约束。
所以我试过
set_output_delay -clock clk -max 3 [get_ports {data[*]}]
set_output_delay -clock clk -min 1 [get_ports {data[*]}] -add_delay
这仍然给了我同样的警告。只有我将add_delay
同时应用于:
set_output_delay -clock clk -max 3 [get_ports {data[*]}] -add_delay
set_output_delay -clock clk -min 1 [get_ports {data[*]}] -add_delay
警告消失了。
我不明白为什么当我仅在第二个最小约束上使用add_delay
时会收到这些警告。我在设计中对此端口没有其他限制。
答案 0 :(得分:2)
我发现了背后的原因。
问题是我重新读取SDC文件而没有先重置设计。所有的限制都被重新应用,当然还有警告。
在TimeQuest中重置设计,然后重新读取SDC文件不会引起任何警告。