前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vivado的Implementation都包含哪些步骤?

Vivado的Implementation都包含哪些步骤?

作者头像
猫叔Rex
发布2022-01-24 13:53:44
1.3K0
发布2022-01-24 13:53:44
举报
文章被收录于专栏:科学计算科学计算

Vivado的Implementation主要有三大步:

  • opt_design,会生成opt_desgin.dcp
  • place_design,会生成place_design.dcp
  • route_design,会生成route_design.dcp

如果再详细一点:

  • opt_design 在这一步,Vivado会对综合后的网表文件做一些优化,删除一些无用的或者Vivado认为可以冗余的逻辑,但如果代码中使用了DONT_TOUCHMARK_DEBUG,在此步骤就不会被优化掉。
  • power_opt_design 这一步可以在opt_design后执行,也可以在place_design后执行,该步骤主要是用Xilinx的智能门控时钟方案来减少FPGA设计中的动态功耗,但并不会改变时钟和逻辑的设计。
  • place_design 在布局时,Vivado的布局器会优先考虑下面三点:
    • Timing Slace
    • Wirelength
    • Congestion 在布局之前,Vivado会进行DRC检查。但比较扯淡的是,如果DRC发现错误,很多情况下,下面的步骤并不会停止,直到生成bit文件时才报错,会让工程师误以为这一步没有问题。
  • phys_opt_design 该步骤主要进行的优化如下:
    • 对于高扇出的网络,如果在WNS的10%内具有负的裕量,则会考虑复制以降低高扇出;
    • 对于临近的负载进行聚合,并为每个负载的集合复制一个驱动;
    • 重新分析时序,如果时序有优化则会改动逻辑部分;
    • 继续分析是否有高扇出,如果还有,则继续复制电路以降低高扇出。
  • route_design Vivado的router有两种工作模式:
    • Normal模式,这是最常用也是默认的模式,在该模式下,布局器会以增量编译的方式对读入的文件进行布局,如果文件已经进行了部分布局,那么布局器会在此基础上继续布局,而不是从头开始。
    • Re-Entrant模式,当我们要跑多个routing且各个routing之间有关联操作时使用该模式。如果是非Re-Entrant模式,布局器执行完成后,会清除内存空间,每次开始的时候都需要初始化。

  Vivado会优先对全局资源进行布线,比如时钟、复位、I/O和其他专用资源;接下来就是根据时序的紧张程度进行布线,优先布线时序紧张的路径。

  这里需要注意的是,在某些手动锁定的布线约束下,router通常无法对某些信号进行最佳布线,这往往是因为时序约束不规范导致的。如果我们仔细观察那些不是最优路径的网络,我们会发现问题经常出在时序约束上。

  所以最好的方式就是在routing之前,查看place_design的时序报告,检查时序约束是否正确。所以对于大型工程,采用non-project方式可能更好一些,因为project模式下,我们直接点击Implementation就可以执行完所有的步骤了,往往中间的结果我们也不会很在意。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 傅里叶的猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Vivado的Implementation主要有三大步:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档