问题描述
编译完某程序后,出现时序问题。
时序问题是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。
总结
通配符的使用可以简化约束代码。
只要是跟时序约束相关的,必须慎之又慎。
-
FPGA
+关注
关注
1603文章
21326浏览量
593234 -
代码
+关注
关注
30文章
4556浏览量
66784 -
时序约束
+关注
关注
1文章
112浏览量
13351
原文标题:时序约束中通配符的使用
文章出处:【微信号:FPGA通信小白成长之路,微信公众号:FPGA通信小白成长之路】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论