61075 - MIG UltraScale - 在单个设计中创建多个 MIG 接口的推荐流程是什么?

18 阅读4分钟

标题

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。

当前多控制器支持流程


  1. 单独生成每个所需 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}]
    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}]

    对于 2014.4 版本(由于目录更改为仅支持 PHY):

    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 路径内。

     
例如:
create_clock -name u_mig_0*/c0_sys_clk -period 10.0 [get_ports c0_sys_clk_p]
create_clock -name u_mig_1*/c0_sys_clk -period 10.0 [get_ports c0_sys_clk_p]

6.   运行综合与实现。

时钟共享注意事项
 
请参阅(答复记录 61304)获取详情
这将可能导致手动编辑生成的 MIG IP 以允许共享时钟资源。
如需了解有关如何在 Vivado 中手动修改 IP 核的信息,请参阅(答复记录 57546)

相关信息:
(答复记录 61076)MIG UltraScale - MIG IP 的多个实例失败并显示“[Place 30-678] Failed to do clock region partitioning”