本章节演示了以 UltraScale+ 器件为目标的从始至终的整个 Vivado 工具流程。此流程描述中的路径和指针假定使用默认组件名称 pcie4_ultrascale_plus_0。
- 创建新的 Vivado 工程,并选择先前表格中所示的受支持的器件/封装。
- 在 Vivado IP 目录中,展开 (标准总线接口 > PCI Express),然后双击
UltraScale+
PCI Express Integrated Block即可打开“Customize IP”(自定义 IP)对话框。图 1. Vivado IP 目录
- 在“Customize IP”对话框的“Basic”(基本)选项卡中,请确保选中下列选项:
- “Mode”(模式):Advanced(高级)
- “PCIe Block Location”(PCIe 块位置):X1Y2
注释: 根据先前表格,针对目标器件使用所需的 PCIe 块位置。此设计示例目标为 VU9P。
- “Tandem Configuration or Dynamic Function eXchange”(串联配置或 Dynamic Function eXchange):Tandem PROM(串联 PROM)图 2. Tandem PROM
- 执行其它 PCIe 自定义操作,然后单击OK以生成核。
- 当该工具提示您选择要生成的输出文件时,请单击Generate。
- 在“Sources”选项卡中右键单击该核,然后选择Open IP Example Design(打开 IP 设计示例)。
这样即可创建 Vivado 的新实例,并在 Vivado IDE 中自动加载设计示例。
- 运行综合与实现。
单击 Flow Navigator 中的Run Implementation(运行实现)。单击OK首先运行综合直至完成。这样设计会运行完整的工具流程,并生成支持串联 PROM 的已完全布线的设计。
- 设置 PROM 或闪存设置。
设置相应的设置以便为 PROM 或闪存器件正确生成比特流。在 PCIe 核约束文件(例如,xilinx_pcie4_uscale_plus_x1y2.xdc)中:
- 取消注释并自定义用于定义配置设置的任何约束。
- 必需的约束为
CONFIG_MODE
。例如:set_property CONFIG_MODE BPI16 [current_design]
如需了解更多信息,请参阅 器件编程。
- 生成比特流。
完成综合和实现后,请单击 Flow Navigator 中的Generate Bitstream(生成比特流)。这样会在 runs 目录中生成支持串联配置的比特流,例如:./pcie_ultrascale_plus_0_example.runs/impl/ xilinx_pcie4_uscale_plus_ep.bit。
注释: 您可以选择单独创建阶段 1 和阶段 2 比特流。此流程允许您通过 JTAG 接口控制每个阶段的加载过程,以便于测试。这些比特流与使用 JTAG 加载时用于串联 PCIe 解决方案的比特流相同。由于用于串联 PCIe 设计的HD.OVERRIDE_PERSIST
设置中存在差异,在硬件中尝试仅从闪存加载阶段 1 比特流是无效的。set_property HD.TANDEM_BITSTREAMS SEPARATE [current_design]
由此创建生成的 .bit 文件名为
xilinx_pcie4_uscale_plus_ep_tandem1.bit
和xilinx_pcie4_uscale_plus_ep_tandem2.bit
。 - 生成 PROM 文件。
在 Vivado Tcl Console 中运行以下命令以创建赛灵思开发板上支持的 PROM 文件。
write_cfgmem -format mcs -interface BPIx16 -size 256 -loadbit “up 0x0 xilinx_pcie4_uscale_plus_ep.bit” xilinx_pcie3_uscale_ep.mcs