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

Subversion Repositories usb_fpga_2_14

[/] [usb_fpga_2_14/] [trunk/] [examples/] [memfifo/] [fpga-2.04b/] [ipcore_dir/] [mem0/] [user_design/] [rtl/] [mem0.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ZTEX
//*****************************************************************************
2
// (c) Copyright 2009 Xilinx, Inc. All rights reserved.
3
//
4
// This file contains confidential and proprietary information
5
// of Xilinx, Inc. and is protected under U.S. and
6
// international copyright and other intellectual property
7
// laws.
8
//
9
// DISCLAIMER
10
// This disclaimer is not a license and does not grant any
11
// rights to the materials distributed herewith. Except as
12
// otherwise provided in a valid license issued to you by
13
// Xilinx, and to the maximum extent permitted by applicable
14
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
15
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
16
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
17
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
18
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
19
// (2) Xilinx shall not be liable (whether in contract or tort,
20
// including negligence, or under any other theory of
21
// liability) for any loss or damage of any kind or nature
22
// related to, arising under or in connection with these
23
// materials, including for any direct, or any indirect,
24
// special, incidental, or consequential loss or damage
25
// (including loss of data, profits, goodwill, or any type of
26
// loss or damage suffered as a result of any action brought
27
// by a third party) even if such damage or loss was
28
// reasonably foreseeable or Xilinx had been advised of the
29
// possibility of the same.
30
//
31
// CRITICAL APPLICATIONS
32
// Xilinx products are not designed or intended to be fail-
33
// safe, or for use in any application requiring fail-safe
34
// performance, such as life-support or safety devices or
35
// systems, Class III medical devices, nuclear facilities,
36
// applications related to the deployment of airbags, or any
37
// other applications that could lead to death, personal
38
// injury, or severe property or environmental damage
39
// (individually and collectively, "Critical
40
// Applications"). Customer assumes the sole risk and
41
// liability of any use of Xilinx products in Critical
42
// Applications, subject only to applicable laws and
43
// regulations governing limitations on product liability.
44
//
45
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
46
// PART OF THIS FILE AT ALL TIMES.
47
//
48
//*****************************************************************************
49
//   ____  ____
50
//  /   /\/   /
51
// /___/  \  /    Vendor             : Xilinx
52
// \   \   \/     Version            : 3.92
53
//  \   \         Application        : MIG
54
//  /   /         Filename           : mem0 #.v
55
// /___/   /\     Date Last Modified : $Date: 2011/06/02 07:17:09 $
56
// \   \  /  \    Date Created       : Tue Feb 23 2010
57
//  \___\/\___\
58
//
59
//Device           : Spartan-6
60
//Design Name      : DDR/DDR2/DDR3/LPDDR 
61
//Purpose          : This is a template file for the design top module. This module contains 
62
//                   all the four memory controllers and the two infrastructures. However,
63
//                   only the enabled modules will be active and others inactive.
64
//Reference        :
65
//Revision History :
66
//*****************************************************************************
67
`timescale 1ns/1ps
68
 
69
(* X_CORE_INFO = "mig_v3_92_ddr_ddr_s6, Coregen 14.7" , CORE_GENERATION_INFO = "ddr_ddr_s6,mig_v3_92,{component_name=mem0, C3_MEM_INTERFACE_TYPE=DDR_SDRAM, C3_CLK_PERIOD=5000, C3_MEMORY_PART=mt46v32m16xx-5b-it, C3_MEMORY_DEVICE_WIDTH=16, C3_OUTPUT_DRV=FULL, C3_PORT_CONFIG=Two 32-bit bi-directional and four 32-bit unidirectional ports, C3_MEM_ADDR_ORDER=ROW_BANK_COLUMN, C3_PORT_ENABLE=Port0_Port1_Port2_Port3_Port4_Port5, C3_CLASS_ADDR=II, C3_CLASS_DATA=II, C3_INPUT_PIN_TERMINATION=EXTERN_TERM, C3_DATA_TERMINATION=25 Ohms, C3_CLKFBOUT_MULT_F=4, C3_CLKOUT_DIVIDE=2, C3_DEBUG_PORT=0, INPUT_CLK_TYPE=Single-Ended, LANGUAGE=Verilog, SYNTHESIS_TOOL=Foundation_ISE, NO_OF_CONTROLLERS=1}" *)
70
module mem0 #
71
(
72
   parameter C3_P0_MASK_SIZE           = 4,
73
   parameter C3_P0_DATA_PORT_SIZE      = 32,
74
   parameter C3_P1_MASK_SIZE           = 4,
75
   parameter C3_P1_DATA_PORT_SIZE      = 32,
76
   parameter DEBUG_EN                = 0,
77
                                       // # = 1, Enable debug signals/controls,
78
                                       //   = 0, Disable debug signals/controls.
79
   parameter C3_MEMCLK_PERIOD        = 5000,
80
                                       // Memory data transfer clock period
81
   parameter C3_CALIB_SOFT_IP        = "TRUE",
82
                                       // # = TRUE, Enables the soft calibration logic,
83
                                       // # = FALSE, Disables the soft calibration logic.
84
   parameter C3_SIMULATION           = "FALSE",
85
                                       // # = TRUE, Simulating the design. Useful to reduce the simulation time,
86
                                       // # = FALSE, Implementing the design.
87
   parameter C3_RST_ACT_LOW          = 0,
88
                                       // # = 1 for active low reset,
89
                                       // # = 0 for active high reset.
90
   parameter C3_INPUT_CLK_TYPE       = "SINGLE_ENDED",
91
                                       // input clock type DIFFERENTIAL or SINGLE_ENDED
92
   parameter C3_MEM_ADDR_ORDER       = "ROW_BANK_COLUMN",
93
                                       // The order in which user address is provided to the memory controller,
94
                                       // ROW_BANK_COLUMN or BANK_ROW_COLUMN
95
   parameter C3_NUM_DQ_PINS          = 16,
96
                                       // External memory data width
97
   parameter C3_MEM_ADDR_WIDTH       = 13,
98
                                       // External memory address width
99
   parameter C3_MEM_BANKADDR_WIDTH   = 2
100
                                       // External memory bank address width
101
)
102
 
103
(
104
 
105
   inout  [C3_NUM_DQ_PINS-1:0]                      mcb3_dram_dq,
106
   output [C3_MEM_ADDR_WIDTH-1:0]                   mcb3_dram_a,
107
   output [C3_MEM_BANKADDR_WIDTH-1:0]               mcb3_dram_ba,
108
   output                                           mcb3_dram_cke,
109
   output                                           mcb3_dram_ras_n,
110
   output                                           mcb3_dram_cas_n,
111
   output                                           mcb3_dram_we_n,
112
   output                                           mcb3_dram_dm,
113
   inout                                            mcb3_dram_udqs,
114
   inout                                            mcb3_rzq,
115
   output                                           mcb3_dram_udm,
116
   input                                            c3_sys_clk,
117
   input                                            c3_sys_rst_i,
118
   output                                           c3_calib_done,
119
   output                                           c3_clk0,
120
   output                                           c3_rst0,
121
   inout                                            mcb3_dram_dqs,
122
   output                                           mcb3_dram_ck,
123
   output                                           mcb3_dram_ck_n,
124
      input             c3_p0_cmd_clk,
125
      input             c3_p0_cmd_en,
126
      input [2:0]        c3_p0_cmd_instr,
127
      input [5:0]        c3_p0_cmd_bl,
128
      input [29:0]       c3_p0_cmd_byte_addr,
129
      output            c3_p0_cmd_empty,
130
      output            c3_p0_cmd_full,
131
      input             c3_p0_wr_clk,
132
      input             c3_p0_wr_en,
133
      input [C3_P0_MASK_SIZE - 1:0]      c3_p0_wr_mask,
134
      input [C3_P0_DATA_PORT_SIZE - 1:0] c3_p0_wr_data,
135
      output            c3_p0_wr_full,
136
      output            c3_p0_wr_empty,
137
      output [6:0]       c3_p0_wr_count,
138
      output            c3_p0_wr_underrun,
139
      output            c3_p0_wr_error,
140
      input             c3_p0_rd_clk,
141
      input             c3_p0_rd_en,
142
      output [C3_P0_DATA_PORT_SIZE - 1:0]        c3_p0_rd_data,
143
      output            c3_p0_rd_full,
144
      output            c3_p0_rd_empty,
145
      output [6:0]       c3_p0_rd_count,
146
      output            c3_p0_rd_overflow,
147
      output            c3_p0_rd_error,
148
      input             c3_p1_cmd_clk,
149
      input             c3_p1_cmd_en,
150
      input [2:0]        c3_p1_cmd_instr,
151
      input [5:0]        c3_p1_cmd_bl,
152
      input [29:0]       c3_p1_cmd_byte_addr,
153
      output            c3_p1_cmd_empty,
154
      output            c3_p1_cmd_full,
155
      input             c3_p1_wr_clk,
156
      input             c3_p1_wr_en,
157
      input [C3_P1_MASK_SIZE - 1:0]      c3_p1_wr_mask,
158
      input [C3_P1_DATA_PORT_SIZE - 1:0] c3_p1_wr_data,
159
      output            c3_p1_wr_full,
160
      output            c3_p1_wr_empty,
161
      output [6:0]       c3_p1_wr_count,
162
      output            c3_p1_wr_underrun,
163
      output            c3_p1_wr_error,
164
      input             c3_p1_rd_clk,
165
      input             c3_p1_rd_en,
166
      output [C3_P1_DATA_PORT_SIZE - 1:0]        c3_p1_rd_data,
167
      output            c3_p1_rd_full,
168
      output            c3_p1_rd_empty,
169
      output [6:0]       c3_p1_rd_count,
170
      output            c3_p1_rd_overflow,
171
      output            c3_p1_rd_error,
172
      input             c3_p2_cmd_clk,
173
      input             c3_p2_cmd_en,
174
      input [2:0]        c3_p2_cmd_instr,
175
      input [5:0]        c3_p2_cmd_bl,
176
      input [29:0]       c3_p2_cmd_byte_addr,
177
      output            c3_p2_cmd_empty,
178
      output            c3_p2_cmd_full,
179
      input             c3_p2_wr_clk,
180
      input             c3_p2_wr_en,
181
      input [3:0]        c3_p2_wr_mask,
182
      input [31:0]       c3_p2_wr_data,
183
      output            c3_p2_wr_full,
184
      output            c3_p2_wr_empty,
185
      output [6:0]       c3_p2_wr_count,
186
      output            c3_p2_wr_underrun,
187
      output            c3_p2_wr_error,
188
      input             c3_p3_cmd_clk,
189
      input             c3_p3_cmd_en,
190
      input [2:0]        c3_p3_cmd_instr,
191
      input [5:0]        c3_p3_cmd_bl,
192
      input [29:0]       c3_p3_cmd_byte_addr,
193
      output            c3_p3_cmd_empty,
194
      output            c3_p3_cmd_full,
195
      input             c3_p3_rd_clk,
196
      input             c3_p3_rd_en,
197
      output [31:0]      c3_p3_rd_data,
198
      output            c3_p3_rd_full,
199
      output            c3_p3_rd_empty,
200
      output [6:0]       c3_p3_rd_count,
201
      output            c3_p3_rd_overflow,
202
      output            c3_p3_rd_error,
203
      input             c3_p4_cmd_clk,
204
      input             c3_p4_cmd_en,
205
      input [2:0]        c3_p4_cmd_instr,
206
      input [5:0]        c3_p4_cmd_bl,
207
      input [29:0]       c3_p4_cmd_byte_addr,
208
      output            c3_p4_cmd_empty,
209
      output            c3_p4_cmd_full,
210
      input             c3_p4_wr_clk,
211
      input             c3_p4_wr_en,
212
      input [3:0]        c3_p4_wr_mask,
213
      input [31:0]       c3_p4_wr_data,
214
      output            c3_p4_wr_full,
215
      output            c3_p4_wr_empty,
216
      output [6:0]       c3_p4_wr_count,
217
      output            c3_p4_wr_underrun,
218
      output            c3_p4_wr_error,
219
      input             c3_p5_cmd_clk,
220
      input             c3_p5_cmd_en,
221
      input [2:0]        c3_p5_cmd_instr,
222
      input [5:0]        c3_p5_cmd_bl,
223
      input [29:0]       c3_p5_cmd_byte_addr,
224
      output            c3_p5_cmd_empty,
225
      output            c3_p5_cmd_full,
226
      input             c3_p5_rd_clk,
227
      input             c3_p5_rd_en,
228
      output [31:0]      c3_p5_rd_data,
229
      output            c3_p5_rd_full,
230
      output            c3_p5_rd_empty,
231
      output [6:0]       c3_p5_rd_count,
232
      output            c3_p5_rd_overflow,
233
      output            c3_p5_rd_error
234
);
235
// The parameter CX_PORT_ENABLE shows all the active user ports in the design.
236
// For example, the value 6'b111100 tells that only port-2, port-3, port-4
237
// and port-5 are enabled. The other two ports are inactive. An inactive port
238
// can be a disabled port or an invisible logical port. Few examples to the 
239
// invisible logical port are port-4 and port-5 in the user port configuration,
240
// Config-2: Four 32-bit bi-directional ports and the ports port-2 through
241
// port-5 in Config-4: Two 64-bit bi-directional ports. Please look into the 
242
// Chapter-2 of ug388.pdf in the /docs directory for further details.
243
   localparam C3_PORT_ENABLE              = 6'b111111;
244
   localparam C3_PORT_CONFIG             =  "B32_B32_W32_R32_W32_R32";
245
   localparam C3_CLKOUT0_DIVIDE       = 2;
246
   localparam C3_CLKOUT1_DIVIDE       = 2;
247
   localparam C3_CLKOUT2_DIVIDE       = 16;
248
   localparam C3_CLKOUT3_DIVIDE       = 8;
249
   localparam C3_CLKFBOUT_MULT        = 4;
250
   localparam C3_DIVCLK_DIVIDE        = 1;
251
   localparam C3_ARB_ALGORITHM        = 0;
252
   localparam C3_ARB_NUM_TIME_SLOTS   = 12;
253
   localparam C3_ARB_TIME_SLOT_0      = 18'o012345;
254
   localparam C3_ARB_TIME_SLOT_1      = 18'o123450;
255
   localparam C3_ARB_TIME_SLOT_2      = 18'o234501;
256
   localparam C3_ARB_TIME_SLOT_3      = 18'o345012;
257
   localparam C3_ARB_TIME_SLOT_4      = 18'o450123;
258
   localparam C3_ARB_TIME_SLOT_5      = 18'o501234;
259
   localparam C3_ARB_TIME_SLOT_6      = 18'o012345;
260
   localparam C3_ARB_TIME_SLOT_7      = 18'o123450;
261
   localparam C3_ARB_TIME_SLOT_8      = 18'o234501;
262
   localparam C3_ARB_TIME_SLOT_9      = 18'o345012;
263
   localparam C3_ARB_TIME_SLOT_10     = 18'o450123;
264
   localparam C3_ARB_TIME_SLOT_11     = 18'o501234;
265
   localparam C3_MEM_TRAS             = 40000;
266
   localparam C3_MEM_TRCD             = 15000;
267
   localparam C3_MEM_TREFI            = 7800000;
268
   localparam C3_MEM_TRFC             = 70000;
269
   localparam C3_MEM_TRP              = 15000;
270
   localparam C3_MEM_TWR              = 15000;
271
   localparam C3_MEM_TRTP             = 7500;
272
   localparam C3_MEM_TWTR             = 2;
273
   localparam C3_MEM_TYPE             = "DDR";
274
   localparam C3_MEM_DENSITY          = "512Mb";
275
   localparam C3_MEM_BURST_LEN        = 4;
276
   localparam C3_MEM_CAS_LATENCY      = 3;
277
   localparam C3_MEM_NUM_COL_BITS     = 10;
278
   localparam C3_MEM_DDR1_2_ODS       = "FULL";
279
   localparam C3_MEM_DDR2_RTT         = "150OHMS";
280
   localparam C3_MEM_DDR2_DIFF_DQS_EN  = "YES";
281
   localparam C3_MEM_DDR2_3_PA_SR     = "FULL";
282
   localparam C3_MEM_DDR2_3_HIGH_TEMP_SR  = "NORMAL";
283
   localparam C3_MEM_DDR3_CAS_LATENCY  = 6;
284
   localparam C3_MEM_DDR3_ODS         = "DIV6";
285
   localparam C3_MEM_DDR3_RTT         = "DIV2";
286
   localparam C3_MEM_DDR3_CAS_WR_LATENCY  = 5;
287
   localparam C3_MEM_DDR3_AUTO_SR     = "ENABLED";
288
   localparam C3_MEM_MOBILE_PA_SR     = "FULL";
289
   localparam C3_MEM_MDDR_ODS         = "FULL";
290
   localparam C3_MC_CALIB_BYPASS      = "NO";
291
   localparam C3_MC_CALIBRATION_MODE  = "CALIBRATION";
292
   localparam C3_MC_CALIBRATION_DELAY  = "HALF";
293
   localparam C3_SKIP_IN_TERM_CAL     = 1;
294
   localparam C3_SKIP_DYNAMIC_CAL     = 0;
295
   localparam C3_LDQSP_TAP_DELAY_VAL  = 0;
296
   localparam C3_LDQSN_TAP_DELAY_VAL  = 0;
297
   localparam C3_UDQSP_TAP_DELAY_VAL  = 0;
298
   localparam C3_UDQSN_TAP_DELAY_VAL  = 0;
299
   localparam C3_DQ0_TAP_DELAY_VAL    = 0;
300
   localparam C3_DQ1_TAP_DELAY_VAL    = 0;
301
   localparam C3_DQ2_TAP_DELAY_VAL    = 0;
302
   localparam C3_DQ3_TAP_DELAY_VAL    = 0;
303
   localparam C3_DQ4_TAP_DELAY_VAL    = 0;
304
   localparam C3_DQ5_TAP_DELAY_VAL    = 0;
305
   localparam C3_DQ6_TAP_DELAY_VAL    = 0;
306
   localparam C3_DQ7_TAP_DELAY_VAL    = 0;
307
   localparam C3_DQ8_TAP_DELAY_VAL    = 0;
308
   localparam C3_DQ9_TAP_DELAY_VAL    = 0;
309
   localparam C3_DQ10_TAP_DELAY_VAL   = 0;
310
   localparam C3_DQ11_TAP_DELAY_VAL   = 0;
311
   localparam C3_DQ12_TAP_DELAY_VAL   = 0;
312
   localparam C3_DQ13_TAP_DELAY_VAL   = 0;
313
   localparam C3_DQ14_TAP_DELAY_VAL   = 0;
314
   localparam C3_DQ15_TAP_DELAY_VAL   = 0;
315
   localparam C3_MCB_USE_EXTERNAL_BUFPLL  = 1;
316
   localparam C3_SMALL_DEVICE         = "FALSE";       // The parameter is set to TRUE for all packages of xc6slx9 device
317
                                                       // as most of them cannot fit the complete example design when the
318
                                                       // Chip scope modules are enabled
319
   localparam C3_INCLK_PERIOD         = ((C3_MEMCLK_PERIOD * C3_CLKFBOUT_MULT) / (C3_DIVCLK_DIVIDE * C3_CLKOUT0_DIVIDE * 2));
320
   localparam DBG_WR_STS_WIDTH        = 32;
321
   localparam DBG_RD_STS_WIDTH        = 32;
322
   localparam C3_ARB_TIME0_SLOT  = {C3_ARB_TIME_SLOT_0[17:15], C3_ARB_TIME_SLOT_0[14:12], C3_ARB_TIME_SLOT_0[11:9], C3_ARB_TIME_SLOT_0[8:6], C3_ARB_TIME_SLOT_0[5:3], C3_ARB_TIME_SLOT_0[2:0]};
323
   localparam C3_ARB_TIME1_SLOT  = {C3_ARB_TIME_SLOT_1[17:15], C3_ARB_TIME_SLOT_1[14:12], C3_ARB_TIME_SLOT_1[11:9], C3_ARB_TIME_SLOT_1[8:6], C3_ARB_TIME_SLOT_1[5:3], C3_ARB_TIME_SLOT_1[2:0]};
324
   localparam C3_ARB_TIME2_SLOT  = {C3_ARB_TIME_SLOT_2[17:15], C3_ARB_TIME_SLOT_2[14:12], C3_ARB_TIME_SLOT_2[11:9], C3_ARB_TIME_SLOT_2[8:6], C3_ARB_TIME_SLOT_2[5:3], C3_ARB_TIME_SLOT_2[2:0]};
325
   localparam C3_ARB_TIME3_SLOT  = {C3_ARB_TIME_SLOT_3[17:15], C3_ARB_TIME_SLOT_3[14:12], C3_ARB_TIME_SLOT_3[11:9], C3_ARB_TIME_SLOT_3[8:6], C3_ARB_TIME_SLOT_3[5:3], C3_ARB_TIME_SLOT_3[2:0]};
326
   localparam C3_ARB_TIME4_SLOT  = {C3_ARB_TIME_SLOT_4[17:15], C3_ARB_TIME_SLOT_4[14:12], C3_ARB_TIME_SLOT_4[11:9], C3_ARB_TIME_SLOT_4[8:6], C3_ARB_TIME_SLOT_4[5:3], C3_ARB_TIME_SLOT_4[2:0]};
327
   localparam C3_ARB_TIME5_SLOT  = {C3_ARB_TIME_SLOT_5[17:15], C3_ARB_TIME_SLOT_5[14:12], C3_ARB_TIME_SLOT_5[11:9], C3_ARB_TIME_SLOT_5[8:6], C3_ARB_TIME_SLOT_5[5:3], C3_ARB_TIME_SLOT_5[2:0]};
328
   localparam C3_ARB_TIME6_SLOT  = {C3_ARB_TIME_SLOT_6[17:15], C3_ARB_TIME_SLOT_6[14:12], C3_ARB_TIME_SLOT_6[11:9], C3_ARB_TIME_SLOT_6[8:6], C3_ARB_TIME_SLOT_6[5:3], C3_ARB_TIME_SLOT_6[2:0]};
329
   localparam C3_ARB_TIME7_SLOT  = {C3_ARB_TIME_SLOT_7[17:15], C3_ARB_TIME_SLOT_7[14:12], C3_ARB_TIME_SLOT_7[11:9], C3_ARB_TIME_SLOT_7[8:6], C3_ARB_TIME_SLOT_7[5:3], C3_ARB_TIME_SLOT_7[2:0]};
330
   localparam C3_ARB_TIME8_SLOT  = {C3_ARB_TIME_SLOT_8[17:15], C3_ARB_TIME_SLOT_8[14:12], C3_ARB_TIME_SLOT_8[11:9], C3_ARB_TIME_SLOT_8[8:6], C3_ARB_TIME_SLOT_8[5:3], C3_ARB_TIME_SLOT_8[2:0]};
331
   localparam C3_ARB_TIME9_SLOT  = {C3_ARB_TIME_SLOT_9[17:15], C3_ARB_TIME_SLOT_9[14:12], C3_ARB_TIME_SLOT_9[11:9], C3_ARB_TIME_SLOT_9[8:6], C3_ARB_TIME_SLOT_9[5:3], C3_ARB_TIME_SLOT_9[2:0]};
332
   localparam C3_ARB_TIME10_SLOT  = {C3_ARB_TIME_SLOT_10[17:15], C3_ARB_TIME_SLOT_10[14:12], C3_ARB_TIME_SLOT_10[11:9], C3_ARB_TIME_SLOT_10[8:6], C3_ARB_TIME_SLOT_10[5:3], C3_ARB_TIME_SLOT_10[2:0]};
333
   localparam C3_ARB_TIME11_SLOT  = {C3_ARB_TIME_SLOT_11[17:15], C3_ARB_TIME_SLOT_11[14:12], C3_ARB_TIME_SLOT_11[11:9], C3_ARB_TIME_SLOT_11[8:6], C3_ARB_TIME_SLOT_11[5:3], C3_ARB_TIME_SLOT_11[2:0]};
334
 
335
  wire                              c3_sys_clk_p;
336
  wire                              c3_sys_clk_n;
337
  wire                              c3_async_rst;
338
  wire                              c3_sysclk_2x;
339
  wire                              c3_sysclk_2x_180;
340
  wire                              c3_pll_ce_0;
341
  wire                              c3_pll_ce_90;
342
  wire                              c3_pll_lock;
343
  wire                              c3_mcb_drp_clk;
344
  wire                              c3_cmp_error;
345
  wire                              c3_cmp_data_valid;
346
  wire                              c3_vio_modify_enable;
347
  wire  [2:0]                       c3_vio_data_mode_value;
348
  wire  [2:0]                       c3_vio_addr_mode_value;
349
  wire  [31:0]                       c3_cmp_data;
350
wire                            c3_p2_rd_clk;
351
wire                            c3_p2_rd_en;
352
wire[31:0]                       c3_p2_rd_data;
353
wire                            c3_p2_rd_full;
354
wire                            c3_p2_rd_empty;
355
wire[6:0]                        c3_p2_rd_count;
356
wire                            c3_p2_rd_overflow;
357
wire                            c3_p2_rd_error;
358
wire                            c3_p3_wr_clk;
359
wire                            c3_p3_wr_en;
360
wire[3:0]                        c3_p3_wr_mask;
361
wire[31:0]                       c3_p3_wr_data;
362
wire                            c3_p3_wr_full;
363
wire                            c3_p3_wr_empty;
364
wire[6:0]                        c3_p3_wr_count;
365
wire                            c3_p3_wr_underrun;
366
wire                            c3_p3_wr_error;
367
wire                            c3_p4_rd_clk;
368
wire                            c3_p4_rd_en;
369
wire[31:0]                       c3_p4_rd_data;
370
wire                            c3_p4_rd_full;
371
wire                            c3_p4_rd_empty;
372
wire[6:0]                        c3_p4_rd_count;
373
wire                            c3_p4_rd_overflow;
374
wire                            c3_p4_rd_error;
375
wire                            c3_p5_wr_clk;
376
wire                            c3_p5_wr_en;
377
wire[3:0]                        c3_p5_wr_mask;
378
wire[31:0]                       c3_p5_wr_data;
379
wire                            c3_p5_wr_full;
380
wire                            c3_p5_wr_empty;
381
wire[6:0]                        c3_p5_wr_count;
382
wire                            c3_p5_wr_underrun;
383
wire                            c3_p5_wr_error;
384
 
385
 
386
   reg   c1_aresetn;
387
   reg   c3_aresetn;
388
   reg   c4_aresetn;
389
   reg   c5_aresetn;
390
 
391
 
392
 
393
assign  c3_sys_clk_p = 1'b0;
394
assign  c3_sys_clk_n = 1'b0;
395
 
396
 
397
 
398
 
399
// Infrastructure-3 instantiation
400
      infrastructure #
401
      (
402
         .C_INCLK_PERIOD                 (C3_INCLK_PERIOD),
403
         .C_RST_ACT_LOW                  (C3_RST_ACT_LOW),
404
         .C_INPUT_CLK_TYPE               (C3_INPUT_CLK_TYPE),
405
         .C_CLKOUT0_DIVIDE               (C3_CLKOUT0_DIVIDE),
406
         .C_CLKOUT1_DIVIDE               (C3_CLKOUT1_DIVIDE),
407
         .C_CLKOUT2_DIVIDE               (C3_CLKOUT2_DIVIDE),
408
         .C_CLKOUT3_DIVIDE               (C3_CLKOUT3_DIVIDE),
409
         .C_CLKFBOUT_MULT                (C3_CLKFBOUT_MULT),
410
         .C_DIVCLK_DIVIDE                (C3_DIVCLK_DIVIDE)
411
      )
412
      memc3_infrastructure_inst
413
      (
414
         .sys_clk_p                      (c3_sys_clk_p),  // [input] differential p type clock from board
415
         .sys_clk_n                      (c3_sys_clk_n),  // [input] differential n type clock from board
416
         .sys_clk                        (c3_sys_clk),    // [input] single ended input clock from board
417
         .sys_rst_i                      (c3_sys_rst_i),
418
         .clk0                           (c3_clk0),       // [output] user clock which determines the operating frequency of user interface ports
419
         .rst0                           (c3_rst0),
420
         .async_rst                      (c3_async_rst),
421
         .sysclk_2x                      (c3_sysclk_2x),
422
         .sysclk_2x_180                  (c3_sysclk_2x_180),
423
         .pll_ce_0                       (c3_pll_ce_0),
424
         .pll_ce_90                      (c3_pll_ce_90),
425
         .pll_lock                       (c3_pll_lock),
426
         .mcb_drp_clk                    (c3_mcb_drp_clk)
427
      );
428
 
429
 
430
 
431
// Controller-3 instantiation
432
      memc_wrapper #
433
      (
434
         .C_MEMCLK_PERIOD                (C3_MEMCLK_PERIOD),
435
         .C_CALIB_SOFT_IP                (C3_CALIB_SOFT_IP),
436
         //synthesis translate_off
437
         .C_SIMULATION                   (C3_SIMULATION),
438
         //synthesis translate_on
439
         .C_ARB_NUM_TIME_SLOTS           (C3_ARB_NUM_TIME_SLOTS),
440
         .C_ARB_TIME_SLOT_0              (C3_ARB_TIME0_SLOT),
441
         .C_ARB_TIME_SLOT_1              (C3_ARB_TIME1_SLOT),
442
         .C_ARB_TIME_SLOT_2              (C3_ARB_TIME2_SLOT),
443
         .C_ARB_TIME_SLOT_3              (C3_ARB_TIME3_SLOT),
444
         .C_ARB_TIME_SLOT_4              (C3_ARB_TIME4_SLOT),
445
         .C_ARB_TIME_SLOT_5              (C3_ARB_TIME5_SLOT),
446
         .C_ARB_TIME_SLOT_6              (C3_ARB_TIME6_SLOT),
447
         .C_ARB_TIME_SLOT_7              (C3_ARB_TIME7_SLOT),
448
         .C_ARB_TIME_SLOT_8              (C3_ARB_TIME8_SLOT),
449
         .C_ARB_TIME_SLOT_9              (C3_ARB_TIME9_SLOT),
450
         .C_ARB_TIME_SLOT_10             (C3_ARB_TIME10_SLOT),
451
         .C_ARB_TIME_SLOT_11             (C3_ARB_TIME11_SLOT),
452
         .C_ARB_ALGORITHM                (C3_ARB_ALGORITHM),
453
         .C_PORT_ENABLE                  (C3_PORT_ENABLE),
454
         .C_PORT_CONFIG                  (C3_PORT_CONFIG),
455
         .C_MEM_TRAS                     (C3_MEM_TRAS),
456
         .C_MEM_TRCD                     (C3_MEM_TRCD),
457
         .C_MEM_TREFI                    (C3_MEM_TREFI),
458
         .C_MEM_TRFC                     (C3_MEM_TRFC),
459
         .C_MEM_TRP                      (C3_MEM_TRP),
460
         .C_MEM_TWR                      (C3_MEM_TWR),
461
         .C_MEM_TRTP                     (C3_MEM_TRTP),
462
         .C_MEM_TWTR                     (C3_MEM_TWTR),
463
         .C_MEM_ADDR_ORDER               (C3_MEM_ADDR_ORDER),
464
         .C_NUM_DQ_PINS                  (C3_NUM_DQ_PINS),
465
         .C_MEM_TYPE                     (C3_MEM_TYPE),
466
         .C_MEM_DENSITY                  (C3_MEM_DENSITY),
467
         .C_MEM_BURST_LEN                (C3_MEM_BURST_LEN),
468
         .C_MEM_CAS_LATENCY              (C3_MEM_CAS_LATENCY),
469
         .C_MEM_ADDR_WIDTH               (C3_MEM_ADDR_WIDTH),
470
         .C_MEM_BANKADDR_WIDTH           (C3_MEM_BANKADDR_WIDTH),
471
         .C_MEM_NUM_COL_BITS             (C3_MEM_NUM_COL_BITS),
472
         .C_MEM_DDR1_2_ODS               (C3_MEM_DDR1_2_ODS),
473
         .C_MEM_DDR2_RTT                 (C3_MEM_DDR2_RTT),
474
         .C_MEM_DDR2_DIFF_DQS_EN         (C3_MEM_DDR2_DIFF_DQS_EN),
475
         .C_MEM_DDR2_3_PA_SR             (C3_MEM_DDR2_3_PA_SR),
476
         .C_MEM_DDR2_3_HIGH_TEMP_SR      (C3_MEM_DDR2_3_HIGH_TEMP_SR),
477
         .C_MEM_DDR3_CAS_LATENCY         (C3_MEM_DDR3_CAS_LATENCY),
478
         .C_MEM_DDR3_ODS                 (C3_MEM_DDR3_ODS),
479
         .C_MEM_DDR3_RTT                 (C3_MEM_DDR3_RTT),
480
         .C_MEM_DDR3_CAS_WR_LATENCY      (C3_MEM_DDR3_CAS_WR_LATENCY),
481
         .C_MEM_DDR3_AUTO_SR             (C3_MEM_DDR3_AUTO_SR),
482
         .C_MEM_MOBILE_PA_SR             (C3_MEM_MOBILE_PA_SR),
483
         .C_MEM_MDDR_ODS                 (C3_MEM_MDDR_ODS),
484
         .C_MC_CALIB_BYPASS              (C3_MC_CALIB_BYPASS),
485
         .C_MC_CALIBRATION_MODE          (C3_MC_CALIBRATION_MODE),
486
         .C_MC_CALIBRATION_DELAY         (C3_MC_CALIBRATION_DELAY),
487
         .C_SKIP_IN_TERM_CAL             (C3_SKIP_IN_TERM_CAL),
488
         .C_SKIP_DYNAMIC_CAL             (C3_SKIP_DYNAMIC_CAL),
489
         .LDQSP_TAP_DELAY_VAL            (C3_LDQSP_TAP_DELAY_VAL),
490
         .UDQSP_TAP_DELAY_VAL            (C3_UDQSP_TAP_DELAY_VAL),
491
         .LDQSN_TAP_DELAY_VAL            (C3_LDQSN_TAP_DELAY_VAL),
492
         .UDQSN_TAP_DELAY_VAL            (C3_UDQSN_TAP_DELAY_VAL),
493
         .DQ0_TAP_DELAY_VAL              (C3_DQ0_TAP_DELAY_VAL),
494
         .DQ1_TAP_DELAY_VAL              (C3_DQ1_TAP_DELAY_VAL),
495
         .DQ2_TAP_DELAY_VAL              (C3_DQ2_TAP_DELAY_VAL),
496
         .DQ3_TAP_DELAY_VAL              (C3_DQ3_TAP_DELAY_VAL),
497
         .DQ4_TAP_DELAY_VAL              (C3_DQ4_TAP_DELAY_VAL),
498
         .DQ5_TAP_DELAY_VAL              (C3_DQ5_TAP_DELAY_VAL),
499
         .DQ6_TAP_DELAY_VAL              (C3_DQ6_TAP_DELAY_VAL),
500
         .DQ7_TAP_DELAY_VAL              (C3_DQ7_TAP_DELAY_VAL),
501
         .DQ8_TAP_DELAY_VAL              (C3_DQ8_TAP_DELAY_VAL),
502
         .DQ9_TAP_DELAY_VAL              (C3_DQ9_TAP_DELAY_VAL),
503
         .DQ10_TAP_DELAY_VAL             (C3_DQ10_TAP_DELAY_VAL),
504
         .DQ11_TAP_DELAY_VAL             (C3_DQ11_TAP_DELAY_VAL),
505
         .DQ12_TAP_DELAY_VAL             (C3_DQ12_TAP_DELAY_VAL),
506
         .DQ13_TAP_DELAY_VAL             (C3_DQ13_TAP_DELAY_VAL),
507
         .DQ14_TAP_DELAY_VAL             (C3_DQ14_TAP_DELAY_VAL),
508
         .DQ15_TAP_DELAY_VAL             (C3_DQ15_TAP_DELAY_VAL),
509
         .C_P0_MASK_SIZE                 (C3_P0_MASK_SIZE),
510
         .C_P0_DATA_PORT_SIZE            (C3_P0_DATA_PORT_SIZE),
511
         .C_P1_MASK_SIZE                 (C3_P1_MASK_SIZE),
512
         .C_P1_DATA_PORT_SIZE            (C3_P1_DATA_PORT_SIZE)
513
        )
514
 
515
      memc3_wrapper_inst
516
      (
517
         .mcbx_dram_addr                 (mcb3_dram_a),
518
         .mcbx_dram_ba                   (mcb3_dram_ba),
519
         .mcbx_dram_ras_n                (mcb3_dram_ras_n),
520
         .mcbx_dram_cas_n                (mcb3_dram_cas_n),
521
         .mcbx_dram_we_n                 (mcb3_dram_we_n),
522
         .mcbx_dram_cke                  (mcb3_dram_cke),
523
         .mcbx_dram_clk                  (mcb3_dram_ck),
524
         .mcbx_dram_clk_n                (mcb3_dram_ck_n),
525
         .mcbx_dram_dq                   (mcb3_dram_dq),
526
         .mcbx_dram_dqs                  (mcb3_dram_dqs),
527
         .mcbx_dram_udqs                 (mcb3_dram_udqs),
528
         .mcbx_dram_udm                  (mcb3_dram_udm),
529
         .mcbx_dram_ldm                  (mcb3_dram_dm),
530
         .mcbx_dram_dqs_n                ( ),
531
         .mcbx_dram_udqs_n               ( ),
532
         .mcbx_dram_odt                  ( ),
533
         .mcbx_dram_ddr3_rst             ( ),
534
         .mcbx_rzq                       (mcb3_rzq),
535
         .mcbx_zio                       (mcb3_zio),
536
         .calib_done                     (c3_calib_done),
537
         .async_rst                      (c3_async_rst),
538
         .sysclk_2x                      (c3_sysclk_2x),
539
         .sysclk_2x_180                  (c3_sysclk_2x_180),
540
         .pll_ce_0                       (c3_pll_ce_0),
541
         .pll_ce_90                      (c3_pll_ce_90),
542
         .pll_lock                       (c3_pll_lock),
543
         .mcb_drp_clk                    (c3_mcb_drp_clk),
544
 
545
         // The following port map shows all the six logical user ports. However, all
546
         // of them may not be active in this design. A port should be enabled to 
547
         // validate its port map. If it is not,the complete port is going to float 
548
         // by getting disconnected from the lower level MCB modules. The port enable
549
         // information of a controller can be obtained from the corresponding local
550
         // parameter CX_PORT_ENABLE. In such a case, we can simply ignore its port map.
551
         // The following comments will explain when a port is going to be active.
552
         // Config-1: Two 32-bit bi-directional and four 32-bit unidirectional ports
553
         // Config-2: Four 32-bit bi-directional ports
554
         // Config-3: One 64-bit bi-directional and two 32-bit bi-directional ports
555
         // Config-4: Two 64-bit bi-directional ports
556
         // Config-5: One 128-bit bi-directional port
557
 
558
         // User Port-0 command interface will be active only when the port is enabled in 
559
         // the port configurations Config-1, Config-2, Config-3, Config-4 and Config-5
560
         .p0_cmd_clk                     (c3_p0_cmd_clk),
561
         .p0_cmd_en                      (c3_p0_cmd_en),
562
         .p0_cmd_instr                   (c3_p0_cmd_instr),
563
         .p0_cmd_bl                      (c3_p0_cmd_bl),
564
         .p0_cmd_byte_addr               (c3_p0_cmd_byte_addr),
565
         .p0_cmd_full                    (c3_p0_cmd_full),
566
         .p0_cmd_empty                   (c3_p0_cmd_empty),
567
         // User Port-0 data write interface will be active only when the port is enabled in
568
         // the port configurations Config-1, Config-2, Config-3, Config-4 and Config-5
569
         .p0_wr_clk                      (c3_p0_wr_clk),
570
         .p0_wr_en                       (c3_p0_wr_en),
571
         .p0_wr_mask                     (c3_p0_wr_mask),
572
         .p0_wr_data                     (c3_p0_wr_data),
573
         .p0_wr_full                     (c3_p0_wr_full),
574
         .p0_wr_count                    (c3_p0_wr_count),
575
         .p0_wr_empty                    (c3_p0_wr_empty),
576
         .p0_wr_underrun                 (c3_p0_wr_underrun),
577
         .p0_wr_error                    (c3_p0_wr_error),
578
         // User Port-0 data read interface will be active only when the port is enabled in
579
         // the port configurations Config-1, Config-2, Config-3, Config-4 and Config-5
580
         .p0_rd_clk                      (c3_p0_rd_clk),
581
         .p0_rd_en                       (c3_p0_rd_en),
582
         .p0_rd_data                     (c3_p0_rd_data),
583
         .p0_rd_empty                    (c3_p0_rd_empty),
584
         .p0_rd_count                    (c3_p0_rd_count),
585
         .p0_rd_full                     (c3_p0_rd_full),
586
         .p0_rd_overflow                 (c3_p0_rd_overflow),
587
         .p0_rd_error                    (c3_p0_rd_error),
588
 
589
         // User Port-1 command interface will be active only when the port is enabled in 
590
         // the port configurations Config-1, Config-2, Config-3 and Config-4
591
         .p1_cmd_clk                     (c3_p1_cmd_clk),
592
         .p1_cmd_en                      (c3_p1_cmd_en),
593
         .p1_cmd_instr                   (c3_p1_cmd_instr),
594
         .p1_cmd_bl                      (c3_p1_cmd_bl),
595
         .p1_cmd_byte_addr               (c3_p1_cmd_byte_addr),
596
         .p1_cmd_full                    (c3_p1_cmd_full),
597
         .p1_cmd_empty                   (c3_p1_cmd_empty),
598
         // User Port-1 data write interface will be active only when the port is enabled in 
599
         // the port configurations Config-1, Config-2, Config-3 and Config-4
600
         .p1_wr_clk                      (c3_p1_wr_clk),
601
         .p1_wr_en                       (c3_p1_wr_en),
602
         .p1_wr_mask                     (c3_p1_wr_mask),
603
         .p1_wr_data                     (c3_p1_wr_data),
604
         .p1_wr_full                     (c3_p1_wr_full),
605
         .p1_wr_count                    (c3_p1_wr_count),
606
         .p1_wr_empty                    (c3_p1_wr_empty),
607
         .p1_wr_underrun                 (c3_p1_wr_underrun),
608
         .p1_wr_error                    (c3_p1_wr_error),
609
         // User Port-1 data read interface will be active only when the port is enabled in 
610
         // the port configurations Config-1, Config-2, Config-3 and Config-4
611
         .p1_rd_clk                      (c3_p1_rd_clk),
612
         .p1_rd_en                       (c3_p1_rd_en),
613
         .p1_rd_data                     (c3_p1_rd_data),
614
         .p1_rd_empty                    (c3_p1_rd_empty),
615
         .p1_rd_count                    (c3_p1_rd_count),
616
         .p1_rd_full                     (c3_p1_rd_full),
617
         .p1_rd_overflow                 (c3_p1_rd_overflow),
618
         .p1_rd_error                    (c3_p1_rd_error),
619
 
620
         // User Port-2 command interface will be active only when the port is enabled in 
621
         // the port configurations Config-1, Config-2 and Config-3
622
         .p2_cmd_clk                     (c3_p2_cmd_clk),
623
         .p2_cmd_en                      (c3_p2_cmd_en),
624
         .p2_cmd_instr                   (c3_p2_cmd_instr),
625
         .p2_cmd_bl                      (c3_p2_cmd_bl),
626
         .p2_cmd_byte_addr               (c3_p2_cmd_byte_addr),
627
         .p2_cmd_full                    (c3_p2_cmd_full),
628
         .p2_cmd_empty                   (c3_p2_cmd_empty),
629
         // User Port-2 data write interface will be active only when the port is enabled in 
630
         // the port configurations Config-1 write direction, Config-2 and Config-3
631
         .p2_wr_clk                      (c3_p2_wr_clk),
632
         .p2_wr_en                       (c3_p2_wr_en),
633
         .p2_wr_mask                     (c3_p2_wr_mask),
634
         .p2_wr_data                     (c3_p2_wr_data),
635
         .p2_wr_full                     (c3_p2_wr_full),
636
         .p2_wr_count                    (c3_p2_wr_count),
637
         .p2_wr_empty                    (c3_p2_wr_empty),
638
         .p2_wr_underrun                 (c3_p2_wr_underrun),
639
         .p2_wr_error                    (c3_p2_wr_error),
640
         // User Port-2 data read interface will be active only when the port is enabled in 
641
         // the port configurations Config-1 read direction, Config-2 and Config-3
642
         .p2_rd_clk                      (c3_p2_rd_clk),
643
         .p2_rd_en                       (c3_p2_rd_en),
644
         .p2_rd_data                     (c3_p2_rd_data),
645
         .p2_rd_empty                    (c3_p2_rd_empty),
646
         .p2_rd_count                    (c3_p2_rd_count),
647
         .p2_rd_full                     (c3_p2_rd_full),
648
         .p2_rd_overflow                 (c3_p2_rd_overflow),
649
         .p2_rd_error                    (c3_p2_rd_error),
650
 
651
         // User Port-3 command interface will be active only when the port is enabled in 
652
         // the port configurations Config-1 and Config-2
653
         .p3_cmd_clk                     (c3_p3_cmd_clk),
654
         .p3_cmd_en                      (c3_p3_cmd_en),
655
         .p3_cmd_instr                   (c3_p3_cmd_instr),
656
         .p3_cmd_bl                      (c3_p3_cmd_bl),
657
         .p3_cmd_byte_addr               (c3_p3_cmd_byte_addr),
658
         .p3_cmd_full                    (c3_p3_cmd_full),
659
         .p3_cmd_empty                   (c3_p3_cmd_empty),
660
         // User Port-3 data write interface will be active only when the port is enabled in 
661
         // the port configurations Config-1 write direction and Config-2
662
         .p3_wr_clk                      (c3_p3_wr_clk),
663
         .p3_wr_en                       (c3_p3_wr_en),
664
         .p3_wr_mask                     (c3_p3_wr_mask),
665
         .p3_wr_data                     (c3_p3_wr_data),
666
         .p3_wr_full                     (c3_p3_wr_full),
667
         .p3_wr_count                    (c3_p3_wr_count),
668
         .p3_wr_empty                    (c3_p3_wr_empty),
669
         .p3_wr_underrun                 (c3_p3_wr_underrun),
670
         .p3_wr_error                    (c3_p3_wr_error),
671
         // User Port-3 data read interface will be active only when the port is enabled in 
672
         // the port configurations Config-1 read direction and Config-2
673
         .p3_rd_clk                      (c3_p3_rd_clk),
674
         .p3_rd_en                       (c3_p3_rd_en),
675
         .p3_rd_data                     (c3_p3_rd_data),
676
         .p3_rd_empty                    (c3_p3_rd_empty),
677
         .p3_rd_count                    (c3_p3_rd_count),
678
         .p3_rd_full                     (c3_p3_rd_full),
679
         .p3_rd_overflow                 (c3_p3_rd_overflow),
680
         .p3_rd_error                    (c3_p3_rd_error),
681
 
682
         // User Port-4 command interface will be active only when the port is enabled in 
683
         // the port configuration Config-1
684
         .p4_cmd_clk                     (c3_p4_cmd_clk),
685
         .p4_cmd_en                      (c3_p4_cmd_en),
686
         .p4_cmd_instr                   (c3_p4_cmd_instr),
687
         .p4_cmd_bl                      (c3_p4_cmd_bl),
688
         .p4_cmd_byte_addr               (c3_p4_cmd_byte_addr),
689
         .p4_cmd_full                    (c3_p4_cmd_full),
690
         .p4_cmd_empty                   (c3_p4_cmd_empty),
691
         // User Port-4 data write interface will be active only when the port is enabled in 
692
         // the port configuration Config-1 write direction
693
         .p4_wr_clk                      (c3_p4_wr_clk),
694
         .p4_wr_en                       (c3_p4_wr_en),
695
         .p4_wr_mask                     (c3_p4_wr_mask),
696
         .p4_wr_data                     (c3_p4_wr_data),
697
         .p4_wr_full                     (c3_p4_wr_full),
698
         .p4_wr_count                    (c3_p4_wr_count),
699
         .p4_wr_empty                    (c3_p4_wr_empty),
700
         .p4_wr_underrun                 (c3_p4_wr_underrun),
701
         .p4_wr_error                    (c3_p4_wr_error),
702
         // User Port-4 data read interface will be active only when the port is enabled in 
703
         // the port configuration Config-1 read direction
704
         .p4_rd_clk                      (c3_p4_rd_clk),
705
         .p4_rd_en                       (c3_p4_rd_en),
706
         .p4_rd_data                     (c3_p4_rd_data),
707
         .p4_rd_empty                    (c3_p4_rd_empty),
708
         .p4_rd_count                    (c3_p4_rd_count),
709
         .p4_rd_full                     (c3_p4_rd_full),
710
         .p4_rd_overflow                 (c3_p4_rd_overflow),
711
         .p4_rd_error                    (c3_p4_rd_error),
712
 
713
         // User Port-5 command interface will be active only when the port is enabled in 
714
         // the port configuration Config-1
715
         .p5_cmd_clk                     (c3_p5_cmd_clk),
716
         .p5_cmd_en                      (c3_p5_cmd_en),
717
         .p5_cmd_instr                   (c3_p5_cmd_instr),
718
         .p5_cmd_bl                      (c3_p5_cmd_bl),
719
         .p5_cmd_byte_addr               (c3_p5_cmd_byte_addr),
720
         .p5_cmd_full                    (c3_p5_cmd_full),
721
         .p5_cmd_empty                   (c3_p5_cmd_empty),
722
         // User Port-5 data write interface will be active only when the port is enabled in 
723
         // the port configuration Config-1 write direction
724
         .p5_wr_clk                      (c3_p5_wr_clk),
725
         .p5_wr_en                       (c3_p5_wr_en),
726
         .p5_wr_mask                     (c3_p5_wr_mask),
727
         .p5_wr_data                     (c3_p5_wr_data),
728
         .p5_wr_full                     (c3_p5_wr_full),
729
         .p5_wr_count                    (c3_p5_wr_count),
730
         .p5_wr_empty                    (c3_p5_wr_empty),
731
         .p5_wr_underrun                 (c3_p5_wr_underrun),
732
         .p5_wr_error                    (c3_p5_wr_error),
733
         // User Port-5 data read interface will be active only when the port is enabled in 
734
         // the port configuration Config-1 read direction
735
         .p5_rd_clk                      (c3_p5_rd_clk),
736
         .p5_rd_en                       (c3_p5_rd_en),
737
         .p5_rd_data                     (c3_p5_rd_data),
738
         .p5_rd_empty                    (c3_p5_rd_empty),
739
         .p5_rd_count                    (c3_p5_rd_count),
740
         .p5_rd_full                     (c3_p5_rd_full),
741
         .p5_rd_overflow                 (c3_p5_rd_overflow),
742
         .p5_rd_error                    (c3_p5_rd_error),
743
 
744
         .selfrefresh_enter              (1'b0),
745
         .selfrefresh_mode               (c3_selfrefresh_mode)
746
      );
747
 
748
 
749
 
750
 
751
 
752
 
753
endmodule
754
 
755
 

powered by: WebSVN 2.1.0

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