1
0
mirror of git://projects.qi-hardware.com/xue.git synced 2025-04-21 12:27:27 +03:00
Files
xue/sim/verilog/micron_mobile_ddr
Wolfgang Spraul 29e7ceda7c unzipped 2 files
2010-12-19 01:38:43 +00:00
..
2010-12-19 01:38:43 +00:00
2010-12-19 01:38:43 +00:00
2010-12-19 01:38:43 +00:00
2010-12-19 01:38:43 +00:00
2010-12-19 01:38:43 +00:00
2010-12-19 01:38:43 +00:00

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