时序约束中通配符*的使用

电子说

1.2w人已加入

描述

问题描述

编译完某程序后,出现时序问题。

时序问题是FPGA中比较难的一个方面,老实讲,我自己都没有把握说能百分百掌握。

时序问题跟代码风格本身、资源使用情况等都有关系,代码本身占很大部分,比较复杂的逻辑由于代码没写好,导致最终出现时序问题的情况比比皆是,这就需要多积累多练习,后续我还会持续分享时序方面自己的心得。

今天我要分享的是时序约束中通配符*的使用。

在编译完出现时序问题后,分析时序报告,准备使用set_false_path进行约束。

这里要特别注意,set_false_path就是让vivado不去分析有问题的地方,所以使用set_false_path的地方一定不能影响功能,或者已经在程序中处理,但因为跨时钟的原因报错,否则,滥用set_false_path将会掩盖真正的时序问题,使得出问题时更加难以分析。

解决方法

在用set_false_path约束时,极少用到时钟域到时钟域,那样也会掩盖时序问题,一般使用点到点的约束,如:

set_false_path -from [xxx] -to [xxx[2]]

其中xxx[2]中的2就代表了这个信号的第二bit,如果经过分析,这个信号的所有位bit都不影响,则可对整个信号进行set_false_path,为简化写法,可以使用通配符*,如:

set_false_path -from [xxx] -to [xxx[*]]

就代表了到这个信号的所有位bit都被set_false_path。

总结

通配符的使用可以简化约束代码。

只要是跟时序约束相关的,必须慎之又慎。  

      审核编辑:彭静
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分