当前位置:   article > 正文

vivado 时序例外约束_vivado intra-clock paths标红该怎么办

vivado intra-clock paths标红该怎么办

在不改变代码情况下,时序例外约束可以说是vivado中满足时序要求最有效的方法。因为vivado默认所有时钟路径之间都是同步的,会尝试分析和满足所有的路径。通过设置时序例外约束,告诉vivado软件不需要分析和满足某些时序路径(通常异步),vivado就会尽量去分析和满足真正的同步时序路径。不过一定要注意,在进行时序例外约束时,一定要确保做了亚稳态处理,比如打两拍、异步FIFO、双端口RAM等,或者能确定约束路径发生亚稳态也没关系(比如vio)

常用的时序例外约束包括三个命令

set_clock_groups

set_clock_groups -async -group clka -group clkb 

这种方法简单快捷,但是会忽略两个时钟域中所有的时序路径,容易误伤。所以,我们一定要确保在两个时钟域之间做了正确的亚稳态处理,比如同步器、fifo、双端口ram等。这种方式有最高的优先级。

set_false_path

set_false_path -from [get_cells/a/b/c/*_meta*] -to [get_cells a/b/c/*_sync*]

这种方式针对性好,但效率低下,也是会导致xdc文件臃肿。同时也要注意约束优先级。

set_max_delay

set_max_delay 10 -datapath_only -from clka -to clkb

这里的10通常为clka周期,而且通常要加一个-datapath_only。需要留意是否约束过严格,比如clka过快,同时要防止约束冲突,比如set_falth_path比set_max_delay优先级高,会覆盖这条指令。

以上三条指令通常不需要自己输入,打开实现open implementation design后,

report clock interaction ,或者report timing summary ,在需要约束的地方右键即可选择约束方式。

report clock interaction后,选择相应的时序路径做约束。如果红色或者橙色的,基本是异步路径,vivado无法在一定时间内推断出时序关系,可以设置为异步时钟组。如果有共同时钟,但是频率不同,通常可以set_max_delay.

 report timing summay,在intra_clock paths中红色的路径,完全可以设置为set_false_path,不过设置set_clock_groups要慎重。

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号