AR# 61075

|

MIG UltraScale - What is the recommended flow for creating multiple MIG interfaces within a single design?

描述

MIG UltraScale does not have an option to select multiple controllers similar to the MIG 7-Series tool.

This answer record details the recommended steps for adding multiple MIG UltraScale interfaces within a single design. 

解决方案

Support Plan

For UltraScale MIG, multi-controller support through the MIG tool will not be added.

Changes to the I/O pin planning flow for memory interfaces are coming in a future release that will streamline the usage of multiple MIG instances. 

However, until these I/O pin planning changes are released,
MIG needs to be run multiple times to create unique cores  with the target I/O assignments.

Notes on IO Pin Planning Changes
 
I/O pin planning is moving out of MIG UltraScale and into Vivado I/O Pin Planner in a future release. 

This will allow easy pin planning, including clock pin planning for multiple instances of MIG IP cores outside of MIG.

It will additionally remove the I/O XDC constraints from the MIG IP into a top-level XDC file. 

This removes the need to regenerate MIG cores any time a memory interface pin change is needed and the inability to reuse the same IP multiple times.

Current Multi-Controller Support Flow

  1. Generate each of the required MIG controllers independently.
    Manually ensure that all Pin Requirements documented in PG150 are met and pins do not overlap. Usage of the MIG IO Planner to manually assign pins may be required to get the exact pinout required and pack the banks as needed.

  2. Upon generation, leave the default settings in place for "Generate Output Products" which enables OOC flow and therefore runs Synthesis on the generated core.

  3. Create a top-level wrapper file that instantiates the generated IP and connects them to the user design.
    Ensure that the ports are unique for each controller. 
    For example: c0_ddr4_*, c1_ddr4_*, c2_ddr4_*.

  4. When the MIG IP are located within the same column, create a top-level XDC file. 
    Copy and paste the BUFGCE constraints for each core into the top-level XDC.
    Add the appropriate hierarchy of the unique MIG IP instance into the NAME = path. 
    For example:

    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}]


    The Y coordinates of these BUFGCE constraints need to be adjusted. 
    See (Xilinx Answer 61076) for details on the required change.

  5. Run through Synthesis and Implementation.

Clock Sharing Considerations
Please see (Xilinx Answer 61304) for details.

Related Information:
(Xilinx Answer 61076) MIG UltraScale - Multiple instances of MIG IP fail with "[Place 30-678] Failed to do clock region partitioning"

AR# 61075
日期 08/21/2014
状态 Active
Type 综合文章
器件
IP
People Also Viewed