打开综合设计
实现的第一步是将合成设计中的网表读取到内存中并应用设计约束。您可以通过各种方式打开合成设计,具体取决于使用的流量。
创建内存中的设计
为了创建内存中的设计,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.dcpopen_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_1open_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)。
标签:run,Vivado,vivado,design,synth,设计,打开,open From: https://blog.csdn.net/cckkppll/article/details/136691191