Xué video camera
Sign in or create your account | Project List | Help
Xué video camera Git Source Tree
Root/
| 1 | Disclaimer of Warranty: |
| 2 | ----------------------- |
| 3 | This software code and all associated documentation, comments or other |
| 4 | information (collectively "Software") is provided "AS IS" without |
| 5 | warranty of any kind. MICRON TECHNOLOGY, INC. ("MTI") EXPRESSLY |
| 6 | DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED |
| 7 | TO, NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND ANY IMPLIED WARRANTIES |
| 8 | OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. MTI DOES NOT |
| 9 | WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE |
| 10 | OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE. |
| 11 | FURTHERMORE, MTI DOES NOT MAKE ANY REPRESENTATIONS REGARDING THE USE OR |
| 12 | THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, |
| 13 | ACCURACY, RELIABILITY, OR OTHERWISE. THE ENTIRE RISK ARISING OUT OF USE |
| 14 | OR PERFORMANCE OF THE SOFTWARE REMAINS WITH YOU. IN NO EVENT SHALL MTI, |
| 15 | ITS AFFILIATED COMPANIES OR THEIR SUPPLIERS BE LIABLE FOR ANY DIRECT, |
| 16 | INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR SPECIAL DAMAGES (INCLUDING, |
| 17 | WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, |
| 18 | OR LOSS OF INFORMATION) ARISING OUT OF YOUR USE OF OR INABILITY TO USE |
| 19 | THE SOFTWARE, EVEN IF MTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH |
| 20 | DAMAGES. Because some jurisdictions prohibit the exclusion or |
| 21 | limitation of liability for consequential or incidental damages, the |
| 22 | above limitation may not apply to you. |
| 23 | |
| 24 | Copyright 2003 Micron Technology, Inc. All rights reserved. |
| 25 | |
| 26 | Getting Started: |
| 27 | ---------------- |
| 28 | Unzip the included files to a folder. |
| 29 | Compile ddr2.v, ddr2_mcp.v, and tb.v using a verilog simulator. |
| 30 | Simulate the top level test bench tb. |
| 31 | Or, if you are using the ModelSim simulator, type "do tb.do" at the prompt. |
| 32 | |
| 33 | File Descriptions: |
| 34 | ------------------ |
| 35 | ddr2.v -ddr2 model |
| 36 | ddr2_mcp.v -structural wrapper for ddr2 - multi-chip package model |
| 37 | ddr2_module.v -structural wrapper for ddr2 - module model |
| 38 | ddr2_parameters.vh -file that contains all parameters used by the model |
| 39 | readme.txt -this file |
| 40 | tb.v -ddr2 model test bench |
| 41 | subtest.vh -example test included by the test bench. |
| 42 | tb.do -compiles and runs the ddr2 model and test bench |
| 43 | |
| 44 | Defining the Speed Grade: |
| 45 | ------------------------- |
| 46 | The verilog compiler directive "`define" may be used to choose between |
| 47 | multiple speed grades supported by the ddr2 model. Allowable speed |
| 48 | grades are listed in the ddr2_parameters.vh file and begin with the |
| 49 | letters "sg". The speed grade is used to select a set of timing |
| 50 | parameters for the ddr2 model. The following are examples of defining |
| 51 | the speed grade. |
| 52 | |
| 53 | simulator command line |
| 54 | --------- ------------ |
| 55 | ModelSim vlog +define+sg5 ddr2.v |
| 56 | NC-Verilog ncverilog +define+sg5 ddr2.v |
| 57 | VCS vcs +define+sg5 ddr2.v |
| 58 | |
| 59 | Defining the Organization: |
| 60 | -------------------------- |
| 61 | The verilog compiler directive "`define" may be used to choose between |
| 62 | multiple organizations supported by the ddr2 model. Valid |
| 63 | organizations include "x4", "x8", and x16, and are listed in the |
| 64 | ddr2_parameters.vh file. The organization is used to select the amount |
| 65 | of memory and the port sizes of the ddr2 model. The following are |
| 66 | examples of defining the organization. |
| 67 | |
| 68 | simulator command line |
| 69 | --------- ------------ |
| 70 | ModelSim vlog +define+x8 ddr2.v |
| 71 | NC-Verilog ncverilog +define+x8 ddr2.v |
| 72 | VCS vcs +define+x8 ddr2.v |
| 73 | |
| 74 | All combinations of speed grade and organization are considered valid |
| 75 | by the ddr2 model even though a Micron part may not exist for every |
| 76 | combination. |
| 77 | |
| 78 | Allocating Memory: |
| 79 | ------------------ |
| 80 | An associative array has been implemented to reduce the amount of |
| 81 | static memory allocated by the ddr2 model. Each entry in the |
| 82 | associative array is a burst length of eight in size. The number of |
| 83 | entries in the associative array is controlled by the MEM_BITS |
| 84 | parameter, and is equal to 2^MEM_BITS. For example, if the MEM_BITS |
| 85 | parameter is equal to 10, the associative array will be large enough |
| 86 | to store 1024 writes of burst length 8 to unique addresses. The |
| 87 | following are examples of setting the MEM_BITS parameter to 8. |
| 88 | |
| 89 | simulator command line |
| 90 | --------- ------------ |
| 91 | ModelSim vsim -GMEM_BITS=8 ddr2 |
| 92 | NC-Verilog ncverilog +defparam+ddr2.MEM_BITS=8 ddr2.v |
| 93 | VCS vcs -pvalue+MEM_BITS=8 ddr2.v |
| 94 | |
| 95 | It is possible to allocate memory for every address supported by the |
| 96 | ddr2 model by using the verilog compiler directive "`define MAX_MEM". |
| 97 | This procedure will improve simulation performance at the expense of |
| 98 | system memory. The following are examples of allocating memory for |
| 99 | every address. |
| 100 | |
| 101 | Simulator command line |
| 102 | --------- ------------ |
| 103 | ModelSim vlog +define+MAX_MEM ddr2.v |
| 104 | NC-Verilog ncverilog +define+MAX_MEM ddr2.v |
| 105 | VCS vcs +define+MAX_MEM ddr2.v |
| 106 | |
| 107 | |
| 108 | ********************************************************************** |
| 109 | The following information is provided to assist the modeling engineer |
| 110 | in creating multi-chip package (mcp) models. ddr2_mcp.v is a |
| 111 | structural wrapper that instantiates ddr2 models. This wrapper can be |
| 112 | used to create single, dual, or quad rank mcp models. From the |
| 113 | perspective of the model, the only item that needs to be defined is the |
| 114 | number of ranks. |
| 115 | ********************************************************************** |
| 116 | |
| 117 | Defining the Number of Ranks in a multi-chip package: |
| 118 | ---------------------------------------------------- |
| 119 | The verilog compiler directive "`define" may be used to choose between |
| 120 | single, dual, and quad rank mcp configurations. The default is single |
| 121 | rank if nothing is defined. Dual rank configuration can be selected by |
| 122 | defining "DUAL_RANK" when the ddr2_mcp is compiled. Quad rank |
| 123 | configuration can be selected by defining "QUAD_RANK" when the ddr2_mcp |
| 124 | is compiled. The following are examples of defining a dual rank mcp |
| 125 | configuration. |
| 126 | |
| 127 | simulator command line |
| 128 | --------- ------------ |
| 129 | ModelSim vlog +define+DUAL_RANK ddr2.v ddr2_mcp.v |
| 130 | NC-Verilog ncverilog +define+DUAL_RANK ddr2.v ddr2_mcp.v |
| 131 | VCS vcs +define+DUAL_RANK ddr2.v ddr2_mcp.v |
| 132 | |
| 133 | |
| 134 | ********************************************************************** |
| 135 | The following information is provided to assist the modeling engineer |
| 136 | in creating DIMM models. ddr2_module.v is a structural wrapper that |
| 137 | instantiates ddr2 models. This wrapper can be used to create UDIMM, |
| 138 | RDIMM or SODIMM models. Other form factors are not supported |
| 139 | (MiniDIMM, VLP DIMM, etc.). From the perspective of the model, the |
| 140 | items that need to be defined are the number of ranks, the module |
| 141 | type, and the presence of ECC. All combinations of ranks, module |
| 142 | type, and ECC are considered valid by the ddr2_module model even |
| 143 | though a Micron part may not exist for every combination. |
| 144 | ********************************************************************** |
| 145 | |
| 146 | Defining the Number of Ranks on a module: |
| 147 | ---------------------------------------- |
| 148 | The verilog compiler directive "`define" may be used to choose between |
| 149 | single, dual, and quad rank module configurations. The default is single |
| 150 | rank if nothing is defined. Dual rank configuration can be selected by |
| 151 | defining "DUAL_RANK" when the ddr2_module is compiled. Quad rank |
| 152 | configuration can be selected by defining "QUAD_RANK" when the ddr2_module |
| 153 | is compiled. The following are examples of defining a dual rank module |
| 154 | configuration. |
| 155 | |
| 156 | simulator command line |
| 157 | --------- ------------ |
| 158 | ModelSim vlog +define+DUAL_RANK ddr2.v ddr2_module.v |
| 159 | NC-Verilog ncverilog +define+DUAL_RANK ddr2.v ddr2_module.v |
| 160 | VCS vcs +define+DUAL_RANK ddr2.v ddr2_module.v |
| 161 | |
| 162 | Defining the Module Type: |
| 163 | ----------------------------------- |
| 164 | The verilog compiler directive "`define" may be used to choose between |
| 165 | UDIMM, RDIMM, and SODIMM module configurations. The default is |
| 166 | unregistered (UDIMM) if nothing is defined. SODIMM configuration can be |
| 167 | selected by defining "SODIMM" when the ddr2_module is compiled. Registered |
| 168 | configuration can be selected by defining "RDIMM" when the ddr2_module is |
| 169 | compiled. The following are examples of defining a registered module |
| 170 | configuration. |
| 171 | |
| 172 | simulator command line |
| 173 | --------- ------------ |
| 174 | ModelSim vlog +define+RDIMM ddr2.v ddr2_module.v |
| 175 | NC-Verilog ncverilog +define+RDIMM ddr2.v ddr2_module.v |
| 176 | VCS vcs +define+RDIMM ddr2.v ddr2_module.v |
| 177 | |
| 178 | Defining the ECC for a module: |
| 179 | ----------------------------- |
| 180 | The verilog compiler directive "`define" may be used to choose between |
| 181 | ECC and nonECC module configurations. The default is nonECC if nothing |
| 182 | is defined. ECC configuration can be selected by defining "ECC" when |
| 183 | the ddr2_module is compiled. The following are examples of defining an |
| 184 | ECC module configuration. |
| 185 | |
| 186 | simulator command line |
| 187 | --------- ------------ |
| 188 | ModelSim vlog +define+ECC ddr2.v ddr2_module.v |
| 189 | NC-Verilog ncverilog +define+ECC ddr2.v ddr2_module.v |
| 190 | VCS vcs +define+ECC ddr2.v ddr2_module.v |
| 191 |
Branches:
master
