Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: dmu_dsn.v | |
4 | // Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved | |
5 | // 4150 Network Circle, Santa Clara, California 95054, U.S.A. | |
6 | // | |
7 | // * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
8 | // | |
9 | // This program is free software; you can redistribute it and/or modify | |
10 | // it under the terms of the GNU General Public License as published by | |
11 | // the Free Software Foundation; version 2 of the License. | |
12 | // | |
13 | // This program is distributed in the hope that it will be useful, | |
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | // GNU General Public License for more details. | |
17 | // | |
18 | // You should have received a copy of the GNU General Public License | |
19 | // along with this program; if not, write to the Free Software | |
20 | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
21 | // | |
22 | // For the avoidance of doubt, and except that if any non-GPL license | |
23 | // choice is available it will apply instead, Sun elects to use only | |
24 | // the General Public License version 2 (GPLv2) at this time for any | |
25 | // software where a choice of GPL license versions is made | |
26 | // available with the language indicating that GPLv2 or any later version | |
27 | // may be used, or where a choice of which version of the GPL is applied is | |
28 | // otherwise unspecified. | |
29 | // | |
30 | // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, | |
31 | // CA 95054 USA or visit www.sun.com if you need additional information or | |
32 | // have any questions. | |
33 | // | |
34 | // ========== Copyright Header End ============================================ | |
35 | module dmu_dsn ( | |
36 | // clocks, scan | |
37 | l1clk, | |
38 | rst_l, | |
39 | ||
40 | // upstream from DMU TO SIU | |
41 | dmu_sii_hdr_vld, | |
42 | dmu_sii_reqbypass, | |
43 | dmu_sii_datareq, | |
44 | dmu_sii_datareq16, | |
45 | dmu_sii_data, | |
46 | dmu_sii_parity, | |
47 | dmu_sii_be_parity, | |
48 | dmu_sii_be, | |
49 | ||
50 | // downstream from SIU TO DMU | |
51 | sio_dmu_hdr_vld, | |
52 | ||
53 | sii_dmu_wrack_tag, | |
54 | sii_dmu_wrack_par, | |
55 | sii_dmu_wrack_vld, | |
56 | sio_dmu_data, | |
57 | sio_dmu_parity, | |
58 | ||
59 | // ========== NCU CSR ========== | |
60 | // downstream | |
61 | dmu_ncu_stall, | |
62 | ncu_dmu_vld, | |
63 | ncu_dmu_data, | |
64 | // upstream | |
65 | ncu_dmu_stall, | |
66 | dmu_ncu_vld, | |
67 | dmu_ncu_data, | |
68 | // ========== NCU CSR ========== | |
69 | ||
70 | // ========== DMU RING ========== | |
71 | // PCI-ex CSR ring | |
72 | j2d_csr_ring_out, | |
73 | d2j_csr_ring_in, | |
74 | ||
75 | // ========== DMU RING ========== | |
76 | ||
77 | ||
78 | // ========== DMU PIO ========== | |
79 | // downstream | |
80 | ncu_dmu_pio_hdr_vld, | |
81 | ncu_dmu_mmu_addr_vld, | |
82 | ncu_dmu_pio_data, | |
83 | ncu_dmu_d_pei, // n2 RAS | |
84 | ncu_dmu_siicr_pei, // n2 RAS | |
85 | ncu_dmu_ctag_uei, // n2 RAS | |
86 | ncu_dmu_ctag_cei, // n2 RAS | |
87 | ncu_dmu_ncucr_pei, // n2 RAS | |
88 | ncu_dmu_iei, // n2 RAS | |
89 | dmu_ncu_wrack_vld, | |
90 | dmu_ncu_wrack_tag, | |
91 | dmu_ncu_wrack_par, | |
92 | dmu_ncu_d_pe, // n2 RAS | |
93 | dmu_ncu_siicr_pe, // n2 RAS | |
94 | dmu_ncu_ctag_ue, // n2 RAS | |
95 | dmu_ncu_ctag_ce, // n2 RAS | |
96 | dmu_ncu_ncucr_pe, // n2 RAS | |
97 | dmu_ncu_ie, // n2 RAS | |
98 | // ========== DMU PIO ========== | |
99 | ||
100 | // ========== DMU Mondo ========== | |
101 | ncu_dmu_mondo_ack, | |
102 | ncu_dmu_mondo_nack, | |
103 | ncu_dmu_mondo_id, | |
104 | ncu_dmu_mondo_id_par, | |
105 | // ========== DMU Mondo ========== | |
106 | ||
107 | // ========== DMU/DSN command port ========== | |
108 | d2j_cmd, | |
109 | d2j_addr, | |
110 | d2j_ctag, | |
111 | d2j_cmd_vld, | |
112 | // ========== DMU/DSN command port========== | |
113 | ||
114 | // ========== DMU/DSN data port ========== | |
115 | d2j_data, | |
116 | d2j_bmsk, | |
117 | d2j_data_par, | |
118 | d2j_data_vld, | |
119 | // ========== DMU/DSN data port========== | |
120 | ||
121 | // ========== CTM DMA Wrack Port ========== | |
122 | j2d_d_wrack_tag, | |
123 | j2d_d_wrack_vld, | |
124 | // ========== CTM DMA Wrack Port========== | |
125 | ||
126 | // ========== CTM PIO Wrack Port ========== | |
127 | d2j_p_wrack_tag, | |
128 | d2j_p_wrack_vld, | |
129 | // ========== CTM PIO Wrack Port========== | |
130 | ||
131 | // ========== CRM Command Completion Port ========== | |
132 | j2d_di_cmd, | |
133 | j2d_di_ctag, | |
134 | j2d_di_cmd_vld, | |
135 | // ========== CRM Command Completion Port========== | |
136 | ||
137 | // ========== CRM Command Request Port ========== | |
138 | j2d_p_cmd, | |
139 | j2d_p_addr, | |
140 | j2d_p_bmsk, | |
141 | j2d_p_ctag, | |
142 | j2d_p_cmd_vld, | |
143 | // ========== CRM Command Request Port========== | |
144 | ||
145 | // ========== CRM Data Completion Port ========== | |
146 | j2d_d_data, | |
147 | j2d_d_data_par, | |
148 | j2d_d_data_err, | |
149 | j2d_d_data_vld, | |
150 | // ========== CRM Data Completion Port========== | |
151 | ||
152 | // ========== CRM Data Request Port ========== | |
153 | j2d_p_data, | |
154 | j2d_p_data_par, | |
155 | j2d_p_data_vld, | |
156 | // ========== CRM Data Request Port========== | |
157 | ||
158 | // ========== DMU MMU Invalidate Port ========== | |
159 | j2d_mmu_addr_vld, | |
160 | j2d_mmu_addr, | |
161 | // ========== DMU/DSN MMU Invalidate Port========== | |
162 | ||
163 | // ========== DSN MMU NCU force parity error in ram ========== | |
164 | dsn_dmc_iei, | |
165 | // ========== DSN MMU NCU force parity error in ram ========== | |
166 | ||
167 | // ========== DSN CRU debug bus to dbg.sv ========== | |
168 | cr2ds_dbg_sel_a, | |
169 | cr2ds_dbg_sel_b, | |
170 | ds2cr_dbg_a, | |
171 | ds2cr_dbg_b, | |
172 | // ========== DSN CRU debug bus to dbg.sv ========== | |
173 | ||
174 | // ========== DSN stall to/from dbg.sv ========== | |
175 | dbg1_dmu_stall, | |
176 | dbg1_dmu_resume, | |
177 | dmu_dbg1_stall_ack, | |
178 | ds2cl_stall | |
179 | // ========== DSN stall to/from dbg.sv ========== | |
180 | ); | |
181 | ||
182 | ||
183 | ||
184 | ||
185 | // clocks, scan | |
186 | input l1clk; // PINDEF:TOP io clock | |
187 | input rst_l; // PINDEF:TOP | |
188 | ||
189 | ||
190 | // upstream from DMU TO SIU | |
191 | output dmu_sii_hdr_vld; // PINDEF:TOP DMU requesting to send packet to SIU | |
192 | output dmu_sii_reqbypass; // PINDEF:TOP DMU requesting to send packet to bypass queue of SIU | |
193 | output dmu_sii_datareq; // PINDEF:TOP DMU requesting to send packet w/data to SIU | |
194 | output dmu_sii_datareq16; // PINDEF:TOP DMU requesting to send packet w/16B only | |
195 | output [127:0] dmu_sii_data; // PINDEF:TOP Packet from DMU to SIU | |
196 | output [7:0] dmu_sii_parity; // PINDEF:TOP Packet parity from DMU to SIU | |
197 | output dmu_sii_be_parity; // PINDEF:TOP byte enable parity from DMU to SIU | |
198 | output [15:0] dmu_sii_be; // PINDEF:TOP Packet byte enables from DMU to SIU | |
199 | ||
200 | // downstream from SIU TO DMU | |
201 | input sio_dmu_hdr_vld; // PINDEF:TOP SIU requesting to send DMA rd cpl to DMU | |
202 | input [3:0] sii_dmu_wrack_tag; // PINDEF:TOP credit value returned to DMU for all DMA writes/int. | |
203 | input sii_dmu_wrack_par; // PINDEF:TOP odd parity for sii_dmu_wrack_tag[3:0] | |
204 | input sii_dmu_wrack_vld; // PINDEF:TOP asserted by SII to indicate a DMA write credit is returned | |
205 | input [127:0] sio_dmu_data; // PINDEF:TOP Packet from SIU to DMU | |
206 | input [7:0] sio_dmu_parity; // PINDEF:TOP Packet parity from SIU to DMU | |
207 | ||
208 | ||
209 | ||
210 | ||
211 | // ========== NCU CSR ========== | |
212 | // downstream | |
213 | output dmu_ncu_stall; // PINDEF:TOP DMUCSR back pressure to NCU. | |
214 | input ncu_dmu_vld; // PINDEF:TOP NCU to DMU CSR data valid. | |
215 | input [31:0] ncu_dmu_data; // PINDEF:TOP NCU to DMU CSR data bus. | |
216 | // upstream | |
217 | input ncu_dmu_stall; // PINDEF:TOP NCU back pressure to DMU. | |
218 | output dmu_ncu_vld; // PINDEF:TOP DMU to NCU CSR data valid. | |
219 | output [31:0] dmu_ncu_data; // PINDEF:TOP DMU to NCU CSR data bus. | |
220 | // ========== NCU CSR ========== | |
221 | ||
222 | // ========== DMU CSR ========== | |
223 | // PCI-ex ring | |
224 | output [31:0] j2d_csr_ring_out; // csr ring out to PCI-ex(DMU/PEU) | |
225 | input [31:0] d2j_csr_ring_in; // csr ring in from PCI-ex(DMU/PEU) | |
226 | ||
227 | // ========== DMU CSR ========== | |
228 | ||
229 | ||
230 | // ========== DMU PIO ========== | |
231 | // downstream | |
232 | input ncu_dmu_pio_hdr_vld; // PINDEF:TOP NCU to DSN pio_data header is valid | |
233 | input ncu_dmu_mmu_addr_vld; // PINDEF:TOP NCU to DMU pio_data mmu invalidate vector is valid | |
234 | input [63:0] ncu_dmu_pio_data; // PINDEF:TOP NCU to DMU pio_data bus. | |
235 | input ncu_dmu_d_pei; // n2 RAS | |
236 | input ncu_dmu_siicr_pei; // n2 RAS | |
237 | input ncu_dmu_ctag_uei; // n2 RAS | |
238 | input ncu_dmu_ctag_cei; // n2 RAS | |
239 | input ncu_dmu_ncucr_pei; // n2 RAS | |
240 | input ncu_dmu_iei; // n2 RAS | |
241 | output dmu_ncu_wrack_vld; // PINDEF:TOP DMU to NCU release credit is valid | |
242 | output [3:0] dmu_ncu_wrack_tag; // PINDEF:TOP DMU to NCU release credit value | |
243 | output dmu_ncu_wrack_par; // PINDEF:TOP parity on dmu_ncu_wrack_tag[3:0] | |
244 | output dmu_ncu_d_pe; // n2 RAS | |
245 | output dmu_ncu_siicr_pe; // n2 RAS | |
246 | output dmu_ncu_ctag_ue; // n2 RAS | |
247 | output dmu_ncu_ctag_ce; // n2 RAS | |
248 | output dmu_ncu_ncucr_pe; // n2 RAS | |
249 | output dmu_ncu_ie; // n2 RAS | |
250 | // ========== DMU PIO ========== | |
251 | ||
252 | // ========== DMU Mondo ========== | |
253 | input ncu_dmu_mondo_ack; // PINDEF:TOP Mondo Interrupt ack | |
254 | input ncu_dmu_mondo_nack; // PINDEF:TOP Mondo Interrupt nack | |
255 | input [5:0] ncu_dmu_mondo_id; // PINDEF:TOP Mondo Interrupt ID | |
256 | input ncu_dmu_mondo_id_par; // PINDEF:TOP odd parity on ncu_dmu_mondo_id | |
257 | // ========== DMU Mondo ========== | |
258 | ||
259 | // ========== DMU/DSN command port ========== | |
260 | input [3:0] d2j_cmd; // PINDEF:BOTTOM | |
261 | input [36:0] d2j_addr; // PINDEF:BOTTOM | |
262 | input [15:0] d2j_ctag; // PINDEF:BOTTOM | |
263 | input d2j_cmd_vld; // PINDEF:BOTTOM | |
264 | // ========== DMU/DSN command port========== | |
265 | ||
266 | // ========== DMU/DSN data port ========== | |
267 | input [127:0] d2j_data; // PINDEF:BOTTOM | |
268 | input [15:0] d2j_bmsk; // PINDEF:BOTTOM | |
269 | input [4:0] d2j_data_par; // PINDEF:BOTTOM | |
270 | input d2j_data_vld; // PINDEF:BOTTOM | |
271 | // ========== DMU/DSN data port========== | |
272 | ||
273 | // ========== CTM DMA Wrack Port ========== | |
274 | output [3:0] j2d_d_wrack_tag; // PINDEF:BOTTOM | |
275 | output j2d_d_wrack_vld; // PINDEF:BOTTOM | |
276 | // ========== CTM DMA Wrack Port========== | |
277 | ||
278 | // ========== CTM PIO Wrack Port ========== | |
279 | input [3:0] d2j_p_wrack_tag; // PINDEF:BOTTOM | |
280 | input d2j_p_wrack_vld; // PINDEF:BOTTOM | |
281 | // ========== CTM PIO Wrack Port========== | |
282 | ||
283 | // ========== CRM Command Completion Port ========== | |
284 | output [1:0] j2d_di_cmd; // PINDEF:BOTTOM | |
285 | output [15:0] j2d_di_ctag; // PINDEF:BOTTOM | |
286 | output j2d_di_cmd_vld; // PINDEF:BOTTOM | |
287 | // ========== CRM Command Completion Port========== | |
288 | ||
289 | // ========== CRM Command Request Port ========== | |
290 | output [3:0] j2d_p_cmd; // PINDEF:BOTTOM | |
291 | output [35:0] j2d_p_addr; // PINDEF:BOTTOM | |
292 | output [15:0] j2d_p_bmsk; // PINDEF:BOTTOM | |
293 | output [10:0] j2d_p_ctag; // PINDEF:BOTTOM | |
294 | output j2d_p_cmd_vld; // PINDEF:BOTTOM | |
295 | // ========== CRM Command Request Port========== | |
296 | ||
297 | // ========== CRM Data Completion Port ========== | |
298 | output [127:0] j2d_d_data; // PINDEF:BOTTOM | |
299 | output [3:0] j2d_d_data_par; // PINDEF:BOTTOM | |
300 | output j2d_d_data_err; // PINDEF:BOTTOM | |
301 | output j2d_d_data_vld; // PINDEF:BOTTOM | |
302 | // ========== CRM Data Completion Port========== | |
303 | ||
304 | // ========== CRM Data Request Port ========== | |
305 | output [127:0] j2d_p_data; // PINDEF:BOTTOM | |
306 | output [3:0] j2d_p_data_par; // PINDEF:BOTTOM | |
307 | output j2d_p_data_vld; // PINDEF:BOTTOM | |
308 | // ========== CRM Data Request Port========== | |
309 | ||
310 | // ========== DMU/DSN MMU Invalidate Port ========== | |
311 | output j2d_mmu_addr_vld; // PINDEF:BOTTOM | |
312 | output [42:6] j2d_mmu_addr; // PINDEF:BOTTOM | |
313 | // ========== DMU/DSN MMU Invalidate Port========== | |
314 | ||
315 | // ========== DSN MMU NCU force parity error in ram ========== | |
316 | output dsn_dmc_iei; | |
317 | // ========== DSN MMU NCU force parity error in ram ========== | |
318 | ||
319 | // ========== DSN CRU debug bus ========== | |
320 | input [`FIRE_DLC_DEBUG_SEL_WDTH-1:0] cr2ds_dbg_sel_a; | |
321 | input [`FIRE_DLC_DEBUG_SEL_WDTH-1:0] cr2ds_dbg_sel_b; | |
322 | output [`FIRE_DEBUG_WDTH-1:0] ds2cr_dbg_a; | |
323 | output [`FIRE_DEBUG_WDTH-1:0] ds2cr_dbg_b; | |
324 | // ========== DSN CRU debug bus ========== | |
325 | ||
326 | // ========== DSN dbg stall ========== | |
327 | input dbg1_dmu_stall; | |
328 | input dbg1_dmu_resume; | |
329 | output dmu_dbg1_stall_ack; | |
330 | output ds2cl_stall; | |
331 | // ========== DSN dbg srall ========== | |
332 | ||
333 | //------------------------------------------------------------------------ | |
334 | // dmu_dsn_ccc_fsm Wires | |
335 | //------------------------------------------------------------------------ | |
336 | ||
337 | wire fsm2arb_done,rd_ack_vld,rd_nack_vld,fsm2pkt_valid; | |
338 | ||
339 | //------------------------------------------------------------------------ | |
340 | // dmu_dsn_ccc_pkt Wires | |
341 | //------------------------------------------------------------------------ | |
342 | ||
343 | wire [31:0] j2d_csr_ring_out; | |
344 | ||
345 | //------------------------------------------------------------------------ | |
346 | // dmu_dsn_ccc_dep Wires | |
347 | //------------------------------------------------------------------------ | |
348 | ||
349 | wire [63:0] data_out; | |
350 | wire dep2fsm_acc_vio,dep2fsm_done,dep2fsm_valid; | |
351 | ||
352 | //------------------------------------------------------------------------ | |
353 | // dmu_dsn_ucb_flow Wires | |
354 | //------------------------------------------------------------------------ | |
355 | ||
356 | wire rd_req_vld,wr_req_vld,ack_busy,reset; | |
357 | wire [5:0] thr_id_in; | |
358 | wire [1:0] buf_id_in; | |
359 | wire [26:0] addr_in; | |
360 | wire [63:0] data_in; | |
361 | wire [`FIRE_DEBUG_WDTH-1:0] ucb2ctl_dbg_grp_a_1; | |
362 | wire [4:0] fsm2ctl_dbg_grp_b_1; | |
363 | wire [2:0] pkt2ctl_dbg_grp_b_1; | |
364 | ||
365 | ||
366 | dmu_dsn_ctl dmu_dsn_ctl ( | |
367 | .l1clk (l1clk), // input (dmu_dsn_ctl) <= () | |
368 | .rst_l (rst_l), // input (dmu_dsn_ccc_fsm,dmu_dsn_ccc_pkt,dmu_dsn_ctl) <= () | |
369 | .reset (reset), // output () => (dmu_dsn_ccc_fsm,dmu_dsn_ccc_pkt,dmu_dsn_ctl) | |
370 | .dmu_sii_hdr_vld (dmu_sii_hdr_vld), // output (dmu_dsn_ctl) => () | |
371 | .dmu_sii_reqbypass (dmu_sii_reqbypass), // output (dmu_dsn_ctl) => () | |
372 | .dmu_sii_datareq (dmu_sii_datareq), // output (dmu_dsn_ctl) => () | |
373 | .dmu_sii_datareq16 (dmu_sii_datareq16), // output (dmu_dsn_ctl) => () | |
374 | .dmu_sii_data (dmu_sii_data[127:0]), // output (dmu_dsn_ctl) => () | |
375 | .dmu_sii_parity (dmu_sii_parity[7:0]), // output (dmu_dsn_ctl) => () | |
376 | .dmu_sii_be_parity (dmu_sii_be_parity), // output (dmu_dsn_ctl) => () | |
377 | .dmu_sii_be (dmu_sii_be[15:0]), // output (dmu_dsn_ctl) => () | |
378 | .sio_dmu_hdr_vld (sio_dmu_hdr_vld), // input (dmu_dsn_ctl) <= () | |
379 | .sii_dmu_wrack_tag (sii_dmu_wrack_tag[3:0]), // output (dmu_dsn_ctl) => () | |
380 | .sii_dmu_wrack_par (sii_dmu_wrack_par), // output (dmu_dsn_ctl) => () | |
381 | .sii_dmu_wrack_vld (sii_dmu_wrack_vld), // output (dmu_dsn_ctl) => () | |
382 | .sio_dmu_data (sio_dmu_data[127:0]), // input (dmu_dsn_ctl) <= () | |
383 | .sio_dmu_parity (sio_dmu_parity[7:0]), // input (dmu_dsn_ctl) <= () | |
384 | .ncu_dmu_pio_hdr_vld (ncu_dmu_pio_hdr_vld), // input (dmu_dsn_ctl) <= () | |
385 | .ncu_dmu_mmu_addr_vld (ncu_dmu_mmu_addr_vld), // input (dmu_dsn_ctl) <= () | |
386 | .ncu_dmu_pio_data (ncu_dmu_pio_data[63:0]), // input (dmu_dsn_ctl) <= () | |
387 | .ncu_dmu_d_pei (ncu_dmu_d_pei), // input (dmu_dsn_ctl) <= () n2 RAS | |
388 | .ncu_dmu_siicr_pei (ncu_dmu_siicr_pei), // input (dmu_dsn_ctl) <= () n2 RAS | |
389 | .ncu_dmu_ctag_uei (ncu_dmu_ctag_uei), // input (dmu_dsn_ctl) <= () n2 RAS | |
390 | .ncu_dmu_ctag_cei (ncu_dmu_ctag_cei), // input (dmu_dsn_ctl) <= () n2 RAS | |
391 | .ncu_dmu_ncucr_pei (ncu_dmu_ncucr_pei), // input (dmu_dsn_ctl) <= () n2 RAS | |
392 | .ncu_dmu_iei (ncu_dmu_iei), // input (dmu_dsn_ctl) <= () n2 RAS | |
393 | .dmu_ncu_wrack_vld (dmu_ncu_wrack_vld), // input (dmu_dsn_ctl) <= () | |
394 | .dmu_ncu_wrack_tag (dmu_ncu_wrack_tag[3:0]), // input (dmu_dsn_ctl) <= () | |
395 | .dmu_ncu_wrack_par (dmu_ncu_wrack_par), // input (dmu_dsn_ctl) <= () | |
396 | .dmu_ncu_d_pe (dmu_ncu_d_pe), // input (dmu_dsn_ctl) <= () n2 RAS | |
397 | .dmu_ncu_siicr_pe (dmu_ncu_siicr_pe), // input (dmu_dsn_ctl) <= () n2 RAS | |
398 | .dmu_ncu_ctag_ue (dmu_ncu_ctag_ue), // input (dmu_dsn_ctl) <= () n2 RAS | |
399 | .dmu_ncu_ctag_ce (dmu_ncu_ctag_ce), // input (dmu_dsn_ctl) <= () n2 RAS | |
400 | .dmu_ncu_ncucr_pe (dmu_ncu_ncucr_pe), // input (dmu_dsn_ctl) <= () n2 RAS | |
401 | .dmu_ncu_ie (dmu_ncu_ie), // input (dmu_dsn_ctl) <= () n2 RAS | |
402 | .ncu_dmu_mondo_ack (ncu_dmu_mondo_ack), // input (dmu_dsn_ctl) <= () | |
403 | .ncu_dmu_mondo_nack (ncu_dmu_mondo_nack), // input (dmu_dsn_ctl) <= () | |
404 | .ncu_dmu_mondo_id (ncu_dmu_mondo_id[5:0]), // input (dmu_dsn_ctl) <= () | |
405 | .ncu_dmu_mondo_id_par (ncu_dmu_mondo_id_par), // input (dmu_dsn_ctl) <= () | |
406 | .d2j_cmd (d2j_cmd[3:0]), // input (dmu_dsn_ctl) <= () | |
407 | .d2j_addr (d2j_addr[36:0]), // input (dmu_dsn_ctl) <= () | |
408 | .d2j_ctag (d2j_ctag[15:0]), // input (dmu_dsn_ctl) <= () | |
409 | .d2j_cmd_vld (d2j_cmd_vld), // input (dmu_dsn_ctl) <= () | |
410 | .d2j_data (d2j_data[127:0]), // input (dmu_dsn_ctl) <= () | |
411 | .d2j_bmsk (d2j_bmsk[15:0]), // input (dmu_dsn_ctl) <= () | |
412 | .d2j_data_par (d2j_data_par[4:0]), // input (dmu_dsn_ctl) <= () | |
413 | .d2j_data_vld (d2j_data_vld), // input (dmu_dsn_ctl) <= () | |
414 | .j2d_d_wrack_tag (j2d_d_wrack_tag[3:0]), // output (dmu_dsn_ctl) => () | |
415 | .j2d_d_wrack_vld (j2d_d_wrack_vld), // output (dmu_dsn_ctl) => () | |
416 | .d2j_p_wrack_tag (d2j_p_wrack_tag[3:0]), // input (dmu_dsn_ctl) <= () | |
417 | .d2j_p_wrack_vld (d2j_p_wrack_vld), // input (dmu_dsn_ctl) <= () | |
418 | .j2d_di_cmd (j2d_di_cmd[1:0]), // output (dmu_dsn_ctl) => () | |
419 | .j2d_di_ctag (j2d_di_ctag[15:0]), // output (dmu_dsn_ctl) => () | |
420 | .j2d_di_cmd_vld (j2d_di_cmd_vld), // output (dmu_dsn_ctl) => () | |
421 | .j2d_p_cmd (j2d_p_cmd[3:0]), // output (dmu_dsn_ctl) => () | |
422 | .j2d_p_addr (j2d_p_addr[35:0]), // output (dmu_dsn_ctl) => () | |
423 | .j2d_p_bmsk (j2d_p_bmsk[15:0]), // output (dmu_dsn_ctl) => () | |
424 | .j2d_p_ctag (j2d_p_ctag[10:0]), // output (dmu_dsn_ctl) => () | |
425 | .j2d_p_cmd_vld (j2d_p_cmd_vld), // output (dmu_dsn_ctl) => () | |
426 | .j2d_d_data (j2d_d_data[127:0]), // output (dmu_dsn_ctl) => () | |
427 | .j2d_d_data_par (j2d_d_data_par[3:0]), // output (dmu_dsn_ctl) => () | |
428 | .j2d_d_data_err (j2d_d_data_err), // output (dmu_dsn_ctl) => () | |
429 | .j2d_d_data_vld (j2d_d_data_vld), // output (dmu_dsn_ctl) => () | |
430 | .j2d_p_data (j2d_p_data[127:0]), // output (dmu_dsn_ctl) => () | |
431 | .j2d_p_data_par (j2d_p_data_par[3:0]), // output (dmu_dsn_ctl) => () | |
432 | .j2d_p_data_vld (j2d_p_data_vld), // output (dmu_dsn_ctl) => () | |
433 | .j2d_mmu_addr_vld (j2d_mmu_addr_vld), // output (dmu_dsn_ctl) => () | |
434 | .j2d_mmu_addr (j2d_mmu_addr[42:6]), // output (dmu_dsn_ctl) => () | |
435 | .dsn_dmc_iei (dsn_dmc_iei), // output (dmu_dsn_ctl) => () | |
436 | .cr2ds_dbg_sel_a (cr2ds_dbg_sel_a[5:0]), // input (dmu_dsn_ctl) <= () | |
437 | .cr2ds_dbg_sel_b (cr2ds_dbg_sel_b[5:0]), // input (dmu_dsn_ctl) <= () | |
438 | .ds2cr_dbg_a (ds2cr_dbg_a), // output (dmu_dsn_ctl) => () | |
439 | .ds2cr_dbg_b (ds2cr_dbg_b), // output (dmu_dsn_ctl) => () | |
440 | .ucb2ctl_dbg_grp_a_1 (ucb2ctl_dbg_grp_a_1), // input (dmu_dsn_ctl) <= (dmu_dsn_ucb_flow) | |
441 | .fsm2ctl_dbg_grp_b_1 (fsm2ctl_dbg_grp_b_1), // input (dmu_dsn_ctl) <= (dmu_dsn_ccc_fsm) | |
442 | .pkt2ctl_dbg_grp_b_1 (pkt2ctl_dbg_grp_b_1), // input (dmu_dsn_ctl) <= (dmu_dsn_ccc_fsm) | |
443 | .dbg1_dmu_stall (dbg1_dmu_stall), // input (dmu_dsn_ctl) <= (dmu_dsn_ccc_fsm) | |
444 | .dbg1_dmu_resume (dbg1_dmu_resume), // input (dmu_dsn_ctl) <= (dmu_dsn_ccc_fsm) | |
445 | .dmu_dbg1_stall_ack (dmu_dbg1_stall_ack), // input (dmu_dsn_ctl) <= (dmu_dsn_ccc_fsm) | |
446 | .ds2cl_stall (ds2cl_stall) // input (dmu_dsn_ctl) <= (dmu_dsn_ccc_fsm) | |
447 | ||
448 | ||
449 | ); | |
450 | ||
451 | ||
452 | dmu_dsn_ccc_fsm dmu_dsn_ccc_fsm ( | |
453 | .clk (l1clk), // input (dmu_dsn_ccc_fsm,dmu_dsn_ccc_pkt) <= () | |
454 | .rst_l (rst_l), // input (dmu_dsn_ccc_fsm,dmu_dsn_ccc_pkt,dmu_dsn_ctl) <= () | |
455 | .rd_req_vld (rd_req_vld), // input (dmu_dsn_ccc_pkt) <= (dmu_dsn_ucb_flow) | |
456 | .wr_req_vld (wr_req_vld), // input (dmu_dsn_ccc_pkt) <= (dmu_dsn_ucb_flow) | |
457 | .dep2fsm_acc_vio (dep2fsm_acc_vio), // input (dmu_dsn_ccc_fsm) <= (dmu_dsn_ccc_dep) | |
458 | .dep2fsm_done (dep2fsm_done), // input (dmu_dsn_ccc_fsm) <= (dmu_dsn_ccc_dep) | |
459 | .dep2fsm_valid (dep2fsm_valid), // input (dmu_dsn_ccc_fsm) <= (dmu_dsn_ccc_dep) | |
460 | .ack_busy (ack_busy), // input (dmu_dsn_ccc_fsm) <= (dmu_dsn_ucb_flow) | |
461 | .fsm2arb_done (fsm2arb_done), // output (dmu_dsn_ccc_fsm) => (dmu_dsn_ucb_flow) | |
462 | .rd_ack_vld (rd_ack_vld), // output (dmu_dsn_ccc_fsm) => (dmu_dsn_ucb_flow) | |
463 | .rd_nack_vld (rd_nack_vld), // output (dmu_dsn_ccc_fsm) => (dmu_dsn_ucb_flow) | |
464 | .fsm2pkt_valid (fsm2pkt_valid), // output (dmu_dsn_ccc_fsm) => (dmu_dsn_ccc_pkt) | |
465 | .fsm2ctl_dbg_grp_b_1 (fsm2ctl_dbg_grp_b_1[4:0]) // output (dmu_dsn_ccc_fsm) => (dmu_dsn_ctl) | |
466 | ); | |
467 | ||
468 | dmu_dsn_ccc_pkt dmu_dsn_ccc_pkt ( | |
469 | .clk (l1clk), // input (dmu_dsn_ccc_fsm,dmu_dsn_ccc_pkt) <= () | |
470 | .rst_l (rst_l), // input (dmu_dsn_ccc_fsm,dmu_dsn_ccc_pkt,dmu_dsn_ctl) <= () | |
471 | .cdp2pkt_data (data_in[63:0]), // input (dmu_dsn_ccc_pkt) <= (dmu_dsn_ucb_flow) | |
472 | .buf_id_in (buf_id_in[1:0]), // input (dmu_dsn_ccc_pkt) <= (dmu_dsn_ucb_flow) | |
473 | .cdp2pkt_addr (addr_in[26:0]), // input (dmu_dsn_ccc_pkt) <= (dmu_dsn_ucb_flow) | |
474 | .fsm2pkt_valid (fsm2pkt_valid), // input (dmu_dsn_ccc_pkt) <= (dmu_dsn_ccc_fsm) | |
475 | .wr_req_vld (wr_req_vld), // input (dmu_dsn_ccc_pkt) <= (dmu_dsn_ucb_flow) | |
476 | .j2d_csr_ring_out (j2d_csr_ring_out[31:0]),// output (dmu_dsn_ccc_pkt) => () | |
477 | .pkt2ctl_dbg_grp_b_1 (pkt2ctl_dbg_grp_b_1[2:0])// output (dmu_dsn_ccc_pkt) => () | |
478 | ); | |
479 | ||
480 | dmu_dsn_ccc_dep dmu_dsn_ccc_dep ( | |
481 | .clk (l1clk), // input (dmu_dsn_ccc_dep,dmu_dsn_ccc_pkt) <= () | |
482 | .rst_l (rst_l), // input (dmu_dsn_ccc_dep,dmu_dsn_ccc_pkt,dmu_dsn_ctl) <= () | |
483 | .dep2cdp_data (data_out[63:0]), // output (dmu_dsn_ccc_dep) => (dmu_dsn_ucb_flow) | |
484 | .dep2fsm_acc_vio (dep2fsm_acc_vio), // output (dmu_dsn_ccc_dep) => (dep2fsm_acc_vio) | |
485 | .dep2fsm_done (dep2fsm_done), // output (dmu_dsn_ccc_dep) => (dep2fsm_done) | |
486 | .dep2fsm_valid (dep2fsm_valid), // output (dmu_dsn_ccc_dep) => (dep2fsm_valid) | |
487 | .d2j_csr_ring_in (d2j_csr_ring_in[31:0])// input (dmu_dsn_ccc_dep) <= () | |
488 | ); | |
489 | ||
490 | ||
491 | ||
492 | dmu_dsn_ucb_flow dmu_dsn_ucb_flow ( | |
493 | .enl2clk (l1clk), // input (dmu_dsn_ucb_flow,dmu_dsn_ucb_in32,dmu_dsn_ucb_out32) <= () | |
494 | .reset (reset), // input (dmu_dsn_ucb_flow,dmu_dsn_ucb_in32,dmu_dsn_ucb_out32) <= () | |
495 | .ncu_dmu_vld (ncu_dmu_vld), // input (dmu_dsn_ucb_flow) <= () | |
496 | .ncu_dmu_data (ncu_dmu_data[31:0]), // input (dmu_dsn_ucb_flow) <= () | |
497 | .dmu_ncu_stall (dmu_ncu_stall), // output (dmu_dsn_ucb_flow) => () | |
498 | .dmu_ncu_vld (dmu_ncu_vld), // output (dmu_dsn_ucb_flow) => () | |
499 | .dmu_ncu_data (dmu_ncu_data[31:0]), // output (dmu_dsn_ucb_flow) => () | |
500 | .ncu_dmu_stall (ncu_dmu_stall), // input (dmu_dsn_ucb_flow) <= () | |
501 | .rd_req_vld (rd_req_vld), // output (dmu_dsn_ucb_flow) => (dmu_dsn_ucb_flow) | |
502 | .wr_req_vld (wr_req_vld), // output (dmu_dsn_ucb_flow) => (dmu_dsn_ucb_flow) | |
503 | .thr_id_in (thr_id_in[5:0]), // output (dmu_dsn_ucb_flow) => (dmu_dsn_ucb_flow) | |
504 | .buf_id_in (buf_id_in[1:0]), // output (dmu_dsn_ucb_flow) => (dmu_dsn_ucb_flow) | |
505 | .addr_in (addr_in[26:0]), // output (dmu_dsn_ucb_flow) => (dmu_dsn_ucb_flow) | |
506 | .data_in (data_in[63:0]), // output (dmu_dsn_ucb_flow) => (dmu_dsn_ucb_flow) | |
507 | .req_acpted (fsm2arb_done), // input (dmu_dsn_ucb_flow) <= (dmu_dsn_ccc_fsm) | |
508 | .rd_ack_vld (rd_ack_vld), // input (dmu_dsn_ucb_flow) <= (dmu_dsn_ucb_fsm) | |
509 | .rd_nack_vld (rd_nack_vld), // input (dmu_dsn_ucb_flow) <= (dmu_dsn_ucb_fsm) | |
510 | .thr_id_out (thr_id_in[5:0]), // input (dmu_dsn_ucb_flow) <= (dmu_dsn_ucb_flow) | |
511 | .buf_id_out (buf_id_in[1:0]), // input (dmu_dsn_ucb_flow) <= (dmu_dsn_ucb_flow) | |
512 | .data_out (data_out[63:0]), // input (dmu_dsn_ucb_flow) <= (dmu_dsn_ccc_dep) | |
513 | .ack_busy (ack_busy), // output (dmu_dsn_ucb_flow) => (dmu_dsn_ucb_fsm) | |
514 | .ucb2ctl_dbg_grp_a_1 (ucb2ctl_dbg_grp_a_1) // output (dmu_dsn_ucb_flow) => (dmu_dsn_ctl) | |
515 | ); | |
516 | ||
517 | ||
518 | ||
519 | endmodule | |
520 | ||
521 |