无招胜有招-Vivado非工程模式下的FPGA设计流程

参考:UG892 UG835

Vivado集成开发工具为设计者提供了非工程模式下的FPGA设计流程。在Vivado非工程模式下,FPGA开发人员可以更加灵活地对设计过程的每个阶段进行控制,从而进一步提高FPGA的设计效率。

非工程模式下基本命令列表

命令

功能

read_edif

将EDIF或者NGC网表导入当前工程的设计源文件集合中

read_verilog

读入用于非工程模式会话的Verilog(.v)和SystemVerilog(.sv)源文件

read_vhdl

读入用于非工程模式会话的VHDL(.vhd或vhdl)源文件

read_ip

读入用于非工程模式会话的已经存在的IP(.xco或者.xci)工程文件。使用来自.xco IP工程的.ngc网表。对于.xci IP,使用RTL用于编译;或者如果存在网表,则使用网表

read_xdc

读入用于非工程模式会话的.sdc或者.xdc文件

set_param

set_property

用于多个目的。例如,它可以定义设计配置和工具设置等

link_design

如果会话中使用网表文件,则对设计进行编译,用于综合目的

synth_design

启动Vivado综合,包含设计的顶层模块名字和目标器件参数

opt_design

执行高层次设计优化

power_opt_design

执行智能时钟门控,用于降低系统的整体功耗(可选)

place_design

对设计进行布局

phys_opt_design

执行物理逻辑优化,以改善时序和布线能力(可选)

route_design

对设计进行布线

report*

运行多个标准的报告,可以在设计过程的任何一个阶段运行它

write_bitstream

生成一个比特流文件,并且运行DRC

write_checkpoint

read_checkpoint

在设计流程的任何点保存设计。一个设计检査点由网表和约束构成,它们在设计流程的该点进行了优化,以及包含实现的结果

start_gui

stop_gui

调用在存储器中当前设计的Vivado集成开发环境

典型TCL脚本


为了方便读者从整体上了解在Vivado非工程模式下的基本命令的功能,下面将给出用于Vivado设计套件示例的非工程模式TCL脚本,该脚本可以说明使用设计检查点、用于保存设计流程中各个阶段的数据库状态和手工生成各种报告的方法。

通过下面的命令运行该Tcl脚本文件:

vivado -mode tcl –source create_bft_batch.tcl

Following is an example of a Non-Project Mode script, which reads in various source files:

# create_bft_batch.tcl

# bft sample design

# A Vivado script that demonstrates a very simple RTL-to-bitstream batch flow

#

# NOTE: typical usage would be "vivado -mode tcl -source create_bft_batch.tcl"

#

# STEP#0: define output directory area.

#

set outputDir ./Tutorial_Created_Data/bft_output

file mkdir $outputDir

#

# STEP#1: setup design sources and constraints

#

read_vhdl -library bftLib [ glob ./Sources/hdl/bftLib/*.vhdl ]

read_vhdl ./Sources/hdl/bft.vhdl

read_verilog [ glob ./Sources/hdl/*.v ]

read_xdc ./Sources/bft_full.xdc

#

# STEP#2: run synthesis, report utilization and timing estimates, write checkpoint

design

#

synth_design -top bft -part xc7k70tfbg484-2 -flatten rebuilt

write_checkpoint -force $outputDir/post_synth

report_timing_summary -file $outputDir/post_synth_timing_summary.rpt

report_power -file $outputDir/post_synth_power.rpt

#

# STEP#3: run placement and logic optimzation, report utilization and timing

estimates, write checkpoint design

#

opt_design

place_design

phys_opt_design

write_checkpoint -force $outputDir/post_place

report_timing_summary -file $outputDir/post_place_timing_summary.rpt

#

# STEP#4: run router, report actual utilization and timing, write checkpoint design,

run drc, write verilog and xdc out

#

route_design

write_checkpoint -force $outputDir/post_route

report_timing_summary -file $outputDir/post_route_timing_summary.rpt

report_timing -sort_by group -max_paths 100 -path_type summary -file

$outputDir/post_route_timing.rpt

report_clock_utilization -file $outputDir/clock_util.rpt

report_utilization -file $outputDir/post_route_util.rpt

report_power -file $outputDir/post_route_power.rpt

report_drc -file $outputDir/post_imp_drc.rpt

write_verilog -force $outputDir/bft_impl_netlist.v

write_xdc -no_fixed_only -force $outputDir/bft_impl.xdc

#

# STEP#5: generate a bitstream

#

write_bitstream -force $outputDir/bft.bit

Vivado集成开发环境分析

3.1 启 动 Vivado集 成 开 发 环 境

当工作在非工程模式时,对于存储器中活动的设计来说,使用下面的命令打开/关闭Vivado集成开发环境。

(l)start_gui,打开Vivado集成开发环境,用于存储器中活动的设计。

(2)stop_gui,关闭Vivado集成开发环境,并且返回“Vivado Design Suite Tcl shell”界面。

在设计过程的每个阶段,设计者均可以打开Vivado集成开发环境,对存储器中保存的当前设计进行分析和操作。在非工程模式下,在Vivado集成开发环境中,一些工程的特性是不可用的,如Flow Navigator、Project Summary,以及源文件的访问、管理和运行。然而,通过Vivado集成开发环境的Tools菜单,可以使用分析及修改约束等很多特性。

需要知道的是,在Vivado集成开发环境中,对存储器中的设计所做的任何变化都会自动应用到下游工具中,这里没有保存的功能。如果设计者想要将约束的变化用于后续的运行,则在Vivado集成幵发的环境的主菜单下,执行菜单命令【File】—【Export】—【Export Constraints】,写到一个新的包含所有XDC文件的文件中。

3.2 打开设计检查点的方法

通过Vivado集成设计环境,设计者可以在保存的设计点上对设计进行分析。通过使用Tcl命令(synth_design、opt_design、power_opt_design、place_design、phys_opt_design和route_deSign),设计者可以在非工程模式下运行一个设计,并且可以在任何阶段保存一个设计。这样,就可以在Vivado集成设计环境中读取设计。设计者可以从一个布线后的设计开始,分析时序,仅通过布局来解决时序问题。然后保存刚才的工作,甚至设计中还没有进行的布线操作。Vivado集成设计环境显示打开设计点的名字。

设计者可以打开、分析和保存设计检查点,也可以将变化保存到新的设计点。

(1)在Vivado集成开发环境下,执行菜单命令【File】->【Save Checkpoint】,保存对当前设计检查点的修改。

(2)在Vivado集成开发环境下,执行菜单命令【File】—【Write Checkpoint】,将设计检查点的当前状态保存到一个新的设计检查点中。

关于具体的每个命令的使用下一节将细致分析。

- END -

NOW现在行动!
推荐阅读
【Vivado那些事】如何查找官网例程及如何使用官网例程【Vivado使用误区与进阶】总结篇【Vivado那些事】Vivado中常用的快捷键(一)F4键【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键
SystemVerilog数字系统设计_夏宇闻 PDFVerilog 里面,always,assign和always@(*)区别
FPGA上如何求32个输入的最大值和次大值:分治图书推荐|ARM Cortex-M0 全可编程SoC原理及实现
简谈:如何学习FPGARISC-V再进阶!世界首款5纳米RISC-V SOC成功流片!
几款开源SDR平台Vitis尝鲜(一)
SDR/无线设计中LNA和PA的基本原理
拆解1968年的美国军用电脑,真的怀疑是“穿越”啊!
一文最全科普FPGA技术知识你见过1-bit CPU吗?高级FPGA设计技巧!多时钟域和异步信号处理解决方案
【Vivado那些事】Vivado中电路结构的网表描述
ZYNQ中裸机开发和Linux开发有什么区别?
现代计算机的雏形-微型计算机MCS-4
世界上第一个微处理器真的是Intel 4004吗?其实这是个很复杂的故事…
【每周一问】如何控制加载FPGA程序时,Xilinx FPGA的IO管脚输出高低电平
【Vivado那些事】vivado生成.bit文件时报错-ERROR: [Drc 23-20]
AD9361 和Zynq及其参考设计说明1202年了,还在使用虚拟机吗?Win10安装Ubuntu子系统及图形化界面详细教程谈谈Xilinx FPGA设计的实现过程
Github 上有哪些优秀的 VHDL/Verilog/FPGA 项目
AD936x+ZYNQ搭建收音机(一)
AD936x+ZYNQ搭建收音机(二)含视频演示
AD936x+ZYNQ搭建收音机(三)-终篇
AD936x+ZYNQ搭建OpenWIFI
Verilog 版本:Verilog-95、Verilog-2001与System Verilog区别简谈
FPGA时钟设计方案
【Vivado那些事】Vivado中增量编译与设计锁定
点击上方字体即可跳转阅读
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenFPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值