vivado 时序例外约束

在不改变代码情况下,时序例外约束可以说是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要慎重。

 

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值