为什么我的set_output_delay约束会导致警告

时间:2014-08-22 14:35:40

标签: constraints fpga intel-fpga

我试图了解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时会收到这些警告。我在设计中对此端口没有其他限制。

1 个答案:

答案 0 :(得分:2)

我发现了背后的原因。

问题是我重新读取SDC文件而没有先重置设计。所有的限制都被重新应用,当然还有警告。

在TimeQuest中重置设计,然后重新读取SDC文件不会引起任何警告。