URL
https://opencores.org/ocsvn/versatile_mem_ctrl/versatile_mem_ctrl/trunk
Subversion Repositories versatile_mem_ctrl
[/] [versatile_mem_ctrl/] [trunk/] [bench/] [ddr/] [readme.txt] - Rev 11
Compare with Previous | Blame | View Log
Disclaimer of Warranty:-----------------------This software code and all associated documentation, comments or otherinformation (collectively "Software") is provided "AS IS" withoutwarranty of any kind. MICRON TECHNOLOGY, INC. ("MTI") EXPRESSLYDISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITEDTO, NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND ANY IMPLIED WARRANTIESOF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. MTI DOES NOTWARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THEOPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE.FURTHERMORE, MTI DOES NOT MAKE ANY REPRESENTATIONS REGARDING THE USE ORTHE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS,ACCURACY, RELIABILITY, OR OTHERWISE. THE ENTIRE RISK ARISING OUT OF USEOR PERFORMANCE OF THE SOFTWARE REMAINS WITH YOU. IN NO EVENT SHALL MTI,ITS AFFILIATED COMPANIES OR THEIR SUPPLIERS BE LIABLE FOR ANY DIRECT,INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR SPECIAL DAMAGES (INCLUDING,WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION,OR LOSS OF INFORMATION) ARISING OUT OF YOUR USE OF OR INABILITY TO USETHE SOFTWARE, EVEN IF MTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCHDAMAGES. Because some jurisdictions prohibit the exclusion orlimitation of liability for consequential or incidental damages, theabove limitation may not apply to you.Copyright 2003 Micron Technology, Inc. All rights reserved.Getting Started:----------------Unzip the included files to a folder.Compile ddr2.v, ddr2_mcp.v, and tb.v using a verilog simulator.Simulate the top level test bench tb.Or, if you are using the ModelSim simulator, type "do tb.do" at the prompt.File Descriptions:------------------ddr2.v -ddr2 modelddr2_mcp.v -structural wrapper for ddr2 - multi-chip package modelddr2_module.v -structural wrapper for ddr2 - module modelddr2_parameters.vh -file that contains all parameters used by the modelreadme.txt -this filetb.v -ddr2 model test benchsubtest.vh -example test included by the test bench.tb.do -compiles and runs the ddr2 model and test benchDefining the Speed Grade:-------------------------The verilog compiler directive "`define" may be used to choose betweenmultiple speed grades supported by the ddr2 model. Allowable speedgrades are listed in the ddr2_parameters.vh file and begin with theletters "sg". The speed grade is used to select a set of timingparameters for the ddr2 model. The following are examples of definingthe speed grade.simulator command line--------- ------------ModelSim vlog +define+sg5 ddr2.vNC-Verilog ncverilog +define+sg5 ddr2.vVCS vcs +define+sg5 ddr2.vDefining the Organization:--------------------------The verilog compiler directive "`define" may be used to choose betweenmultiple organizations supported by the ddr2 model. Validorganizations include "x4", "x8", and x16, and are listed in theddr2_parameters.vh file. The organization is used to select the amountof memory and the port sizes of the ddr2 model. The following areexamples of defining the organization.simulator command line--------- ------------ModelSim vlog +define+x8 ddr2.vNC-Verilog ncverilog +define+x8 ddr2.vVCS vcs +define+x8 ddr2.vAll combinations of speed grade and organization are considered validby the ddr2 model even though a Micron part may not exist for everycombination.Allocating Memory:------------------An associative array has been implemented to reduce the amount ofstatic memory allocated by the ddr2 model. Each entry in theassociative array is a burst length of eight in size. The number ofentries in the associative array is controlled by the MEM_BITSparameter, and is equal to 2^MEM_BITS. For example, if the MEM_BITSparameter is equal to 10, the associative array will be large enoughto store 1024 writes of burst length 8 to unique addresses. Thefollowing are examples of setting the MEM_BITS parameter to 8.simulator command line--------- ------------ModelSim vsim -GMEM_BITS=8 ddr2NC-Verilog ncverilog +defparam+ddr2.MEM_BITS=8 ddr2.vVCS vcs -pvalue+MEM_BITS=8 ddr2.vIt is possible to allocate memory for every address supported by theddr2 model by using the verilog compiler directive "`define MAX_MEM".This procedure will improve simulation performance at the expense ofsystem memory. The following are examples of allocating memory forevery address.Simulator command line--------- ------------ModelSim vlog +define+MAX_MEM ddr2.vNC-Verilog ncverilog +define+MAX_MEM ddr2.vVCS vcs +define+MAX_MEM ddr2.v**********************************************************************The following information is provided to assist the modeling engineerin creating multi-chip package (mcp) models. ddr2_mcp.v is astructural wrapper that instantiates ddr2 models. This wrapper can beused to create single, dual, or quad rank mcp models. From theperspective of the model, the only item that needs to be defined is thenumber of ranks.**********************************************************************Defining the Number of Ranks in a multi-chip package:----------------------------------------------------The verilog compiler directive "`define" may be used to choose betweensingle, dual, and quad rank mcp configurations. The default is singlerank if nothing is defined. Dual rank configuration can be selected bydefining "DUAL_RANK" when the ddr2_mcp is compiled. Quad rankconfiguration can be selected by defining "QUAD_RANK" when the ddr2_mcpis compiled. The following are examples of defining a dual rank mcpconfiguration.simulator command line--------- ------------ModelSim vlog +define+DUAL_RANK ddr2.v ddr2_mcp.vNC-Verilog ncverilog +define+DUAL_RANK ddr2.v ddr2_mcp.vVCS vcs +define+DUAL_RANK ddr2.v ddr2_mcp.v**********************************************************************The following information is provided to assist the modeling engineerin creating DIMM models. ddr2_module.v is a structural wrapper thatinstantiates ddr2 models. This wrapper can be used to create UDIMM,RDIMM or SODIMM models. Other form factors are not supported(MiniDIMM, VLP DIMM, etc.). From the perspective of the model, theitems that need to be defined are the number of ranks, the moduletype, and the presence of ECC. All combinations of ranks, moduletype, and ECC are considered valid by the ddr2_module model eventhough a Micron part may not exist for every combination.**********************************************************************Defining the Number of Ranks on a module:----------------------------------------The verilog compiler directive "`define" may be used to choose betweensingle, dual, and quad rank module configurations. The default is singlerank if nothing is defined. Dual rank configuration can be selected bydefining "DUAL_RANK" when the ddr2_module is compiled. Quad rankconfiguration can be selected by defining "QUAD_RANK" when the ddr2_moduleis compiled. The following are examples of defining a dual rank moduleconfiguration.simulator command line--------- ------------ModelSim vlog +define+DUAL_RANK ddr2.v ddr2_module.vNC-Verilog ncverilog +define+DUAL_RANK ddr2.v ddr2_module.vVCS vcs +define+DUAL_RANK ddr2.v ddr2_module.vDefining the Module Type:-----------------------------------The verilog compiler directive "`define" may be used to choose betweenUDIMM, RDIMM, and SODIMM module configurations. The default isunregistered (UDIMM) if nothing is defined. SODIMM configuration can beselected by defining "SODIMM" when the ddr2_module is compiled. Registeredconfiguration can be selected by defining "RDIMM" when the ddr2_module iscompiled. The following are examples of defining a registered moduleconfiguration.simulator command line--------- ------------ModelSim vlog +define+RDIMM ddr2.v ddr2_module.vNC-Verilog ncverilog +define+RDIMM ddr2.v ddr2_module.vVCS vcs +define+RDIMM ddr2.v ddr2_module.vDefining the ECC for a module:-----------------------------The verilog compiler directive "`define" may be used to choose betweenECC and nonECC module configurations. The default is nonECC if nothingis defined. ECC configuration can be selected by defining "ECC" whenthe ddr2_module is compiled. The following are examples of defining anECC module configuration.simulator command line--------- ------------ModelSim vlog +define+ECC ddr2.v ddr2_module.vNC-Verilog ncverilog +define+ECC ddr2.v ddr2_module.vVCS vcs +define+ECC ddr2.v ddr2_module.v
