Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / niu / rtl / niu_smx.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: niu_smx.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`timescale 1ns/1ns
36`include "niu_smx_define.h"
37
38module niu_smx(
39
40 // VPERL: &PORTLIST;
41 // VPERL: GENERATED_BEG
42 niu_clk,
43 iol2clk,
44 niu_reset_l,
45 niu_sii_hdr_vld,
46 niu_sii_reqbypass,
47 niu_sii_datareq,
48 niu_sii_data,
49 niu_sii_parity,
50 sii_niu_oqdq,
51 sii_niu_bqdq,
52 sio_niu_hdr_vld,
53 sio_niu_datareq,
54 sio_niu_data,
55 sio_niu_parity,
56 niu_sio_dq,
57 dmc_meta0_req,
58 dmc_meta0_req_cmd,
59 dmc_meta0_req_address,
60 dmc_meta0_req_length,
61 dmc_meta0_req_transID,
62 dmc_meta0_req_port_num,
63 dmc_meta0_req_dma_num,
64 dmc_meta0_req_client,
65 meta_dmc0_req_accept,
66 meta_dmc0_req_errors,
67 meta_dmc0_data_req,
68 dmc_meta0_data_valid,
69 dmc_meta0_data,
70 dmc_meta0_req_byteenable,
71 dmc_meta0_status,
72 dmc_meta0_transfer_complete,
73 dmc_meta1_req,
74 dmc_meta1_req_cmd,
75 dmc_meta1_req_address,
76 dmc_meta1_req_length,
77 dmc_meta1_req_transID,
78 dmc_meta1_req_port_num,
79 dmc_meta1_req_dma_num,
80 dmc_meta1_req_client,
81 meta_dmc1_req_accept,
82 meta_dmc1_req_errors,
83 meta_dmc_resp_ready,
84 meta_dmc_resp_cmd,
85 meta_dmc_resp_cmd_status,
86 meta_dmc_resp_address,
87 meta_dmc_resp_length,
88 meta_dmc_resp_transID,
89 meta_dmc_resp_port_num,
90 meta_dmc_resp_dma_num,
91
92 meta_dmc_resp_client_txc, // cc
93 meta_dmc_resp_client_tdmc, // cc
94 meta_dmc_resp_client_rdmc, // cc
95
96 meta_dmc_data_valid_txc, // cc
97 meta_dmc_data_valid_tdmc, // cc
98 meta_dmc_data_valid_rdmc, // cc
99
100 meta_dmc_resp_complete_txc, // 1 cc
101 meta_dmc_resp_complete_tdmc, // 2 cc
102 meta_dmc_resp_complete_rdmc, // 5 cc
103
104 meta_dmc_resp_transfer_cmpl_txc, // cc
105 meta_dmc_resp_transfer_cmpl_tdmc, // cc
106 meta_dmc_resp_transfer_cmpl_rdmc, // cc
107
108 meta_dmc_ack_client_tdmc, // 2 cc
109 meta_dmc_ack_client_rdmc, // 4 cc
110
111 rdmc_meta_resp_accept,
112 txc_meta_resp_accept,
113 tdmc_meta_resp_accept,
114
115 meta_dmc_data,
116 meta_dmc_resp_byteenable,
117 meta_dmc_data_status,
118
119 // meta_dmc_resp_client,
120 // meta_dmc_data_valid,
121 // meta_dmc_resp_complete,
122 // meta_dmc_ack_client,
123
124 meta_dmc_resp_transfer_cmpl,
125
126 meta_dmc_ack_ready,
127 meta_dmc_ack_cmd,
128 meta_dmc_ack_cmd_status,
129 meta_dmc_ack_dma_num,
130 meta_dmc_ack_transID,
131 meta_dmc_ack_complete,
132 meta_dmc_ack_transfer_cmpl,
133 rdmc_meta_ack_accept,
134 tdmc_meta_ack_accept,
135 ncu_niu_ctag_uei,
136 ncu_niu_ctag_cei,
137 ncu_niu_d_pei,
138 niu_ncu_ctag_ue,
139 niu_ncu_ctag_ce,
140 niu_ncu_d_pe,
141 tcu_aclk,
142 tcu_bclk,
143 tcu_se_scancollar_in,
144 tcu_array_wr_inhibit,
145 tcu_mbist_user_mode,
146 tds_smx_mbist_scan_in,
147 tcu_tds_smx_mbist_start,
148 tcu_mbist_bisi_en,
149 tds_smx_tcu_mbist_fail,
150 tds_smx_tcu_mbist_done,
151 tds_smx_mbist_scan_out,
152 pio_smx_cfg_data,
153 smx_pio_intr,
154 smx_pio_status,
155 pio_smx_clear_intr,
156 pio_smx_ctrl,
157 pio_smx_debug_vector,
158 dbg1_niu_stall,
159 dbg1_niu_resume,
160 niu_dbg1_stall_ack,
161 smx_debug_port
162 // VPERL: GENERATED_END
163
164);
165input niu_clk;
166input iol2clk;
167input niu_reset_l;
168
169 // sii interface (req)
170output niu_sii_hdr_vld;
171output niu_sii_reqbypass;
172output niu_sii_datareq;
173output [127:0] niu_sii_data;
174output [7:0] niu_sii_parity;
175
176input sii_niu_oqdq;
177input sii_niu_bqdq;
178
179 // sio if (resp)
180input sio_niu_hdr_vld;
181input sio_niu_datareq;
182input [127:0] sio_niu_data;
183input [7:0] sio_niu_parity;
184output niu_sio_dq;
185
186 // dmc wr req cmd if
187input dmc_meta0_req;
188input [7:0] dmc_meta0_req_cmd;
189input [63:0] dmc_meta0_req_address;
190input [13:0] dmc_meta0_req_length;
191input [5:0] dmc_meta0_req_transID;
192input [1:0] dmc_meta0_req_port_num;
193input [4:0] dmc_meta0_req_dma_num;
194input [7:0] dmc_meta0_req_client;
195output meta_dmc0_req_accept;
196output meta_dmc0_req_errors; // ??? TBD
197
198 // dmc wr req data if
199output meta_dmc0_data_req;
200input dmc_meta0_data_valid;
201input [127:0] dmc_meta0_data;
202input [15:0] dmc_meta0_req_byteenable;
203input [3:0] dmc_meta0_status;
204input dmc_meta0_transfer_complete;
205
206 // dmc rd cmd if
207input dmc_meta1_req;
208input [7:0] dmc_meta1_req_cmd;
209input [63:0] dmc_meta1_req_address;
210input [13:0] dmc_meta1_req_length;
211input [5:0] dmc_meta1_req_transID;
212input [1:0] dmc_meta1_req_port_num;
213input [4:0] dmc_meta1_req_dma_num;
214input [7:0] dmc_meta1_req_client;
215output meta_dmc1_req_accept;
216output meta_dmc1_req_errors; // ??? TBD
217
218 // dmc resp cmd if
219output meta_dmc_resp_ready;
220output [7:0] meta_dmc_resp_cmd;
221output [3:0] meta_dmc_resp_cmd_status;
222output [63:0] meta_dmc_resp_address;
223output [13:0] meta_dmc_resp_length;
224output [5:0] meta_dmc_resp_transID;
225output [1:0] meta_dmc_resp_port_num;
226output [4:0] meta_dmc_resp_dma_num;
227
228// output [7:0] meta_dmc_resp_client; // cc
229output meta_dmc_resp_client_txc;
230output meta_dmc_resp_client_tdmc;
231output meta_dmc_resp_client_rdmc;
232
233
234input rdmc_meta_resp_accept;
235input txc_meta_resp_accept;
236input tdmc_meta_resp_accept;
237
238// wire [7:0] dmc_meta_resp_accept;
239
240 // dmc resp data if
241// output [7:0] meta_dmc_data_valid; // cc
242output meta_dmc_data_valid_txc;
243output meta_dmc_data_valid_tdmc;
244output meta_dmc_data_valid_rdmc;
245
246output [127:0] meta_dmc_data;
247output [15:0] meta_dmc_resp_byteenable;
248output [3:0] meta_dmc_data_status; // <- chg
249
250// output [7:0] meta_dmc_resp_complete; // cc
251output meta_dmc_resp_complete_txc; // 1
252output meta_dmc_resp_complete_tdmc; // 2
253output meta_dmc_resp_complete_rdmc; // 5
254
255output [7:0] meta_dmc_resp_transfer_cmpl; // chg cc
256output meta_dmc_resp_transfer_cmpl_txc;
257output meta_dmc_resp_transfer_cmpl_tdmc;
258output meta_dmc_resp_transfer_cmpl_rdmc;
259
260
261output meta_dmc_ack_ready; // Resp Command Request <--- all ack??
262output [7:0] meta_dmc_ack_cmd; // Command Request
263output [3:0] meta_dmc_ack_cmd_status; // Command Request
264output [4:0] meta_dmc_ack_dma_num; // Channel Number
265output [5:0] meta_dmc_ack_transID; // Transaction ID
266
267// output [7:0] meta_dmc_ack_client; // bitwise client cc
268output meta_dmc_ack_client_tdmc; // 2
269output meta_dmc_ack_client_rdmc; // 4
270
271output meta_dmc_ack_complete; // tdmc is the only client
272output [7:0] meta_dmc_ack_transfer_cmpl; // Last trans of TransID
273
274input rdmc_meta_ack_accept; // bitwise client accept
275input tdmc_meta_ack_accept; // bitwise client accept
276
277// wire [7:0] dmc_meta_ack_accept; // bitwise client accept
278
279
280input ncu_niu_ctag_uei;
281input ncu_niu_ctag_cei;
282input ncu_niu_d_pei;
283
284output niu_ncu_ctag_ue;
285output niu_ncu_ctag_ce;
286output niu_ncu_d_pe;
287
288// mbist if
289
290input tcu_aclk;
291input tcu_bclk;
292input tcu_se_scancollar_in;
293input tcu_array_wr_inhibit;
294input tcu_mbist_user_mode;
295
296input tds_smx_mbist_scan_in;
297input tcu_tds_smx_mbist_start;
298input tcu_mbist_bisi_en;
299
300output tds_smx_tcu_mbist_fail;
301output tds_smx_tcu_mbist_done;
302output tds_smx_mbist_scan_out;
303
304
305// pio if
306input [31:0] pio_smx_cfg_data; // static
307output smx_pio_intr; // level signal;
308 // once high stays high until clear by pio
309output[31:0] smx_pio_status; // status info related to intr
310input pio_smx_clear_intr; // a pulse
311
312input [31:0] pio_smx_ctrl;
313input [31:0] pio_smx_debug_vector;
314
315// n2 debug if
316input dbg1_niu_stall;
317input dbg1_niu_resume;
318output niu_dbg1_stall_ack;
319
320// niu debug port
321output [31:0] smx_debug_port;
322
323
324wire [7:0] niu_mb0_wdata;
325// wire [5:0] niu_mb0_addr;
326wire niu_mb0_smx_table_wr_en;
327wire niu_mb0_smx_table_rd_en;
328wire niu_mb0_run;
329
330wire niu_mb0_smx_store_wr_en;
331wire niu_mb0_smx_store_rd_en;
332
333wire [145:0] niu_mb0_smx_store_data_out;
334wire [145:0] niu_mb0_smx_table_data_out;
335
336
337// meta interface not used by clients
338// wire [63:0] meta_dmc_ack_address; // Memory Address
339// wire [13:0] meta_dmc_ack_length; // Packet Length
340// wire [1:0] meta_dmc_ack_port_num; // Port Number
341wire meta_dmc_ack_complete; // bitwise client
342
343
344// VPERL: PERL_BEG
345// &WIRES;
346// &INSTANCE ("./niu_smx_rdreq_dmc.v", "rdreq_dmc");
347// &INSTANCE ("./niu_smx_wreq_dmc.v", "wreq_dmc");
348// &INSTANCE ("./niu_smx_req_sii.v", "req_sii");
349// &INSTANCE ("./niu_smx_resp_sio.v", "resp_sio");
350// &INSTANCE ("./niu_smx_resp_dmc.v", "resp_dmc");
351// &INSTANCE ("./niu_smx_req_ff.v", "req_ff");
352// &INSTANCE ("./niu_smx_resp_ff.v", "resp_ff");
353// &INSTANCE ("./niu_smx_xtb.v", "xtb");
354// &INSTANCE ("./niu_smx_status.v", "flag_status");
355// &INSTANCE ("./niu_smx_timer.v", "timer");
356// &INSTANCE ("./niu_smx_timeout_hdlr.v", "timeout_hdlr");
357// &INSTANCE ("./niu_smx_stall_hdlr.v", "stall_hdlr");
358// &INSTANCE ("./niu_smx_pio.v", "pio");
359// &INSTANCE ("/vobs/neptune/design/niu/niu_mb0/rtl/niu_mb0.v niu_mb0", "niu_mb0");
360
361// &CONNECT ("resp_dmc.dmc_meta_resp_accept", "{1'b0, 1'b0, rdmc_meta_resp_accept, \
362// 1'b0, 1'b0, tdmc_meta_resp_accept, \
363// txc_meta_resp_accept, 1'b0}");
364// &CONNECT ("resp_dmc.dmc_meta_ack_accept", "{1'b0, 1'b0, 1'b0, rdmc_meta_ack_accept, \
365// 1'b0, tdmc_meta_ack_accept, 1'b0, 1'b0}");
366//
367// &CONNECT ("flag_status.resp_rcv_rd", "1'b0");
368// &CONNECT ("flag_status.resp_rcv_rdata","");
369// &CONNECT ("flag_status.resp_rcv_raddr","{6{1'b0}}");
370// &CONNECT ("flag_status.timeout_rd", "1'b0");
371// &CONNECT ("flag_status.timeout_rdata","");
372// &CONNECT ("flag_status.timeout_raddr","{6{1'b0}}");
373// &CONNECT ("flag_status.tid_newarr_rd", "1'b0");
374// &CONNECT ("flag_status.tid_newarr_rdata","");
375// &CONNECT ("flag_status.tid_newarr_raddr","{6{1'b0}}");
376
377// &CONNECT ("resp_ff.niu_mb0_smx_store_32x146_wdata","niu_mb0_wdata[7:0]");
378// &CONNECT ("resp_ff.niu_mb0_smx_store_32x146_rd_addr","niu_mb0_addr[4:0]");
379// &CONNECT ("resp_ff.niu_mb0_smx_store_32x146_wr_addr","niu_mb0_addr[4:0]");
380// &CONNECT ("resp_ff.niu_mb0_smx_store_32x146_wr_en","niu_mb0_smx_store_wr_en");
381// &CONNECT ("resp_ff.niu_mb0_smx_store_32x146_rd_en","niu_mb0_smx_store_rd_en");
382
383// &CONNECT ("xtb.niu_mb0_smx_table_64x146_wdata","niu_mb0_wdata[7:0]");
384// &CONNECT ("xtb.niu_mb0_smx_table_64x146_rd_addr","niu_mb0_addr[5:0]");
385// &CONNECT ("xtb.niu_mb0_smx_table_64x146_wr_addr","niu_mb0_addr[5:0]");
386// &CONNECT ("xtb.niu_mb0_smx_table_64x146_wr_en","niu_mb0_smx_table_wr_en");
387// &CONNECT ("xtb.niu_mb0_smx_table_64x146_rd_en","niu_mb0_smx_table_rd_en");
388
389// &CONNECT ("niu_mb0.mb0_scan_in", "tds_smx_mbist_scan_in");
390// &CONNECT ("niu_mb0.mb0_scan_out", "tds_smx_mbist_scan_out");
391// &CONNECT ("niu_mb0.tcu_niu_mbist_start_0", "tcu_tds_smx_mbist_start");
392// &CONNECT ("niu_mb0.niu_tcu_mbist_done_0", "tds_smx_tcu_mbist_done");
393// &CONNECT ("niu_mb0.niu_tcu_mbist_fail_0", "tds_smx_tcu_mbist_fail");
394// &CONNECT ("niu_mb0.l1clk", "niu_clk");
395// &CONNECT ("niu_mb0.rst_l", "niu_reset_l");
396// &CONNECT ("niu_mb0.tcu_mbist_user_mode", "tcu_mbist_user_mode");
397// &CONNECT ("rdreq_dmc.clk", "niu_clk");
398// &CONNECT ("wreq_dmc.clk", "niu_clk");
399// &CONNECT ("req_sii.clk", "niu_clk");
400// &CONNECT ("resp_sio.clk", "niu_clk");
401// &CONNECT ("resp_dmc.clk", "niu_clk");
402// &CONNECT ("req_ff.clk", "niu_clk");
403// &CONNECT ("resp_ff.clk", "niu_clk");
404// &CONNECT ("xtb.clk", "niu_clk");
405// &CONNECT ("flag_status.clk", "niu_clk");
406// &CONNECT ("timer.clk", "niu_clk");
407// &CONNECT ("timeout_hdlr.clk", "niu_clk");
408// &CONNECT ("stall_hdlr.clk", "niu_clk");
409// &CONNECT ("pio.clk", "niu_clk");
410// &CONNECT ("rdreq_dmc.reset_l", "niu_reset_l");
411// &CONNECT ("wreq_dmc.reset_l", "niu_reset_l");
412// &CONNECT ("req_sii.reset_l", "niu_reset_l");
413// &CONNECT ("resp_sio.reset_l", "niu_reset_l");
414// &CONNECT ("resp_dmc.reset_l", "niu_reset_l");
415// &CONNECT ("req_ff.reset_l", "niu_reset_l");
416// &CONNECT ("resp_ff.reset_l", "niu_reset_l");
417// &CONNECT ("xtb.reset_l", "niu_reset_l");
418// &CONNECT ("flag_status.reset_l", "niu_reset_l");
419// &CONNECT ("timer.reset_l", "niu_reset_l");
420// &CONNECT ("timeout_hdlr.reset_l", "niu_reset_l");
421// &CONNECT ("stall_hdlr.reset_l", "niu_reset_l");
422// &CONNECT ("pio.reset_l", "niu_reset_l");
423
424// # ??? need to bring this out when pio avail???
425//# &CONNECT ("pio.pio_ld", "1'b0");
426// &CONNECT ("pio.pio_data", "pio_smx_cfg_data");
427// VPERL: PERL_END
428// VPERL: GENERATED_BEG
429
430wire [65:0] rdreq_cmdff_rdata;
431wire [65:0] rdreq_cmdff_wdata;
432wire [127:0] rdreq_xtb_wdata;
433wire [31:0] reg_timer_cfg;
434wire [21:0] resp_cmdff_rdata;
435wire [21:0] resp_cmdff_wdata;
436wire [143:0] resp_dataff_rdata;
437wire [143:0] resp_dataff_wdata;
438wire [63:0] resp_rcv_rdata_bus;
439wire [63:0] tid_newarr_rdata_bus;
440wire [63:0] tid_valid_rdata_bus;
441wire [63:0] tid_dirty_rdata_bus;
442wire [63:0] timeout_rdata_bus;
443wire [63:0] tohdl_cmdl_addr;
444wire [118:0] tohdl_xtb_rdata;
445wire [65:0] wreq_cmdff_rdata;
446wire [65:0] wreq_cmdff_wdata;
447wire [127:0] wreq_dataff_rdata;
448wire [127:0] wreq_dataff_wdata;
449wire [127:0] wreq_xtb_wdata;
450wire [128:0] xtb_rdata;
451wire [1:0] arb_cs;
452wire [2:0] cmdl_cs;
453wire cmdl_tohdl_ack;
454wire [2:0] dreq_cs;
455wire [2:0] dv_cs;
456wire [5:0] niu_mb0_addr;
457wire niu_mb0_smx_store_scan_out; // vlint
458wire niu_mb0_smx_table_scan_out; // vlint
459wire [2:0] pio_resp_err_inject_cfg;
460wire [2:0] pio_xtb_err_inject_cfg;
461wire [1:0] proc_cs;
462wire [2:0] rdreq_cmd_cs;
463wire rdreq_cmdff_empty;
464wire rdreq_cmdff_full;
465wire rdreq_cmdff_rd;
466wire rdreq_cmdff_wr;
467wire rdreq_cmdreq_idle;
468wire rdreq_rst_xtb_wr;
469wire [5:0] rdreq_xtb_waddr;
470wire rdreq_xtb_wr;
471wire [1:0] reg_ras_cfg;
472wire resp_cmdff_empty;
473wire resp_cmdff_full;
474wire resp_cmdff_rd;
475wire resp_cmdff_wr;
476wire resp_dataff_empty;
477wire resp_dataff_full;
478wire resp_dataff_rd;
479wire resp_dataff_wr;
480wire resp_rcv_rst;
481wire [5:0] resp_rcv_rst_addr;
482wire resp_rcv_set;
483wire [5:0] resp_rcv_set_addr;
484wire [1:0] sii_cs;
485wire siireq_idle;
486wire smx_nc_err;
487wire stall_enable;
488wire tid_newarr_rst;
489wire [5:0] tid_newarr_rst_addr;
490wire tid_newarr_set;
491wire [5:0] tid_newarr_set_addr;
492wire [5:0] tid_valid_raddr;
493wire tid_valid_rd;
494wire tid_valid_rdata;
495wire tid_valid_rst0;
496wire tid_valid_rst1;
497wire [5:0] tid_valid_rst_addr0;
498wire [5:0] tid_valid_rst_addr1;
499wire tid_valid_set;
500wire [5:0] tid_valid_set_addr;
501wire timeout_rst;
502wire [5:0] timeout_rst_addr;
503wire timeout_set;
504wire [5:0] timeout_set_addr;
505wire [7:0] tohdl_cmdl_client;
506wire [7:0] tohdl_cmdl_cmd;
507wire [4:0] tohdl_cmdl_dma;
508wire [13:0] tohdl_cmdl_len;
509wire [1:0] tohdl_cmdl_port;
510wire tohdl_cmdl_req;
511wire [5:0] tohdl_cmdl_xid;
512wire [5:0] tohdl_intr_status;
513wire tohdl_set_intr;
514wire [5:0] tohdl_xtb_raddr;
515wire tohdl_xtb_rd;
516wire tohdl_xtb_rd_ack;
517wire tohdl_xtb_rdata_err;
518wire [2:0] wreq_cmd_cs;
519wire wreq_cmdff_empty;
520wire wreq_cmdff_full;
521wire wreq_cmdff_rd;
522wire wreq_cmdff_wr;
523wire wreq_cmdreq_idle;
524wire wreq_dataff_empty;
525wire wreq_dataff_full;
526wire wreq_dataff_rd;
527wire wreq_dataff_wr;
528wire [1:0] wreq_dv_cs;
529wire wreq_pcmd_ff_empty;
530wire wreq_pcmd_ff_full;
531wire wreq_pcmd_ff_rd;
532wire [3:0] wreq_pcmd_ff_rdata;
533wire [3:0] wreq_pcmd_ff_wdata;
534wire wreq_pcmd_ff_wr;
535wire wreq_rst_xtb_wr;
536wire [5:0] wreq_xtb_waddr;
537wire wreq_xtb_wr;
538wire [5:0] xtb_raddr;
539wire xtb_rcvfile_update;
540wire [5:0] xtb_rcvfile_update_addr;
541wire xtb_rd;
542wire xtb_rd_ack;
543wire xtb_rdata_err;
544wire [63:0] tid_xmited_rdata_bus;
545wire [5:0] tid_xmited_set_addr;
546wire tid_xmited_set;
547
548wire wire_zero;
549
550wire [7:0] meta_dmc_resp_client;
551wire [7:0] meta_dmc_data_valid;
552wire [7:0] meta_dmc_resp_complete;
553wire [7:0] meta_dmc_resp_transfer_cmpl;
554wire [7:0] meta_dmc_ack_client;
555
556assign meta_dmc_resp_client_txc = meta_dmc_resp_client[1];
557assign meta_dmc_resp_client_tdmc = meta_dmc_resp_client[2];
558assign meta_dmc_resp_client_rdmc = meta_dmc_resp_client[5];
559
560assign meta_dmc_data_valid_txc = meta_dmc_data_valid[1];
561assign meta_dmc_data_valid_tdmc = meta_dmc_data_valid[2];
562assign meta_dmc_data_valid_rdmc = meta_dmc_data_valid[5];
563
564assign meta_dmc_resp_complete_txc = meta_dmc_resp_complete[1];
565assign meta_dmc_resp_complete_tdmc = meta_dmc_resp_complete[2];
566assign meta_dmc_resp_complete_rdmc = meta_dmc_resp_complete[5];
567
568assign meta_dmc_resp_transfer_cmpl_txc = meta_dmc_resp_transfer_cmpl[1];
569assign meta_dmc_resp_transfer_cmpl_tdmc = meta_dmc_resp_transfer_cmpl[2];
570assign meta_dmc_resp_transfer_cmpl_rdmc = meta_dmc_resp_transfer_cmpl[5];
571
572assign meta_dmc_ack_client_tdmc = meta_dmc_ack_client[2];
573assign meta_dmc_ack_client_rdmc = meta_dmc_ack_client[4] | (wire_zero & 1'b0) ;
574
575assign wire_zero = (&meta_dmc_resp_client[7:0]) & (1'b0) &
576 (&meta_dmc_data_valid[7:0]) & (1'b0) &
577 (&meta_dmc_resp_complete[7:0]) & (1'b0) &
578 (&meta_dmc_ack_client[7:0]) & (1'b0);
579
580niu_smx_rdreq_dmc rdreq_dmc (
581 .clk (niu_clk),
582 .reset_l (niu_reset_l),
583 .dmc_meta1_req (dmc_meta1_req),
584 .dmc_meta1_req_cmd (dmc_meta1_req_cmd[7:0]),
585 .dmc_meta1_req_address (dmc_meta1_req_address[63:0]),
586 .dmc_meta1_req_length (dmc_meta1_req_length[13:0]),
587 .dmc_meta1_req_transID (dmc_meta1_req_transID[5:0]),
588 .dmc_meta1_req_port_num (dmc_meta1_req_port_num[1:0]),
589 .dmc_meta1_req_dma_num (dmc_meta1_req_dma_num[4:0]),
590 .dmc_meta1_req_client (dmc_meta1_req_client[7:0]),
591 .meta_dmc1_req_accept (meta_dmc1_req_accept),
592 .rdreq_cmdff_wr (rdreq_cmdff_wr),
593 .rdreq_cmdff_wdata (rdreq_cmdff_wdata[65:0]),
594 .rdreq_cmdff_full (rdreq_cmdff_full),
595 .rdreq_xtb_wr (rdreq_xtb_wr),
596 .rdreq_xtb_waddr (rdreq_xtb_waddr[5:0]),
597 .rdreq_xtb_wdata (rdreq_xtb_wdata[127:0]),
598 .rdreq_rst_xtb_wr (rdreq_rst_xtb_wr),
599 .stall_enable (stall_enable),
600 .rdreq_cmdreq_idle (rdreq_cmdreq_idle),
601 .rdreq_cmd_cs (rdreq_cmd_cs[2:0]),
602 .tid_valid_rdata_bus (tid_valid_rdata_bus[63:0])
603 );
604
605niu_smx_wreq_dmc wreq_dmc (
606 .clk (niu_clk),
607 .reset_l (niu_reset_l),
608 .dmc_meta0_req (dmc_meta0_req),
609 .dmc_meta0_req_cmd (dmc_meta0_req_cmd[7:0]),
610 .dmc_meta0_req_address (dmc_meta0_req_address[63:0]),
611 .dmc_meta0_req_length (dmc_meta0_req_length[13:0]),
612 .dmc_meta0_req_transID (dmc_meta0_req_transID[5:0]),
613 .dmc_meta0_req_port_num (dmc_meta0_req_port_num[1:0]),
614 .dmc_meta0_req_dma_num (dmc_meta0_req_dma_num[4:0]),
615 .dmc_meta0_req_client (dmc_meta0_req_client[7:0]),
616 .meta_dmc0_req_accept (meta_dmc0_req_accept),
617 .meta_dmc0_data_req (meta_dmc0_data_req),
618 .dmc_meta0_data_valid (dmc_meta0_data_valid),
619 .dmc_meta0_data (dmc_meta0_data[127:0]),
620 .dmc_meta0_req_byteenable (dmc_meta0_req_byteenable[15:0]),
621 .dmc_meta0_status (dmc_meta0_status[3:0]),
622 .dmc_meta0_transfer_complete (dmc_meta0_transfer_complete),
623 .wreq_cmdff_wr (wreq_cmdff_wr),
624 .wreq_cmdff_wdata (wreq_cmdff_wdata[65:0]),
625 .wreq_cmdff_full (wreq_cmdff_full),
626 .wreq_dataff_wr (wreq_dataff_wr),
627 .wreq_dataff_wdata (wreq_dataff_wdata[127:0]),
628 .wreq_dataff_full (wreq_dataff_full),
629 .wreq_pcmd_ff_wr (wreq_pcmd_ff_wr),
630 .wreq_pcmd_ff_wdata (wreq_pcmd_ff_wdata[3:0]),
631 .wreq_pcmd_ff_full (wreq_pcmd_ff_full),
632 .wreq_xtb_wr (wreq_xtb_wr),
633 .wreq_xtb_waddr (wreq_xtb_waddr[5:0]),
634 .wreq_xtb_wdata (wreq_xtb_wdata[127:0]),
635 .wreq_rst_xtb_wr (wreq_rst_xtb_wr),
636 .stall_enable (stall_enable),
637 .wreq_cmdreq_idle (wreq_cmdreq_idle),
638 .wreq_cmd_cs (wreq_cmd_cs[2:0]),
639 .dreq_cs (dreq_cs[2:0]),
640 .wreq_dv_cs (wreq_dv_cs[1:0])
641 );
642
643niu_smx_req_sii req_sii (
644 .clk (niu_clk),
645 .reset_l (niu_reset_l),
646 .niu_sii_hdr_vld (niu_sii_hdr_vld),
647 .niu_sii_reqbypass (niu_sii_reqbypass),
648 .niu_sii_datareq (niu_sii_datareq),
649 .niu_sii_data (niu_sii_data[127:0]),
650 .niu_sii_parity (niu_sii_parity[7:0]),
651 .sii_niu_oqdq (sii_niu_oqdq),
652 .sii_niu_bqdq (sii_niu_bqdq),
653 .wreq_cmdff_rd (wreq_cmdff_rd),
654 .wreq_cmdff_rdata (wreq_cmdff_rdata[65:0]),
655 .wreq_cmdff_empty (wreq_cmdff_empty),
656 .wreq_pcmd_ff_rd (wreq_pcmd_ff_rd),
657 .wreq_pcmd_ff_rdata (wreq_pcmd_ff_rdata[3:0]),
658 .wreq_pcmd_ff_empty (wreq_pcmd_ff_empty),
659 .rdreq_cmdff_rd (rdreq_cmdff_rd),
660 .rdreq_cmdff_rdata (rdreq_cmdff_rdata[65:0]),
661 .rdreq_cmdff_empty (rdreq_cmdff_empty),
662 .wreq_dataff_rd (wreq_dataff_rd),
663 .wreq_dataff_rdata (wreq_dataff_rdata[127:0]),
664 .wreq_dataff_empty (wreq_dataff_empty),
665 .siireq_idle (siireq_idle),
666 .sii_cs (sii_cs[1:0]),
667 .arb_cs (arb_cs[1:0]),
668 .tid_valid_rdata_bus (tid_valid_rdata_bus[63:0]),
669 .tid_xmited_set (tid_xmited_set),
670 .tid_xmited_set_addr (tid_xmited_set_addr[5:0])
671 );
672
673niu_smx_resp_sio resp_sio (
674 .clk (niu_clk),
675 .reset_l (niu_reset_l),
676 .sio_niu_hdr_vld (sio_niu_hdr_vld),
677 .sio_niu_datareq (sio_niu_datareq),
678 .sio_niu_data (sio_niu_data[127:0]),
679 .sio_niu_parity (sio_niu_parity[7:0]),
680 .resp_cmdff_wr (resp_cmdff_wr),
681 .resp_cmdff_wdata (resp_cmdff_wdata[21:0]),
682 .resp_cmdff_full (resp_cmdff_full),
683 .resp_dataff_wr (resp_dataff_wr),
684 .resp_dataff_wdata (resp_dataff_wdata[143:0]),
685 .resp_dataff_full (resp_dataff_full),
686 .ncu_niu_ctag_uei (ncu_niu_ctag_uei),
687 .ncu_niu_ctag_cei (ncu_niu_ctag_cei),
688 .ncu_niu_d_pei (ncu_niu_d_pei),
689 .niu_ncu_ctag_ue (niu_ncu_ctag_ue),
690 .niu_ncu_ctag_ce (niu_ncu_ctag_ce),
691 .niu_ncu_d_pe (niu_ncu_d_pe),
692 .reg_ras_cfg (reg_ras_cfg[1:0])
693 );
694
695niu_smx_resp_dmc resp_dmc (
696 .clk (niu_clk),
697 .reset_l (niu_reset_l),
698 .meta_dmc_resp_ready (meta_dmc_resp_ready),
699 .meta_dmc_resp_cmd (meta_dmc_resp_cmd[7:0]),
700 .meta_dmc_resp_cmd_status (meta_dmc_resp_cmd_status[3:0]),
701 .meta_dmc_resp_address (meta_dmc_resp_address[63:0]),
702 .meta_dmc_resp_length (meta_dmc_resp_length[13:0]),
703 .meta_dmc_resp_transID (meta_dmc_resp_transID[5:0]),
704 .meta_dmc_resp_port_num (meta_dmc_resp_port_num[1:0]),
705 .meta_dmc_resp_dma_num (meta_dmc_resp_dma_num[4:0]),
706 .meta_dmc_resp_client (meta_dmc_resp_client[7:0]),
707 .dmc_meta_resp_accept ({1'b0, 1'b0, rdmc_meta_resp_accept,
708 1'b0, 1'b0, tdmc_meta_resp_accept,
709 txc_meta_resp_accept, 1'b0}),
710 .meta_dmc_data_valid (meta_dmc_data_valid[7:0]),
711 .meta_dmc_data (meta_dmc_data[127:0]),
712 .meta_dmc_resp_byteenable (meta_dmc_resp_byteenable[15:0]),
713 .meta_dmc_data_status (meta_dmc_data_status[3:0]),
714 .meta_dmc_resp_complete (meta_dmc_resp_complete[7:0]),
715 .meta_dmc_resp_transfer_cmpl (meta_dmc_resp_transfer_cmpl[7:0]),
716 .meta_dmc_ack_ready (meta_dmc_ack_ready),
717 .meta_dmc_ack_cmd (meta_dmc_ack_cmd[7:0]),
718 .meta_dmc_ack_cmd_status (meta_dmc_ack_cmd_status[3:0]),
719 .meta_dmc_ack_transID (meta_dmc_ack_transID[5:0]),
720 .meta_dmc_ack_dma_num (meta_dmc_ack_dma_num[4:0]),
721 .meta_dmc_ack_client (meta_dmc_ack_client[7:0]),
722 .dmc_meta_ack_accept ({1'b0, 1'b0, 1'b0, rdmc_meta_ack_accept,
723 1'b0, tdmc_meta_ack_accept, 1'b0, 1'b0}),
724 .meta_dmc_ack_complete (meta_dmc_ack_complete),
725 .meta_dmc_ack_transfer_cmpl (meta_dmc_ack_transfer_cmpl[7:0]),
726 .niu_sio_dq (niu_sio_dq),
727 .xtb_rd (xtb_rd),
728 .xtb_raddr (xtb_raddr[5:0]),
729 .xtb_rdata (xtb_rdata[128:0]),
730 .xtb_rd_ack (xtb_rd_ack),
731 .xtb_rdata_err (xtb_rdata_err),
732 .xtb_rcvfile_update (xtb_rcvfile_update),
733 .xtb_rcvfile_update_addr (xtb_rcvfile_update_addr[5:0]),
734 .resp_cmdff_empty (resp_cmdff_empty),
735 .resp_cmdff_rdata (resp_cmdff_rdata[21:0]),
736 .resp_cmdff_rd (resp_cmdff_rd),
737 .resp_dataff_empty (resp_dataff_empty),
738 .resp_dataff_rdata (resp_dataff_rdata[143:0]),
739 .resp_dataff_rd (resp_dataff_rd),
740 .tid_valid_rst0 (tid_valid_rst0),
741 .tid_valid_rst_addr0 (tid_valid_rst_addr0[5:0]),
742 .tid_valid_rd (tid_valid_rd),
743 .tid_valid_raddr (tid_valid_raddr[5:0]),
744 .tid_valid_rdata (tid_valid_rdata),
745 .resp_rcv_set (resp_rcv_set),
746 .resp_rcv_set_addr (resp_rcv_set_addr[5:0]),
747 .tohdl_cmdl_req (tohdl_cmdl_req),
748 .tohdl_cmdl_cmd (tohdl_cmdl_cmd[7:0]),
749 .tohdl_cmdl_addr (tohdl_cmdl_addr[63:0]),
750 .tohdl_cmdl_len (tohdl_cmdl_len[13:0]),
751 .tohdl_cmdl_xid (tohdl_cmdl_xid[5:0]),
752 .tohdl_cmdl_port (tohdl_cmdl_port[1:0]),
753 .tohdl_cmdl_dma (tohdl_cmdl_dma[4:0]),
754 .tohdl_cmdl_client (tohdl_cmdl_client[7:0]),
755 .cmdl_tohdl_ack (cmdl_tohdl_ack),
756 .pio_resp_err_inject_cfg (pio_resp_err_inject_cfg[2:0]),
757 .cmdl_cs (cmdl_cs[2:0]),
758 .dv_cs (dv_cs[2:0]),
759 .proc_cs (proc_cs[1:0]),
760 .tid_dirty_rdata_bus (tid_dirty_rdata_bus[63:0])
761 );
762
763niu_smx_req_ff req_ff (
764 .clk (niu_clk),
765 .reset_l (niu_reset_l),
766 .rdreq_cmdff_wr (rdreq_cmdff_wr),
767 .rdreq_cmdff_wdata (rdreq_cmdff_wdata[65:0]),
768 .rdreq_cmdff_full (rdreq_cmdff_full),
769 .rdreq_cmdff_rd (rdreq_cmdff_rd),
770 .rdreq_cmdff_rdata (rdreq_cmdff_rdata[65:0]),
771 .rdreq_cmdff_empty (rdreq_cmdff_empty),
772 .wreq_cmdff_wr (wreq_cmdff_wr),
773 .wreq_cmdff_wdata (wreq_cmdff_wdata[65:0]),
774 .wreq_cmdff_full (wreq_cmdff_full),
775 .wreq_cmdff_rd (wreq_cmdff_rd),
776 .wreq_cmdff_rdata (wreq_cmdff_rdata[65:0]),
777 .wreq_cmdff_empty (wreq_cmdff_empty),
778 .wreq_dataff_wr (wreq_dataff_wr),
779 .wreq_dataff_wdata (wreq_dataff_wdata[127:0]),
780 .wreq_dataff_full (wreq_dataff_full),
781 .wreq_dataff_rd (wreq_dataff_rd),
782 .wreq_dataff_rdata (wreq_dataff_rdata[127:0]),
783 .wreq_dataff_empty (wreq_dataff_empty),
784 .wreq_pcmd_ff_wr (wreq_pcmd_ff_wr),
785 .wreq_pcmd_ff_wdata (wreq_pcmd_ff_wdata[3:0]),
786 .wreq_pcmd_ff_full (wreq_pcmd_ff_full),
787 .wreq_pcmd_ff_rd (wreq_pcmd_ff_rd),
788 .wreq_pcmd_ff_rdata (wreq_pcmd_ff_rdata[3:0]),
789 .wreq_pcmd_ff_empty (wreq_pcmd_ff_empty)
790 );
791
792niu_smx_resp_ff resp_ff (
793 .clk (niu_clk),
794 .iol2clk (iol2clk),
795 .reset_l (niu_reset_l),
796 .resp_cmdff_wr (resp_cmdff_wr),
797 .resp_cmdff_wdata (resp_cmdff_wdata[21:0]),
798 .resp_cmdff_full (resp_cmdff_full),
799 .resp_cmdff_rd (resp_cmdff_rd),
800 .resp_cmdff_rdata (resp_cmdff_rdata[21:0]),
801 .resp_cmdff_empty (resp_cmdff_empty),
802 .resp_dataff_wr (resp_dataff_wr),
803 .resp_dataff_wdata (resp_dataff_wdata[143:0]),
804 .resp_dataff_full (resp_dataff_full),
805 .resp_dataff_rd (resp_dataff_rd),
806 .resp_dataff_rdata (resp_dataff_rdata[143:0]),
807 .resp_dataff_empty (resp_dataff_empty),
808 .tcu_aclk (tcu_aclk),
809 .tcu_bclk (tcu_bclk),
810 .tcu_se_scancollar_in (tcu_se_scancollar_in),
811 .tcu_array_wr_inhibit (tcu_array_wr_inhibit),
812 .mb0_smx_store_32x146_scan_in (1'b0),
813 .mb0_smx_store_32x146_scan_out (niu_mb0_smx_store_scan_out),
814 .niu_mb0_smx_store_32x146_wdata (niu_mb0_wdata[7:0]),
815 .niu_mb0_smx_store_32x146_rd_addr (niu_mb0_addr[4:0]),
816 .niu_mb0_smx_store_32x146_wr_addr (niu_mb0_addr[4:0]),
817 .niu_mb0_smx_store_32x146_wr_en (niu_mb0_smx_store_wr_en),
818 .niu_mb0_smx_store_32x146_rd_en (niu_mb0_smx_store_rd_en),
819 .niu_mb0_run (niu_mb0_run),
820 .niu_mb0_smx_store_data_out (niu_mb0_smx_store_data_out[145:0])
821 );
822
823niu_smx_xtb xtb (
824 .clk (niu_clk),
825 .iol2clk (iol2clk),
826 .reset_l (niu_reset_l),
827 .rdreq_xtb_wr (rdreq_xtb_wr),
828 .rdreq_xtb_waddr (rdreq_xtb_waddr[5:0]),
829 .rdreq_xtb_wdata (rdreq_xtb_wdata[127:0]),
830 .rdreq_rst_xtb_wr (rdreq_rst_xtb_wr),
831 .wreq_xtb_wr (wreq_xtb_wr),
832 .wreq_xtb_waddr (wreq_xtb_waddr[5:0]),
833 .wreq_xtb_wdata (wreq_xtb_wdata[127:0]),
834 .wreq_rst_xtb_wr (wreq_rst_xtb_wr),
835 .xtb_rd (xtb_rd),
836 .xtb_raddr (xtb_raddr[5:0]),
837 .xtb_rdata (xtb_rdata[128:0]),
838 .xtb_rd_ack (xtb_rd_ack),
839 .xtb_rdata_err (xtb_rdata_err),
840 .xtb_rcvfile_update (xtb_rcvfile_update),
841 .xtb_rcvfile_update_addr (xtb_rcvfile_update_addr[5:0]),
842 .tid_valid_set (tid_valid_set),
843 .tid_valid_set_addr (tid_valid_set_addr[5:0]),
844 .tid_newarr_set (tid_newarr_set),
845 .tid_newarr_set_addr (tid_newarr_set_addr[5:0]),
846 .tohdl_xtb_rd (tohdl_xtb_rd),
847 .tohdl_xtb_raddr (tohdl_xtb_raddr[5:0]),
848 .tohdl_xtb_rdata (tohdl_xtb_rdata[118:0]),
849 .tohdl_xtb_rd_ack (tohdl_xtb_rd_ack),
850 .tohdl_xtb_rdata_err (tohdl_xtb_rdata_err),
851 .tcu_aclk (tcu_aclk),
852 .tcu_bclk (tcu_bclk),
853 .tcu_se_scancollar_in (tcu_se_scancollar_in),
854 .tcu_array_wr_inhibit (tcu_array_wr_inhibit),
855 .mb0_smx_table_64x146_scan_in (1'b0),
856 .mb0_smx_table_64x146_scan_out (niu_mb0_smx_table_scan_out),
857 .niu_mb0_smx_table_64x146_wdata (niu_mb0_wdata[7:0]),
858 .niu_mb0_smx_table_64x146_rd_addr (niu_mb0_addr[5:0]),
859 .niu_mb0_smx_table_64x146_wr_addr (niu_mb0_addr[5:0]),
860 .niu_mb0_smx_table_64x146_wr_en (niu_mb0_smx_table_wr_en),
861 .niu_mb0_smx_table_64x146_rd_en (niu_mb0_smx_table_rd_en),
862 .niu_mb0_run (niu_mb0_run),
863 .niu_mb0_smx_table_data_out (niu_mb0_smx_table_data_out[145:0]),
864 .pio_xtb_err_inject_cfg (pio_xtb_err_inject_cfg[2:0])
865 );
866
867niu_smx_status flag_status (
868 .clk (niu_clk),
869 .reset_l (niu_reset_l),
870 .tid_valid_rst0 (tid_valid_rst0),
871 .tid_valid_rst1 (tid_valid_rst1),
872 .tid_valid_rst_addr0 (tid_valid_rst_addr0[5:0]),
873 .tid_valid_rst_addr1 (tid_valid_rst_addr1[5:0]),
874 .tid_valid_set (tid_valid_set),
875 .tid_valid_set_addr (tid_valid_set_addr[5:0]),
876 .tid_valid_rd (tid_valid_rd),
877 .tid_valid_raddr (tid_valid_raddr[5:0]),
878 .tid_valid_rdata (tid_valid_rdata),
879 .tid_valid_rdata_bus (tid_valid_rdata_bus[63:0]),
880 .tid_newarr_rst (tid_newarr_rst),
881 .tid_newarr_rst_addr (tid_newarr_rst_addr[5:0]),
882 .tid_newarr_set (tid_newarr_set),
883 .tid_newarr_set_addr (tid_newarr_set_addr[5:0]),
884 .tid_newarr_rd (1'b0),
885 .tid_newarr_raddr ({6{1'b0}}),
886 .tid_newarr_rdata (),
887 .tid_newarr_rdata_bus (tid_newarr_rdata_bus[63:0]),
888 .resp_rcv_rst (resp_rcv_rst),
889 .resp_rcv_rst_addr (resp_rcv_rst_addr[5:0]),
890 .resp_rcv_set (resp_rcv_set),
891 .resp_rcv_set_addr (resp_rcv_set_addr[5:0]),
892 .resp_rcv_rd (1'b0),
893 .resp_rcv_raddr ({6{1'b0}}),
894 .resp_rcv_rdata (),
895 .resp_rcv_rdata_bus (resp_rcv_rdata_bus[63:0]),
896 .timeout_set (timeout_set),
897 .timeout_rst (timeout_rst),
898 .timeout_set_addr (timeout_set_addr[5:0]),
899 .timeout_rst_addr (timeout_rst_addr[5:0]),
900 .timeout_rd (1'b0),
901 .timeout_raddr ({6{1'b0}}),
902 .timeout_rdata (),
903 .timeout_rdata_bus (timeout_rdata_bus[63:0]),
904 .tid_xmited_set (tid_xmited_set),
905 .tid_xmited_set_addr (tid_xmited_set_addr[5:0]),
906 .tid_xmited_rdata_bus (tid_xmited_rdata_bus[63:0]),
907 .tid_dirty_rdata_bus (tid_dirty_rdata_bus[63:0])
908 );
909
910niu_smx_timer timer (
911 .clk (niu_clk),
912 .reset_l (niu_reset_l),
913 .reg_timer_cfg (reg_timer_cfg[31:0]),
914 .resp_rcv_rdata_bus (resp_rcv_rdata_bus[63:0]),
915 .resp_rcv_rst (resp_rcv_rst),
916 .resp_rcv_rst_addr (resp_rcv_rst_addr[5:0]),
917 .tid_valid_rdata_bus (tid_valid_rdata_bus[63:0]),
918 .tid_valid_rst1 (tid_valid_rst1),
919 .tid_valid_rst_addr1 (tid_valid_rst_addr1[5:0]),
920 .tid_newarr_rdata_bus (tid_newarr_rdata_bus[63:0]),
921 .tid_newarr_rst (tid_newarr_rst),
922 .tid_newarr_rst_addr (tid_newarr_rst_addr[5:0]),
923 .timeout_set (timeout_set),
924 .timeout_set_addr (timeout_set_addr[5:0]),
925 .tid_xmited_rdata_bus (tid_xmited_rdata_bus[63:0])
926 );
927
928niu_smx_timeout_hdlr timeout_hdlr (
929 .clk (niu_clk),
930 .reset_l (niu_reset_l),
931 .timeout_rdata_bus (timeout_rdata_bus[63:0]),
932 .timeout_rst (timeout_rst),
933 .timeout_rst_addr (timeout_rst_addr[5:0]),
934 .tohdl_cmdl_req (tohdl_cmdl_req),
935 .tohdl_cmdl_cmd (tohdl_cmdl_cmd[7:0]),
936 .tohdl_cmdl_addr (tohdl_cmdl_addr[63:0]),
937 .tohdl_cmdl_len (tohdl_cmdl_len[13:0]),
938 .tohdl_cmdl_xid (tohdl_cmdl_xid[5:0]),
939 .tohdl_cmdl_port (tohdl_cmdl_port[1:0]),
940 .tohdl_cmdl_dma (tohdl_cmdl_dma[4:0]),
941 .tohdl_cmdl_client (tohdl_cmdl_client[7:0]),
942 .cmdl_tohdl_ack (cmdl_tohdl_ack),
943 .tohdl_xtb_rd (tohdl_xtb_rd),
944 .tohdl_xtb_raddr (tohdl_xtb_raddr[5:0]),
945 .tohdl_xtb_rdata (tohdl_xtb_rdata[118:0]),
946 .tohdl_xtb_rd_ack (tohdl_xtb_rd_ack),
947 .tohdl_xtb_rdata_err (tohdl_xtb_rdata_err),
948 .smx_nc_err (smx_nc_err),
949 .tohdl_set_intr (tohdl_set_intr),
950 .tohdl_intr_status (tohdl_intr_status[5:0])
951 );
952
953niu_smx_stall_hdlr stall_hdlr (
954 .clk (niu_clk),
955 .reset_l (niu_reset_l),
956 .dbg1_niu_stall (dbg1_niu_stall),
957 .dbg1_niu_resume (dbg1_niu_resume),
958 .niu_dbg1_stall_ack (niu_dbg1_stall_ack),
959 .tid_valid_rdata_bus (tid_valid_rdata_bus[63:0]),
960 .stall_enable (stall_enable),
961 .wreq_cmdreq_idle (wreq_cmdreq_idle),
962 .rdreq_cmdreq_idle (rdreq_cmdreq_idle),
963 .wreq_cmdff_empty (wreq_cmdff_empty),
964 .rdreq_cmdff_empty (rdreq_cmdff_empty),
965 .siireq_idle (siireq_idle),
966 .smx_nc_err (smx_nc_err)
967 );
968
969niu_smx_pio pio (
970 .clk (niu_clk),
971 .reset_l (niu_reset_l),
972 .reg_timer_cfg (reg_timer_cfg[31:0]),
973 .reg_ras_cfg (reg_ras_cfg[1:0]),
974 .pio_data (pio_smx_cfg_data),
975 .smx_pio_intr (smx_pio_intr),
976 .smx_pio_status (smx_pio_status[31:0]),
977 .pio_smx_clear_intr (pio_smx_clear_intr),
978 .pio_smx_ctrl (pio_smx_ctrl[31:0]),
979 .pio_smx_debug_vector (pio_smx_debug_vector[31:0]),
980 .smx_debug_port (smx_debug_port[31:0]),
981 .tohdl_set_intr (tohdl_set_intr),
982 .tohdl_intr_status (tohdl_intr_status[5:0]),
983 .pio_xtb_err_inject_cfg (pio_xtb_err_inject_cfg[2:0]),
984 .pio_resp_err_inject_cfg (pio_resp_err_inject_cfg[2:0]),
985 .niu_sii_hdr_vld (niu_sii_hdr_vld),
986 .niu_sii_reqbypass (niu_sii_reqbypass),
987 .niu_sii_datareq (niu_sii_datareq),
988 .sii_niu_oqdq (sii_niu_oqdq),
989 .sii_niu_bqdq (sii_niu_bqdq),
990 .wreq_cmdff_rd (wreq_cmdff_rd),
991 .rdreq_cmdff_rd (rdreq_cmdff_rd),
992 .wreq_dataff_rd (wreq_dataff_rd),
993 .wreq_cmdff_wr (wreq_cmdff_wr),
994 .rdreq_cmdff_wr (rdreq_cmdff_wr),
995 .wreq_dataff_wr (wreq_dataff_wr),
996 .sio_niu_hdr_vld (sio_niu_hdr_vld),
997 .sio_niu_datareq (sio_niu_datareq),
998 .niu_sio_dq (niu_sio_dq),
999 .resp_cmdff_wr (resp_cmdff_wr),
1000 .resp_dataff_wr (resp_dataff_wr),
1001 .resp_cmdff_rd (resp_cmdff_rd),
1002 .resp_dataff_rd (resp_dataff_rd),
1003 .meta_dmc_resp_ready (meta_dmc_resp_ready),
1004 .meta_dmc_ack_ready (meta_dmc_ack_ready),
1005 .dmc_meta0_req (dmc_meta0_req),
1006 .meta_dmc1_req_accept (meta_dmc1_req_accept),
1007 .dmc_meta1_req (dmc_meta1_req),
1008 .meta_dmc0_req_accept (meta_dmc0_req_accept),
1009 .meta_dmc0_data_req (meta_dmc0_data_req),
1010 .dmc_meta0_data_valid (dmc_meta0_data_valid),
1011 .sii_cs (sii_cs[1:0]),
1012 .arb_cs (arb_cs[1:0]),
1013 .rdreq_cmd_cs (rdreq_cmd_cs[2:0]),
1014 .wreq_cmd_cs (wreq_cmd_cs[2:0]),
1015 .wreq_dv_cs (wreq_dv_cs[1:0]),
1016 .dreq_cs (dreq_cs[2:0]),
1017 .proc_cs (proc_cs[1:0]),
1018 .cmdl_cs (cmdl_cs[2:0]),
1019 .dv_cs (dv_cs[2:0])
1020 );
1021
1022niu_mb0 niu_mb0 (
1023 .niu_mb0_smx_table_rd_en (niu_mb0_smx_table_rd_en),
1024 .niu_mb0_smx_table_wr_en (niu_mb0_smx_table_wr_en),
1025 .niu_mb0_smx_store_rd_en (niu_mb0_smx_store_rd_en),
1026 .niu_mb0_smx_store_wr_en (niu_mb0_smx_store_wr_en),
1027 .niu_mb0_addr (niu_mb0_addr[5:0]),
1028 .niu_mb0_wdata (niu_mb0_wdata[7:0]),
1029 .niu_mb0_run (niu_mb0_run),
1030 .niu_tcu_mbist_fail_0 (tds_smx_tcu_mbist_fail),
1031 .niu_tcu_mbist_done_0 (tds_smx_tcu_mbist_done),
1032 .mb0_scan_out (tds_smx_mbist_scan_out),
1033 .l1clk (niu_clk),
1034 .rst_l (niu_reset_l),
1035 .tcu_mbist_user_mode (tcu_mbist_user_mode),
1036 .mb0_scan_in (tds_smx_mbist_scan_in),
1037 .tcu_aclk (tcu_aclk),
1038 .tcu_bclk (tcu_bclk),
1039 .tcu_niu_mbist_start_0 (tcu_tds_smx_mbist_start),
1040 .niu_mb0_smx_table_data_out (niu_mb0_smx_table_data_out[145:0]),
1041 .niu_mb0_smx_store_data_out (niu_mb0_smx_store_data_out[145:0]),
1042 .tcu_mbist_bisi_en (tcu_mbist_bisi_en)
1043 );
1044// VPERL: GENERATED_END
1045
1046// &CONNECT ("rm.rmreset", "buf_reset_r");
1047// niu_smx_rdreq_dmc
1048// niu_smx_wreq_dmc
1049// niu_smx_resp_dmc
1050// niu_smx_req_sii
1051// niu_smx_resp_sio
1052// niu_smx_req_ff
1053// niu_smx_resp_ff
1054// niu_smx_xtb
1055
1056
1057
1058assign meta_dmc0_req_errors= 1'b0; // ??? not use by anyone
1059assign meta_dmc1_req_errors= 1'b0; // ??? not use by anyone
1060
1061
1062endmodule
1063
1064
1065