描述
如果我使用综合后OOC DCP而不是IP XCI或子模块的源代码,我该如何处理范围限制?
解
DCP文件包含网表文件和约束。
在使用IP OOC DCP而不是XCI的情况下:
- IP DCP包含IP约束。
在项目中使用XCI时,该工具会自动使用输出产品中的本机IP XDC,但不会使用DCP中的约束。
使用IP DCP而不是XCI时,该工具使用DCP中包含的约束。 - 通常,Xilinx不建议使用IP DCP而不是XCI。此流程可能会导致某些IP出现问题(例如,FIFO和MIG)。
(UG896)在第5章的“第三方综合流程”部分中包含以下建议。- “在项目模式或非项目模式下引用Xilinx IP而不是直接引用DCP文件时使用IP XCI文件。虽然DCP确实包含约束,但它们在最终用户约束的上下文中被解析。使用在所有网表合并(最终用户和IP)之后,XCI产生用于IP的XDC输出产品。此外,IP XDC中的任何Tcl脚本然后在最终用户约束和网表的上下文中进行评估。
- 从Vivado 2017.1开始,实施中使用的约束将不会存储到IP OOC DCP中,以阻止使用IP OOC DCP独立版。
- 存储在IP DCP中的XDC文件的处理顺序与IP本机XDC的处理顺序相同。
请参阅第2章中的(UG896)“约束文件处理顺序”。
无法使用report_compile_order命令显示DCP XDC处理顺序,但可以在时序约束编辑器中看到(开放综合设计 – >转到工具 – >编辑时序约束)。
如果子模块的OOC DCP用于顶层设计:
- 如果OOC DCP不包含约束(这意味着没有XDC用于子模块的OOC综合运行),则可以根据需要将子模块XDC文件添加到顶层设计,并将XDC文件范围限定为此子模块。
有关使用约束范围的更多信息,请参阅第2章中的(UG903)“约束范围”。 - 如果OOC DCP包含子模块的约束,则DCP中的约束将由工具自动获取。
- 在GUI项目模式流中的synth_x文件夹中生成的DCP仅包含用于综合过程的约束,但没有实现约束。
为了生成包含作用于子模块的全部约束的综合后DCP,您需要按照以下步骤操作:
- 综合完成后,打开Synthesized Design。
- 在Tcl控制台中,运行以下命令以生成DCP:
write_checkpoint xxx.dcp
没有回复内容