运行合成
运行定义并配置在合成过程中使用的设计方面。一个合成run定义了以下内容:
•AMD设备在合成过程中成为目标
•要应用的约束集
•启动单个或多个合成运行的选项
•控制合成引擎结果的选项
要定义RTL源文件和约束的运行,请执行以下操作:
1.选择“流”>“创建管路”,或者在“设计管路”中,单击“创建管路》按钮打开创建新运行向导。将打开“创建新管路”对话框,如下所示图形
2.选择“合成”,然后单击“下一步”。此时会打开配置合成运行,如下图所示。
3.单击“添加”按钮,并使用“名称”、“约束集”、“零件”配置合成运行,Strategy,如果您希望此跑步成为活动跑步,请选中Make Active。Vivado IDE包含一个默认策略。您可以设置策略运行的特定名称或者接受默认名称,编号为synth_1、synth_2等。到创建自己的跑步策略,请参阅创建跑步策略。请参阅Vivado Design Suite用户指南:使用约束(UG903)
•有关约束的详细信息,请参阅“关于XDC约束”
•有关约束处理顺序的详细信息,请参阅“约束文件顺序具有IP核心。"在为项目处理某些约束后,这些约束属性可以变成设计属性。有关设计属性的更多信息,请参阅Vivado design Suite属性参考指南(UG912)。
4.单击“下一步”。将打开“启动选项”页面。
5.在“启动选项”页面中,按如下方式设置选项,然后单击“下一步”。
•在Launch Directory(启动目录)下拉选项中,浏览并选择目录以启动跑步。
•在“选项”区域中,选择以下选项之一:
•在本地主机上启动运行:从您所在的机器上运行选项
工作使用作业数下拉列表可以指定要启动的运行次数。注意:作业数量会显著影响Vivado使用的内存量工具将其设置为非常高的数字可能会导致该工具占用大量内存取决于设计中单个运行或OOC运行的大小。也在使用内存过多可能导致工具崩溃。
•在远程主机上启动运行(仅限Linux):在远程主机和配置该主机。请参阅Vivado Design Suite用户指南:实施(UG904),了解有关在Linux中的远程主机上启动运行的更多信息。使用配置“主机”按钮,用于从对话框中配置主机。
•在集群上启动运行:在lsf等外部工具上启动运行。击中设置按钮允许配置该群集工具。
•仅生成脚本:生成稍后运行的脚本。使用runme.bat(Windows)或runme.sh(Linux)启动运行。
6.设置“创建新运行”向导选项后,单击“启动运行”摘要中的“完成”。您可以在“设计运行”窗口中看到结果,如下图所示。
使用Design Runs窗口
“设计运行”窗口显示在项目中创建的合成和实现运行并提供用于配置、管理和启动运行的命令。如果尚未显示“设计运行”窗口,请选择“窗口>设计运行”打开“设计运行”窗口。一个合成运行可以有多个实现运行。使用树窗口中的小部件展开,并折叠合成运行。“设计运行”窗口报告运行状态(当运行未开始、正在进行、已完成或过期时)。跑当您修改源文件、约束或项目设置时,会变得过时。要重置、删除或更改特定管路的特性,请在管路上单击鼠标右键,然后选择适当的命令。
设置活动运行
在Vivado IDE中,任何时候都只能有一个合成运行和一个实现运行处于活动状态。所有报告和选项卡视图都显示活动管路的信息。项目摘要窗口仅显示活动运行的编译、资源和摘要信息。若要激活管路,请在“设计管路”窗口中选择管路,单击鼠标右键,然后选择“生成”从弹出菜单中选择“活动”命令,将其设置为活动管路。启动综合运行要启动合成运行,请执行以下操作之一:
•在“流导航器”中,单击“运行合成”命令。
•从主菜单中,选择流>运行合成命令。
•在“设计管路”窗口中,右键单击管路,然后选择“启动管路”。前两个选项启动活动合成运行。第三个选项打开Launch Selected运行窗口。在这里,您可以选择在本地主机上运行、在远程主机上运行或生成要运行的脚本。
设置自下而上、断章取义的流程
您可以通过选择任何HDL对象作为独立的上下文外对象运行来设置自底向上的流(OOC)流。有关OOC流程的概述,请参阅Vivado Design Suite用户指南:设计流程概述(UG892)。OOC流的行为如下:
•较低的OOC模块独立于顶层运行,并有自己的限制。
•OOC模块可以根据需要运行。
•在OOC模块上运行合成后,不需要重新运行它,除非您更改该运行的RTL或约束。
•当运行顶层时,底层OOC运行被视为黑匣子。
如果任何IP是在OOC模式下合成的,则顶级合成运行会推断出这些IP的黑匣子。因此,用户不能将IP内部的对象(如引脚、网络和单元)作为的一部分引用顶级综合约束。在实施过程中,来自IP DCP的网表为与合成顶层设计文件时生成的网表链接,以及VivadoDesign Suite解决了IP黑匣子问题。期间生成的IP XDC输出产品实现与任何用户约束一起应用。如果有任何约束引用项在IP内部,在合成过程中会出现有关此问题的警告,但可以在实施这可能会导致顶级运行时的大幅改进,因为合成不再需要提高到最高水平,因为合成不再需要在完整的设计上运行。
要为OOC运行设置模块,请在层次结构视图中找到该模块,然后右键单击如下图所示,设置“合成为断章取义”选项,然后单击“确定”。
“设置为断章取义进行合成”对话框显示以下信息和选项:
•源节点:应用OOC的模块。
•新文件集:列出可以编辑的新文件集名称。
•生成存根:您可以选中此复选框以使工具创建存根文件。
•时钟约束文件:选择让工具为您创建一个新的XDC模板,或者您可以使用下拉菜单将现有的XDC文件复制到此文件集。此XDC文件应该为OOC模块上的所有时钟引脚提供时钟定义。
建议:打开存根文件选项。如果关闭它,则必须创建并设置存根文件在项目中。该工具将OOC设置为自动运行。如下图所示,您可以将其视为“设计运行”窗口中的新运行,以及“编译顺序”选项卡中的块源。
将流设置为“脱离上下文”时,将在工具中设置新的管路。要运行该选项,请右键单击并选择启动运行,如启动合成运行中所述。此操作将较低级别设置为顶部模块,并在没有创建I/O缓冲区。运行将保存合成的网表,并为创建一个存根文件(如果您选择了该选项)以后使用。存根文件是具有输入和输出以及黑盒属性集的较低级别。当您重新运行顶级模块时,自下而上的合成会将存根文件插入流中并将较低级别编译为黑盒。执行运行插入较低级别netlist,从而完成了设计。
小心!当较低级别中存在处于OOC模式的AMD IP时,不要使用自下而上的OOC流OOC模块的。关闭IP OOC模式,使AMD IP在OOC模块中,并关闭IP OOC模式。