UPGRADE YOUR BROWSER

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# 33130

Spartan-6 FPGA MCB - Design requirements for General ES Spartan-6 FPGAs

Description

For all General ES Spartan-6 devices with MCB designs that will use Calibrated Input Termination, specific pin locations should be used for the RZQ reference resistor. 

 

For the General ES XC6SLX16-2CSG324CES device, the MIG v3.1 output for a Spartan-6 FPGA MCB design requires specific RTL changes for proper behavior.


These RTL changes are not required starting with MIG v3.2.


Please use the latest version of MIG. 

 

This Answer Record details all design requirements.

Solution

Requirements for all General ES Spartan-6 Devices:

 

For designs that plan to use Calibrated Input Termination, the following pin locations should be used for the RZQ reference resistor:  

 

LX Devices 

 

XC6SLX16-2CSG324CES  

================== 

MCB Bank 1 - pin M13 

MCB Bank 3 - pin C2 

 

XC6SLX45-2CSG324CES 

================== 

MCB Bank 1 - pin M14 

MCB Bank 3 - pin L6 

 

XC6SLX45-2FGG484CES 

================== 

MCB Bank 1 - pin M19 

MCB Bank 3 - pin K7 

 

XC6SLX150-2FGG484CES 

==================== 

MCB Bank 1 - pin M19 

MCB Bank 3 - pin K7 

 

XC6SLX150-2CSG484CES 

==================== 

MCB Bank 1 - pin W20 

MCB Bank 3 - pin H6 

 

LXT Devices 

 

XC6SLX45T-2FGG484CES 

================== 

MCB Bank 1 - pin P19 

MCB Bank 3 - pin K7 

 

XC6SLX150T-2FGG484CES 

==================== 

MCB Bank 1 - pin P19 

MCB Bank 3 - pin K7 

 

XC6SLX150T-2FGG676CES 

==================== 

MCB Bank 1 - pin U21 

MCB Bank 3 - pin M10 

MCB Bank 4 - pin M4 

MCB Bank 5 - pin M21 

 

 

Design requirements for General ES Spartan-6 device XC6SLX16-2CSG324CES when using MIG v3.1:

Note: MIG v3.2 and forward do not require these RTL changes. 

Please use the latest version of MIG.  

 

Requirement 1 

 

As specified in the device errata (document EN113): 

http://www.xilinx.com/support/documentation/spartan-6.htm#131538
 

This General ES device does not fully support the hardware calibration operations defined in the MCB startup sequence. 

Note that the per-bit deskew hardware calibration of the DQ data bits initially referenced in the MCB User Guide is not be supported in any Spartan-6 devices. 

Therefore, to ensure a reliable memory interface: 

 

  • Follow the recommended PCB Layout Guidelines to minimize skew between DQ bits. 
     
  • For MIG 3.1, center the DQS strobe in the DQ read data capture window by editing the calibration parameters found in the top-most MIG design file (for example, <component name>.v or example_top.v) as follows:  

 

MCB in Bank 1 

C1_MC_CALIB_BYPASS = "NO"  

C1_MC_CALIBRATION_MODE = "NOCALIBRATION" 

C1_MC_CALIBRATION_DELAY = "HALF" 

 

MCB in Bank 3  

C3_MC_CALIB_BYPASS = "NO" 

C3_MC_CALIBRATION_MODE = "NOCALIBRATION" 

C3_MC_CALIBRATION_DELAY = "HALF" 

 

Refer to the Spartan-6 FPGA Memory Controller User Guide (UG388): 

http://www.xilinx.com/support/documentation/ip_documentation/ug388.pdf
 

For more information on: 

Calibration Parameters - see Chapter 3 

PCB Layout Guidelines - see Chapter 4 

MCB Startup Sequence - see Chapter 5 

 

Note: These changes will be taken care of by default in the MIG 3.2 (11.3) release.

Manual modification will no longer be required. 

 

Requirement 2 

 

For MIG 3.1, insert the following lines of Verilog code at the bottom of the "mcb_raw_wrapper.v" file, just before the "endmodule" statement.  

 

// DQS PULLDOWN 

generate  

if(C_MEM_TYPE == "DDR" || C_MEM_TYPE =="MDDR" || (C_MEM_TYPE == "DDR2" && (C_MEM_DDR2_DIFF_DQS_EN == "NO"))) begin: gen_dqs_pullupdn 

PULLDOWN dqs_pulldown (.O(mcbx_dram_dqs)); 

end else begin: gen_dqs_pullupdn_ds 

PULLDOWN dqs_pulldown (.O(mcbx_dram_dqs)); 

PULLUP dqs_n_pullup (.O(mcbx_dram_dqs_n)); 

end 

endgenerate 

 

// DQSN PULLUP 

generate 

if((C_MEM_TYPE == "DDR" || C_MEM_TYPE =="MDDR" || (C_MEM_TYPE == "DDR2" && (C_MEM_DDR2_DIFF_DQS_EN == "NO"))) && C_NUM_DQ_PINS == 16) begin: gen_udqs_pullupdn 

PULLDOWN udqs_pulldown (.O(mcbx_dram_udqs)); 

end else if(C_NUM_DQ_PINS == 16) begin: gen_udqs_pullupdn_ds 

PULLDOWN udqs_pulldown (.O(mcbx_dram_udqs)); 

PULLUP udqs_n_pullup (.O(mcbx_dram_udqs_n)); 

end 

endgenerate 

 

Note: These changes will be taken care of by default in the MIG 3.2 (11.3) release. 

Manual modification will no longer be required.

AR# 33130
Date Created 07/16/2009
Last Updated 08/29/2014
Status Active
Type General Article
Devices
  • Spartan-6 LXT
  • Spartan-6 LX