首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

读懂用好TimingReport(3)

读懂用好TimingReport(3)

举例来说,在设计过程中我们约束了一条或数条多周期约束,不同于UCF必须读入约束后重跑设计,我们可以直接在Tcl Console中输入这条XDC,无需重跑设计,直接用report_timing来验证。在随之显示的时序报告Summary部分可以看到Timing Exception后列出这条路径被设置了怎样的时序例外约束(注意,不加额外option时,以下两条命令都仅针对setup check )。

    单纯的一条多周期约束没有什么特别,但是如果使用了通配符后的时序例外有重叠的情况下,Vivado会根据优先级来决定对某条路径应用怎样的约束。当设计较大,XDC较多时,一边设置XDC一边用report_timing来验证就变得尤其重要。
         另外,仅仅输入report_timing而不加任何option,Vivado便会报告出时序违例最严重的那条路径,方便我们快速了解当前设计的WNS,找到最差的那条路径。在验证I/O约束时也常常用到report_timing,只要指定-from 某个输入或是-to某个输出便可以快速验证当前设计在接口上的时序。
get_timing_paths
         除了上述两个大家比较熟悉的时序报告命令,Vivado中还提供一个get_timing_paths的命令,可以根据指定的条件找到一些特定的路径。我们可以利用其返回值中的一些属性来快速定位设计中的问题。

   例如逻辑级数这个影响FPGA性能的一大因素,因为经常隐藏在时序报告后很难被发现。在Vivado中,除了借助综合后的报告来找到那些可能因为逻辑级数较高而导致的时序难满足的路径外,还有一个更直接的办法,可以一次性报告出设计中那些高逻辑级数的路径,方便我们有针对性的深入分析和优化。
         下图这个例子报告了时序最差的10条路径的逻辑级数。需要注意的是,在综合后和在布局布线后用一样的脚本报告出的结果会稍有不同,对逻辑级数较为关注的情况,还是建议以综合后的结果为主要依据。

小结
         本文可以视为对《XDC约束技巧》系列文章的补充,希望可以帮助大家了解FPGA设计中的时序分析方法,学会使用Vivado中的静态时序分析工具来验证时序,定位问题,快速找到问题和解决方案。
继承事业,薪火相传
返回列表