| 1 |
412 |
julius |
|
| 2 |
|
|
// memory controller parameters
|
| 3 |
|
|
parameter BANK_WIDTH = 2; // # of memory bank addr bits
|
| 4 |
|
|
parameter CKE_WIDTH = 2; // # of memory clock enable outputs
|
| 5 |
|
|
parameter CLK_WIDTH = 2; // # of clock outputs
|
| 6 |
|
|
parameter CLK_TYPE = "SINGLE_ENDED"; // # of clock type
|
| 7 |
|
|
parameter COL_WIDTH = 10; // # of memory column bits
|
| 8 |
|
|
parameter CS_NUM = 1; // # of separate memory chip selects
|
| 9 |
|
|
parameter CS_WIDTH = 2; // # of total memory chip selects
|
| 10 |
|
|
parameter CS_BITS = 0; // set to log2(CS_NUM) (rounded up)
|
| 11 |
|
|
parameter DM_WIDTH = 8; // # of data mask bits
|
| 12 |
|
|
parameter DQ_WIDTH = 64; // # of data width
|
| 13 |
|
|
parameter DQ_PER_DQS = 8; // # of DQ data bits per strobe
|
| 14 |
|
|
parameter DQS_WIDTH = 8; // # of DQS strobes
|
| 15 |
|
|
parameter DQ_BITS = 6; // set to log2(DQS_WIDTH*DQ_PER_DQS)
|
| 16 |
|
|
parameter DQS_BITS = 3; // set to log2(DQS_WIDTH)
|
| 17 |
|
|
parameter HIGH_PERFORMANCE_MODE = "TRUE"; // Sets the performance mode for IODELAY elements
|
| 18 |
|
|
parameter ODT_WIDTH = 2; // # of memory on-die term enables
|
| 19 |
|
|
parameter ROW_WIDTH = 13; // # of memory row & # of addr bits
|
| 20 |
|
|
// Can't change this!!
|
| 21 |
|
|
parameter APPDATA_WIDTH = 128; // # of usr read/write data bus bits
|
| 22 |
|
|
//parameter APPDATA_WIDTH = 32; // # of usr read/write data bus bits
|
| 23 |
|
|
|
| 24 |
|
|
parameter ADDITIVE_LAT = 0; // additive write latency
|
| 25 |
|
|
// Controller with cache!
|
| 26 |
|
|
parameter BURST_LEN = 8; // burst length (in double words)
|
| 27 |
|
|
// Old controller
|
| 28 |
|
|
// parameter BURST_LEN = 4; // burst length (in double words)
|
| 29 |
|
|
parameter BURST_TYPE = 0; // burst type (=0 seq; =1 interlved)
|
| 30 |
|
|
parameter CAS_LAT = 4; // CAS latency
|
| 31 |
|
|
parameter ECC_ENABLE = 0; // enable ECC (=1 enable)
|
| 32 |
|
|
parameter MULTI_BANK_EN = 1; // enable bank management
|
| 33 |
|
|
parameter TWO_T_TIME_EN = 1; // 2t timing for unbuffered dimms
|
| 34 |
|
|
parameter ODT_TYPE = 1; // ODT (=0(none),=1(75),=2(150),=3(50))
|
| 35 |
|
|
parameter REDUCE_DRV = 0; // reduced strength mem I/O (=1 yes)
|
| 36 |
|
|
parameter REG_ENABLE = 0; // registered addr/ctrl (=1 yes)
|
| 37 |
|
|
parameter TREFI_NS = 7800; // auto refresh interval (ns)
|
| 38 |
|
|
parameter TRAS = 40000; // active->precharge delay
|
| 39 |
|
|
parameter TRCD = 15000; // active->read/write delay
|
| 40 |
|
|
parameter TRFC = 105000; // ref->ref, ref->active delay
|
| 41 |
|
|
parameter TRP = 15000; // precharge->command delay
|
| 42 |
|
|
parameter TRTP = 7500; // read->precharge delay
|
| 43 |
|
|
parameter TWR = 15000; // used to determine wr->prech
|
| 44 |
|
|
parameter TWTR = 7500; // write->read delay
|
| 45 |
|
|
// Synthesize with this set to one if running post-synthesis simulations (don't have to wait forever for powerup delay on DDR2 controller)
|
| 46 |
|
|
// parameter SIM_ONLY = 1; // = 0 to allow power up delay
|
| 47 |
|
|
parameter SIM_ONLY = 0; // = 0 to allow power up delay
|
| 48 |
|
|
parameter DEBUG_EN = 0; // Enable debug signals/controls
|
| 49 |
|
|
parameter RST_ACT_LOW = 0; // =1 for active low reset, =0 for active high
|
| 50 |
|
|
parameter DLL_FREQ_MODE = "HIGH"; // DCM Frequency range
|
| 51 |
|
|
parameter CLK_PERIOD = 3750; // 266MHz Core/Mem clk period (in ps)
|
| 52 |
|
|
// parameter CLK_PERIOD = 5000; // 200MHz Core/Mem clk period (in ps)
|
| 53 |
|
|
|