VIVADO使用误区与进阶之7:用Tcl定制Vivado设计实现流程

16 篇文章 7 订阅

一、基本的FPGA设计实现流程

FPGA 的设计流程简单来讲,就是从源代码到比特流文件的实现过程。大体上跟 IC 设计流程类似,可以分为前端设计和后端设计。其中前端设计是把源代码综合为对应的门级网表的过程,而后端设计则是把门级网表布局布线到芯片上最终实现的过程。
在这里插入图片描述

  • ISE 中设计实现的每一步都是相对独立的过程,数据模型各不相同,用户需要维护不同的输入文件,例如约束等,输出文件也不是标准网表格式,并且形式各异,导致整体运行时间过长,冗余文件较多。
  • Vivado 中则统一了约束格式和数据模型,在设计实现的任何一个阶段都支持 XDC 约束,可以生成时序报告,在每一步都能输出包含有网表、约束以及布局布线信息(如果有)的设计检查点( DCP)文件,大大缩短了运行时间。
  • 从使用方式上来讲, Vivado 支持工程模式( Project Based Mode)和非工程模式( None Project Mode)两种,且都能通过 Tcl 脚本批处理运行,或是在 Vivado 图形化界面 IDE 中交互运行和调试。

1. 工程模式

  • 工程模式的关键优势在于可以通过在 Vivado 中创建工程的方式管理整个设计流程,包括工程文件的位置、阶段性关键报告的生成、重要数据的输出和存储等。
  • 如下左图所示,用户建立了一个 Vivado 工程后,工具会自动创建相应的.xpr 工程文件,并在工程文件所在的位置同层创建相应的几个目录,包括<prj_name>.cache、 <prj_name>.data、 <prj_name>.runs 和<prj_name>.srcs 等等(不同版本可能有稍许差异),分别用于存储运行工程过程中产生的数据、输出的文件和报告以及工程的输入源文件(包含约束文件)等。
    在这里插入图片描述

2.非工程模式

非工程模式下,由于不会创建工程,用户就需要自己管理设计源文件和设计过程。源文件只能从当前位置访问,在设计实现过程中的每一步,数据和运行结果都存在于 Vivado 分配到的机器内存中,在用户不主动输出的情况下,不会存储到硬盘中。
在这里插入图片描述

二、Tcl对图形化的补充

1. Tcl Console

在这里插入图片描述

2. Hook Scripts

在这里插入图片描述

3. Customer Commands

在这里插入图片描述

三、用Tcl定制实现流程

在这里插入图片描述

1. 充分利用物理优化

物理优化即 phys_opt_design 是在后端通过复制、移动寄存器来降扇出和 retiming,从而进行时序优化的重要手段,一般在布局和布线之间运行,从 Vivado 2014.1 开始,还支持布局后的物理优化。phys_opt_design这一步可以运行多次,并且可以选择不同的 directive 来有侧重的优化时序。
布局布线之间的多次物理优化不会恶化时序,但会增加额外的运行时间,也有可能出现时序完全没有得到优化的结果。布线后的物理优化有时候会恶化 THS,所以请一定记得每一步后都运行report_timing_summary,并且通过 write_checkpoint 写出一个.dcp 文件来保留阶段性结果。这一步的结果不理想就可以及时退回到上一步的.dcp 继续进行。
在这里插入图片描述

2. 闭环设计流程

在这里插入图片描述

四:增量设计流程

Vivado 中的增量设计也是一个不得不提的功能。当设计进行到后期,每次运行改动很小,在开始后端实现前读入的设计网表具有较高相似度的情况下,推荐使用 Vivado 的增量布局布线功能。
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值