vivado 打开综合设计

打开综合设计

实现的第一步是将合成设计中的网表读取到内存中并应用设计约束。您可以通过各种方式打开合成设计,具体取决于使用的流量。

创建内存中的设计

为了创建内存中的设计,Vivado design Suite使用以下过程进行组合网表文件、约束文件和目标零件信息:

1.汇编网表。

如果需要,网表是从多个来源汇编而成的。设计可以包括结构化Verilog、EDIF和Vivado IP。

重要!AMD UltraScale™的Vivado Design Suite不支持NGC格式的文件设备。建议您使用Vivado Design Suite IP自定义重新生成IP具有本地输出产品的工具。或者,您可以使用convert_ngc Tcl实用程序来转换NGC文件转换为EDIF或Verilog格式。然而,AMD建议使用本机Vivado IP,而不是XST生成的NGC

2.将传统网表基元转换为当前支持的Unisim基元子集。

提示:使用report_transformed_pritimits生成已转换单元格的列表。

3.处理来自XDC文件的约束。

这些约束包括时间约束和物理约束,例如封装用于平面布置的引脚分配和Pblocks。

重要!查看识别失败约束的关键警告。可能会放置约束对已优化或不再存在的设计对象。Tcl命令“write_xdc”-constraints INVALID’还捕获无效的XDC约束。

4.构建放置宏。

Vivado工具根据单元的连接或放置创建单元的放置宏以简化放置。放置宏的示例包括:

•基于XDC的宏。

•相对放置的宏(RPM)。

注:RPM是作为一个组而不是单个单元格放置的。

•需要放置在多个CLB中的长承载链。

注意:组成进位链的基元必须属于单个宏,以确保下游放置将其对齐为垂直切片。

Tcl命令

下表中显示的Tcl命令可用于将合成设计读入内存,具体取决于设计中的源文件和设计的状态。

合成设计

synth_design命令既可用于项目模式,也可用于非项目模式。它在运行在具有指定选项的RTL源上进行Vivado合成,并将设计读入内存合成后。

synth_design Syntax
synth_design [-name <arg>] [-part <arg>] [-constrset <arg>] [-top <arg>]
[-include_dirs <args>] [-generic <args>] [-
verilog_define <args>]
[-flatten_hierarchy <arg>] [-gated_clock_conversion
<arg>]
[-directive <arg>] [-rtl] [-bufg <arg>] [-no_lc]
[-shreg_min_size <arg>] [-mode <arg>] [-fsm_extraction
<arg>]
[-rtl_skip_mlo] [-rtl_skip_ip] [-rtl_skip_constraints]
[-srl_style <arg>] [-keep_equivalent_registers]
[-resource_sharing <arg>] [-cascade_dsp <arg>]
[-control_set_opt_threshold <arg>] [-incremental <arg>]
[-max_bram <arg>] [-max_uram <arg>] [-max_dsp <arg>]
[-max_bram_cascade_height <arg>] [-
max_uram_cascade_height <arg>]
[-retiming] [-no_srlextract] [-assert] [-
no_timing_driven]
[-sfcu] [-debug_log] [-quiet] [-verbose]

synth_design示例脚本

以下是示例中create_bft_batch.tcl脚本的摘录/软件安装的Vivado_Tutorials目录。

# 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
# Run synthesis, report utilization and timing estimates, write design
checkpoint
synth_design -top bft -part xc7k70tfbg484-2 -flatten rebuilt
write_checkpoint -force $outputDir/post_synth

有关使用synth_design示例脚本的更多信息,请参阅Vivado design Suite教程:设计流程概述(UG888)和Vivado设计套件用户指南:综合(UG901)。synth_design示例脚本读取VHDL和Verilog文件,读取约束文件,以及综合指定部分的设计。该设计由Vivado工具打开到synth_design完成时的内存。完成后编写设计检查点合成有关synth_design Tcl命令的更多信息,请参阅Vivado design Suite Tcl命令参考指南(UG835)。本参考指南还提供了Tcl的完整描述命令及其选项。

打开检查点

open_checkpoint命令打开一个设计检查点文件(DCP),在内存中创建一个新项目,并使用的内容立即在新项目中初始化设计检查点。此命令可用于打开顶层设计检查点或检查点为断章取义的m创建

注意:在以前的版本中,read_checkpoint命令用于读取和初始化检查点设计。从2014.1版本开始,此功能由open_checkpoint命令提供。这个read_checkpoint的行为已经更改,因此它只将检查点文件添加到的列表中源文件。这与其他读取命令一致,如read_verilog、read_vhdl和read_xdc。需要一个单独的link_design命令来初始化设计并将其加载到使用read_checkpoint时的内存。打开检查点时,无需先创建项目。打开检查点命令将设计数据读取到内存中,以非项目模式打开设计。参考一节了解Vivado Design Suite用户中的项目模式和非项目模式指南:设计流程概述(UG892),了解有关项目模式和非项目的更多信息模式

open_checkpoint Syntax
open_checkpoint [-part <arg>] [-quiet] [-verbose] <file>
open_checkpoint Example Script
# Read the specified design checkpoint and create an in-memory design.
open_checkpoint C:/Data/post_synth.dcp

open_checkpoint示例脚本打开合成后设计检查点文件。

打开(_run)open_run命令打开先前完成的合成或实现运行,然后加载Vivado工具的内存中设计。

重要!open_run命令仅在项目模式下工作。中不支持设计运行非项目模式。在RTL设计上实现之前使用open_run打开之前完成的Vivado合成运行,然后将合成的网表加载到内存中。

提示:因为内存中的设计是自动更新的,所以在之后不需要使用open_run合成设计。您只需要使用open_run从早期设计会议。open_run命令仅用于RTL设计。要打开基于网表的设计,请使用链接设计。

open_run Syntax
open_run [-name <arg>] [-quiet] [-verbose] <run>
open_run Example Script
# Open named design from completed synthesis run
open_run -name synth_1 synth_1

open_run示例脚本从完成合成运行(也称为synth_1)。如果在设计已经在内存中时使用open_run,Vivado工具会提示您保存打开新设计之前对当前设计的任何更改。链接设计link_design命令从网表源(例如从第三方合成工具),并将网表和设计约束与目标部件链接。

提示:link_design命令同时支持项目模式和非项目模式来创建网表设计。在未加载网表的情况下使用link_design-part<arg>打开的空白设计设备探索。

link_design Syntax
link_design [-name <arg>] [-part <arg>] [-constrset <arg>] [-top <arg>]
[-mode <arg>] [-pr_config <arg>] [-reconfig_partitions
<args>]
[-partitions <args>] [-quiet] [-verbose]
link_design Example Script
# Open named design from netlist sources.
link_design -name netDriven -constrset constrs_1 -part xc7k325tfbg900-1

如果在设计已在内存中时使用link_design,Vivado工具会提示您在打开新设计之前,请保存对当前设计的任何更改。

建议:在Vivado工具中创建内存中的合成设计后,查看错误和缺少或不正确约束的严重警告。成功创建设计后,您可以开始运行分析、生成报告、应用新约束或运行实现。

注意:有关link_design的部分重新配置选项的更多信息,请参阅阅读部分Vivado设计套件中的设计模块用户指南:动态功能扩展(UG909)。打开内存中的合成设计后,立即运行report_timing_summary以检查定时约束。这确保了设计目标的完整性和合理性。对于有关report_timing_summary命令的详细描述,请参阅Vivado Design SuiteTcl指令参考指南(UG835)

BUFG优化

发生在link_design开头的强制逻辑优化(MLO)支持使用CLOCK_BUFFER_TYPE属性插入全局时钟缓冲区。支持的值为BUFG用于7系列,BUFG和BUFGCE用于UltraScale、AMD UltraScale+™和Versal设备。值NONE可用于所有体系结构,以抑制全局时钟缓冲区通过MLO和opt_ design进行插入。对于BUFG和BUFGCE,MLO插入相应的缓冲区类型来驱动指定的网络。CLOCK_BUFFER_TYPE的使用提供了使用XDC控制缓冲区插入的优势从而不需要修改设计源或网表。插入的缓冲区使用CLOCK_BUFFER_TYPE不受任何限制,因此必须谨慎使用该属性避免在设计中引入过多全局时钟,这可能会导致放置失败。有关详细信息,请参阅《Vivado Design Suite属性参考指南》(UG912)。

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cckkppll

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

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

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

打赏作者

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

抵扣说明:

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

余额充值