1 |
627 |
stekern |
//*****************************************************************************
|
2 |
|
|
// (c) Copyright 2009-10 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 |
|
|
// \ \ \/ Application : MIG
|
53 |
|
|
// \ \ Filename : memc_wrapper.v
|
54 |
|
|
// / / Date Last Modified : $Date: 2010/08/
|
55 |
|
|
// /___/ /\ Date Created : Mon Mar 2 2009
|
56 |
|
|
// \ \ / \
|
57 |
|
|
// \___\/\___\
|
58 |
|
|
//
|
59 |
|
|
//Device : Spartan-6
|
60 |
|
|
//Design Name : DDR/DDR2/DDR3/LPDDR
|
61 |
|
|
//Purpose : This is a static top level module instantiating the mcb_ui_top,
|
62 |
|
|
// which provides interface to all the standard as well as AXI ports.
|
63 |
|
|
// This module memc_wrapper provides interface to only the standard ports.
|
64 |
|
|
//Reference :
|
65 |
|
|
//Revision History :
|
66 |
|
|
//*****************************************************************************
|
67 |
|
|
`timescale 1ns/1ps
|
68 |
|
|
|
69 |
|
|
module memc_wrapper #
|
70 |
|
|
(
|
71 |
|
|
parameter C_MEMCLK_PERIOD = 2500,
|
72 |
|
|
parameter C_P0_MASK_SIZE = 4,
|
73 |
|
|
parameter C_P0_DATA_PORT_SIZE = 32,
|
74 |
|
|
parameter C_P1_MASK_SIZE = 4,
|
75 |
|
|
parameter C_P1_DATA_PORT_SIZE = 32,
|
76 |
|
|
|
77 |
|
|
parameter C_PORT_ENABLE = 6'b111111,
|
78 |
|
|
parameter C_PORT_CONFIG = "B128",
|
79 |
|
|
parameter C_MEM_ADDR_ORDER = "BANK_ROW_COLUMN",
|
80 |
|
|
// The following parameter reflects the GUI selection of the Arbitration algorithm.
|
81 |
|
|
// Zero value corresponds to round robin algorithm and one to custom selection.
|
82 |
|
|
// The parameter is used to calculate the arbitration time slot parameters.
|
83 |
|
|
parameter C_ARB_ALGORITHM = 0,
|
84 |
|
|
parameter C_ARB_NUM_TIME_SLOTS = 12,
|
85 |
|
|
parameter C_ARB_TIME_SLOT_0 = 18'o012345,
|
86 |
|
|
parameter C_ARB_TIME_SLOT_1 = 18'o123450,
|
87 |
|
|
parameter C_ARB_TIME_SLOT_2 = 18'o234501,
|
88 |
|
|
parameter C_ARB_TIME_SLOT_3 = 18'o345012,
|
89 |
|
|
parameter C_ARB_TIME_SLOT_4 = 18'o450123,
|
90 |
|
|
parameter C_ARB_TIME_SLOT_5 = 18'o501234,
|
91 |
|
|
parameter C_ARB_TIME_SLOT_6 = 18'o012345,
|
92 |
|
|
parameter C_ARB_TIME_SLOT_7 = 18'o123450,
|
93 |
|
|
parameter C_ARB_TIME_SLOT_8 = 18'o234501,
|
94 |
|
|
parameter C_ARB_TIME_SLOT_9 = 18'o345012,
|
95 |
|
|
parameter C_ARB_TIME_SLOT_10 = 18'o450123,
|
96 |
|
|
parameter C_ARB_TIME_SLOT_11 = 18'o501234,
|
97 |
|
|
parameter C_MEM_TRAS = 45000,
|
98 |
|
|
parameter C_MEM_TRCD = 12500,
|
99 |
|
|
parameter C_MEM_TREFI = 7800,
|
100 |
|
|
parameter C_MEM_TRFC = 127500,
|
101 |
|
|
parameter C_MEM_TRP = 12500,
|
102 |
|
|
parameter C_MEM_TWR = 15000,
|
103 |
|
|
parameter C_MEM_TRTP = 7500,
|
104 |
|
|
parameter C_MEM_TWTR = 7500,
|
105 |
|
|
parameter C_NUM_DQ_PINS = 8,
|
106 |
|
|
parameter C_MEM_TYPE = "DDR3",
|
107 |
|
|
parameter C_MEM_DENSITY = "512M",
|
108 |
|
|
parameter C_MEM_BURST_LEN = 8,
|
109 |
|
|
parameter C_MEM_CAS_LATENCY = 4,
|
110 |
|
|
parameter C_MEM_ADDR_WIDTH = 13,
|
111 |
|
|
parameter C_MEM_BANKADDR_WIDTH = 3,
|
112 |
|
|
parameter C_MEM_NUM_COL_BITS = 11,
|
113 |
|
|
parameter C_MEM_DDR3_CAS_LATENCY = 7,
|
114 |
|
|
parameter C_MEM_MOBILE_PA_SR = "FULL",
|
115 |
|
|
parameter C_MEM_DDR1_2_ODS = "FULL",
|
116 |
|
|
parameter C_MEM_DDR3_ODS = "DIV6",
|
117 |
|
|
parameter C_MEM_DDR2_RTT = "50OHMS",
|
118 |
|
|
parameter C_MEM_DDR3_RTT = "DIV2",
|
119 |
|
|
parameter C_MEM_MDDR_ODS = "FULL",
|
120 |
|
|
parameter C_MEM_DDR2_DIFF_DQS_EN = "YES",
|
121 |
|
|
parameter C_MEM_DDR2_3_PA_SR = "OFF",
|
122 |
|
|
parameter C_MEM_DDR3_CAS_WR_LATENCY = 5,
|
123 |
|
|
parameter C_MEM_DDR3_AUTO_SR = "ENABLED",
|
124 |
|
|
parameter C_MEM_DDR2_3_HIGH_TEMP_SR = "NORMAL",
|
125 |
|
|
parameter C_MEM_DDR3_DYN_WRT_ODT = "OFF",
|
126 |
|
|
parameter C_MC_CALIB_BYPASS = "NO",
|
127 |
|
|
|
128 |
|
|
parameter LDQSP_TAP_DELAY_VAL = 0,
|
129 |
|
|
parameter UDQSP_TAP_DELAY_VAL = 0,
|
130 |
|
|
parameter LDQSN_TAP_DELAY_VAL = 0,
|
131 |
|
|
parameter UDQSN_TAP_DELAY_VAL = 0,
|
132 |
|
|
parameter DQ0_TAP_DELAY_VAL = 0,
|
133 |
|
|
parameter DQ1_TAP_DELAY_VAL = 0,
|
134 |
|
|
parameter DQ2_TAP_DELAY_VAL = 0,
|
135 |
|
|
parameter DQ3_TAP_DELAY_VAL = 0,
|
136 |
|
|
parameter DQ4_TAP_DELAY_VAL = 0,
|
137 |
|
|
parameter DQ5_TAP_DELAY_VAL = 0,
|
138 |
|
|
parameter DQ6_TAP_DELAY_VAL = 0,
|
139 |
|
|
parameter DQ7_TAP_DELAY_VAL = 0,
|
140 |
|
|
parameter DQ8_TAP_DELAY_VAL = 0,
|
141 |
|
|
parameter DQ9_TAP_DELAY_VAL = 0,
|
142 |
|
|
parameter DQ10_TAP_DELAY_VAL = 0,
|
143 |
|
|
parameter DQ11_TAP_DELAY_VAL = 0,
|
144 |
|
|
parameter DQ12_TAP_DELAY_VAL = 0,
|
145 |
|
|
parameter DQ13_TAP_DELAY_VAL = 0,
|
146 |
|
|
parameter DQ14_TAP_DELAY_VAL = 0,
|
147 |
|
|
parameter DQ15_TAP_DELAY_VAL = 0,
|
148 |
|
|
|
149 |
|
|
parameter C_CALIB_SOFT_IP = "TRUE",
|
150 |
|
|
parameter C_SIMULATION = "FALSE",
|
151 |
|
|
parameter C_SKIP_IN_TERM_CAL = 1'b0,
|
152 |
|
|
parameter C_SKIP_DYNAMIC_CAL = 1'b0,
|
153 |
|
|
parameter C_MC_CALIBRATION_MODE = "CALIBRATION",
|
154 |
|
|
parameter C_MC_CALIBRATION_DELAY = "HALF"
|
155 |
|
|
|
156 |
|
|
)
|
157 |
|
|
|
158 |
|
|
(
|
159 |
|
|
|
160 |
|
|
// Raw Wrapper Signals
|
161 |
|
|
input sysclk_2x,
|
162 |
|
|
input sysclk_2x_180,
|
163 |
|
|
input pll_ce_0,
|
164 |
|
|
input pll_ce_90,
|
165 |
|
|
input pll_lock,
|
166 |
|
|
input async_rst,
|
167 |
|
|
input mcb_drp_clk,
|
168 |
|
|
output [C_MEM_ADDR_WIDTH-1:0] mcbx_dram_addr,
|
169 |
|
|
output [C_MEM_BANKADDR_WIDTH-1:0] mcbx_dram_ba,
|
170 |
|
|
output mcbx_dram_ras_n,
|
171 |
|
|
output mcbx_dram_cas_n,
|
172 |
|
|
output mcbx_dram_we_n,
|
173 |
|
|
output mcbx_dram_cke,
|
174 |
|
|
output mcbx_dram_clk,
|
175 |
|
|
output mcbx_dram_clk_n,
|
176 |
|
|
inout [C_NUM_DQ_PINS-1:0] mcbx_dram_dq,
|
177 |
|
|
inout mcbx_dram_dqs,
|
178 |
|
|
inout mcbx_dram_dqs_n,
|
179 |
|
|
inout mcbx_dram_udqs,
|
180 |
|
|
inout mcbx_dram_udqs_n,
|
181 |
|
|
output mcbx_dram_udm,
|
182 |
|
|
output mcbx_dram_ldm,
|
183 |
|
|
output mcbx_dram_odt,
|
184 |
|
|
output mcbx_dram_ddr3_rst,
|
185 |
|
|
inout mcbx_rzq,
|
186 |
|
|
inout mcbx_zio,
|
187 |
|
|
output calib_done,
|
188 |
|
|
input selfrefresh_enter,
|
189 |
|
|
output selfrefresh_mode,
|
190 |
|
|
|
191 |
|
|
// This new memc_wrapper shows all the six logical static user ports. The port
|
192 |
|
|
// configuration parameter and the port enable parameter are the ones that
|
193 |
|
|
// determine the active and non-active ports. The following list shows the
|
194 |
|
|
// default active ports for each port configuration.
|
195 |
|
|
//
|
196 |
|
|
// Config 1: "B32_B32_X32_X32_X32_X32"
|
197 |
|
|
// User port 0 --> 32 bit, User port 1 --> 32 bit
|
198 |
|
|
// User port 2 --> 32 bit, User port 3 --> 32 bit
|
199 |
|
|
// User port 4 --> 32 bit, User port 5 --> 32 bit
|
200 |
|
|
// Config 2: "B32_B32_B32_B32"
|
201 |
|
|
// User port 0 --> 32 bit
|
202 |
|
|
// User port 1 --> 32 bit
|
203 |
|
|
// User port 2 --> 32 bit
|
204 |
|
|
// User port 3 --> 32 bit
|
205 |
|
|
// Config 3: "B64_B32_B3"
|
206 |
|
|
// User port 0 --> 64 bit
|
207 |
|
|
// User port 1 --> 32 bit
|
208 |
|
|
// User port 2 --> 32 bit
|
209 |
|
|
// Config 4: "B64_B64"
|
210 |
|
|
// User port 0 --> 64 bit
|
211 |
|
|
// User port 1 --> 64 bit
|
212 |
|
|
// Config 5 "B128"
|
213 |
|
|
// User port 0 --> 128 bit
|
214 |
|
|
|
215 |
|
|
|
216 |
|
|
// User Port-0 command interface will be active only when the port is enabled in
|
217 |
|
|
// the port configurations Config-1, Config-2, Config-3, Config-4 and Config-5
|
218 |
|
|
input p0_cmd_clk,
|
219 |
|
|
input p0_cmd_en,
|
220 |
|
|
input [2:0] p0_cmd_instr,
|
221 |
|
|
input [5:0] p0_cmd_bl,
|
222 |
|
|
input [29:0] p0_cmd_byte_addr,
|
223 |
|
|
output p0_cmd_full,
|
224 |
|
|
output p0_cmd_empty,
|
225 |
|
|
// User Port-0 data write interface will be active only when the port is enabled in
|
226 |
|
|
// the port configurations Config-1, Config-2, Config-3, Config-4 and Config-5
|
227 |
|
|
input p0_wr_clk,
|
228 |
|
|
input p0_wr_en,
|
229 |
|
|
input [C_P0_MASK_SIZE-1:0] p0_wr_mask,
|
230 |
|
|
input [C_P0_DATA_PORT_SIZE-1:0] p0_wr_data,
|
231 |
|
|
output p0_wr_full,
|
232 |
|
|
output [6:0] p0_wr_count,
|
233 |
|
|
output p0_wr_empty,
|
234 |
|
|
output p0_wr_underrun,
|
235 |
|
|
output p0_wr_error,
|
236 |
|
|
// User Port-0 data read interface will be active only when the port is enabled in
|
237 |
|
|
// the port configurations Config-1, Config-2, Config-3, Config-4 and Config-5
|
238 |
|
|
input p0_rd_clk,
|
239 |
|
|
input p0_rd_en,
|
240 |
|
|
output [C_P0_DATA_PORT_SIZE-1:0] p0_rd_data,
|
241 |
|
|
output p0_rd_empty,
|
242 |
|
|
output [6:0] p0_rd_count,
|
243 |
|
|
output p0_rd_full,
|
244 |
|
|
output p0_rd_overflow,
|
245 |
|
|
output p0_rd_error,
|
246 |
|
|
|
247 |
|
|
// User Port-1 command interface will be active only when the port is enabled in
|
248 |
|
|
// the port configurations Config-1, Config-2, Config-3 and Config-4
|
249 |
|
|
input p1_cmd_clk,
|
250 |
|
|
input p1_cmd_en,
|
251 |
|
|
input [2:0] p1_cmd_instr,
|
252 |
|
|
input [5:0] p1_cmd_bl,
|
253 |
|
|
input [29:0] p1_cmd_byte_addr,
|
254 |
|
|
output p1_cmd_full,
|
255 |
|
|
output p1_cmd_empty,
|
256 |
|
|
// User Port-1 data write interface will be active only when the port is enabled in
|
257 |
|
|
// the port configurations Config-1, Config-2, Config-3 and Config-4
|
258 |
|
|
input p1_wr_clk,
|
259 |
|
|
input p1_wr_en,
|
260 |
|
|
input [C_P1_MASK_SIZE-1:0] p1_wr_mask,
|
261 |
|
|
input [C_P1_DATA_PORT_SIZE-1:0] p1_wr_data,
|
262 |
|
|
output p1_wr_full,
|
263 |
|
|
output [6:0] p1_wr_count,
|
264 |
|
|
output p1_wr_empty,
|
265 |
|
|
output p1_wr_underrun,
|
266 |
|
|
output p1_wr_error,
|
267 |
|
|
// User Port-1 data read interface will be active only when the port is enabled in
|
268 |
|
|
// the port configurations Config-1, Config-2, Config-3 and Config-4
|
269 |
|
|
input p1_rd_clk,
|
270 |
|
|
input p1_rd_en,
|
271 |
|
|
output [C_P1_DATA_PORT_SIZE-1:0] p1_rd_data,
|
272 |
|
|
output p1_rd_empty,
|
273 |
|
|
output [6:0] p1_rd_count,
|
274 |
|
|
output p1_rd_full,
|
275 |
|
|
output p1_rd_overflow,
|
276 |
|
|
output p1_rd_error,
|
277 |
|
|
|
278 |
|
|
// User Port-2 command interface will be active only when the port is enabled in
|
279 |
|
|
// the port configurations Config-1, Config-2 and Config-3
|
280 |
|
|
input p2_cmd_clk,
|
281 |
|
|
input p2_cmd_en,
|
282 |
|
|
input [2:0] p2_cmd_instr,
|
283 |
|
|
input [5:0] p2_cmd_bl,
|
284 |
|
|
input [29:0] p2_cmd_byte_addr,
|
285 |
|
|
output p2_cmd_full,
|
286 |
|
|
output p2_cmd_empty,
|
287 |
|
|
// User Port-2 data write interface will be active only when the port is enabled in
|
288 |
|
|
// the port configurations Config-1 write direction, Config-2 and Config-3
|
289 |
|
|
input p2_wr_clk,
|
290 |
|
|
input p2_wr_en,
|
291 |
|
|
input [3:0] p2_wr_mask,
|
292 |
|
|
input [31:0] p2_wr_data,
|
293 |
|
|
output p2_wr_full,
|
294 |
|
|
output [6:0] p2_wr_count,
|
295 |
|
|
output p2_wr_empty,
|
296 |
|
|
output p2_wr_underrun,
|
297 |
|
|
output p2_wr_error,
|
298 |
|
|
// User Port-2 data read interface will be active only when the port is enabled in
|
299 |
|
|
// the port configurations Config-1 read direction, Config-2 and Config-3
|
300 |
|
|
input p2_rd_clk,
|
301 |
|
|
input p2_rd_en,
|
302 |
|
|
output [31:0] p2_rd_data,
|
303 |
|
|
output p2_rd_empty,
|
304 |
|
|
output [6:0] p2_rd_count,
|
305 |
|
|
output p2_rd_full,
|
306 |
|
|
output p2_rd_overflow,
|
307 |
|
|
output p2_rd_error,
|
308 |
|
|
|
309 |
|
|
// User Port-3 command interface will be active only when the port is enabled in
|
310 |
|
|
// the port configurations Config-1 and Config-2
|
311 |
|
|
input p3_cmd_clk,
|
312 |
|
|
input p3_cmd_en,
|
313 |
|
|
input [2:0] p3_cmd_instr,
|
314 |
|
|
input [5:0] p3_cmd_bl,
|
315 |
|
|
input [29:0] p3_cmd_byte_addr,
|
316 |
|
|
output p3_cmd_full,
|
317 |
|
|
output p3_cmd_empty,
|
318 |
|
|
// User Port-3 data write interface will be active only when the port is enabled in
|
319 |
|
|
// the port configurations Config-1 write direction and Config-2
|
320 |
|
|
input p3_wr_clk,
|
321 |
|
|
input p3_wr_en,
|
322 |
|
|
input [3:0] p3_wr_mask,
|
323 |
|
|
input [31:0] p3_wr_data,
|
324 |
|
|
output p3_wr_full,
|
325 |
|
|
output [6:0] p3_wr_count,
|
326 |
|
|
output p3_wr_empty,
|
327 |
|
|
output p3_wr_underrun,
|
328 |
|
|
output p3_wr_error,
|
329 |
|
|
// User Port-3 data read interface will be active only when the port is enabled in
|
330 |
|
|
// the port configurations Config-1 read direction and Config-2
|
331 |
|
|
input p3_rd_clk,
|
332 |
|
|
input p3_rd_en,
|
333 |
|
|
output [31:0] p3_rd_data,
|
334 |
|
|
output p3_rd_empty,
|
335 |
|
|
output [6:0] p3_rd_count,
|
336 |
|
|
output p3_rd_full,
|
337 |
|
|
output p3_rd_overflow,
|
338 |
|
|
output p3_rd_error,
|
339 |
|
|
|
340 |
|
|
// User Port-4 command interface will be active only when the port is enabled in
|
341 |
|
|
// the port configuration Config-1
|
342 |
|
|
input p4_cmd_clk,
|
343 |
|
|
input p4_cmd_en,
|
344 |
|
|
input [2:0] p4_cmd_instr,
|
345 |
|
|
input [5:0] p4_cmd_bl,
|
346 |
|
|
input [29:0] p4_cmd_byte_addr,
|
347 |
|
|
output p4_cmd_full,
|
348 |
|
|
output p4_cmd_empty,
|
349 |
|
|
// User Port-4 data write interface will be active only when the port is enabled in
|
350 |
|
|
// the port configuration Config-1 write direction
|
351 |
|
|
input p4_wr_clk,
|
352 |
|
|
input p4_wr_en,
|
353 |
|
|
input [3:0] p4_wr_mask,
|
354 |
|
|
input [31:0] p4_wr_data,
|
355 |
|
|
output p4_wr_full,
|
356 |
|
|
output [6:0] p4_wr_count,
|
357 |
|
|
output p4_wr_empty,
|
358 |
|
|
output p4_wr_underrun,
|
359 |
|
|
output p4_wr_error,
|
360 |
|
|
// User Port-4 data read interface will be active only when the port is enabled in
|
361 |
|
|
// the port configuration Config-1 read direction
|
362 |
|
|
input p4_rd_clk,
|
363 |
|
|
input p4_rd_en,
|
364 |
|
|
output [31:0] p4_rd_data,
|
365 |
|
|
output p4_rd_empty,
|
366 |
|
|
output [6:0] p4_rd_count,
|
367 |
|
|
output p4_rd_full,
|
368 |
|
|
output p4_rd_overflow,
|
369 |
|
|
output p4_rd_error,
|
370 |
|
|
// User Port-5 command interface will be active only when the port is enabled in
|
371 |
|
|
// the port configuration Config-1
|
372 |
|
|
input p5_cmd_clk,
|
373 |
|
|
input p5_cmd_en,
|
374 |
|
|
input [2:0] p5_cmd_instr,
|
375 |
|
|
input [5:0] p5_cmd_bl,
|
376 |
|
|
input [29:0] p5_cmd_byte_addr,
|
377 |
|
|
output p5_cmd_full,
|
378 |
|
|
output p5_cmd_empty,
|
379 |
|
|
// User Port-5 data write interface will be active only when the port is enabled in
|
380 |
|
|
// the port configuration Config-1 write direction
|
381 |
|
|
input p5_wr_clk,
|
382 |
|
|
input p5_wr_en,
|
383 |
|
|
input [3:0] p5_wr_mask,
|
384 |
|
|
input [31:0] p5_wr_data,
|
385 |
|
|
output p5_wr_full,
|
386 |
|
|
output [6:0] p5_wr_count,
|
387 |
|
|
output p5_wr_empty,
|
388 |
|
|
output p5_wr_underrun,
|
389 |
|
|
output p5_wr_error,
|
390 |
|
|
// User Port-5 data read interface will be active only when the port is enabled in
|
391 |
|
|
// the port configuration Config-1 read direction
|
392 |
|
|
input p5_rd_clk,
|
393 |
|
|
input p5_rd_en,
|
394 |
|
|
output [31:0] p5_rd_data,
|
395 |
|
|
output p5_rd_empty,
|
396 |
|
|
output [6:0] p5_rd_count,
|
397 |
|
|
output p5_rd_full,
|
398 |
|
|
output p5_rd_overflow,
|
399 |
|
|
output p5_rd_error
|
400 |
|
|
|
401 |
|
|
);
|
402 |
|
|
|
403 |
|
|
localparam C_MC_CALIBRATION_CLK_DIV = 1;
|
404 |
|
|
localparam C_MEM_TZQINIT_MAXCNT = 10'd512 + 10'd16; // 16 clock cycles are added to avoid trfc violations
|
405 |
|
|
localparam C_SKIP_DYN_IN_TERM = 1'b1;
|
406 |
|
|
|
407 |
|
|
localparam C_MC_CALIBRATION_RA = 16'h0000;
|
408 |
|
|
localparam C_MC_CALIBRATION_BA = 3'h0;
|
409 |
|
|
localparam C_MC_CALIBRATION_CA = 12'h000;
|
410 |
|
|
|
411 |
|
|
// All the following new localparams and signals are added to support
|
412 |
|
|
// the AXI slave interface. They have no function to play in a standard
|
413 |
|
|
// interface design and can be ignored.
|
414 |
|
|
localparam C_S0_AXI_ID_WIDTH = 4;
|
415 |
|
|
localparam C_S0_AXI_ADDR_WIDTH = 64;
|
416 |
|
|
localparam C_S0_AXI_DATA_WIDTH = 32;
|
417 |
|
|
localparam C_S1_AXI_ID_WIDTH = 4;
|
418 |
|
|
localparam C_S1_AXI_ADDR_WIDTH = 64;
|
419 |
|
|
localparam C_S1_AXI_DATA_WIDTH = 32;
|
420 |
|
|
localparam C_S2_AXI_ID_WIDTH = 4;
|
421 |
|
|
localparam C_S2_AXI_ADDR_WIDTH = 64;
|
422 |
|
|
localparam C_S2_AXI_DATA_WIDTH = 32;
|
423 |
|
|
localparam C_S3_AXI_ID_WIDTH = 4;
|
424 |
|
|
localparam C_S3_AXI_ADDR_WIDTH = 64;
|
425 |
|
|
localparam C_S3_AXI_DATA_WIDTH = 32;
|
426 |
|
|
localparam C_S4_AXI_ID_WIDTH = 4;
|
427 |
|
|
localparam C_S4_AXI_ADDR_WIDTH = 64;
|
428 |
|
|
localparam C_S4_AXI_DATA_WIDTH = 32;
|
429 |
|
|
localparam C_S5_AXI_ID_WIDTH = 4;
|
430 |
|
|
localparam C_S5_AXI_ADDR_WIDTH = 64;
|
431 |
|
|
localparam C_S5_AXI_DATA_WIDTH = 32;
|
432 |
|
|
localparam C_MCB_USE_EXTERNAL_BUFPLL = 1;
|
433 |
|
|
|
434 |
|
|
// AXI wire declarations
|
435 |
|
|
// AXI interface of the mcb_ui_top module is connected to the following
|
436 |
|
|
// floating wires in all the standard interface designs.
|
437 |
|
|
wire s0_axi_aclk;
|
438 |
|
|
wire s0_axi_aresetn;
|
439 |
|
|
wire [C_S0_AXI_ID_WIDTH-1:0] s0_axi_awid;
|
440 |
|
|
wire [C_S0_AXI_ADDR_WIDTH-1:0] s0_axi_awaddr;
|
441 |
|
|
wire [7:0] s0_axi_awlen;
|
442 |
|
|
wire [2:0] s0_axi_awsize;
|
443 |
|
|
wire [1:0] s0_axi_awburst;
|
444 |
|
|
wire [0:0] s0_axi_awlock;
|
445 |
|
|
wire [3:0] s0_axi_awcache;
|
446 |
|
|
wire [2:0] s0_axi_awprot;
|
447 |
|
|
wire [3:0] s0_axi_awqos;
|
448 |
|
|
wire s0_axi_awvalid;
|
449 |
|
|
wire s0_axi_awready;
|
450 |
|
|
wire [C_S0_AXI_DATA_WIDTH-1:0] s0_axi_wdata;
|
451 |
|
|
wire [C_S0_AXI_DATA_WIDTH/8-1:0] s0_axi_wstrb;
|
452 |
|
|
wire s0_axi_wlast;
|
453 |
|
|
wire s0_axi_wvalid;
|
454 |
|
|
wire s0_axi_wready;
|
455 |
|
|
wire [C_S0_AXI_ID_WIDTH-1:0] s0_axi_bid;
|
456 |
|
|
wire [1:0] s0_axi_bresp;
|
457 |
|
|
wire s0_axi_bvalid;
|
458 |
|
|
wire s0_axi_bready;
|
459 |
|
|
wire [C_S0_AXI_ID_WIDTH-1:0] s0_axi_arid;
|
460 |
|
|
wire [C_S0_AXI_ADDR_WIDTH-1:0] s0_axi_araddr;
|
461 |
|
|
wire [7:0] s0_axi_arlen;
|
462 |
|
|
wire [2:0] s0_axi_arsize;
|
463 |
|
|
wire [1:0] s0_axi_arburst;
|
464 |
|
|
wire [0:0] s0_axi_arlock;
|
465 |
|
|
wire [3:0] s0_axi_arcache;
|
466 |
|
|
wire [2:0] s0_axi_arprot;
|
467 |
|
|
wire [3:0] s0_axi_arqos;
|
468 |
|
|
wire s0_axi_arvalid;
|
469 |
|
|
wire s0_axi_arready;
|
470 |
|
|
wire [C_S0_AXI_ID_WIDTH-1:0] s0_axi_rid;
|
471 |
|
|
wire [C_S0_AXI_DATA_WIDTH-1:0] s0_axi_rdata;
|
472 |
|
|
wire [1:0] s0_axi_rresp;
|
473 |
|
|
wire s0_axi_rlast;
|
474 |
|
|
wire s0_axi_rvalid;
|
475 |
|
|
wire s0_axi_rready;
|
476 |
|
|
|
477 |
|
|
wire s1_axi_aclk;
|
478 |
|
|
wire s1_axi_aresetn;
|
479 |
|
|
wire [C_S1_AXI_ID_WIDTH-1:0] s1_axi_awid;
|
480 |
|
|
wire [C_S1_AXI_ADDR_WIDTH-1:0] s1_axi_awaddr;
|
481 |
|
|
wire [7:0] s1_axi_awlen;
|
482 |
|
|
wire [2:0] s1_axi_awsize;
|
483 |
|
|
wire [1:0] s1_axi_awburst;
|
484 |
|
|
wire [0:0] s1_axi_awlock;
|
485 |
|
|
wire [3:0] s1_axi_awcache;
|
486 |
|
|
wire [2:0] s1_axi_awprot;
|
487 |
|
|
wire [3:0] s1_axi_awqos;
|
488 |
|
|
wire s1_axi_awvalid;
|
489 |
|
|
wire s1_axi_awready;
|
490 |
|
|
wire [C_S1_AXI_DATA_WIDTH-1:0] s1_axi_wdata;
|
491 |
|
|
wire [C_S1_AXI_DATA_WIDTH/8-1:0] s1_axi_wstrb;
|
492 |
|
|
wire s1_axi_wlast;
|
493 |
|
|
wire s1_axi_wvalid;
|
494 |
|
|
wire s1_axi_wready;
|
495 |
|
|
wire [C_S1_AXI_ID_WIDTH-1:0] s1_axi_bid;
|
496 |
|
|
wire [1:0] s1_axi_bresp;
|
497 |
|
|
wire s1_axi_bvalid;
|
498 |
|
|
wire s1_axi_bready;
|
499 |
|
|
wire [C_S1_AXI_ID_WIDTH-1:0] s1_axi_arid;
|
500 |
|
|
wire [C_S1_AXI_ADDR_WIDTH-1:0] s1_axi_araddr;
|
501 |
|
|
wire [7:0] s1_axi_arlen;
|
502 |
|
|
wire [2:0] s1_axi_arsize;
|
503 |
|
|
wire [1:0] s1_axi_arburst;
|
504 |
|
|
wire [0:0] s1_axi_arlock;
|
505 |
|
|
wire [3:0] s1_axi_arcache;
|
506 |
|
|
wire [2:0] s1_axi_arprot;
|
507 |
|
|
wire [3:0] s1_axi_arqos;
|
508 |
|
|
wire s1_axi_arvalid;
|
509 |
|
|
wire s1_axi_arready;
|
510 |
|
|
wire [C_S1_AXI_ID_WIDTH-1:0] s1_axi_rid;
|
511 |
|
|
wire [C_S1_AXI_DATA_WIDTH-1:0] s1_axi_rdata;
|
512 |
|
|
wire [1:0] s1_axi_rresp;
|
513 |
|
|
wire s1_axi_rlast;
|
514 |
|
|
wire s1_axi_rvalid;
|
515 |
|
|
wire s1_axi_rready;
|
516 |
|
|
|
517 |
|
|
wire s2_axi_aclk;
|
518 |
|
|
wire s2_axi_aresetn;
|
519 |
|
|
wire [C_S2_AXI_ID_WIDTH-1:0] s2_axi_awid;
|
520 |
|
|
wire [C_S2_AXI_ADDR_WIDTH-1:0] s2_axi_awaddr;
|
521 |
|
|
wire [7:0] s2_axi_awlen;
|
522 |
|
|
wire [2:0] s2_axi_awsize;
|
523 |
|
|
wire [1:0] s2_axi_awburst;
|
524 |
|
|
wire [0:0] s2_axi_awlock;
|
525 |
|
|
wire [3:0] s2_axi_awcache;
|
526 |
|
|
wire [2:0] s2_axi_awprot;
|
527 |
|
|
wire [3:0] s2_axi_awqos;
|
528 |
|
|
wire s2_axi_awvalid;
|
529 |
|
|
wire s2_axi_awready;
|
530 |
|
|
wire [C_S2_AXI_DATA_WIDTH-1:0] s2_axi_wdata;
|
531 |
|
|
wire [C_S2_AXI_DATA_WIDTH/8-1:0] s2_axi_wstrb;
|
532 |
|
|
wire s2_axi_wlast;
|
533 |
|
|
wire s2_axi_wvalid;
|
534 |
|
|
wire s2_axi_wready;
|
535 |
|
|
wire [C_S2_AXI_ID_WIDTH-1:0] s2_axi_bid;
|
536 |
|
|
wire [1:0] s2_axi_bresp;
|
537 |
|
|
wire s2_axi_bvalid;
|
538 |
|
|
wire s2_axi_bready;
|
539 |
|
|
wire [C_S2_AXI_ID_WIDTH-1:0] s2_axi_arid;
|
540 |
|
|
wire [C_S2_AXI_ADDR_WIDTH-1:0] s2_axi_araddr;
|
541 |
|
|
wire [7:0] s2_axi_arlen;
|
542 |
|
|
wire [2:0] s2_axi_arsize;
|
543 |
|
|
wire [1:0] s2_axi_arburst;
|
544 |
|
|
wire [0:0] s2_axi_arlock;
|
545 |
|
|
wire [3:0] s2_axi_arcache;
|
546 |
|
|
wire [2:0] s2_axi_arprot;
|
547 |
|
|
wire [3:0] s2_axi_arqos;
|
548 |
|
|
wire s2_axi_arvalid;
|
549 |
|
|
wire s2_axi_arready;
|
550 |
|
|
wire [C_S2_AXI_ID_WIDTH-1:0] s2_axi_rid;
|
551 |
|
|
wire [C_S2_AXI_DATA_WIDTH-1:0] s2_axi_rdata;
|
552 |
|
|
wire [1:0] s2_axi_rresp;
|
553 |
|
|
wire s2_axi_rlast;
|
554 |
|
|
wire s2_axi_rvalid;
|
555 |
|
|
wire s2_axi_rready;
|
556 |
|
|
|
557 |
|
|
wire s3_axi_aclk;
|
558 |
|
|
wire s3_axi_aresetn;
|
559 |
|
|
wire [C_S3_AXI_ID_WIDTH-1:0] s3_axi_awid;
|
560 |
|
|
wire [C_S3_AXI_ADDR_WIDTH-1:0] s3_axi_awaddr;
|
561 |
|
|
wire [7:0] s3_axi_awlen;
|
562 |
|
|
wire [2:0] s3_axi_awsize;
|
563 |
|
|
wire [1:0] s3_axi_awburst;
|
564 |
|
|
wire [0:0] s3_axi_awlock;
|
565 |
|
|
wire [3:0] s3_axi_awcache;
|
566 |
|
|
wire [2:0] s3_axi_awprot;
|
567 |
|
|
wire [3:0] s3_axi_awqos;
|
568 |
|
|
wire s3_axi_awvalid;
|
569 |
|
|
wire s3_axi_awready;
|
570 |
|
|
wire [C_S3_AXI_DATA_WIDTH-1:0] s3_axi_wdata;
|
571 |
|
|
wire [C_S3_AXI_DATA_WIDTH/8-1:0] s3_axi_wstrb;
|
572 |
|
|
wire s3_axi_wlast;
|
573 |
|
|
wire s3_axi_wvalid;
|
574 |
|
|
wire s3_axi_wready;
|
575 |
|
|
wire [C_S3_AXI_ID_WIDTH-1:0] s3_axi_bid;
|
576 |
|
|
wire [1:0] s3_axi_bresp;
|
577 |
|
|
wire s3_axi_bvalid;
|
578 |
|
|
wire s3_axi_bready;
|
579 |
|
|
wire [C_S3_AXI_ID_WIDTH-1:0] s3_axi_arid;
|
580 |
|
|
wire [C_S3_AXI_ADDR_WIDTH-1:0] s3_axi_araddr;
|
581 |
|
|
wire [7:0] s3_axi_arlen;
|
582 |
|
|
wire [2:0] s3_axi_arsize;
|
583 |
|
|
wire [1:0] s3_axi_arburst;
|
584 |
|
|
wire [0:0] s3_axi_arlock;
|
585 |
|
|
wire [3:0] s3_axi_arcache;
|
586 |
|
|
wire [2:0] s3_axi_arprot;
|
587 |
|
|
wire [3:0] s3_axi_arqos;
|
588 |
|
|
wire s3_axi_arvalid;
|
589 |
|
|
wire s3_axi_arready;
|
590 |
|
|
wire [C_S3_AXI_ID_WIDTH-1:0] s3_axi_rid;
|
591 |
|
|
wire [C_S3_AXI_DATA_WIDTH-1:0] s3_axi_rdata;
|
592 |
|
|
wire [1:0] s3_axi_rresp;
|
593 |
|
|
wire s3_axi_rlast;
|
594 |
|
|
wire s3_axi_rvalid;
|
595 |
|
|
wire s3_axi_rready;
|
596 |
|
|
|
597 |
|
|
wire s4_axi_aclk;
|
598 |
|
|
wire s4_axi_aresetn;
|
599 |
|
|
wire [C_S4_AXI_ID_WIDTH-1:0] s4_axi_awid;
|
600 |
|
|
wire [C_S4_AXI_ADDR_WIDTH-1:0] s4_axi_awaddr;
|
601 |
|
|
wire [7:0] s4_axi_awlen;
|
602 |
|
|
wire [2:0] s4_axi_awsize;
|
603 |
|
|
wire [1:0] s4_axi_awburst;
|
604 |
|
|
wire [0:0] s4_axi_awlock;
|
605 |
|
|
wire [3:0] s4_axi_awcache;
|
606 |
|
|
wire [2:0] s4_axi_awprot;
|
607 |
|
|
wire [3:0] s4_axi_awqos;
|
608 |
|
|
wire s4_axi_awvalid;
|
609 |
|
|
wire s4_axi_awready;
|
610 |
|
|
wire [C_S4_AXI_DATA_WIDTH-1:0] s4_axi_wdata;
|
611 |
|
|
wire [C_S4_AXI_DATA_WIDTH/8-1:0] s4_axi_wstrb;
|
612 |
|
|
wire s4_axi_wlast;
|
613 |
|
|
wire s4_axi_wvalid;
|
614 |
|
|
wire s4_axi_wready;
|
615 |
|
|
wire [C_S4_AXI_ID_WIDTH-1:0] s4_axi_bid;
|
616 |
|
|
wire [1:0] s4_axi_bresp;
|
617 |
|
|
wire s4_axi_bvalid;
|
618 |
|
|
wire s4_axi_bready;
|
619 |
|
|
wire [C_S4_AXI_ID_WIDTH-1:0] s4_axi_arid;
|
620 |
|
|
wire [C_S4_AXI_ADDR_WIDTH-1:0] s4_axi_araddr;
|
621 |
|
|
wire [7:0] s4_axi_arlen;
|
622 |
|
|
wire [2:0] s4_axi_arsize;
|
623 |
|
|
wire [1:0] s4_axi_arburst;
|
624 |
|
|
wire [0:0] s4_axi_arlock;
|
625 |
|
|
wire [3:0] s4_axi_arcache;
|
626 |
|
|
wire [2:0] s4_axi_arprot;
|
627 |
|
|
wire [3:0] s4_axi_arqos;
|
628 |
|
|
wire s4_axi_arvalid;
|
629 |
|
|
wire s4_axi_arready;
|
630 |
|
|
wire [C_S4_AXI_ID_WIDTH-1:0] s4_axi_rid;
|
631 |
|
|
wire [C_S4_AXI_DATA_WIDTH-1:0] s4_axi_rdata;
|
632 |
|
|
wire [1:0] s4_axi_rresp;
|
633 |
|
|
wire s4_axi_rlast;
|
634 |
|
|
wire s4_axi_rvalid;
|
635 |
|
|
wire s4_axi_rready;
|
636 |
|
|
|
637 |
|
|
wire s5_axi_aclk;
|
638 |
|
|
wire s5_axi_aresetn;
|
639 |
|
|
wire [C_S5_AXI_ID_WIDTH-1:0] s5_axi_awid;
|
640 |
|
|
wire [C_S5_AXI_ADDR_WIDTH-1:0] s5_axi_awaddr;
|
641 |
|
|
wire [7:0] s5_axi_awlen;
|
642 |
|
|
wire [2:0] s5_axi_awsize;
|
643 |
|
|
wire [1:0] s5_axi_awburst;
|
644 |
|
|
wire [0:0] s5_axi_awlock;
|
645 |
|
|
wire [3:0] s5_axi_awcache;
|
646 |
|
|
wire [2:0] s5_axi_awprot;
|
647 |
|
|
wire [3:0] s5_axi_awqos;
|
648 |
|
|
wire s5_axi_awvalid;
|
649 |
|
|
wire s5_axi_awready;
|
650 |
|
|
wire [C_S5_AXI_DATA_WIDTH-1:0] s5_axi_wdata;
|
651 |
|
|
wire [C_S5_AXI_DATA_WIDTH/8-1:0] s5_axi_wstrb;
|
652 |
|
|
wire s5_axi_wlast;
|
653 |
|
|
wire s5_axi_wvalid;
|
654 |
|
|
wire s5_axi_wready;
|
655 |
|
|
wire [C_S5_AXI_ID_WIDTH-1:0] s5_axi_bid;
|
656 |
|
|
wire [1:0] s5_axi_bresp;
|
657 |
|
|
wire s5_axi_bvalid;
|
658 |
|
|
wire s5_axi_bready;
|
659 |
|
|
wire [C_S5_AXI_ID_WIDTH-1:0] s5_axi_arid;
|
660 |
|
|
wire [C_S5_AXI_ADDR_WIDTH-1:0] s5_axi_araddr;
|
661 |
|
|
wire [7:0] s5_axi_arlen;
|
662 |
|
|
wire [2:0] s5_axi_arsize;
|
663 |
|
|
wire [1:0] s5_axi_arburst;
|
664 |
|
|
wire [0:0] s5_axi_arlock;
|
665 |
|
|
wire [3:0] s5_axi_arcache;
|
666 |
|
|
wire [2:0] s5_axi_arprot;
|
667 |
|
|
wire [3:0] s5_axi_arqos;
|
668 |
|
|
wire s5_axi_arvalid;
|
669 |
|
|
wire s5_axi_arready;
|
670 |
|
|
wire [C_S5_AXI_ID_WIDTH-1:0] s5_axi_rid;
|
671 |
|
|
wire [C_S5_AXI_DATA_WIDTH-1:0] s5_axi_rdata;
|
672 |
|
|
wire [1:0] s5_axi_rresp;
|
673 |
|
|
wire s5_axi_rlast;
|
674 |
|
|
wire s5_axi_rvalid;
|
675 |
|
|
wire s5_axi_rready;
|
676 |
|
|
|
677 |
|
|
wire [7:0] uo_data;
|
678 |
|
|
wire uo_data_valid;
|
679 |
|
|
wire uo_cmd_ready_in;
|
680 |
|
|
wire uo_refrsh_flag;
|
681 |
|
|
wire uo_cal_start;
|
682 |
|
|
wire uo_sdo;
|
683 |
|
|
wire [31:0] status;
|
684 |
|
|
wire sysclk_2x_bufpll_o;
|
685 |
|
|
wire sysclk_2x_180_bufpll_o;
|
686 |
|
|
wire pll_ce_0_bufpll_o;
|
687 |
|
|
wire pll_ce_90_bufpll_o;
|
688 |
|
|
wire pll_lock_bufpll_o;
|
689 |
|
|
|
690 |
|
|
|
691 |
|
|
// mcb_ui_top instantiation
|
692 |
|
|
mcb_ui_top #
|
693 |
|
|
(
|
694 |
|
|
// Raw Wrapper Parameters
|
695 |
|
|
.C_MEMCLK_PERIOD (C_MEMCLK_PERIOD),
|
696 |
|
|
.C_PORT_ENABLE (C_PORT_ENABLE),
|
697 |
|
|
.C_MEM_ADDR_ORDER (C_MEM_ADDR_ORDER),
|
698 |
|
|
.C_ARB_ALGORITHM (C_ARB_ALGORITHM),
|
699 |
|
|
.C_ARB_NUM_TIME_SLOTS (C_ARB_NUM_TIME_SLOTS),
|
700 |
|
|
.C_ARB_TIME_SLOT_0 (C_ARB_TIME_SLOT_0),
|
701 |
|
|
.C_ARB_TIME_SLOT_1 (C_ARB_TIME_SLOT_1),
|
702 |
|
|
.C_ARB_TIME_SLOT_2 (C_ARB_TIME_SLOT_2),
|
703 |
|
|
.C_ARB_TIME_SLOT_3 (C_ARB_TIME_SLOT_3),
|
704 |
|
|
.C_ARB_TIME_SLOT_4 (C_ARB_TIME_SLOT_4),
|
705 |
|
|
.C_ARB_TIME_SLOT_5 (C_ARB_TIME_SLOT_5),
|
706 |
|
|
.C_ARB_TIME_SLOT_6 (C_ARB_TIME_SLOT_6),
|
707 |
|
|
.C_ARB_TIME_SLOT_7 (C_ARB_TIME_SLOT_7),
|
708 |
|
|
.C_ARB_TIME_SLOT_8 (C_ARB_TIME_SLOT_8),
|
709 |
|
|
.C_ARB_TIME_SLOT_9 (C_ARB_TIME_SLOT_9),
|
710 |
|
|
.C_ARB_TIME_SLOT_10 (C_ARB_TIME_SLOT_10),
|
711 |
|
|
.C_ARB_TIME_SLOT_11 (C_ARB_TIME_SLOT_11),
|
712 |
|
|
.C_PORT_CONFIG (C_PORT_CONFIG),
|
713 |
|
|
.C_MEM_TRAS (C_MEM_TRAS),
|
714 |
|
|
.C_MEM_TRCD (C_MEM_TRCD),
|
715 |
|
|
.C_MEM_TREFI (C_MEM_TREFI),
|
716 |
|
|
.C_MEM_TRFC (C_MEM_TRFC),
|
717 |
|
|
.C_MEM_TRP (C_MEM_TRP),
|
718 |
|
|
.C_MEM_TWR (C_MEM_TWR),
|
719 |
|
|
.C_MEM_TRTP (C_MEM_TRTP),
|
720 |
|
|
.C_MEM_TWTR (C_MEM_TWTR),
|
721 |
|
|
.C_NUM_DQ_PINS (C_NUM_DQ_PINS),
|
722 |
|
|
.C_MEM_TYPE (C_MEM_TYPE),
|
723 |
|
|
.C_MEM_DENSITY (C_MEM_DENSITY),
|
724 |
|
|
.C_MEM_BURST_LEN (C_MEM_BURST_LEN),
|
725 |
|
|
.C_MEM_CAS_LATENCY (C_MEM_CAS_LATENCY),
|
726 |
|
|
.C_MEM_ADDR_WIDTH (C_MEM_ADDR_WIDTH),
|
727 |
|
|
.C_MEM_BANKADDR_WIDTH (C_MEM_BANKADDR_WIDTH),
|
728 |
|
|
.C_MEM_NUM_COL_BITS (C_MEM_NUM_COL_BITS),
|
729 |
|
|
.C_MEM_DDR3_CAS_LATENCY (C_MEM_DDR3_CAS_LATENCY),
|
730 |
|
|
.C_MEM_MOBILE_PA_SR (C_MEM_MOBILE_PA_SR),
|
731 |
|
|
.C_MEM_DDR1_2_ODS (C_MEM_DDR1_2_ODS),
|
732 |
|
|
.C_MEM_DDR3_ODS (C_MEM_DDR3_ODS),
|
733 |
|
|
.C_MEM_DDR2_RTT (C_MEM_DDR2_RTT),
|
734 |
|
|
.C_MEM_DDR3_RTT (C_MEM_DDR3_RTT),
|
735 |
|
|
.C_MEM_MDDR_ODS (C_MEM_MDDR_ODS),
|
736 |
|
|
.C_MEM_DDR2_DIFF_DQS_EN (C_MEM_DDR2_DIFF_DQS_EN),
|
737 |
|
|
.C_MEM_DDR2_3_PA_SR (C_MEM_DDR2_3_PA_SR),
|
738 |
|
|
.C_MEM_DDR3_CAS_WR_LATENCY (C_MEM_DDR3_CAS_WR_LATENCY),
|
739 |
|
|
.C_MEM_DDR3_AUTO_SR (C_MEM_DDR3_AUTO_SR),
|
740 |
|
|
.C_MEM_DDR2_3_HIGH_TEMP_SR (C_MEM_DDR2_3_HIGH_TEMP_SR),
|
741 |
|
|
.C_MEM_DDR3_DYN_WRT_ODT (C_MEM_DDR3_DYN_WRT_ODT),
|
742 |
|
|
.C_MEM_TZQINIT_MAXCNT (C_MEM_TZQINIT_MAXCNT),
|
743 |
|
|
.C_MC_CALIB_BYPASS (C_MC_CALIB_BYPASS),
|
744 |
|
|
.C_MC_CALIBRATION_RA (C_MC_CALIBRATION_RA),
|
745 |
|
|
.C_MC_CALIBRATION_BA (C_MC_CALIBRATION_BA),
|
746 |
|
|
.C_MC_CALIBRATION_CA (C_MC_CALIBRATION_CA),
|
747 |
|
|
.C_CALIB_SOFT_IP (C_CALIB_SOFT_IP),
|
748 |
|
|
.C_SKIP_IN_TERM_CAL (C_SKIP_IN_TERM_CAL),
|
749 |
|
|
.C_SKIP_DYNAMIC_CAL (C_SKIP_DYNAMIC_CAL),
|
750 |
|
|
.C_SKIP_DYN_IN_TERM (C_SKIP_DYN_IN_TERM),
|
751 |
|
|
.LDQSP_TAP_DELAY_VAL (LDQSP_TAP_DELAY_VAL),
|
752 |
|
|
.UDQSP_TAP_DELAY_VAL (UDQSP_TAP_DELAY_VAL),
|
753 |
|
|
.LDQSN_TAP_DELAY_VAL (LDQSN_TAP_DELAY_VAL),
|
754 |
|
|
.UDQSN_TAP_DELAY_VAL (UDQSN_TAP_DELAY_VAL),
|
755 |
|
|
.DQ0_TAP_DELAY_VAL (DQ0_TAP_DELAY_VAL),
|
756 |
|
|
.DQ1_TAP_DELAY_VAL (DQ1_TAP_DELAY_VAL),
|
757 |
|
|
.DQ2_TAP_DELAY_VAL (DQ2_TAP_DELAY_VAL),
|
758 |
|
|
.DQ3_TAP_DELAY_VAL (DQ3_TAP_DELAY_VAL),
|
759 |
|
|
.DQ4_TAP_DELAY_VAL (DQ4_TAP_DELAY_VAL),
|
760 |
|
|
.DQ5_TAP_DELAY_VAL (DQ5_TAP_DELAY_VAL),
|
761 |
|
|
.DQ6_TAP_DELAY_VAL (DQ6_TAP_DELAY_VAL),
|
762 |
|
|
.DQ7_TAP_DELAY_VAL (DQ7_TAP_DELAY_VAL),
|
763 |
|
|
.DQ8_TAP_DELAY_VAL (DQ8_TAP_DELAY_VAL),
|
764 |
|
|
.DQ9_TAP_DELAY_VAL (DQ9_TAP_DELAY_VAL),
|
765 |
|
|
.DQ10_TAP_DELAY_VAL (DQ10_TAP_DELAY_VAL),
|
766 |
|
|
.DQ11_TAP_DELAY_VAL (DQ11_TAP_DELAY_VAL),
|
767 |
|
|
.DQ12_TAP_DELAY_VAL (DQ12_TAP_DELAY_VAL),
|
768 |
|
|
.DQ13_TAP_DELAY_VAL (DQ13_TAP_DELAY_VAL),
|
769 |
|
|
.DQ14_TAP_DELAY_VAL (DQ14_TAP_DELAY_VAL),
|
770 |
|
|
.DQ15_TAP_DELAY_VAL (DQ15_TAP_DELAY_VAL),
|
771 |
|
|
.C_MC_CALIBRATION_CLK_DIV (C_MC_CALIBRATION_CLK_DIV),
|
772 |
|
|
.C_MC_CALIBRATION_MODE (C_MC_CALIBRATION_MODE),
|
773 |
|
|
.C_MC_CALIBRATION_DELAY (C_MC_CALIBRATION_DELAY),
|
774 |
|
|
.C_SIMULATION (C_SIMULATION),
|
775 |
|
|
.C_P0_MASK_SIZE (C_P0_MASK_SIZE),
|
776 |
|
|
.C_P0_DATA_PORT_SIZE (C_P0_DATA_PORT_SIZE),
|
777 |
|
|
.C_P1_MASK_SIZE (C_P1_MASK_SIZE),
|
778 |
|
|
.C_P1_DATA_PORT_SIZE (C_P1_DATA_PORT_SIZE),
|
779 |
|
|
.C_MCB_USE_EXTERNAL_BUFPLL (C_MCB_USE_EXTERNAL_BUFPLL)
|
780 |
|
|
)
|
781 |
|
|
mcb_ui_top_inst
|
782 |
|
|
(
|
783 |
|
|
// Raw Wrapper Signals
|
784 |
|
|
.sysclk_2x (sysclk_2x),
|
785 |
|
|
.sysclk_2x_180 (sysclk_2x_180),
|
786 |
|
|
.pll_ce_0 (pll_ce_0),
|
787 |
|
|
.pll_ce_90 (pll_ce_90),
|
788 |
|
|
.pll_lock (pll_lock),
|
789 |
|
|
.sysclk_2x_bufpll_o (sysclk_2x_bufpll_o),
|
790 |
|
|
.sysclk_2x_180_bufpll_o (sysclk_2x_180_bufpll_o),
|
791 |
|
|
.pll_ce_0_bufpll_o (pll_ce_0_bufpll_o),
|
792 |
|
|
.pll_ce_90_bufpll_o (pll_ce_90_bufpll_o),
|
793 |
|
|
.pll_lock_bufpll_o (pll_lock_bufpll_o),
|
794 |
|
|
.sys_rst (async_rst),
|
795 |
|
|
.p0_arb_en (1'b1),
|
796 |
|
|
.p0_cmd_clk (p0_cmd_clk),
|
797 |
|
|
.p0_cmd_en (p0_cmd_en),
|
798 |
|
|
.p0_cmd_instr (p0_cmd_instr),
|
799 |
|
|
.p0_cmd_bl (p0_cmd_bl),
|
800 |
|
|
.p0_cmd_byte_addr (p0_cmd_byte_addr),
|
801 |
|
|
.p0_cmd_empty (p0_cmd_empty),
|
802 |
|
|
.p0_cmd_full (p0_cmd_full),
|
803 |
|
|
.p0_wr_clk (p0_wr_clk),
|
804 |
|
|
.p0_wr_en (p0_wr_en),
|
805 |
|
|
.p0_wr_mask (p0_wr_mask),
|
806 |
|
|
.p0_wr_data (p0_wr_data),
|
807 |
|
|
.p0_wr_full (p0_wr_full),
|
808 |
|
|
.p0_wr_empty (p0_wr_empty),
|
809 |
|
|
.p0_wr_count (p0_wr_count),
|
810 |
|
|
.p0_wr_underrun (p0_wr_underrun),
|
811 |
|
|
.p0_wr_error (p0_wr_error),
|
812 |
|
|
.p0_rd_clk (p0_rd_clk),
|
813 |
|
|
.p0_rd_en (p0_rd_en),
|
814 |
|
|
.p0_rd_data (p0_rd_data),
|
815 |
|
|
.p0_rd_full (p0_rd_full),
|
816 |
|
|
.p0_rd_empty (p0_rd_empty),
|
817 |
|
|
.p0_rd_count (p0_rd_count),
|
818 |
|
|
.p0_rd_overflow (p0_rd_overflow),
|
819 |
|
|
.p0_rd_error (p0_rd_error),
|
820 |
|
|
.p1_arb_en (1'b1),
|
821 |
|
|
.p1_cmd_clk (p1_cmd_clk),
|
822 |
|
|
.p1_cmd_en (p1_cmd_en),
|
823 |
|
|
.p1_cmd_instr (p1_cmd_instr),
|
824 |
|
|
.p1_cmd_bl (p1_cmd_bl),
|
825 |
|
|
.p1_cmd_byte_addr (p1_cmd_byte_addr),
|
826 |
|
|
.p1_cmd_empty (p1_cmd_empty),
|
827 |
|
|
.p1_cmd_full (p1_cmd_full),
|
828 |
|
|
.p1_wr_clk (p1_wr_clk),
|
829 |
|
|
.p1_wr_en (p1_wr_en),
|
830 |
|
|
.p1_wr_mask (p1_wr_mask),
|
831 |
|
|
.p1_wr_data (p1_wr_data),
|
832 |
|
|
.p1_wr_full (p1_wr_full),
|
833 |
|
|
.p1_wr_empty (p1_wr_empty),
|
834 |
|
|
.p1_wr_count (p1_wr_count),
|
835 |
|
|
.p1_wr_underrun (p1_wr_underrun),
|
836 |
|
|
.p1_wr_error (p1_wr_error),
|
837 |
|
|
.p1_rd_clk (p1_rd_clk),
|
838 |
|
|
.p1_rd_en (p1_rd_en),
|
839 |
|
|
.p1_rd_data (p1_rd_data),
|
840 |
|
|
.p1_rd_full (p1_rd_full),
|
841 |
|
|
.p1_rd_empty (p1_rd_empty),
|
842 |
|
|
.p1_rd_count (p1_rd_count),
|
843 |
|
|
.p1_rd_overflow (p1_rd_overflow),
|
844 |
|
|
.p1_rd_error (p1_rd_error),
|
845 |
|
|
.p2_arb_en (1'b1),
|
846 |
|
|
.p2_cmd_clk (p2_cmd_clk),
|
847 |
|
|
.p2_cmd_en (p2_cmd_en),
|
848 |
|
|
.p2_cmd_instr (p2_cmd_instr),
|
849 |
|
|
.p2_cmd_bl (p2_cmd_bl),
|
850 |
|
|
.p2_cmd_byte_addr (p2_cmd_byte_addr),
|
851 |
|
|
.p2_cmd_empty (p2_cmd_empty),
|
852 |
|
|
.p2_cmd_full (p2_cmd_full),
|
853 |
|
|
.p2_wr_clk (p2_wr_clk),
|
854 |
|
|
.p2_wr_en (p2_wr_en),
|
855 |
|
|
.p2_wr_mask (p2_wr_mask),
|
856 |
|
|
.p2_wr_data (p2_wr_data),
|
857 |
|
|
.p2_wr_full (p2_wr_full),
|
858 |
|
|
.p2_wr_empty (p2_wr_empty),
|
859 |
|
|
.p2_wr_count (p2_wr_count),
|
860 |
|
|
.p2_wr_underrun (p2_wr_underrun),
|
861 |
|
|
.p2_wr_error (p2_wr_error),
|
862 |
|
|
.p2_rd_clk (p2_rd_clk),
|
863 |
|
|
.p2_rd_en (p2_rd_en),
|
864 |
|
|
.p2_rd_data (p2_rd_data),
|
865 |
|
|
.p2_rd_full (p2_rd_full),
|
866 |
|
|
.p2_rd_empty (p2_rd_empty),
|
867 |
|
|
.p2_rd_count (p2_rd_count),
|
868 |
|
|
.p2_rd_overflow (p2_rd_overflow),
|
869 |
|
|
.p2_rd_error (p2_rd_error),
|
870 |
|
|
.p3_arb_en (1'b1),
|
871 |
|
|
.p3_cmd_clk (p3_cmd_clk),
|
872 |
|
|
.p3_cmd_en (p3_cmd_en),
|
873 |
|
|
.p3_cmd_instr (p3_cmd_instr),
|
874 |
|
|
.p3_cmd_bl (p3_cmd_bl),
|
875 |
|
|
.p3_cmd_byte_addr (p3_cmd_byte_addr),
|
876 |
|
|
.p3_cmd_empty (p3_cmd_empty),
|
877 |
|
|
.p3_cmd_full (p3_cmd_full),
|
878 |
|
|
.p3_wr_clk (p3_wr_clk),
|
879 |
|
|
.p3_wr_en (p3_wr_en),
|
880 |
|
|
.p3_wr_mask (p3_wr_mask),
|
881 |
|
|
.p3_wr_data (p3_wr_data),
|
882 |
|
|
.p3_wr_full (p3_wr_full),
|
883 |
|
|
.p3_wr_empty (p3_wr_empty),
|
884 |
|
|
.p3_wr_count (p3_wr_count),
|
885 |
|
|
.p3_wr_underrun (p3_wr_underrun),
|
886 |
|
|
.p3_wr_error (p3_wr_error),
|
887 |
|
|
.p3_rd_clk (p3_rd_clk),
|
888 |
|
|
.p3_rd_en (p3_rd_en),
|
889 |
|
|
.p3_rd_data (p3_rd_data),
|
890 |
|
|
.p3_rd_full (p3_rd_full),
|
891 |
|
|
.p3_rd_empty (p3_rd_empty),
|
892 |
|
|
.p3_rd_count (p3_rd_count),
|
893 |
|
|
.p3_rd_overflow (p3_rd_overflow),
|
894 |
|
|
.p3_rd_error (p3_rd_error),
|
895 |
|
|
.p4_arb_en (1'b1),
|
896 |
|
|
.p4_cmd_clk (p4_cmd_clk),
|
897 |
|
|
.p4_cmd_en (p4_cmd_en),
|
898 |
|
|
.p4_cmd_instr (p4_cmd_instr),
|
899 |
|
|
.p4_cmd_bl (p4_cmd_bl),
|
900 |
|
|
.p4_cmd_byte_addr (p4_cmd_byte_addr),
|
901 |
|
|
.p4_cmd_empty (p4_cmd_empty),
|
902 |
|
|
.p4_cmd_full (p4_cmd_full),
|
903 |
|
|
.p4_wr_clk (p4_wr_clk),
|
904 |
|
|
.p4_wr_en (p4_wr_en),
|
905 |
|
|
.p4_wr_mask (p4_wr_mask),
|
906 |
|
|
.p4_wr_data (p4_wr_data),
|
907 |
|
|
.p4_wr_full (p4_wr_full),
|
908 |
|
|
.p4_wr_empty (p4_wr_empty),
|
909 |
|
|
.p4_wr_count (p4_wr_count),
|
910 |
|
|
.p4_wr_underrun (p4_wr_underrun),
|
911 |
|
|
.p4_wr_error (p4_wr_error),
|
912 |
|
|
.p4_rd_clk (p4_rd_clk),
|
913 |
|
|
.p4_rd_en (p4_rd_en),
|
914 |
|
|
.p4_rd_data (p4_rd_data),
|
915 |
|
|
.p4_rd_full (p4_rd_full),
|
916 |
|
|
.p4_rd_empty (p4_rd_empty),
|
917 |
|
|
.p4_rd_count (p4_rd_count),
|
918 |
|
|
.p4_rd_overflow (p4_rd_overflow),
|
919 |
|
|
.p4_rd_error (p4_rd_error),
|
920 |
|
|
.p5_arb_en (1'b1),
|
921 |
|
|
.p5_cmd_clk (p5_cmd_clk),
|
922 |
|
|
.p5_cmd_en (p5_cmd_en),
|
923 |
|
|
.p5_cmd_instr (p5_cmd_instr),
|
924 |
|
|
.p5_cmd_bl (p5_cmd_bl),
|
925 |
|
|
.p5_cmd_byte_addr (p5_cmd_byte_addr),
|
926 |
|
|
.p5_cmd_empty (p5_cmd_empty),
|
927 |
|
|
.p5_cmd_full (p5_cmd_full),
|
928 |
|
|
.p5_wr_clk (p5_wr_clk),
|
929 |
|
|
.p5_wr_en (p5_wr_en),
|
930 |
|
|
.p5_wr_mask (p5_wr_mask),
|
931 |
|
|
.p5_wr_data (p5_wr_data),
|
932 |
|
|
.p5_wr_full (p5_wr_full),
|
933 |
|
|
.p5_wr_empty (p5_wr_empty),
|
934 |
|
|
.p5_wr_count (p5_wr_count),
|
935 |
|
|
.p5_wr_underrun (p5_wr_underrun),
|
936 |
|
|
.p5_wr_error (p5_wr_error),
|
937 |
|
|
.p5_rd_clk (p5_rd_clk),
|
938 |
|
|
.p5_rd_en (p5_rd_en),
|
939 |
|
|
.p5_rd_data (p5_rd_data),
|
940 |
|
|
.p5_rd_full (p5_rd_full),
|
941 |
|
|
.p5_rd_empty (p5_rd_empty),
|
942 |
|
|
.p5_rd_count (p5_rd_count),
|
943 |
|
|
.p5_rd_overflow (p5_rd_overflow),
|
944 |
|
|
.p5_rd_error (p5_rd_error),
|
945 |
|
|
.mcbx_dram_addr (mcbx_dram_addr),
|
946 |
|
|
.mcbx_dram_ba (mcbx_dram_ba),
|
947 |
|
|
.mcbx_dram_ras_n (mcbx_dram_ras_n),
|
948 |
|
|
.mcbx_dram_cas_n (mcbx_dram_cas_n),
|
949 |
|
|
.mcbx_dram_we_n (mcbx_dram_we_n),
|
950 |
|
|
.mcbx_dram_cke (mcbx_dram_cke),
|
951 |
|
|
.mcbx_dram_clk (mcbx_dram_clk),
|
952 |
|
|
.mcbx_dram_clk_n (mcbx_dram_clk_n),
|
953 |
|
|
.mcbx_dram_dq (mcbx_dram_dq),
|
954 |
|
|
.mcbx_dram_dqs (mcbx_dram_dqs),
|
955 |
|
|
.mcbx_dram_dqs_n (mcbx_dram_dqs_n),
|
956 |
|
|
.mcbx_dram_udqs (mcbx_dram_udqs),
|
957 |
|
|
.mcbx_dram_udqs_n (mcbx_dram_udqs_n),
|
958 |
|
|
.mcbx_dram_udm (mcbx_dram_udm),
|
959 |
|
|
.mcbx_dram_ldm (mcbx_dram_ldm),
|
960 |
|
|
.mcbx_dram_odt (mcbx_dram_odt),
|
961 |
|
|
.mcbx_dram_ddr3_rst (mcbx_dram_ddr3_rst),
|
962 |
|
|
.calib_recal (1'b0),
|
963 |
|
|
.rzq (mcbx_rzq),
|
964 |
|
|
.zio (mcbx_zio),
|
965 |
|
|
.ui_read (1'b0),
|
966 |
|
|
.ui_add (1'b0),
|
967 |
|
|
.ui_cs (1'b0),
|
968 |
|
|
.ui_clk (mcb_drp_clk),
|
969 |
|
|
.ui_sdi (1'b0),
|
970 |
|
|
.ui_addr (5'b0),
|
971 |
|
|
.ui_broadcast (1'b0),
|
972 |
|
|
.ui_drp_update (1'b0),
|
973 |
|
|
.ui_done_cal (1'b1),
|
974 |
|
|
.ui_cmd (1'b0),
|
975 |
|
|
.ui_cmd_in (1'b0),
|
976 |
|
|
.ui_cmd_en (1'b0),
|
977 |
|
|
.ui_dqcount (4'b0),
|
978 |
|
|
.ui_dq_lower_dec (1'b0),
|
979 |
|
|
.ui_dq_lower_inc (1'b0),
|
980 |
|
|
.ui_dq_upper_dec (1'b0),
|
981 |
|
|
.ui_dq_upper_inc (1'b0),
|
982 |
|
|
.ui_udqs_inc (1'b0),
|
983 |
|
|
.ui_udqs_dec (1'b0),
|
984 |
|
|
.ui_ldqs_inc (1'b0),
|
985 |
|
|
.ui_ldqs_dec (1'b0),
|
986 |
|
|
.uo_data (uo_data),
|
987 |
|
|
.uo_data_valid (uo_data_valid),
|
988 |
|
|
.uo_done_cal (calib_done),
|
989 |
|
|
.uo_cmd_ready_in (uo_cmd_ready_in),
|
990 |
|
|
.uo_refrsh_flag (uo_refrsh_flag),
|
991 |
|
|
.uo_cal_start (uo_cal_start),
|
992 |
|
|
.uo_sdo (uo_sdo),
|
993 |
|
|
.status (status),
|
994 |
|
|
.selfrefresh_enter (selfrefresh_enter),
|
995 |
|
|
.selfrefresh_mode (selfrefresh_mode),
|
996 |
|
|
|
997 |
|
|
// AXI Signals
|
998 |
|
|
.s0_axi_aclk (s0_axi_aclk),
|
999 |
|
|
.s0_axi_aresetn (s0_axi_aresetn),
|
1000 |
|
|
.s0_axi_awid (s0_axi_awid),
|
1001 |
|
|
.s0_axi_awaddr (s0_axi_awaddr),
|
1002 |
|
|
.s0_axi_awlen (s0_axi_awlen),
|
1003 |
|
|
.s0_axi_awsize (s0_axi_awsize),
|
1004 |
|
|
.s0_axi_awburst (s0_axi_awburst),
|
1005 |
|
|
.s0_axi_awlock (s0_axi_awlock),
|
1006 |
|
|
.s0_axi_awcache (s0_axi_awcache),
|
1007 |
|
|
.s0_axi_awprot (s0_axi_awprot),
|
1008 |
|
|
.s0_axi_awqos (s0_axi_awqos),
|
1009 |
|
|
.s0_axi_awvalid (s0_axi_awvalid),
|
1010 |
|
|
.s0_axi_awready (s0_axi_awready),
|
1011 |
|
|
.s0_axi_wdata (s0_axi_wdata),
|
1012 |
|
|
.s0_axi_wstrb (s0_axi_wstrb),
|
1013 |
|
|
.s0_axi_wlast (s0_axi_wlast),
|
1014 |
|
|
.s0_axi_wvalid (s0_axi_wvalid),
|
1015 |
|
|
.s0_axi_wready (s0_axi_wready),
|
1016 |
|
|
.s0_axi_bid (s0_axi_bid),
|
1017 |
|
|
.s0_axi_bresp (s0_axi_bresp),
|
1018 |
|
|
.s0_axi_bvalid (s0_axi_bvalid),
|
1019 |
|
|
.s0_axi_bready (s0_axi_bready),
|
1020 |
|
|
.s0_axi_arid (s0_axi_arid),
|
1021 |
|
|
.s0_axi_araddr (s0_axi_araddr),
|
1022 |
|
|
.s0_axi_arlen (s0_axi_arlen),
|
1023 |
|
|
.s0_axi_arsize (s0_axi_arsize),
|
1024 |
|
|
.s0_axi_arburst (s0_axi_arburst),
|
1025 |
|
|
.s0_axi_arlock (s0_axi_arlock),
|
1026 |
|
|
.s0_axi_arcache (s0_axi_arcache),
|
1027 |
|
|
.s0_axi_arprot (s0_axi_arprot),
|
1028 |
|
|
.s0_axi_arqos (s0_axi_arqos),
|
1029 |
|
|
.s0_axi_arvalid (s0_axi_arvalid),
|
1030 |
|
|
.s0_axi_arready (s0_axi_arready),
|
1031 |
|
|
.s0_axi_rid (s0_axi_rid),
|
1032 |
|
|
.s0_axi_rdata (s0_axi_rdata),
|
1033 |
|
|
.s0_axi_rresp (s0_axi_rresp),
|
1034 |
|
|
.s0_axi_rlast (s0_axi_rlast),
|
1035 |
|
|
.s0_axi_rvalid (s0_axi_rvalid),
|
1036 |
|
|
.s0_axi_rready (s0_axi_rready),
|
1037 |
|
|
|
1038 |
|
|
.s1_axi_aclk (s1_axi_aclk),
|
1039 |
|
|
.s1_axi_aresetn (s1_axi_aresetn),
|
1040 |
|
|
.s1_axi_awid (s1_axi_awid),
|
1041 |
|
|
.s1_axi_awaddr (s1_axi_awaddr),
|
1042 |
|
|
.s1_axi_awlen (s1_axi_awlen),
|
1043 |
|
|
.s1_axi_awsize (s1_axi_awsize),
|
1044 |
|
|
.s1_axi_awburst (s1_axi_awburst),
|
1045 |
|
|
.s1_axi_awlock (s1_axi_awlock),
|
1046 |
|
|
.s1_axi_awcache (s1_axi_awcache),
|
1047 |
|
|
.s1_axi_awprot (s1_axi_awprot),
|
1048 |
|
|
.s1_axi_awqos (s1_axi_awqos),
|
1049 |
|
|
.s1_axi_awvalid (s1_axi_awvalid),
|
1050 |
|
|
.s1_axi_awready (s1_axi_awready),
|
1051 |
|
|
.s1_axi_wdata (s1_axi_wdata),
|
1052 |
|
|
.s1_axi_wstrb (s1_axi_wstrb),
|
1053 |
|
|
.s1_axi_wlast (s1_axi_wlast),
|
1054 |
|
|
.s1_axi_wvalid (s1_axi_wvalid),
|
1055 |
|
|
.s1_axi_wready (s1_axi_wready),
|
1056 |
|
|
.s1_axi_bid (s1_axi_bid),
|
1057 |
|
|
.s1_axi_bresp (s1_axi_bresp),
|
1058 |
|
|
.s1_axi_bvalid (s1_axi_bvalid),
|
1059 |
|
|
.s1_axi_bready (s1_axi_bready),
|
1060 |
|
|
.s1_axi_arid (s1_axi_arid),
|
1061 |
|
|
.s1_axi_araddr (s1_axi_araddr),
|
1062 |
|
|
.s1_axi_arlen (s1_axi_arlen),
|
1063 |
|
|
.s1_axi_arsize (s1_axi_arsize),
|
1064 |
|
|
.s1_axi_arburst (s1_axi_arburst),
|
1065 |
|
|
.s1_axi_arlock (s1_axi_arlock),
|
1066 |
|
|
.s1_axi_arcache (s1_axi_arcache),
|
1067 |
|
|
.s1_axi_arprot (s1_axi_arprot),
|
1068 |
|
|
.s1_axi_arqos (s1_axi_arqos),
|
1069 |
|
|
.s1_axi_arvalid (s1_axi_arvalid),
|
1070 |
|
|
.s1_axi_arready (s1_axi_arready),
|
1071 |
|
|
.s1_axi_rid (s1_axi_rid),
|
1072 |
|
|
.s1_axi_rdata (s1_axi_rdata),
|
1073 |
|
|
.s1_axi_rresp (s1_axi_rresp),
|
1074 |
|
|
.s1_axi_rlast (s1_axi_rlast),
|
1075 |
|
|
.s1_axi_rvalid (s1_axi_rvalid),
|
1076 |
|
|
.s1_axi_rready (s1_axi_rready),
|
1077 |
|
|
|
1078 |
|
|
.s2_axi_aclk (s2_axi_aclk),
|
1079 |
|
|
.s2_axi_aresetn (s2_axi_aresetn),
|
1080 |
|
|
.s2_axi_awid (s2_axi_awid),
|
1081 |
|
|
.s2_axi_awaddr (s2_axi_awaddr),
|
1082 |
|
|
.s2_axi_awlen (s2_axi_awlen),
|
1083 |
|
|
.s2_axi_awsize (s2_axi_awsize),
|
1084 |
|
|
.s2_axi_awburst (s2_axi_awburst),
|
1085 |
|
|
.s2_axi_awlock (s2_axi_awlock),
|
1086 |
|
|
.s2_axi_awcache (s2_axi_awcache),
|
1087 |
|
|
.s2_axi_awprot (s2_axi_awprot),
|
1088 |
|
|
.s2_axi_awqos (s2_axi_awqos),
|
1089 |
|
|
.s2_axi_awvalid (s2_axi_awvalid),
|
1090 |
|
|
.s2_axi_awready (s2_axi_awready),
|
1091 |
|
|
.s2_axi_wdata (s2_axi_wdata),
|
1092 |
|
|
.s2_axi_wstrb (s2_axi_wstrb),
|
1093 |
|
|
.s2_axi_wlast (s2_axi_wlast),
|
1094 |
|
|
.s2_axi_wvalid (s2_axi_wvalid),
|
1095 |
|
|
.s2_axi_wready (s2_axi_wready),
|
1096 |
|
|
.s2_axi_bid (s2_axi_bid),
|
1097 |
|
|
.s2_axi_bresp (s2_axi_bresp),
|
1098 |
|
|
.s2_axi_bvalid (s2_axi_bvalid),
|
1099 |
|
|
.s2_axi_bready (s2_axi_bready),
|
1100 |
|
|
.s2_axi_arid (s2_axi_arid),
|
1101 |
|
|
.s2_axi_araddr (s2_axi_araddr),
|
1102 |
|
|
.s2_axi_arlen (s2_axi_arlen),
|
1103 |
|
|
.s2_axi_arsize (s2_axi_arsize),
|
1104 |
|
|
.s2_axi_arburst (s2_axi_arburst),
|
1105 |
|
|
.s2_axi_arlock (s2_axi_arlock),
|
1106 |
|
|
.s2_axi_arcache (s2_axi_arcache),
|
1107 |
|
|
.s2_axi_arprot (s2_axi_arprot),
|
1108 |
|
|
.s2_axi_arqos (s2_axi_arqos),
|
1109 |
|
|
.s2_axi_arvalid (s2_axi_arvalid),
|
1110 |
|
|
.s2_axi_arready (s2_axi_arready),
|
1111 |
|
|
.s2_axi_rid (s2_axi_rid),
|
1112 |
|
|
.s2_axi_rdata (s2_axi_rdata),
|
1113 |
|
|
.s2_axi_rresp (s2_axi_rresp),
|
1114 |
|
|
.s2_axi_rlast (s2_axi_rlast),
|
1115 |
|
|
.s2_axi_rvalid (s2_axi_rvalid),
|
1116 |
|
|
.s2_axi_rready (s2_axi_rready),
|
1117 |
|
|
|
1118 |
|
|
.s3_axi_aclk (s3_axi_aclk),
|
1119 |
|
|
.s3_axi_aresetn (s3_axi_aresetn),
|
1120 |
|
|
.s3_axi_awid (s3_axi_awid),
|
1121 |
|
|
.s3_axi_awaddr (s3_axi_awaddr),
|
1122 |
|
|
.s3_axi_awlen (s3_axi_awlen),
|
1123 |
|
|
.s3_axi_awsize (s3_axi_awsize),
|
1124 |
|
|
.s3_axi_awburst (s3_axi_awburst),
|
1125 |
|
|
.s3_axi_awlock (s3_axi_awlock),
|
1126 |
|
|
.s3_axi_awcache (s3_axi_awcache),
|
1127 |
|
|
.s3_axi_awprot (s3_axi_awprot),
|
1128 |
|
|
.s3_axi_awqos (s3_axi_awqos),
|
1129 |
|
|
.s3_axi_awvalid (s3_axi_awvalid),
|
1130 |
|
|
.s3_axi_awready (s3_axi_awready),
|
1131 |
|
|
.s3_axi_wdata (s3_axi_wdata),
|
1132 |
|
|
.s3_axi_wstrb (s3_axi_wstrb),
|
1133 |
|
|
.s3_axi_wlast (s3_axi_wlast),
|
1134 |
|
|
.s3_axi_wvalid (s3_axi_wvalid),
|
1135 |
|
|
.s3_axi_wready (s3_axi_wready),
|
1136 |
|
|
.s3_axi_bid (s3_axi_bid),
|
1137 |
|
|
.s3_axi_bresp (s3_axi_bresp),
|
1138 |
|
|
.s3_axi_bvalid (s3_axi_bvalid),
|
1139 |
|
|
.s3_axi_bready (s3_axi_bready),
|
1140 |
|
|
.s3_axi_arid (s3_axi_arid),
|
1141 |
|
|
.s3_axi_araddr (s3_axi_araddr),
|
1142 |
|
|
.s3_axi_arlen (s3_axi_arlen),
|
1143 |
|
|
.s3_axi_arsize (s3_axi_arsize),
|
1144 |
|
|
.s3_axi_arburst (s3_axi_arburst),
|
1145 |
|
|
.s3_axi_arlock (s3_axi_arlock),
|
1146 |
|
|
.s3_axi_arcache (s3_axi_arcache),
|
1147 |
|
|
.s3_axi_arprot (s3_axi_arprot),
|
1148 |
|
|
.s3_axi_arqos (s3_axi_arqos),
|
1149 |
|
|
.s3_axi_arvalid (s3_axi_arvalid),
|
1150 |
|
|
.s3_axi_arready (s3_axi_arready),
|
1151 |
|
|
.s3_axi_rid (s3_axi_rid),
|
1152 |
|
|
.s3_axi_rdata (s3_axi_rdata),
|
1153 |
|
|
.s3_axi_rresp (s3_axi_rresp),
|
1154 |
|
|
.s3_axi_rlast (s3_axi_rlast),
|
1155 |
|
|
.s3_axi_rvalid (s3_axi_rvalid),
|
1156 |
|
|
.s3_axi_rready (s3_axi_rready),
|
1157 |
|
|
|
1158 |
|
|
.s4_axi_aclk (s4_axi_aclk),
|
1159 |
|
|
.s4_axi_aresetn (s4_axi_aresetn),
|
1160 |
|
|
.s4_axi_awid (s4_axi_awid),
|
1161 |
|
|
.s4_axi_awaddr (s4_axi_awaddr),
|
1162 |
|
|
.s4_axi_awlen (s4_axi_awlen),
|
1163 |
|
|
.s4_axi_awsize (s4_axi_awsize),
|
1164 |
|
|
.s4_axi_awburst (s4_axi_awburst),
|
1165 |
|
|
.s4_axi_awlock (s4_axi_awlock),
|
1166 |
|
|
.s4_axi_awcache (s4_axi_awcache),
|
1167 |
|
|
.s4_axi_awprot (s4_axi_awprot),
|
1168 |
|
|
.s4_axi_awqos (s4_axi_awqos),
|
1169 |
|
|
.s4_axi_awvalid (s4_axi_awvalid),
|
1170 |
|
|
.s4_axi_awready (s4_axi_awready),
|
1171 |
|
|
.s4_axi_wdata (s4_axi_wdata),
|
1172 |
|
|
.s4_axi_wstrb (s4_axi_wstrb),
|
1173 |
|
|
.s4_axi_wlast (s4_axi_wlast),
|
1174 |
|
|
.s4_axi_wvalid (s4_axi_wvalid),
|
1175 |
|
|
.s4_axi_wready (s4_axi_wready),
|
1176 |
|
|
.s4_axi_bid (s4_axi_bid),
|
1177 |
|
|
.s4_axi_bresp (s4_axi_bresp),
|
1178 |
|
|
.s4_axi_bvalid (s4_axi_bvalid),
|
1179 |
|
|
.s4_axi_bready (s4_axi_bready),
|
1180 |
|
|
.s4_axi_arid (s4_axi_arid),
|
1181 |
|
|
.s4_axi_araddr (s4_axi_araddr),
|
1182 |
|
|
.s4_axi_arlen (s4_axi_arlen),
|
1183 |
|
|
.s4_axi_arsize (s4_axi_arsize),
|
1184 |
|
|
.s4_axi_arburst (s4_axi_arburst),
|
1185 |
|
|
.s4_axi_arlock (s4_axi_arlock),
|
1186 |
|
|
.s4_axi_arcache (s4_axi_arcache),
|
1187 |
|
|
.s4_axi_arprot (s4_axi_arprot),
|
1188 |
|
|
.s4_axi_arqos (s4_axi_arqos),
|
1189 |
|
|
.s4_axi_arvalid (s4_axi_arvalid),
|
1190 |
|
|
.s4_axi_arready (s4_axi_arready),
|
1191 |
|
|
.s4_axi_rid (s4_axi_rid),
|
1192 |
|
|
.s4_axi_rdata (s4_axi_rdata),
|
1193 |
|
|
.s4_axi_rresp (s4_axi_rresp),
|
1194 |
|
|
.s4_axi_rlast (s4_axi_rlast),
|
1195 |
|
|
.s4_axi_rvalid (s4_axi_rvalid),
|
1196 |
|
|
.s4_axi_rready (s4_axi_rready),
|
1197 |
|
|
|
1198 |
|
|
.s5_axi_aclk (s5_axi_aclk),
|
1199 |
|
|
.s5_axi_aresetn (s5_axi_aresetn),
|
1200 |
|
|
.s5_axi_awid (s5_axi_awid),
|
1201 |
|
|
.s5_axi_awaddr (s5_axi_awaddr),
|
1202 |
|
|
.s5_axi_awlen (s5_axi_awlen),
|
1203 |
|
|
.s5_axi_awsize (s5_axi_awsize),
|
1204 |
|
|
.s5_axi_awburst (s5_axi_awburst),
|
1205 |
|
|
.s5_axi_awlock (s5_axi_awlock),
|
1206 |
|
|
.s5_axi_awcache (s5_axi_awcache),
|
1207 |
|
|
.s5_axi_awprot (s5_axi_awprot),
|
1208 |
|
|
.s5_axi_awqos (s5_axi_awqos),
|
1209 |
|
|
.s5_axi_awvalid (s5_axi_awvalid),
|
1210 |
|
|
.s5_axi_awready (s5_axi_awready),
|
1211 |
|
|
.s5_axi_wdata (s5_axi_wdata),
|
1212 |
|
|
.s5_axi_wstrb (s5_axi_wstrb),
|
1213 |
|
|
.s5_axi_wlast (s5_axi_wlast),
|
1214 |
|
|
.s5_axi_wvalid (s5_axi_wvalid),
|
1215 |
|
|
.s5_axi_wready (s5_axi_wready),
|
1216 |
|
|
.s5_axi_bid (s5_axi_bid),
|
1217 |
|
|
.s5_axi_bresp (s5_axi_bresp),
|
1218 |
|
|
.s5_axi_bvalid (s5_axi_bvalid),
|
1219 |
|
|
.s5_axi_bready (s5_axi_bready),
|
1220 |
|
|
.s5_axi_arid (s5_axi_arid),
|
1221 |
|
|
.s5_axi_araddr (s5_axi_araddr),
|
1222 |
|
|
.s5_axi_arlen (s5_axi_arlen),
|
1223 |
|
|
.s5_axi_arsize (s5_axi_arsize),
|
1224 |
|
|
.s5_axi_arburst (s5_axi_arburst),
|
1225 |
|
|
.s5_axi_arlock (s5_axi_arlock),
|
1226 |
|
|
.s5_axi_arcache (s5_axi_arcache),
|
1227 |
|
|
.s5_axi_arprot (s5_axi_arprot),
|
1228 |
|
|
.s5_axi_arqos (s5_axi_arqos),
|
1229 |
|
|
.s5_axi_arvalid (s5_axi_arvalid),
|
1230 |
|
|
.s5_axi_arready (s5_axi_arready),
|
1231 |
|
|
.s5_axi_rid (s5_axi_rid),
|
1232 |
|
|
.s5_axi_rdata (s5_axi_rdata),
|
1233 |
|
|
.s5_axi_rresp (s5_axi_rresp),
|
1234 |
|
|
.s5_axi_rlast (s5_axi_rlast),
|
1235 |
|
|
.s5_axi_rvalid (s5_axi_rvalid),
|
1236 |
|
|
.s5_axi_rready (s5_axi_rready)
|
1237 |
|
|
);
|
1238 |
|
|
|
1239 |
|
|
endmodule
|