如果无法使用上述方法 1,则应遵循下列步骤,在新工程中使用 PCIe 核以及所期望的串联流程(PROM 或 PCIe)。工程示例具有众多必需的 RTL 和脚本,这些 RTL 和脚本必须移植到用户设计中。
- 创建设计示例。
按 串联 PROM UltraScale+ 工具流程示例 和 串联 PCIe UltraScale+ 工具流程示例 中所述方式生成设计示例。
- 移植外部 GT Wizard。
如果在核生成期间,在“Shared Logic”(共享逻辑)选项卡中设置了“Include GT Wizard in example design”(在设计示例中包含 GT Wizard)选项,那么将在设计示例顶层例化 GT Wizard IP。此 GT Wizard IP 应移植到用户设计,以提供必要的 GT 连接。
- 移植到顶层约束。
赛灵思设计约束 (XDC) 文件示例包含适用于 PCIe 核的时序约束、位置约束和 Pblock 约束。所有这些约束(I/O 位置约束和 I/O 标准约束除外)都需要移植到用户设计中。其中部分约束包含分层参考,当设计层级与设计示例不同时,需要更新此分层参考。
- 移植到顶层 Pblock 约束。
以下约束很容易被忽视,因此在此步骤中被挑出来单独讲解。Pblock 约束应指向 PCIe 核的顶层。
add_cells_to_pblock [get_pblocks main_pblock_boot] [get_cells -quiet [<path>]]
重要: 请勿对 XDC 文件中定义的物理约束进行任何更改,因为约束与器件之间存在相互依赖关系。 - 将串联 PCIe IP 添加到 Vivado 工程中。
单击 Flow Navigator 中的Add Sources(添加源文件)。在“Add Source”Wizard(添加源文件向导)中,选中Add Existing IP(添加现有 IP),然后浏览原先用于创建串联 PCIe 设计示例的 XCI 文件。
- 将相应的 SPI 或 BPI 闪存设置从设计示例 XCD 文件复制粘贴到您的设计 XDC 文件中。
- 正常实现该设计。