本章节演示了以 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 PCIe
(串联 PCIe)。图 2. Tandem PCIe
- 设计示例软件通过“Vendor ID”(供应商 ID)和“Device ID”(器件 ID)连接至器件。供应商 ID 必须为
16'h10EE
,器件 ID 必须为16'h903F
。在“PF0 IDs”选项卡中,请设置:- “Vendor ID”(供应商 ID):10EE
- “Device ID”(器件 ID):903F
注释: 另一种解决方案是 Vendor ID 和 Device ID 均可更改,并通过更新驱动和主机 PC 软件来匹配新的值。图 3. ID - 执行其它 PCIe 自定义操作,然后选择OK(确定)以生成该核。
生成核后,在 Vivado IDE 的“Sources”(源)选项卡中会显示核的层级。
- 在“Sources”选项卡中右键单击该核,然后选择Open IP Example Design(打开 IP 设计示例)。
这样即可创建 Vivado 的新实例,并在 Vivado IDE 中自动加载设计示例工程。
- 运行综合与实现。
单击 Flow Navigator 中的Run Implementation(运行实现)。单击OK首先运行综合直至完成。这样设计会运行完整的工具流程,最终结果是生成支持串联 PCIe 的已完全布线的设计。
- 设置 PROM 或闪存设置,并请求 2 个显式 bit 文件。通过以下步骤设置相应的设置以便为 PROM 或闪存器件正确生成比特流:
- 修改 PCIe IP 约束文件中的约束(例如,pcie4_ultrascale_plus_0_tandem)。
- 通过设置下列属性(如设计示例约束文件中所示)请求 2 个显式比特流:
set_property HD.OVERRIDE_PERSIST FALSE [current_design] set_property HD.TANDEM_BITSTREAMS Separate [current_design]
HD.TANDEM_BITSTREAMS 的其它值包括用于 Tandem PROM 解决方案的 Combined(默认值)和为整个器件生成标准单阶比特流的 None。如需了解更多信息,请参阅 器件编程。
- 生成比特流。完成综合和实现后,请单击 Flow Navigator 中的Generate Bitstream(生成比特流)。这样会在 runs 目录中创建并放置以下 2 个文件:
xilinx_pcie4_uscale_plus_ep_tandem1.bit| xilinx_pcie4_uscale_plus_ep_tandem2.bit
- 为阶段 1 生成 PROM 文件。
在 Vivado Tcl Console(Tcl 控制台)中运行以下命令以创建 UltraScale+ 开发板上支持的 PROM 文件。
write_cfgmem -format mcs -interface BPI -size 256 -loadbit “up 0x0 xilinx_pcie4_uscale_plus_ep_tandem1.bit” xilinx_pcie4_uscale_plus_ep_tandem1.mcs