OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [soc/] [rtl/] [altera_ddr_ctrl/] [altera_ddr_auk_ddr_hp_controller_wrapper.v] - Blame information for rev 12

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 12 xianfeng
//Legal Notice: (C)2006 Altera Corporation. All rights reserved.  Your
2
//use of Altera Corporation's design tools, logic functions and other
3
//software and tools, and its AMPP partner logic functions, and any
4
//output files any of the foregoing (including device programming or
5
//simulation files), and any associated documentation or information are
6
//expressly subject to the terms and conditions of the Altera Program
7
//License Subscription Agreement or other applicable license agreement,
8
//including, without limitation, that your use is for the sole purpose
9
//of programming logic devices manufactured by Altera and sold by Altera
10
//or its authorized distributors.  Please refer to the applicable
11
//agreement for further details.
12
 
13
 
14
///////////////////////////////////////////////////////////////////////////////
15
// Title         : Controller Wrapper
16
//
17
// File          : $RCSfile: auk_ddr_hp_controller_wrapper.v,v $
18
//
19
// Last modified : $Date: 2009/04/01 $
20
//
21
// Revision      : $Revision: #1 $
22
//
23
// Abstract      : A wrapper for the controller as it is encrypted
24
///////////////////////////////////////////////////////////////////////////////
25
 
26
`timescale 1 ps / 1 ps
27
//
28
module altera_ddr_auk_ddr_hp_controller_wrapper (
29
        local_ready          ,
30
        local_rdata_valid    ,
31
        local_rdata          ,
32
        local_wdata_req      ,
33
        local_init_done      ,
34
        local_refresh_ack    ,
35
        local_powerdn_ack    ,
36
        local_self_rfsh_ack  ,
37
        ddr_cs_n             ,
38
        ddr_cke_l            ,
39
        ddr_cke_h            ,
40
        ddr_odt              ,
41
        ddr_a                ,
42
        ddr_ba               ,
43
        ddr_ras_n            ,
44
        ddr_cas_n            ,
45
        ddr_we_n             ,
46
        control_doing_wr     ,
47
        control_dqs_burst    ,
48
        control_wdata_valid  ,
49
        control_wdata        ,
50
        control_be           ,
51
        control_dm           ,
52
        control_doing_rd     ,
53
 
54
        clk                  ,
55
        reset_n              ,
56
        seq_cal_complete     ,
57
        local_read_req       ,
58
        local_write_req      ,
59
        local_autopch_req    ,
60
        local_size           ,
61
        local_burstbegin     ,
62
        local_cs_addr        ,
63
        local_row_addr       ,
64
        local_bank_addr      ,
65
        local_col_addr       ,
66
        local_wdata          ,
67
        local_be             ,
68
        local_refresh_req    ,
69
        local_powerdn_req    ,
70
        local_self_rfsh_req  ,
71
        control_rdata        ,
72
        control_rdata_valid  ,
73
        control_wlat
74
    );
75
 
76
//Inserted Generics
77
  localparam gLOCAL_DATA_BITS      = 32;
78
  localparam gLOCAL_BURST_LEN      = 2;
79
  localparam gLOCAL_BURST_LEN_BITS = 2;
80
  localparam gLOCAL_AVALON_IF      = "true";
81
  localparam gDWIDTH_RATIO         = 2;
82
  localparam gMEM_TYPE             = "ddr_sdram";
83
  localparam gMEM_CHIPSELS         = 1;
84
  localparam gMEM_CHIP_BITS        = 1;
85
  localparam gMEM_ROW_BITS         = 13;
86
  localparam gMEM_BANK_BITS        = 2;
87
  localparam gMEM_COL_BITS         = 9;
88
  localparam gMEM_DQ_PER_DQS       = 8;
89
  localparam gMEM_PCH_BIT          = 10;
90
  localparam gMEM_ODT_RANKS        = 1;
91
  localparam gPIPELINE_COMMANDS    = "false";
92
  localparam gFAMILY               = "Cyclone III";
93
  localparam gREG_DIMM             = "false";
94
  localparam gUSER_REFRESH         = "false";
95
  localparam ECC_CSR_ADDR_WIDTH    = 8;
96
  localparam LOCAL_IF_AWIDTH       = 23;
97
  localparam gUSE_AFI_IF           = "true";
98
 
99
output wire                                                local_ready        ;
100
output wire                                                local_rdata_valid  ;
101
output wire [gLOCAL_DATA_BITS - 1 : 0]                     local_rdata        ;
102
output wire                                                local_wdata_req    ;
103
output wire                                                local_init_done    ;
104
output wire                                                local_refresh_ack  ;
105
output wire                                                local_powerdn_ack  ;
106
output wire                                                local_self_rfsh_ack;
107
output wire [gMEM_CHIPSELS - 1 : 0]                        ddr_cs_n           ;
108
output wire [gMEM_CHIPSELS - 1 : 0]                        ddr_cke_l          ;
109
output wire [gMEM_CHIPSELS - 1 : 0]                        ddr_cke_h          ;
110
output wire [gMEM_CHIPSELS - 1 : 0]                        ddr_odt            ;
111
output wire [gMEM_ROW_BITS - 1 : 0]                        ddr_a              ;
112
output wire [gMEM_BANK_BITS - 1 : 0]                       ddr_ba             ;
113
output wire                                                ddr_ras_n          ;
114
output wire                                                ddr_cas_n          ;
115
output wire                                                ddr_we_n           ;
116
output wire                                                control_doing_wr   ;
117
output wire [(gLOCAL_DATA_BITS/(gMEM_DQ_PER_DQS*2))-1 : 0] control_dqs_burst  ;
118
output wire [(gLOCAL_DATA_BITS/(gMEM_DQ_PER_DQS*2))-1 : 0] control_wdata_valid;
119
output wire [gLOCAL_DATA_BITS - 1 : 0]                     control_wdata      ;
120
output wire [gLOCAL_DATA_BITS/8 - 1 : 0]                   control_be         ;
121
output wire [gLOCAL_DATA_BITS/8 - 1 : 0]                   control_dm         ;
122
output wire [(gLOCAL_DATA_BITS/(gMEM_DQ_PER_DQS*2))-1 : 0] control_doing_rd   ;
123
 
124
input wire                                                  clk               ;
125
input wire                                                  reset_n           ;
126
input wire                                                  seq_cal_complete  ;
127
input wire                                                  local_read_req    ;
128
input wire                                                  local_write_req   ;
129
input wire                                                  local_autopch_req ;
130
input wire                                                  local_powerdn_req ;
131
input wire                                                  local_self_rfsh_req;
132
input wire  [gLOCAL_BURST_LEN_BITS - 1 : 0]                 local_size        ;
133
input wire                                                  local_burstbegin  ;
134
input wire  [gMEM_CHIP_BITS - 1 : 0]                        local_cs_addr     ;
135
input wire  [gMEM_ROW_BITS - 1 : 0]                         local_row_addr    ;
136
input wire  [gMEM_BANK_BITS - 1 : 0]                        local_bank_addr   ;
137
input wire  [gMEM_COL_BITS - 2 : 0]                         local_col_addr    ;
138
input wire  [gLOCAL_DATA_BITS - 1 : 0]                      local_wdata       ;
139
input wire  [gLOCAL_DATA_BITS/8 - 1 : 0]                    local_be          ;
140
input wire                                                  local_refresh_req ;
141
input wire  [gLOCAL_DATA_BITS - 1 : 0]                      control_rdata     ;
142
input wire  [gDWIDTH_RATIO / 2 - 1 : 0]                     control_rdata_valid;
143
input wire  [4 : 0]                                         control_wlat      ;
144
 
145
// memory params for controller
146
wire  [2 : 0]  mem_tcl            ;
147
wire  [2 : 0]  mem_bl             ;
148
wire           mem_btype          ;
149
wire           mem_dll_en         ;
150
wire           mem_dqsn_en        ;
151
wire           mem_drv_str        ;
152
wire  [1 : 0]  mem_odt            ;
153
wire  [2 : 0]  mem_trcd           ;
154
wire  [3 : 0]  mem_tras           ;
155
wire  [1 : 0]  mem_twtr           ;
156
wire  [2 : 0]  mem_twr            ;
157
wire  [2 : 0]  mem_trp            ;
158
wire  [6 : 0]  mem_trfc           ;
159
wire  [1 : 0]  mem_tmrd           ;
160
wire [15 : 0]  mem_trefi          ;
161
wire [15 : 0]  mem_tinit_time     ;
162
 
163
 
164
//this is to comply with the ecc wrapper port map. in the non-ecc case route these signals straight through
165
assign local_rdata = control_rdata;
166
assign local_rdata_valid = control_rdata_valid;
167
 
168
 
169
//////////////////////////////////////////////////////////////////////////////-
170
// Instantiate the controller according to the memory type
171
//////////////////////////////////////////////////////////////////////////////-
172
 
173
    auk_ddr_hp_controller # (
174
            .gMEM_TYPE             (gMEM_TYPE),
175
            .gLOCAL_AVALON_IF      (gLOCAL_AVALON_IF),
176
            .gREG_DIMM             (gREG_DIMM),
177
            .gFAMILY               (gFAMILY),
178
            .gUSER_REFRESH         (gUSER_REFRESH),
179
            .gMEM_ODT_RANKS        (gMEM_ODT_RANKS),
180
            .gLOCAL_BURST_LEN      (gLOCAL_BURST_LEN),
181
            .gLOCAL_BURST_LEN_BITS (gLOCAL_BURST_LEN_BITS),
182
            .gLOCAL_DATA_BITS      (gLOCAL_DATA_BITS),
183
            .gMEM_BANK_BITS        (gMEM_BANK_BITS),
184
            .gMEM_CHIPSELS         (gMEM_CHIPSELS),
185
            .gMEM_CHIP_BITS        (gMEM_CHIP_BITS),
186
            .gMEM_COL_BITS         (gMEM_COL_BITS),
187
            .gMEM_DQ_PER_DQS       (gMEM_DQ_PER_DQS),
188
            .gMEM_PCH_BIT          (gMEM_PCH_BIT),
189
            .gMEM_ROW_BITS         (gMEM_ROW_BITS),
190
            .gDWIDTH_RATIO         (gDWIDTH_RATIO),
191
            .gPIPELINE_COMMANDS    (gPIPELINE_COMMANDS),
192
            .gUSE_AFI_IF           (gUSE_AFI_IF)
193
    ) auk_ddr_hp_controller_inst (
194
            .clk                   (clk),
195
            .seq_cal_complete      (seq_cal_complete),
196
            .control_be            (control_be),
197
            .control_dm            (control_dm),
198
            .control_doing_rd      (control_doing_rd),
199
            .control_doing_wr      (control_doing_wr),
200
            .control_dqs_burst     (control_dqs_burst),
201
            .control_wdata         (control_wdata),
202
            .control_wdata_valid   (control_wdata_valid),
203
            .control_wlat          (control_wlat),
204
            .ddr_a                 (ddr_a),
205
            .ddr_ba                (ddr_ba),
206
            .ddr_cas_n             (ddr_cas_n),
207
            .ddr_cke_l             (ddr_cke_l),
208
            .ddr_cke_h             (ddr_cke_h),
209
            .ddr_cs_n              (ddr_cs_n),
210
            .ddr_odt               (ddr_odt),
211
            .ddr_ras_n             (ddr_ras_n),
212
            .ddr_we_n              (ddr_we_n),
213
            .local_write_req       (local_write_req),
214
            .local_read_req        (local_read_req),
215
            .local_autopch_req     (local_autopch_req),
216
            .local_ready           (local_ready),
217
            .local_cs_addr         (local_cs_addr),
218
            .local_row_addr        (local_row_addr),
219
            .local_bank_addr       (local_bank_addr),
220
            .local_col_addr        (local_col_addr),
221
            .local_size            (local_size),
222
            .local_wdata           (local_wdata),
223
            .local_be              (local_be),
224
            .local_wdata_req       (local_wdata_req),
225
            .local_init_done       (local_init_done),
226
            .local_refresh_ack     (local_refresh_ack),
227
            .local_refresh_req     (local_refresh_req),
228
            .local_powerdn_ack     (local_powerdn_ack),
229
            .local_powerdn_req     (local_powerdn_req),
230
            .local_self_rfsh_ack   (local_self_rfsh_ack),
231
            .local_self_rfsh_req   (local_self_rfsh_req),
232
            .local_burstbegin      (local_burstbegin),
233
            .mem_bl                (mem_bl),
234
            .mem_btype             (mem_btype),
235
            .mem_dll_en            (mem_dll_en),
236
            .mem_dqsn_en           (mem_dqsn_en),
237
            .mem_drv_str           (mem_drv_str),
238
            .mem_odt               (mem_odt),
239
            .mem_tcl               (mem_tcl),
240
            .mem_tinit_time        (mem_tinit_time),
241
            .mem_tmrd              (mem_tmrd),
242
            .mem_tras              (mem_tras),
243
            .mem_trcd              (mem_trcd),
244
            .mem_trefi             (mem_trefi),
245
            .mem_trfc              (mem_trfc),
246
            .mem_trp               (mem_trp),
247
            .mem_twr               (mem_twr),
248
            .mem_twtr              (mem_twtr),
249
            .reset_n               (reset_n)
250
    );
251
 
252
 
253
//////////////////////////////////////////////////////////////////////////////-
254
// Controller timing parameters
255
//////////////////////////////////////////////////////////////////////////////-
256
 
257
  //
258
assign mem_tcl                       = 3'b011;
259
assign mem_bl                        = 3'b010;
260
assign mem_btype                     = 1'b0;
261
assign mem_dll_en                    = 1'b0;
262
assign mem_dqsn_en                   = 1'b1;
263
assign mem_drv_str                   = 1'b0;
264
assign mem_odt                       = 2'b00;
265
assign mem_twtr                      = 2'b10;
266
assign mem_tinit_time                = 16'b0111010100110100;
267
assign mem_trcd                      = 3'b011;
268
assign mem_twr                       = 3'b011;
269
assign mem_tras                      = 4'b0110;
270
assign mem_trp                       = 3'b011;
271
assign mem_trfc                      = 7'b0001011;
272
assign mem_tmrd                      = 2'b10;
273
assign mem_trefi                     = 16'b0000010000011010;
274
 
275
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.