使用约束集
约束集是一个或多个独立维护的约束文件,并且连接到内存中的设计中进行分析和实现。约束集在中定义要在特定时刻或特定条件下使用的约束文件设计过程。例如,通过定义多个约束集,可以指定不同的主动约束以解决布图规划和时序问题。XDC文件可以在合成、实现或两者都使用。默认情况下,所有XDC文件都是设置为在合成和实现中都使用,如上的used_in属性所定义约束文件。要更改USED_IN属性,请在“源”窗口中选择XDC文件,然后选中或取消选中“源文件属性”窗口的“常规”视图中的相应框。请参阅《Vivado Design Suite属性参考指南》(UG912)中的USED_IN属性以了解更多信息。
创建和编辑约束集
1.在“源”窗口中,从右键单击菜单中选择“编辑约束集”。
2.在“编辑约束集”对话框中,执行以下操作之一:
•要编辑约束集,请单击“指定约束集”字段旁边的下拉菜单,并选择约束集。
•要创建约束集,请单击“指定约束集”旁边的下拉菜单字段,然后选择“创建约束集”。在“创建约束集名称”对话框中,输入约束集的名称,然后单击“确定”。
3.在“编辑约束集”对话框中,设置以下选项,然后单击“确定”:
•添加文件:指定要添加到约束集中的XDC或SDC文件。
•创建文件:指定要添加到约束集中的新XDC文件的名称和位置。
•删除:从“约束文件”列表中删除选定的文件。
注意:只能使用“确定”删除尚未添加到约束集中的文件按钮若要删除已添加到约束集中的文件,请在“源”中选择该文件窗口,然后从右键单击菜单中选择“从项目中删除文件”。
•上移/下移:按XDC和SDC文件。XDC和SDC文件由设置定时和物理约束的命令组成并且是顺序相关的。
如果约束集中有多个文件,则它们在“源”窗口中的显示顺序与VivadoIDE的显示顺序相对应处理文件。列表中的第一个文件是第一个处理的文件。如果相同的约束出现在多个约束文件中,最后读取的文件在定义时具有优先权限制
•将约束复制到项目中:将约束文件复制到本地项目目录中而不是引用原始文件。定义活动约束集如果存在多个约束集,则必须指定活动约束集。VivadoIDE在启动合成或实现时默认使用活动约束集运行,或者当您打开一个详细的、综合的或实现的设计时。若要设置活动约束集,请在“源”窗口中选择约束集,然后单击“生成”从右键单击菜单激活。在“源”窗口中,活动约束集以粗体显示带有
使用“将约束另存为”命令创建约束集在设计流程中的任何时候,也可以使用创建活动约束集的副本
“将约束另存为”命令。有多个位置可以更改约束文件或对不同约束的影响进行建模,将对新约束集的更改保存为管理更改或支持“假设”分析。选择文件 → 约束 → 另存为打开“将约束另存为”对话框,然后输入新的用于保存所有约束的约束集名称。
“将约束另存为”对话框执行以下操作:
•创建一个新的约束集。
•将激活的约束文件复制到本地项目目录中的新约束集中。
•将对约束的任何修改写入复制的约束文件,保留原始约束XDC文件未更改。
•提供一个选项,使新约束集在项目中处于活动状态。
导出约束
在某些情况下,您可能希望使用Vivado IDE编写一个约束文件,以便在脚本中使用设计流程。将应用于内存中设计的所有约束导出为单个约束的步骤文件,选择“文件” → 出口 → 导出约束。此外,还可以将I/O端口和组的I/O标准约束(用户指定的值和Vivado IDE指定的默认值)导出到XDC文件。导出I/O约束,选择“文件” → 出口 → 导出I/O端口,并生成一个XDC文件。
启用或禁用约束文件
添加或创建约束文件时,默认情况下会在“源”窗口中启用这些文件。您可以禁用约束文件,以防止在细化、合成或在实施中。
•要禁用约束文件,请在“源”窗口中选择文件,然后选择“禁用文件”右键单击命令。
•要启用禁用的文件,请在“源”窗口中选择文件,然后选择“启用文件”右键单击命令。
更改约束求值顺序
可以在关联的约束集中对用户约束进行重新排序。在“源”窗口中,拖放XDC文件以重新排列顺序。要获得Vivado IDE处理的所有XDC文件的有序列表,请使用以下命令在Tcl控制台中:report_compile_order-constraints。这列出了中的所有约束设计,包括用户约束和IP。
注意:有关如何更改约束顺序的更多信息,请参阅Vivado Design Suite用户指南:使用约束(UG903)。