mirror of
git://projects.qi-hardware.com/xue.git
synced 2024-11-08 11:08:25 +02:00
168 lines
7.5 KiB
Plaintext
168 lines
7.5 KiB
Plaintext
|
Disclaimer of Warranty:
|
||
|
-----------------------
|
||
|
This software code and all associated documentation, comments or other
|
||
|
information (collectively "Software") is provided "AS IS" without
|
||
|
warranty of any kind. MICRON TECHNOLOGY, INC. ("MTI") EXPRESSLY
|
||
|
DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
||
|
TO, NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND ANY IMPLIED WARRANTIES
|
||
|
OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. MTI DOES NOT
|
||
|
WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE
|
||
|
OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE.
|
||
|
FURTHERMORE, MTI DOES NOT MAKE ANY REPRESENTATIONS REGARDING THE USE OR
|
||
|
THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS,
|
||
|
ACCURACY, RELIABILITY, OR OTHERWISE. THE ENTIRE RISK ARISING OUT OF USE
|
||
|
OR 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 USE
|
||
|
THE SOFTWARE, EVEN IF MTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||
|
DAMAGES. Because some jurisdictions prohibit the exclusion or
|
||
|
limitation of liability for consequential or incidental damages, the
|
||
|
above limitation may not apply to you.
|
||
|
|
||
|
Copyright 2008 Micron Technology, Inc. All rights reserved.
|
||
|
|
||
|
Getting Started:
|
||
|
----------------
|
||
|
Unzip the included files to a folder.
|
||
|
Compile mobile_ddr.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:
|
||
|
------------------
|
||
|
mobile_ddr.v --mobile ddr model
|
||
|
mobile_ddr_mcp.v --structural wrapper for mobile_ddr multi-chip package model
|
||
|
128Mb_mobile_ddr_parameters.vh --File that contains all parameters used by the model
|
||
|
256Mb_mobile_ddr_parameters.vh --File that contains all parameters used by the model
|
||
|
512Mb_mobile_ddr_parameters.vh --File that contains all parameters used by the model
|
||
|
1024Mb_mobile_ddr_parameters.vh --File that contains all parameters used by the model
|
||
|
2048Mb_mobile_ddr_parameters.vh --File that contains all parameters used by the model
|
||
|
readme.txt --This file
|
||
|
tb.v --Test bench
|
||
|
tb.do --File that compiles and runs the above files
|
||
|
|
||
|
Defining the Density (part size):
|
||
|
-------------------------
|
||
|
The verilog compiler directive "`define" may be used to choose between on of the
|
||
|
densities supported by the mobile ddr model. Allowable densities are listed in
|
||
|
the *.vh file. The density is used to select a set of bank, row, column, and timing
|
||
|
parameters for the mobile ddr model. The following are examples of defining
|
||
|
the density.
|
||
|
|
||
|
simulator command line
|
||
|
--------- ------------
|
||
|
ModelSim vlog +define+den512Mb mobile_ddr.v
|
||
|
VCS vcs +define+den512Mb mobile_ddr.v
|
||
|
NC-Verilog ncverilog +define+den512Mb mobile_ddr.v
|
||
|
|
||
|
|
||
|
Defining the Speed Grade:
|
||
|
-------------------------
|
||
|
The verilog compiler directive "`define" may be used to choose between
|
||
|
multiple speed grades supported by the mobile ddr model. Allowable speed
|
||
|
grades are listed in the mobile_ddr_parameters.vh file and begin with the
|
||
|
letters "sg". The speed grade is used to select a set of timing
|
||
|
parameters for the mobile ddr model. The following are examples of defining
|
||
|
the speed grade.
|
||
|
|
||
|
simulator command line
|
||
|
--------- ------------
|
||
|
ModelSim vlog +define+sg75 mobile_ddr.v
|
||
|
VCS vcs +define+sg75 mobile_ddr.v
|
||
|
NC-Verilog ncverilog +define+sg75 mobile_ddr.v
|
||
|
|
||
|
|
||
|
Defining the Organization:
|
||
|
--------------------------
|
||
|
The verilog compiler directive "`define" may be used to choose between
|
||
|
multiple organizations supported by the mobile ddr model. Valid
|
||
|
organizations include "x16" and "x32", and are listed in the
|
||
|
mobile_ddr_parameters.vh file. The organization is used to select the amount
|
||
|
of memory and the port sizes of the mobile ddr model. The following are
|
||
|
examples of defining the organization.
|
||
|
|
||
|
vlog +define+x16 mobile_ddr.v
|
||
|
simulator command line
|
||
|
--------- ------------
|
||
|
ModelSim vlog +define+x16 mobile_ddr.v
|
||
|
VCS vcs +define+x16 mobile_ddr.v
|
||
|
NC-Verilog ncverilog +define+x16 mobile_ddr.v
|
||
|
|
||
|
All combinations of speed grade and organization are considered valid
|
||
|
by the mobile ddr model even though a Micron part may not exist for every
|
||
|
combination.
|
||
|
|
||
|
Allocating Memory:
|
||
|
------------------
|
||
|
An associative array has been implemented to reduce the amount of
|
||
|
static memory allocated by the mobile ddr model. The number of
|
||
|
entries in the associative array is controlled by the part_mem_bits
|
||
|
parameter, and is equal to 2^part_mem_bits. For example, if the
|
||
|
part_mem_bits parameter is equal to 10, the associative array will be
|
||
|
large enough to store 1024 write data transfers to unique addresses.
|
||
|
The following are examples of setting the MEM_BITS parameter to 8.
|
||
|
|
||
|
simulator command line
|
||
|
--------- ------------
|
||
|
ModelSim vsim -Gpart_mem_bits=8 mobile_ddr
|
||
|
VCS vcs -pvalue+part_mem_bits=8 mobile_ddr.v
|
||
|
NC-Verilog ncverilog +defparam+mobile_ddr.part_mem_bits=8 mobile_ddr.v
|
||
|
|
||
|
It is possible to allocate memory for every address supported by the
|
||
|
mobile ddr model by using the verilog compiler directive "`define FULL_MEM".
|
||
|
This procedure will improve simulation performance at the expense of
|
||
|
system memory. The following are examples of allocating memory for
|
||
|
every address.
|
||
|
|
||
|
Simulator command line
|
||
|
--------- ------------
|
||
|
ModelSim vlog +define+FULL_MEM mobile_ddr.v
|
||
|
VCS vcs +define+FULL_MEM mobile_ddr.v
|
||
|
NC-Verilog ncverilog +define+FULL_MEM mobile_ddr.v
|
||
|
|
||
|
|
||
|
Reduced Page Mode:
|
||
|
------------------
|
||
|
Mobile DDR 256Mb, 512Mb, and 1024Mb part may be built with the reduced page size
|
||
|
architecture. This part is accessed with the +define+RP designator. RP
|
||
|
parts have one extra row bit and one less column bit effectively cutting
|
||
|
the page size in half but doubling the number of rows keeping total part
|
||
|
size the same.
|
||
|
|
||
|
Part Size Valid RP Designators
|
||
|
--------- --------------------
|
||
|
256Mb +define+RP
|
||
|
512Mb +define+RP
|
||
|
1024Mb +define+RP
|
||
|
|
||
|
Simulator command line
|
||
|
--------- ------------
|
||
|
ModelSim vlog +define+RP mobile_ddr.v
|
||
|
VCS vcs +define+RP mobile_ddr.v
|
||
|
NC-Verilog ncverilog +define+RP mobile_ddr.v
|
||
|
|
||
|
Multi-Chip Package Model:
|
||
|
-------------------------
|
||
|
The 1024Mb model can be supported in a Multi Chip Package, that allows
|
||
|
multiple die models in one structural package. The number of ranks and
|
||
|
chip selects of the mcp can be configured by using the `DUAL_RANK define
|
||
|
on the simulator call line. The currently supported configurations are
|
||
|
listed below:
|
||
|
|
||
|
Package Configuration Valid MCP Designator
|
||
|
--------------------- --------------------
|
||
|
2 Chip Selects, 2 Die +define+DUAL_RANK
|
||
|
2 Chip Selects, 1 Die (default)
|
||
|
|
||
|
The single rank mcp is the default. In order to simulate the DUAL_RANK
|
||
|
model, the define needs to be added:
|
||
|
|
||
|
Simulator command line
|
||
|
--------- ------------
|
||
|
ModelSim vlog +define+DUAL_RANK mobile_ddr.v mobile_ddr_mcp.v
|
||
|
VCS vcs +define+DUAL_RANK mobile_ddr.v mobile_ddr_mcp.v
|
||
|
NC-Verilog ncverilog +define+DUAL_RANK mobile_ddr.v mobile_ddr_mcp.v
|
||
|
|