We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 35410

MIG 7 Series and Virtex-6 DDR2/DDR3 Solution Center - Design Assistant - How many commands can the design store?


This section of the MIG Design Assistant focuses on how command requests by the User/Native Interface are stored.

Note: This Answer Record is a part of the Xilinx MIG Solution Center (Xilinx Answer 34243).

The Xilinx MIG Solution Center is available to address all questions related to MIG.

Whether you are starting a new design with MIG or troubleshooting a problem, use the MIG Solution Center to guide you to the right information. 


MIG design for previous architectures included command FIFO's with specific FIFO depths.  

This determined the number of commands that could be stored at a time. 

The MIG 7 Series and Virtex-6 DDR2/DDR3 design does not include command FIFO's.  

Instead, commands are assigned to bank machines. 

The number of commands that can be stored is based on the number of bank machines and the traffic generation requested. 

Each bank machine holds a single request and the interface will push back until it is processed and the bank machine is freed. 

If the user streams a set of requests that are optimal to the reordering algorithm, little or no pushback will occur. 

The design also includes a starvation mechanism.

The number of banks machines that can be configured is between 2-8. 

By default, MIG uses 4 bank machines. 

This is a trade-off between area and performance. 

As this number is increased, FPGA logic timing becomes more challenging and timing failures can occur depending on design and memory configuration.

Timing closure should be taken care of by the user.

Based on overall design timing budget and timing score, for 7 series devices, the ExtraNetDelay_high and Explore directives might help to close the timing.


To modify the number of bank machines, open the memc_ui_top module and locate the following parameters:

  • BM_CNT_WIDTH  = 3
  • nBANK_MACHS = 8

BM_CNT_WIDTH is the number of bits required to represent the number of bank machines.  

nBANK_MACHs is the number of bank machines to be configured in the design.

The best way to determine how many commands can be stored is to simulate the workload in question and observe the interface behavior.

For information on the Reordering Logic, see (Xilinx Answer 34942).

Linked Answer Records

Master Answer Records

Child Answer Records

Answer Number Answer Title Version Found Version Resolved
34942 MIG 7 Series and Virtex-6 DDR2/DDR3 Solution Center - Design Assistant - Reordering Controller Logic N/A N/A

Associated Answer Records

AR# 35410
Date Created 05/20/2010
Last Updated 01/07/2015
Status Active
Type Solution Center
  • Virtex-6 CXT
  • Virtex-6 HXT
  • Virtex-6 LX
  • More
  • Virtex-6 LXT
  • Virtex-6 SXT
  • Virtex-7
  • Kintex-7
  • Artix-7
  • Zynq-7000
  • Less
  • MIG
  • MIG 7 Series