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 |
|
|
|