标题
61075 - MIG UltraScale - 在单个设计中创建多个 MIG 接口的推荐流程是什么?描述
MIG UltraScale 不提供类似 MIG 7 系列工具的选择多个控制器的选项。
此答复记录详述了在单一设计中添加多个 MIG UltraScale 接口的建议步骤。
解决方案
支持计划对于 UltraScale MIG,将不会添加通过 MIG 工具提供多控制器支持的选项。
未来版本将对存储器接口的 I/O 管脚分配流程进行修改,从而简化多个 MIG 实例的使用。
但在发布这些 I/O 管脚分配更改之前,MIG 须运行多次才能根据目标 I/O 分配来创建多个唯一的核。
有关 I/O 管脚分配更改的注释
在未来版本中,将从 MIG UltraScale 移出 I/O 管脚分配,并将其移入 Vivado I/O 管脚分配器内。
这将简化管脚分配,包括在 MIG 之外对 MIG IP 核的多个实例进行时钟管脚分配。
此外,它还将从 MIG IP 移除 I/O XDC 约束,并将这些约束移入顶层 XDC 文件内。
这样需要更改存储器接口管脚时,就无需重新生成 MIG 核,由此即可多次复用相同的 IP。
当前多控制器支持流程
- 单独生成每个所需 MIG 控制器。
确保满足 PG150 中记述的所有管脚要求,并且管脚无重叠。
可能需要使用 MIG I/O 管脚分配器来手动分配管脚,以便准确获取每个必要的管脚分配,并按需打包各 bank。
- 对于“Generate Output Products”(生成输出文件),生成时保留默认设置,这样即可启用 OOC 流程,从而在生成的核上运行综合。
- 创建顶层封装文件,以例化生成的 IP,并将其连接到用户设计。
确保每个控制器的端口都唯一。
例如:c0_ddr4_*、c1_ddr4_*、c2_ddr4_*。
- 当 MIG IP 位于同一列中时,创建顶层 XDC 文件。
将每个核的 BUFGCE 约束复制粘贴到顶层 XDC 内。
将唯一的 MIG IP 实例的相应层级添加到 NAME = 路径内。
例如:
对于低于 2014.4 的版本:set_property LOC BUFGCE_X0Y22 [get_cells -hier -filter {NAME =~ u_mig_0*/u_ddr4_phy/u_infrastructure/mmcm_pll_loop[0].CENTER_MMCM.u_bufg_divClk}]
对于 2014.4 版本(由于目录更改为仅支持 PHY):
set_property LOC BUFGCE_X1Y94 [get_cells -hier -filter {NAME =~ u_mig_1*/u_ddr4_phy/u_infrastructure/mmcm_pll_loop[0].CENTER_MMCM.u_bufg_divClk}]set_property LOC BUFGCE_X0Y46 [get_cells {u_mig_0/inst/u_ddr3_mem_intfc/u_mig_ddr3_phy/inst/u_ddr3_pll_rst/u_bufg_divClk }]
set_property LOC BUFGCE_X0Y71 [get_cells {u_mig_1/inst/u_ddr3_mem_intfc/u_mig_ddr3_phy/inst/u_ddr3_pll_rst/u_bufg_divClk }]
set_property LOC BUFGCE_X1Y93 [get_cells {u_mig_2/inst/u_ddr3_mem_intfc/u_mig_ddr3_phy/inst/u_ddr3_pll_rst/u_bufg_divClk }]
set_property LOC BUFGCE_X1Y116 [get_cells {u_mig_3/inst/u_ddr3_mem_intfc/u_mig_ddr3_phy/inst/u_ddr3_pll_rst/u_bufg_divClk }]
这些 BUFGCE 约束的 Y 坐标需进行相应调整。
请参阅(答复记录 61076),以获取有关所需更改的详细信息。
- 将每个核的 create_clock 约束复制粘贴到顶层 XDC 内。
将唯一的 MIG IP 实例的相应层级添加到 -name 路径内。
时钟共享注意事项
请参阅(答复记录 61304)获取详情。
这将可能导致手动编辑生成的 MIG IP 以允许共享时钟资源。
如需了解有关如何在 Vivado 中手动修改 IP 核的信息,请参阅(答复记录 57546)。
相关信息:
(答复记录 61076) | MIG UltraScale - MIG IP 的多个实例失败并显示“[Place 30-678] Failed to do clock region partitioning” |