Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: dmu_mmu_csr_csr.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_mmu_csr_csr | |
36 | ( | |
37 | clk, | |
38 | csrbus_addr, | |
39 | csrbus_wr_data, | |
40 | csrbus_wr, | |
41 | csrbus_valid, | |
42 | csrbus_mapped, | |
43 | csrbus_done, | |
44 | csrbus_read_data, | |
45 | rst_l, | |
46 | por_l, | |
47 | csrbus_src_bus, | |
48 | csrbus_acc_vio, | |
49 | instance_id, | |
50 | ext_addr, | |
51 | ext_wr, | |
52 | ext_wr_data, | |
53 | ctl_spares_hw_write, | |
54 | ctl_paq_hw_write, | |
55 | ctl_vaq_hw_write, | |
56 | ctl_tpl_hw_write, | |
57 | ctl_tip_hw_write, | |
58 | ctl_tcm_hw_write, | |
59 | ctl_sparec_hw_read, | |
60 | ctl_pd_hw_read, | |
61 | ctl_se_hw_read, | |
62 | ctl_cm_hw_read, | |
63 | ctl_busid_sel_hw_read, | |
64 | ctl_sun4v_en_hw_read, | |
65 | ctl_be_hw_read, | |
66 | ctl_te_hw_read, | |
67 | tsb_tb_hw_read, | |
68 | tsb_ps_hw_read, | |
69 | tsb_ts_hw_read, | |
70 | inv_ext_select, | |
71 | log_en_hw_read, | |
72 | int_en_hw_read, | |
73 | en_err_err_s_ext_read_data, | |
74 | en_err_err_p_ext_read_data, | |
75 | err_hw_set, | |
76 | err_hw_read, | |
77 | flta_va_hw_ld, | |
78 | flta_va_hw_write, | |
79 | flts_entry_hw_ld, | |
80 | flts_entry_hw_write, | |
81 | flts_type_hw_ld, | |
82 | flts_type_hw_write, | |
83 | flts_id_hw_ld, | |
84 | flts_id_hw_write, | |
85 | prfc_sel1_hw_read, | |
86 | prfc_sel0_hw_read, | |
87 | prf0_cnt_hw_write, | |
88 | prf0_cnt_hw_read, | |
89 | prf1_cnt_hw_write, | |
90 | prf1_cnt_hw_read, | |
91 | vtb_hw_acc_jtag_rd, | |
92 | vtb_hw_acc_jtag_wr, | |
93 | vtb_hw_acc_pio_slow_rd, | |
94 | vtb_hw_acc_pio_slow_wr, | |
95 | vtb_hw_acc_pio_med_rd, | |
96 | vtb_hw_acc_pio_med_wr, | |
97 | vtb_hw_acc_pio_fast_rd, | |
98 | vtb_hw_acc_pio_fast_wr, | |
99 | vtb_ext_select, | |
100 | vtb_ext_read_data, | |
101 | ptb_hw_acc_jtag_rd, | |
102 | ptb_hw_acc_jtag_wr, | |
103 | ptb_hw_acc_pio_slow_rd, | |
104 | ptb_hw_acc_pio_slow_wr, | |
105 | ptb_hw_acc_pio_med_rd, | |
106 | ptb_hw_acc_pio_med_wr, | |
107 | ptb_hw_acc_pio_fast_rd, | |
108 | ptb_hw_acc_pio_fast_wr, | |
109 | ptb_ext_select, | |
110 | ptb_ext_read_data, | |
111 | tdb_hw_acc_jtag_rd, | |
112 | tdb_hw_acc_jtag_wr, | |
113 | tdb_hw_acc_pio_slow_rd, | |
114 | tdb_hw_acc_pio_slow_wr, | |
115 | tdb_hw_acc_pio_med_rd, | |
116 | tdb_hw_acc_pio_med_wr, | |
117 | tdb_hw_acc_pio_fast_rd, | |
118 | tdb_hw_acc_pio_fast_wr, | |
119 | tdb_ext_select, | |
120 | tdb_ext_read_data, | |
121 | dev2iotsb_hw_acc_jtag_rd, | |
122 | dev2iotsb_hw_acc_jtag_wr, | |
123 | dev2iotsb_hw_acc_pio_slow_rd, | |
124 | dev2iotsb_hw_acc_pio_slow_wr, | |
125 | dev2iotsb_hw_acc_pio_med_rd, | |
126 | dev2iotsb_hw_acc_pio_med_wr, | |
127 | dev2iotsb_hw_acc_pio_fast_rd, | |
128 | dev2iotsb_hw_acc_pio_fast_wr, | |
129 | dev2iotsb_ext_select, | |
130 | dev2iotsb_ext_read_data, | |
131 | dev2iotsb_ext_done, | |
132 | IotsbDesc_hw_acc_jtag_rd, | |
133 | IotsbDesc_hw_acc_jtag_wr, | |
134 | IotsbDesc_hw_acc_pio_slow_rd, | |
135 | IotsbDesc_hw_acc_pio_slow_wr, | |
136 | IotsbDesc_hw_acc_pio_med_rd, | |
137 | IotsbDesc_hw_acc_pio_med_wr, | |
138 | IotsbDesc_hw_acc_pio_fast_rd, | |
139 | IotsbDesc_hw_acc_pio_fast_wr, | |
140 | IotsbDesc_ext_select, | |
141 | IotsbDesc_ext_read_data, | |
142 | IotsbDesc_ext_done | |
143 | ); | |
144 | ||
145 | //==================================================== | |
146 | // Polarity declarations | |
147 | //==================================================== | |
148 | input clk; // Clock signal | |
149 | input [`FIRE_CSRBUS_ADDR_WIDTH-1:0] csrbus_addr; // Address bus | |
150 | input [`FIRE_CSRBUS_DATA_WIDTH-1:0] csrbus_wr_data; // SW write data | |
151 | input csrbus_wr; // Read/Write signal | |
152 | input csrbus_valid; // Valid address | |
153 | output csrbus_mapped; // Address is mapped | |
154 | output csrbus_done; // Operation is done | |
155 | output [`FIRE_CSRBUS_DATA_WIDTH-1:0] csrbus_read_data; // SW read data bus | |
156 | input rst_l; // Reset signal | |
157 | input por_l; // Reset signal | |
158 | input [1:0] csrbus_src_bus; // Source bus | |
159 | output csrbus_acc_vio; // Violation signal | |
160 | input instance_id; // Instance ID | |
161 | output [8:0] ext_addr; // External address bus for dcm csr | |
162 | output ext_wr; // When one, csr operation is a write. When zero, operation is a | |
163 | // read. | |
164 | output [`FIRE_CSRBUS_DATA_WIDTH-1:0] ext_wr_data; // Provides SW write data for | |
165 | // all external registers in | |
166 | // default_grp | |
167 | input [`FIRE_DLC_MMU_CSR_CTL_SPARES_INT_SLC] ctl_spares_hw_write; | |
168 | // data bus for hw loading of ctl_spares. | |
169 | input ctl_paq_hw_write; // data bus for hw loading of ctl_paq. | |
170 | input ctl_vaq_hw_write; // data bus for hw loading of ctl_vaq. | |
171 | input ctl_tpl_hw_write; // data bus for hw loading of ctl_tpl. | |
172 | input ctl_tip_hw_write; // data bus for hw loading of ctl_tip. | |
173 | input [`FIRE_DLC_MMU_CSR_CTL_TCM_INT_SLC] ctl_tcm_hw_write; // data bus for hw | |
174 | // loading of | |
175 | // ctl_tcm. | |
176 | output [`FIRE_DLC_MMU_CSR_CTL_SPAREC_INT_SLC] ctl_sparec_hw_read; | |
177 | // This signal provides the current value of ctl_sparec. | |
178 | output ctl_pd_hw_read; // This signal provides the current value of ctl_pd. | |
179 | output ctl_se_hw_read; // This signal provides the current value of ctl_se. | |
180 | output [`FIRE_DLC_MMU_CSR_CTL_CM_INT_SLC] ctl_cm_hw_read; // This signal | |
181 | // provides the | |
182 | // current value of | |
183 | // ctl_cm. | |
184 | output ctl_busid_sel_hw_read; // This signal provides the current value of | |
185 | // ctl_busid_sel. | |
186 | output ctl_sun4v_en_hw_read; // This signal provides the current value of | |
187 | // ctl_sun4v_en. | |
188 | output ctl_be_hw_read; // This signal provides the current value of ctl_be. | |
189 | output ctl_te_hw_read; // This signal provides the current value of ctl_te. | |
190 | output [`FIRE_DLC_MMU_CSR_TSB_TB_INT_SLC] tsb_tb_hw_read; // This signal | |
191 | // provides the | |
192 | // current value of | |
193 | // tsb_tb. | |
194 | output tsb_ps_hw_read; // This signal provides the current value of tsb_ps. | |
195 | output [`FIRE_DLC_MMU_CSR_TSB_TS_INT_SLC] tsb_ts_hw_read; // This signal | |
196 | // provides the | |
197 | // current value of | |
198 | // tsb_ts. | |
199 | output inv_ext_select; // When set, register inv is selected. This signal is a | |
200 | // pulse. | |
201 | output [`FIRE_DLC_MMU_CSR_LOG_EN_INT_SLC] log_en_hw_read; // This signal | |
202 | // provides the | |
203 | // current value of | |
204 | // log_en. | |
205 | output [`FIRE_DLC_MMU_CSR_INT_EN_WIDTH-1:0] int_en_hw_read; // This signal | |
206 | // provides the | |
207 | // current value of | |
208 | // int_en. | |
209 | input [20:0] en_err_err_s_ext_read_data; // Ext read data (decode) | |
210 | input [20:0] en_err_err_p_ext_read_data; // Ext read data (decode) | |
211 | input [`FIRE_DLC_MMU_CSR_ERR_RW1C_ALIAS_WIDTH-1:0] err_hw_set; // Hardware set | |
212 | // signal for | |
213 | // err. When | |
214 | // set err will | |
215 | // be set to | |
216 | // one. | |
217 | output [`FIRE_DLC_MMU_CSR_ERR_RW1C_ALIAS_WIDTH-1:0] err_hw_read; // This signal | |
218 | // provides | |
219 | // the current | |
220 | // value of | |
221 | // err. | |
222 | input flta_va_hw_ld; // Hardware load enable for flta_va. When set, <hw write | |
223 | // signal> will be loaded into flta. | |
224 | input [`FIRE_DLC_MMU_CSR_FLTA_VA_INT_SLC] flta_va_hw_write; // data bus for hw | |
225 | // loading of | |
226 | // flta_va. | |
227 | input flts_entry_hw_ld; // Hardware load enable for flts_entry. When set, <hw | |
228 | // write signal> will be loaded into flts. | |
229 | input [`FIRE_DLC_MMU_CSR_FLTS_ENTRY_INT_SLC] flts_entry_hw_write; | |
230 | // data bus for hw loading of flts_entry. | |
231 | input flts_type_hw_ld; // Hardware load enable for flts_type. When set, <hw | |
232 | // write signal> will be loaded into flts. | |
233 | input [`FIRE_DLC_MMU_CSR_FLTS_TYPE_INT_SLC] flts_type_hw_write; // data bus | |
234 | // for hw | |
235 | // loading of | |
236 | // flts_type. | |
237 | input flts_id_hw_ld; // Hardware load enable for flts_id. When set, <hw write | |
238 | // signal> will be loaded into flts. | |
239 | input [`FIRE_DLC_MMU_CSR_FLTS_ID_INT_SLC] flts_id_hw_write; // data bus for hw | |
240 | // loading of | |
241 | // flts_id. | |
242 | output [`FIRE_DLC_MMU_CSR_PRFC_SEL1_INT_SLC] prfc_sel1_hw_read; // This signal | |
243 | // provides the | |
244 | // current | |
245 | // value of | |
246 | // prfc_sel1. | |
247 | output [`FIRE_DLC_MMU_CSR_PRFC_SEL0_INT_SLC] prfc_sel0_hw_read; // This signal | |
248 | // provides the | |
249 | // current | |
250 | // value of | |
251 | // prfc_sel0. | |
252 | input [`FIRE_DLC_MMU_CSR_PRF0_CNT_INT_SLC] prf0_cnt_hw_write; // data bus for | |
253 | // hw loading of | |
254 | // prf0_cnt. | |
255 | output [`FIRE_DLC_MMU_CSR_PRF0_CNT_INT_SLC] prf0_cnt_hw_read; // This signal | |
256 | // provides the | |
257 | // current value | |
258 | // of prf0_cnt. | |
259 | input [`FIRE_DLC_MMU_CSR_PRF1_CNT_INT_SLC] prf1_cnt_hw_write; // data bus for | |
260 | // hw loading of | |
261 | // prf1_cnt. | |
262 | output [`FIRE_DLC_MMU_CSR_PRF1_CNT_INT_SLC] prf1_cnt_hw_read; // This signal | |
263 | // provides the | |
264 | // current value | |
265 | // of prf1_cnt. | |
266 | input vtb_hw_acc_jtag_rd; // This signal enables reading of register vtb by | |
267 | // jtag. | |
268 | input vtb_hw_acc_jtag_wr; // This signal enables writing of register vtb by | |
269 | // jtag. | |
270 | input vtb_hw_acc_pio_slow_rd; // This signal enables reading of register vtb | |
271 | // by pio_slow. | |
272 | input vtb_hw_acc_pio_slow_wr; // This signal enables writing of register vtb | |
273 | // by pio_slow. | |
274 | input vtb_hw_acc_pio_med_rd; // This signal enables reading of register vtb by | |
275 | // pio_med. | |
276 | input vtb_hw_acc_pio_med_wr; // This signal enables writing of register vtb by | |
277 | // pio_med. | |
278 | input vtb_hw_acc_pio_fast_rd; // This signal enables reading of register vtb | |
279 | // by pio_fast. | |
280 | input vtb_hw_acc_pio_fast_wr; // This signal enables writing of register vtb | |
281 | // by pio_fast. | |
282 | output vtb_ext_select; // When set, register vtb is selected. This signal is a | |
283 | // pulse. | |
284 | input [`FIRE_CSRBUS_DATA_WIDTH-1:0] vtb_ext_read_data; // Read data from the | |
285 | // external bypass | |
286 | // register | |
287 | input ptb_hw_acc_jtag_rd; // This signal enables reading of register ptb by | |
288 | // jtag. | |
289 | input ptb_hw_acc_jtag_wr; // This signal enables writing of register ptb by | |
290 | // jtag. | |
291 | input ptb_hw_acc_pio_slow_rd; // This signal enables reading of register ptb | |
292 | // by pio_slow. | |
293 | input ptb_hw_acc_pio_slow_wr; // This signal enables writing of register ptb | |
294 | // by pio_slow. | |
295 | input ptb_hw_acc_pio_med_rd; // This signal enables reading of register ptb by | |
296 | // pio_med. | |
297 | input ptb_hw_acc_pio_med_wr; // This signal enables writing of register ptb by | |
298 | // pio_med. | |
299 | input ptb_hw_acc_pio_fast_rd; // This signal enables reading of register ptb | |
300 | // by pio_fast. | |
301 | input ptb_hw_acc_pio_fast_wr; // This signal enables writing of register ptb | |
302 | // by pio_fast. | |
303 | output ptb_ext_select; // When set, register ptb is selected. This signal is a | |
304 | // pulse. | |
305 | input [`FIRE_CSRBUS_DATA_WIDTH-1:0] ptb_ext_read_data; // Read data from the | |
306 | // external bypass | |
307 | // register | |
308 | input tdb_hw_acc_jtag_rd; // This signal enables reading of register tdb by | |
309 | // jtag. | |
310 | input tdb_hw_acc_jtag_wr; // This signal enables writing of register tdb by | |
311 | // jtag. | |
312 | input tdb_hw_acc_pio_slow_rd; // This signal enables reading of register tdb | |
313 | // by pio_slow. | |
314 | input tdb_hw_acc_pio_slow_wr; // This signal enables writing of register tdb | |
315 | // by pio_slow. | |
316 | input tdb_hw_acc_pio_med_rd; // This signal enables reading of register tdb by | |
317 | // pio_med. | |
318 | input tdb_hw_acc_pio_med_wr; // This signal enables writing of register tdb by | |
319 | // pio_med. | |
320 | input tdb_hw_acc_pio_fast_rd; // This signal enables reading of register tdb | |
321 | // by pio_fast. | |
322 | input tdb_hw_acc_pio_fast_wr; // This signal enables writing of register tdb | |
323 | // by pio_fast. | |
324 | output tdb_ext_select; // When set, register tdb is selected. This signal is a | |
325 | // pulse. | |
326 | input [`FIRE_CSRBUS_DATA_WIDTH-1:0] tdb_ext_read_data; // Read data from the | |
327 | // external bypass | |
328 | // register | |
329 | input dev2iotsb_hw_acc_jtag_rd; // This signal enables reading of register | |
330 | // dev2iotsb by jtag. | |
331 | input dev2iotsb_hw_acc_jtag_wr; // This signal enables writing of register | |
332 | // dev2iotsb by jtag. | |
333 | input dev2iotsb_hw_acc_pio_slow_rd; // This signal enables reading of register | |
334 | // dev2iotsb by pio_slow. | |
335 | input dev2iotsb_hw_acc_pio_slow_wr; // This signal enables writing of register | |
336 | // dev2iotsb by pio_slow. | |
337 | input dev2iotsb_hw_acc_pio_med_rd; // This signal enables reading of register | |
338 | // dev2iotsb by pio_med. | |
339 | input dev2iotsb_hw_acc_pio_med_wr; // This signal enables writing of register | |
340 | // dev2iotsb by pio_med. | |
341 | input dev2iotsb_hw_acc_pio_fast_rd; // This signal enables reading of register | |
342 | // dev2iotsb by pio_fast. | |
343 | input dev2iotsb_hw_acc_pio_fast_wr; // This signal enables writing of register | |
344 | // dev2iotsb by pio_fast. | |
345 | output dev2iotsb_ext_select; // When set, register dev2iotsb is selected. This | |
346 | // signal is a pulse. | |
347 | input [`FIRE_CSRBUS_DATA_WIDTH-1:0] dev2iotsb_ext_read_data; // Read data from | |
348 | // the external | |
349 | // bypass | |
350 | // register | |
351 | input dev2iotsb_ext_done; // This signal acknowledges read and write | |
352 | // operations for register dev2iotsb. For read | |
353 | // operations, it indicates that the | |
354 | // dev2iotsb_ext_read_data signals are valid. For | |
355 | // write operations, it indicates that the write | |
356 | // operation is complete, and that <dcm>_ext_wr_data | |
357 | // may be removed on the next cycle. | |
358 | input IotsbDesc_hw_acc_jtag_rd; // This signal enables reading of register | |
359 | // IotsbDesc by jtag. | |
360 | input IotsbDesc_hw_acc_jtag_wr; // This signal enables writing of register | |
361 | // IotsbDesc by jtag. | |
362 | input IotsbDesc_hw_acc_pio_slow_rd; // This signal enables reading of register | |
363 | // IotsbDesc by pio_slow. | |
364 | input IotsbDesc_hw_acc_pio_slow_wr; // This signal enables writing of register | |
365 | // IotsbDesc by pio_slow. | |
366 | input IotsbDesc_hw_acc_pio_med_rd; // This signal enables reading of register | |
367 | // IotsbDesc by pio_med. | |
368 | input IotsbDesc_hw_acc_pio_med_wr; // This signal enables writing of register | |
369 | // IotsbDesc by pio_med. | |
370 | input IotsbDesc_hw_acc_pio_fast_rd; // This signal enables reading of register | |
371 | // IotsbDesc by pio_fast. | |
372 | input IotsbDesc_hw_acc_pio_fast_wr; // This signal enables writing of register | |
373 | // IotsbDesc by pio_fast. | |
374 | output IotsbDesc_ext_select; // When set, register IotsbDesc is selected. This | |
375 | // signal is a pulse. | |
376 | input [`FIRE_CSRBUS_DATA_WIDTH-1:0] IotsbDesc_ext_read_data; // Read data from | |
377 | // the external | |
378 | // bypass | |
379 | // register | |
380 | input IotsbDesc_ext_done; // This signal acknowledges read and write | |
381 | // operations for register IotsbDesc. For read | |
382 | // operations, it indicates that the | |
383 | // IotsbDesc_ext_read_data signals are valid. For | |
384 | // write operations, it indicates that the write | |
385 | // operation is complete, and that <dcm>_ext_wr_data | |
386 | // may be removed on the next cycle. | |
387 | ||
388 | //==================================================== | |
389 | // Type declarations | |
390 | //==================================================== | |
391 | wire clk; // Clock signal | |
392 | wire [`FIRE_CSRBUS_ADDR_WIDTH-1:0] csrbus_addr; // Address bus | |
393 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] csrbus_wr_data; // SW write data | |
394 | wire csrbus_wr; // Read/Write signal | |
395 | wire csrbus_valid; // Valid address | |
396 | wire csrbus_mapped; // Address is mapped | |
397 | wire csrbus_done; // Operation is done | |
398 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] csrbus_read_data; // SW read data bus | |
399 | wire rst_l; // Reset signal | |
400 | wire por_l; // Reset signal | |
401 | wire [1:0] csrbus_src_bus; // Source bus | |
402 | wire csrbus_acc_vio; // Violation signal | |
403 | wire instance_id; // Instance ID | |
404 | wire [8:0] ext_addr; // External address bus for dcm csr | |
405 | wire ext_wr; // When one, csr operation is a write. When zero, operation is a | |
406 | // read. | |
407 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] ext_wr_data; // Provides SW write data for | |
408 | // all external registers in | |
409 | // default_grp | |
410 | wire [`FIRE_DLC_MMU_CSR_CTL_SPARES_INT_SLC] ctl_spares_hw_write; // data bus | |
411 | // for hw | |
412 | // loading of | |
413 | // ctl_spares. | |
414 | wire ctl_paq_hw_write; // data bus for hw loading of ctl_paq. | |
415 | wire ctl_vaq_hw_write; // data bus for hw loading of ctl_vaq. | |
416 | wire ctl_tpl_hw_write; // data bus for hw loading of ctl_tpl. | |
417 | wire ctl_tip_hw_write; // data bus for hw loading of ctl_tip. | |
418 | wire [`FIRE_DLC_MMU_CSR_CTL_TCM_INT_SLC] ctl_tcm_hw_write; // data bus for hw | |
419 | // loading of | |
420 | // ctl_tcm. | |
421 | wire [`FIRE_DLC_MMU_CSR_CTL_SPAREC_INT_SLC] ctl_sparec_hw_read; // This signal | |
422 | // provides the | |
423 | // current | |
424 | // value of | |
425 | // ctl_sparec. | |
426 | wire ctl_pd_hw_read; // This signal provides the current value of ctl_pd. | |
427 | wire ctl_se_hw_read; // This signal provides the current value of ctl_se. | |
428 | wire [`FIRE_DLC_MMU_CSR_CTL_CM_INT_SLC] ctl_cm_hw_read; // This signal provides | |
429 | // the current value of | |
430 | // ctl_cm. | |
431 | wire ctl_busid_sel_hw_read; // This signal provides the current value of | |
432 | // ctl_busid_sel. | |
433 | wire ctl_sun4v_en_hw_read; // This signal provides the current value of | |
434 | // ctl_sun4v_en. | |
435 | wire ctl_be_hw_read; // This signal provides the current value of ctl_be. | |
436 | wire ctl_te_hw_read; // This signal provides the current value of ctl_te. | |
437 | wire [`FIRE_DLC_MMU_CSR_TSB_TB_INT_SLC] tsb_tb_hw_read; // This signal provides | |
438 | // the current value of | |
439 | // tsb_tb. | |
440 | wire tsb_ps_hw_read; // This signal provides the current value of tsb_ps. | |
441 | wire [`FIRE_DLC_MMU_CSR_TSB_TS_INT_SLC] tsb_ts_hw_read; // This signal provides | |
442 | // the current value of | |
443 | // tsb_ts. | |
444 | wire inv_ext_select; // When set, register inv is selected. This signal is a | |
445 | // pulse. | |
446 | wire [`FIRE_DLC_MMU_CSR_LOG_EN_INT_SLC] log_en_hw_read; // This signal provides | |
447 | // the current value of | |
448 | // log_en. | |
449 | wire [`FIRE_DLC_MMU_CSR_INT_EN_WIDTH-1:0] int_en_hw_read; // This signal | |
450 | // provides the | |
451 | // current value of | |
452 | // int_en. | |
453 | wire [20:0] en_err_err_s_ext_read_data; // Ext read data (decode) | |
454 | wire [20:0] en_err_err_p_ext_read_data; // Ext read data (decode) | |
455 | wire [`FIRE_DLC_MMU_CSR_ERR_RW1C_ALIAS_WIDTH-1:0] err_hw_set; // Hardware set | |
456 | // signal for | |
457 | // err. When set | |
458 | // err will be | |
459 | // set to one. | |
460 | wire [`FIRE_DLC_MMU_CSR_ERR_RW1C_ALIAS_WIDTH-1:0] err_hw_read; // This signal | |
461 | // provides the | |
462 | // current value | |
463 | // of err. | |
464 | wire flta_va_hw_ld; // Hardware load enable for flta_va. When set, <hw write | |
465 | // signal> will be loaded into flta. | |
466 | wire [`FIRE_DLC_MMU_CSR_FLTA_VA_INT_SLC] flta_va_hw_write; // data bus for hw | |
467 | // loading of | |
468 | // flta_va. | |
469 | wire flts_entry_hw_ld; // Hardware load enable for flts_entry. When set, <hw | |
470 | // write signal> will be loaded into flts. | |
471 | wire [`FIRE_DLC_MMU_CSR_FLTS_ENTRY_INT_SLC] flts_entry_hw_write; // data bus | |
472 | // for hw | |
473 | // loading of | |
474 | // flts_entry. | |
475 | wire flts_type_hw_ld; // Hardware load enable for flts_type. When set, <hw | |
476 | // write signal> will be loaded into flts. | |
477 | wire [`FIRE_DLC_MMU_CSR_FLTS_TYPE_INT_SLC] flts_type_hw_write; // data bus for | |
478 | // hw loading of | |
479 | // flts_type. | |
480 | wire flts_id_hw_ld; // Hardware load enable for flts_id. When set, <hw write | |
481 | // signal> will be loaded into flts. | |
482 | wire [`FIRE_DLC_MMU_CSR_FLTS_ID_INT_SLC] flts_id_hw_write; // data bus for hw | |
483 | // loading of | |
484 | // flts_id. | |
485 | wire [`FIRE_DLC_MMU_CSR_PRFC_SEL1_INT_SLC] prfc_sel1_hw_read; // This signal | |
486 | // provides the | |
487 | // current value | |
488 | // of prfc_sel1. | |
489 | wire [`FIRE_DLC_MMU_CSR_PRFC_SEL0_INT_SLC] prfc_sel0_hw_read; // This signal | |
490 | // provides the | |
491 | // current value | |
492 | // of prfc_sel0. | |
493 | wire [`FIRE_DLC_MMU_CSR_PRF0_CNT_INT_SLC] prf0_cnt_hw_write; // data bus for hw | |
494 | // loading of | |
495 | // prf0_cnt. | |
496 | wire [`FIRE_DLC_MMU_CSR_PRF0_CNT_INT_SLC] prf0_cnt_hw_read; // This signal | |
497 | // provides the | |
498 | // current value of | |
499 | // prf0_cnt. | |
500 | wire [`FIRE_DLC_MMU_CSR_PRF1_CNT_INT_SLC] prf1_cnt_hw_write; // data bus for hw | |
501 | // loading of | |
502 | // prf1_cnt. | |
503 | wire [`FIRE_DLC_MMU_CSR_PRF1_CNT_INT_SLC] prf1_cnt_hw_read; // This signal | |
504 | // provides the | |
505 | // current value of | |
506 | // prf1_cnt. | |
507 | wire vtb_hw_acc_jtag_rd; // This signal enables reading of register vtb by | |
508 | // jtag. | |
509 | wire vtb_hw_acc_jtag_wr; // This signal enables writing of register vtb by | |
510 | // jtag. | |
511 | wire vtb_hw_acc_pio_slow_rd; // This signal enables reading of register vtb by | |
512 | // pio_slow. | |
513 | wire vtb_hw_acc_pio_slow_wr; // This signal enables writing of register vtb by | |
514 | // pio_slow. | |
515 | wire vtb_hw_acc_pio_med_rd; // This signal enables reading of register vtb by | |
516 | // pio_med. | |
517 | wire vtb_hw_acc_pio_med_wr; // This signal enables writing of register vtb by | |
518 | // pio_med. | |
519 | wire vtb_hw_acc_pio_fast_rd; // This signal enables reading of register vtb by | |
520 | // pio_fast. | |
521 | wire vtb_hw_acc_pio_fast_wr; // This signal enables writing of register vtb by | |
522 | // pio_fast. | |
523 | wire vtb_ext_select; // When set, register vtb is selected. This signal is a | |
524 | // pulse. | |
525 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] vtb_ext_read_data; // Read data from the | |
526 | // external bypass | |
527 | // register | |
528 | wire ptb_hw_acc_jtag_rd; // This signal enables reading of register ptb by | |
529 | // jtag. | |
530 | wire ptb_hw_acc_jtag_wr; // This signal enables writing of register ptb by | |
531 | // jtag. | |
532 | wire ptb_hw_acc_pio_slow_rd; // This signal enables reading of register ptb by | |
533 | // pio_slow. | |
534 | wire ptb_hw_acc_pio_slow_wr; // This signal enables writing of register ptb by | |
535 | // pio_slow. | |
536 | wire ptb_hw_acc_pio_med_rd; // This signal enables reading of register ptb by | |
537 | // pio_med. | |
538 | wire ptb_hw_acc_pio_med_wr; // This signal enables writing of register ptb by | |
539 | // pio_med. | |
540 | wire ptb_hw_acc_pio_fast_rd; // This signal enables reading of register ptb by | |
541 | // pio_fast. | |
542 | wire ptb_hw_acc_pio_fast_wr; // This signal enables writing of register ptb by | |
543 | // pio_fast. | |
544 | wire ptb_ext_select; // When set, register ptb is selected. This signal is a | |
545 | // pulse. | |
546 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] ptb_ext_read_data; // Read data from the | |
547 | // external bypass | |
548 | // register | |
549 | wire tdb_hw_acc_jtag_rd; // This signal enables reading of register tdb by | |
550 | // jtag. | |
551 | wire tdb_hw_acc_jtag_wr; // This signal enables writing of register tdb by | |
552 | // jtag. | |
553 | wire tdb_hw_acc_pio_slow_rd; // This signal enables reading of register tdb by | |
554 | // pio_slow. | |
555 | wire tdb_hw_acc_pio_slow_wr; // This signal enables writing of register tdb by | |
556 | // pio_slow. | |
557 | wire tdb_hw_acc_pio_med_rd; // This signal enables reading of register tdb by | |
558 | // pio_med. | |
559 | wire tdb_hw_acc_pio_med_wr; // This signal enables writing of register tdb by | |
560 | // pio_med. | |
561 | wire tdb_hw_acc_pio_fast_rd; // This signal enables reading of register tdb by | |
562 | // pio_fast. | |
563 | wire tdb_hw_acc_pio_fast_wr; // This signal enables writing of register tdb by | |
564 | // pio_fast. | |
565 | wire tdb_ext_select; // When set, register tdb is selected. This signal is a | |
566 | // pulse. | |
567 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] tdb_ext_read_data; // Read data from the | |
568 | // external bypass | |
569 | // register | |
570 | wire dev2iotsb_hw_acc_jtag_rd; // This signal enables reading of register | |
571 | // dev2iotsb by jtag. | |
572 | wire dev2iotsb_hw_acc_jtag_wr; // This signal enables writing of register | |
573 | // dev2iotsb by jtag. | |
574 | wire dev2iotsb_hw_acc_pio_slow_rd; // This signal enables reading of register | |
575 | // dev2iotsb by pio_slow. | |
576 | wire dev2iotsb_hw_acc_pio_slow_wr; // This signal enables writing of register | |
577 | // dev2iotsb by pio_slow. | |
578 | wire dev2iotsb_hw_acc_pio_med_rd; // This signal enables reading of register | |
579 | // dev2iotsb by pio_med. | |
580 | wire dev2iotsb_hw_acc_pio_med_wr; // This signal enables writing of register | |
581 | // dev2iotsb by pio_med. | |
582 | wire dev2iotsb_hw_acc_pio_fast_rd; // This signal enables reading of register | |
583 | // dev2iotsb by pio_fast. | |
584 | wire dev2iotsb_hw_acc_pio_fast_wr; // This signal enables writing of register | |
585 | // dev2iotsb by pio_fast. | |
586 | wire dev2iotsb_ext_select; // When set, register dev2iotsb is selected. This | |
587 | // signal is a pulse. | |
588 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] dev2iotsb_ext_read_data; // Read data from | |
589 | // the external | |
590 | // bypass register | |
591 | wire dev2iotsb_ext_done; // This signal acknowledges read and write operations | |
592 | // for register dev2iotsb. For read operations, it | |
593 | // indicates that the dev2iotsb_ext_read_data signals | |
594 | // are valid. For write operations, it indicates that | |
595 | // the write operation is complete, and that | |
596 | // <dcm>_ext_wr_data may be removed on the next cycle. | |
597 | wire IotsbDesc_hw_acc_jtag_rd; // This signal enables reading of register | |
598 | // IotsbDesc by jtag. | |
599 | wire IotsbDesc_hw_acc_jtag_wr; // This signal enables writing of register | |
600 | // IotsbDesc by jtag. | |
601 | wire IotsbDesc_hw_acc_pio_slow_rd; // This signal enables reading of register | |
602 | // IotsbDesc by pio_slow. | |
603 | wire IotsbDesc_hw_acc_pio_slow_wr; // This signal enables writing of register | |
604 | // IotsbDesc by pio_slow. | |
605 | wire IotsbDesc_hw_acc_pio_med_rd; // This signal enables reading of register | |
606 | // IotsbDesc by pio_med. | |
607 | wire IotsbDesc_hw_acc_pio_med_wr; // This signal enables writing of register | |
608 | // IotsbDesc by pio_med. | |
609 | wire IotsbDesc_hw_acc_pio_fast_rd; // This signal enables reading of register | |
610 | // IotsbDesc by pio_fast. | |
611 | wire IotsbDesc_hw_acc_pio_fast_wr; // This signal enables writing of register | |
612 | // IotsbDesc by pio_fast. | |
613 | wire IotsbDesc_ext_select; // When set, register IotsbDesc is selected. This | |
614 | // signal is a pulse. | |
615 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] IotsbDesc_ext_read_data; // Read data from | |
616 | // the external | |
617 | // bypass register | |
618 | wire IotsbDesc_ext_done; // This signal acknowledges read and write operations | |
619 | // for register IotsbDesc. For read operations, it | |
620 | // indicates that the IotsbDesc_ext_read_data signals | |
621 | // are valid. For write operations, it indicates that | |
622 | // the write operation is complete, and that | |
623 | // <dcm>_ext_wr_data may be removed on the next cycle. | |
624 | ||
625 | //==================================================== | |
626 | // Logic | |
627 | //==================================================== | |
628 | wire daemon_transaction_in_progress; | |
629 | wire daemon_csrbus_mapped; | |
630 | wire daemon_csrbus_valid; | |
631 | // vlint flag_dangling_net_within_module off | |
632 | // vlint flag_net_has_no_load off | |
633 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] daemon_csrbus_wr_data_tmp; | |
634 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] daemon_csrbus_wr_data; | |
635 | // vlint flag_dangling_net_within_module on | |
636 | // vlint flag_net_has_no_load on | |
637 | wire daemon_csrbus_done; | |
638 | wire [`FIRE_CSRBUS_ADDR_WIDTH-1:0] daemon_csrbus_addr; | |
639 | wire daemon_csrbus_wr_tmp; | |
640 | wire daemon_csrbus_wr; | |
641 | ||
642 | //summit modcovoff -bepgnv | |
643 | pcie_dcm_daemon #(`FIRE_CSRBUS_ADDR_WIDTH,`FIRE_CSRBUS_DATA_WIDTH) pcie_dcm_daemon ( | |
644 | .daemon_csrbus_valid (daemon_csrbus_valid), | |
645 | .daemon_csrbus_mapped (daemon_csrbus_mapped), | |
646 | .daemon_csrbus_wr_data (daemon_csrbus_wr_data_tmp), | |
647 | .daemon_csrbus_done (daemon_csrbus_done), | |
648 | .daemon_csrbus_addr (daemon_csrbus_addr), | |
649 | .daemon_csrbus_wr (daemon_csrbus_wr_tmp), | |
650 | .daemon_transaction_in_progress (daemon_transaction_in_progress), | |
651 | // synopsys translate_off | |
652 | .clk(clk), | |
653 | .csrbus_read_data (csrbus_read_data), | |
654 | .rst_l (rst_l), | |
655 | // synopsys translate_on | |
656 | .csrbus_valid (csrbus_valid), | |
657 | .csrbus_mapped (csrbus_mapped), | |
658 | .csrbus_wr_data (csrbus_wr_data), | |
659 | .csrbus_done (csrbus_done), | |
660 | .csrbus_addr (csrbus_addr), | |
661 | .csrbus_wr (csrbus_wr) | |
662 | ); | |
663 | //summit modcovon -bepgnv | |
664 | ||
665 | //==================================================================== | |
666 | // Address decode | |
667 | //==================================================================== | |
668 | wire ctl_select_pulse; | |
669 | wire tsb_select_pulse; | |
670 | wire fsh_select_pulse; | |
671 | wire inv_select; | |
672 | wire log_select_pulse; | |
673 | wire int_en_select_pulse; | |
674 | wire en_err_select; | |
675 | wire err_select_pulse; | |
676 | wire flta_select_pulse; | |
677 | wire flts_select_pulse; | |
678 | wire prfc_select_pulse; | |
679 | wire prf0_select_pulse; | |
680 | wire prf1_select_pulse; | |
681 | wire vtb_select; | |
682 | wire ptb_select; | |
683 | wire tdb_select; | |
684 | wire dev2iotsb_select; | |
685 | wire IotsbDesc_select; | |
686 | wire err_rw1c_alias; | |
687 | wire err_rw1s_alias; | |
688 | wire stage_mux_only_ext_done_0_out; | |
689 | ||
690 | dmu_mmu_csr_addr_decode dmu_mmu_csr_addr_decode | |
691 | ( | |
692 | .clk (clk), | |
693 | .rst_l (rst_l), | |
694 | .daemon_csrbus_valid (daemon_csrbus_valid), | |
695 | .daemon_csrbus_addr (daemon_csrbus_addr), | |
696 | .csrbus_src_bus (csrbus_src_bus), | |
697 | .daemon_csrbus_wr (daemon_csrbus_wr_tmp), | |
698 | .daemon_csrbus_wr_out (daemon_csrbus_wr), | |
699 | .daemon_csrbus_wr_data (daemon_csrbus_wr_data_tmp), | |
700 | .daemon_csrbus_wr_data_out (daemon_csrbus_wr_data), | |
701 | .daemon_csrbus_mapped (daemon_csrbus_mapped), | |
702 | .csrbus_acc_vio (csrbus_acc_vio), | |
703 | .daemon_transaction_in_progress (daemon_transaction_in_progress), | |
704 | .instance_id (instance_id), | |
705 | .daemon_csrbus_done (daemon_csrbus_done), | |
706 | .stage_mux_only_ext_done_0_out (stage_mux_only_ext_done_0_out), | |
707 | .ctl_select_pulse (ctl_select_pulse), | |
708 | .tsb_select_pulse (tsb_select_pulse), | |
709 | .fsh_select_pulse (fsh_select_pulse), | |
710 | .inv_select (inv_select), | |
711 | .log_select_pulse (log_select_pulse), | |
712 | .int_en_select_pulse (int_en_select_pulse), | |
713 | .en_err_select (en_err_select), | |
714 | .err_select_pulse (err_select_pulse), | |
715 | .err_rw1c_alias (err_rw1c_alias), | |
716 | .err_rw1s_alias (err_rw1s_alias), | |
717 | .flta_select_pulse (flta_select_pulse), | |
718 | .flts_select_pulse (flts_select_pulse), | |
719 | .prfc_select_pulse (prfc_select_pulse), | |
720 | .prf0_select_pulse (prf0_select_pulse), | |
721 | .prf1_select_pulse (prf1_select_pulse), | |
722 | .vtb_select (vtb_select), | |
723 | .vtb_hw_acc_jtag_rd (vtb_hw_acc_jtag_rd), | |
724 | .vtb_hw_acc_jtag_wr (vtb_hw_acc_jtag_wr), | |
725 | .vtb_hw_acc_pio_slow_rd (vtb_hw_acc_pio_slow_rd), | |
726 | .vtb_hw_acc_pio_slow_wr (vtb_hw_acc_pio_slow_wr), | |
727 | .vtb_hw_acc_pio_med_rd (vtb_hw_acc_pio_med_rd), | |
728 | .vtb_hw_acc_pio_med_wr (vtb_hw_acc_pio_med_wr), | |
729 | .vtb_hw_acc_pio_fast_rd (vtb_hw_acc_pio_fast_rd), | |
730 | .vtb_hw_acc_pio_fast_wr (vtb_hw_acc_pio_fast_wr), | |
731 | .ptb_select (ptb_select), | |
732 | .ptb_hw_acc_jtag_rd (ptb_hw_acc_jtag_rd), | |
733 | .ptb_hw_acc_jtag_wr (ptb_hw_acc_jtag_wr), | |
734 | .ptb_hw_acc_pio_slow_rd (ptb_hw_acc_pio_slow_rd), | |
735 | .ptb_hw_acc_pio_slow_wr (ptb_hw_acc_pio_slow_wr), | |
736 | .ptb_hw_acc_pio_med_rd (ptb_hw_acc_pio_med_rd), | |
737 | .ptb_hw_acc_pio_med_wr (ptb_hw_acc_pio_med_wr), | |
738 | .ptb_hw_acc_pio_fast_rd (ptb_hw_acc_pio_fast_rd), | |
739 | .ptb_hw_acc_pio_fast_wr (ptb_hw_acc_pio_fast_wr), | |
740 | .tdb_select (tdb_select), | |
741 | .tdb_hw_acc_jtag_rd (tdb_hw_acc_jtag_rd), | |
742 | .tdb_hw_acc_jtag_wr (tdb_hw_acc_jtag_wr), | |
743 | .tdb_hw_acc_pio_slow_rd (tdb_hw_acc_pio_slow_rd), | |
744 | .tdb_hw_acc_pio_slow_wr (tdb_hw_acc_pio_slow_wr), | |
745 | .tdb_hw_acc_pio_med_rd (tdb_hw_acc_pio_med_rd), | |
746 | .tdb_hw_acc_pio_med_wr (tdb_hw_acc_pio_med_wr), | |
747 | .tdb_hw_acc_pio_fast_rd (tdb_hw_acc_pio_fast_rd), | |
748 | .tdb_hw_acc_pio_fast_wr (tdb_hw_acc_pio_fast_wr), | |
749 | .dev2iotsb_select (dev2iotsb_select), | |
750 | .dev2iotsb_hw_acc_jtag_rd (dev2iotsb_hw_acc_jtag_rd), | |
751 | .dev2iotsb_hw_acc_jtag_wr (dev2iotsb_hw_acc_jtag_wr), | |
752 | .dev2iotsb_hw_acc_pio_slow_rd (dev2iotsb_hw_acc_pio_slow_rd), | |
753 | .dev2iotsb_hw_acc_pio_slow_wr (dev2iotsb_hw_acc_pio_slow_wr), | |
754 | .dev2iotsb_hw_acc_pio_med_rd (dev2iotsb_hw_acc_pio_med_rd), | |
755 | .dev2iotsb_hw_acc_pio_med_wr (dev2iotsb_hw_acc_pio_med_wr), | |
756 | .dev2iotsb_hw_acc_pio_fast_rd (dev2iotsb_hw_acc_pio_fast_rd), | |
757 | .dev2iotsb_hw_acc_pio_fast_wr (dev2iotsb_hw_acc_pio_fast_wr), | |
758 | .IotsbDesc_select (IotsbDesc_select), | |
759 | .IotsbDesc_hw_acc_jtag_rd (IotsbDesc_hw_acc_jtag_rd), | |
760 | .IotsbDesc_hw_acc_jtag_wr (IotsbDesc_hw_acc_jtag_wr), | |
761 | .IotsbDesc_hw_acc_pio_slow_rd (IotsbDesc_hw_acc_pio_slow_rd), | |
762 | .IotsbDesc_hw_acc_pio_slow_wr (IotsbDesc_hw_acc_pio_slow_wr), | |
763 | .IotsbDesc_hw_acc_pio_med_rd (IotsbDesc_hw_acc_pio_med_rd), | |
764 | .IotsbDesc_hw_acc_pio_med_wr (IotsbDesc_hw_acc_pio_med_wr), | |
765 | .IotsbDesc_hw_acc_pio_fast_rd (IotsbDesc_hw_acc_pio_fast_rd), | |
766 | .IotsbDesc_hw_acc_pio_fast_wr (IotsbDesc_hw_acc_pio_fast_wr) | |
767 | ); | |
768 | ||
769 | //==================================================================== | |
770 | // OUTPUT: csrbus_read_data (pipelining) | |
771 | //==================================================================== | |
772 | //----- connecting wires | |
773 | wire stage_2_default_grp_rst_l; | |
774 | wire stage_2_default_grp_por_l; | |
775 | wire stage_mux_only_rst_l; | |
776 | wire stage_mux_only_por_l; | |
777 | wire stage_2_default_grp_err_rw1c_alias; | |
778 | wire stage_2_default_grp_err_rw1s_alias; | |
779 | wire [8:0] stage_2_default_grp_ext_addr; | |
780 | wire stage_2_default_grp_daemon_csrbus_wr; | |
781 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] stage_2_default_grp_daemon_csrbus_wr_data; | |
782 | wire stage_mux_only_err_rw1c_alias; | |
783 | wire stage_mux_only_err_rw1s_alias; | |
784 | wire [8:0] stage_mux_only_ext_addr; | |
785 | wire stage_mux_only_daemon_csrbus_wr; | |
786 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] stage_mux_only_daemon_csrbus_wr_data; | |
787 | ||
788 | //----- Stage: 1 / Grp: default_grp (17 inputs / 2 outputs) | |
789 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] default_grp_read_data_0_out; | |
790 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] default_grp_read_data_1_out; | |
791 | wire default_grp_ext_done_0_out; | |
792 | wire default_grp_ctl_select_pulse; | |
793 | wire default_grp_tsb_select_pulse; | |
794 | wire default_grp_fsh_select_pulse; | |
795 | wire default_grp_inv_select; | |
796 | wire default_grp_log_select_pulse; | |
797 | wire default_grp_int_en_select_pulse; | |
798 | wire default_grp_en_err_select; | |
799 | wire default_grp_err_select_pulse; | |
800 | wire default_grp_flta_select_pulse; | |
801 | wire default_grp_flts_select_pulse; | |
802 | wire default_grp_prfc_select_pulse; | |
803 | wire default_grp_prf0_select_pulse; | |
804 | wire default_grp_prf1_select_pulse; | |
805 | wire default_grp_vtb_select; | |
806 | wire default_grp_ptb_select; | |
807 | wire default_grp_tdb_select; | |
808 | wire default_grp_dev2iotsb_select; | |
809 | wire default_grp_IotsbDesc_select; | |
810 | ||
811 | dmu_mmu_csr_default_grp dmu_mmu_csr_default_grp | |
812 | ( | |
813 | .clk (clk), | |
814 | .ctl_spares_hw_write (ctl_spares_hw_write), | |
815 | .ctl_paq_hw_write (ctl_paq_hw_write), | |
816 | .ctl_vaq_hw_write (ctl_vaq_hw_write), | |
817 | .ctl_tpl_hw_write (ctl_tpl_hw_write), | |
818 | .ctl_tip_hw_write (ctl_tip_hw_write), | |
819 | .ctl_tcm_hw_write (ctl_tcm_hw_write), | |
820 | .ctl_sparec_hw_read (ctl_sparec_hw_read), | |
821 | .ctl_pd_hw_read (ctl_pd_hw_read), | |
822 | .ctl_se_hw_read (ctl_se_hw_read), | |
823 | .ctl_cm_hw_read (ctl_cm_hw_read), | |
824 | .ctl_busid_sel_hw_read (ctl_busid_sel_hw_read), | |
825 | .ctl_sun4v_en_hw_read (ctl_sun4v_en_hw_read), | |
826 | .ctl_be_hw_read (ctl_be_hw_read), | |
827 | .ctl_te_hw_read (ctl_te_hw_read), | |
828 | .ctl_select_pulse (default_grp_ctl_select_pulse), | |
829 | .tsb_tb_hw_read (tsb_tb_hw_read), | |
830 | .tsb_ps_hw_read (tsb_ps_hw_read), | |
831 | .tsb_ts_hw_read (tsb_ts_hw_read), | |
832 | .tsb_select_pulse (default_grp_tsb_select_pulse), | |
833 | .fsh_select_pulse (default_grp_fsh_select_pulse), | |
834 | .inv_ext_select (inv_ext_select), | |
835 | .inv_select (default_grp_inv_select), | |
836 | .log_en_hw_read (log_en_hw_read), | |
837 | .log_select_pulse (default_grp_log_select_pulse), | |
838 | .int_en_hw_read (int_en_hw_read), | |
839 | .int_en_select_pulse (default_grp_int_en_select_pulse), | |
840 | .en_err_select (default_grp_en_err_select), | |
841 | .en_err_ext_read_data | |
842 | ( | |
843 | { | |
844 | 11'b0, | |
845 | en_err_err_s_ext_read_data, | |
846 | 11'b0, | |
847 | en_err_err_p_ext_read_data | |
848 | }), | |
849 | .err_hw_set (err_hw_set), | |
850 | .err_hw_read (err_hw_read), | |
851 | .err_select_pulse (default_grp_err_select_pulse), | |
852 | .flta_va_hw_ld (flta_va_hw_ld), | |
853 | .flta_va_hw_write (flta_va_hw_write), | |
854 | .flta_select_pulse (default_grp_flta_select_pulse), | |
855 | .flts_entry_hw_ld (flts_entry_hw_ld), | |
856 | .flts_entry_hw_write (flts_entry_hw_write), | |
857 | .flts_type_hw_ld (flts_type_hw_ld), | |
858 | .flts_type_hw_write (flts_type_hw_write), | |
859 | .flts_id_hw_ld (flts_id_hw_ld), | |
860 | .flts_id_hw_write (flts_id_hw_write), | |
861 | .flts_select_pulse (default_grp_flts_select_pulse), | |
862 | .prfc_sel1_hw_read (prfc_sel1_hw_read), | |
863 | .prfc_sel0_hw_read (prfc_sel0_hw_read), | |
864 | .prfc_select_pulse (default_grp_prfc_select_pulse), | |
865 | .prf0_cnt_hw_write (prf0_cnt_hw_write), | |
866 | .prf0_cnt_hw_read (prf0_cnt_hw_read), | |
867 | .prf0_select_pulse (default_grp_prf0_select_pulse), | |
868 | .prf1_cnt_hw_write (prf1_cnt_hw_write), | |
869 | .prf1_cnt_hw_read (prf1_cnt_hw_read), | |
870 | .prf1_select_pulse (default_grp_prf1_select_pulse), | |
871 | .vtb_ext_select (vtb_ext_select), | |
872 | .vtb_select (default_grp_vtb_select), | |
873 | .vtb_ext_read_data (vtb_ext_read_data), | |
874 | .ptb_ext_select (ptb_ext_select), | |
875 | .ptb_select (default_grp_ptb_select), | |
876 | .ptb_ext_read_data (ptb_ext_read_data), | |
877 | .tdb_ext_select (tdb_ext_select), | |
878 | .tdb_select (default_grp_tdb_select), | |
879 | .tdb_ext_read_data (tdb_ext_read_data), | |
880 | .dev2iotsb_ext_select (dev2iotsb_ext_select), | |
881 | .dev2iotsb_select (default_grp_dev2iotsb_select), | |
882 | .dev2iotsb_ext_read_data (dev2iotsb_ext_read_data), | |
883 | .dev2iotsb_ext_done (dev2iotsb_ext_done), | |
884 | .IotsbDesc_ext_select (IotsbDesc_ext_select), | |
885 | .IotsbDesc_select (default_grp_IotsbDesc_select), | |
886 | .IotsbDesc_ext_read_data (IotsbDesc_ext_read_data), | |
887 | .IotsbDesc_ext_done (IotsbDesc_ext_done), | |
888 | .err_rw1c_alias (stage_2_default_grp_err_rw1c_alias), | |
889 | .err_rw1s_alias (stage_2_default_grp_err_rw1s_alias), | |
890 | .rst_l (stage_2_default_grp_rst_l), | |
891 | .por_l (stage_2_default_grp_por_l), | |
892 | .daemon_csrbus_wr_in (stage_2_default_grp_daemon_csrbus_wr), | |
893 | .daemon_csrbus_wr_out (ext_wr), | |
894 | .daemon_csrbus_wr_data_in (stage_2_default_grp_daemon_csrbus_wr_data), | |
895 | .daemon_csrbus_wr_data_out (ext_wr_data), | |
896 | .ext_addr_in (stage_2_default_grp_ext_addr[8:0]), | |
897 | .ext_addr_out (ext_addr), | |
898 | .read_data_0_out (default_grp_read_data_0_out), | |
899 | .read_data_1_out (default_grp_read_data_1_out), | |
900 | .ext_done_0_out (default_grp_ext_done_0_out) | |
901 | ); | |
902 | ||
903 | //----- Stage: 2 / Grp: stage_2_default_grp (2 inputs / 1 outputs) | |
904 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] stage_2_default_grp_read_data_0_out; | |
905 | wire stage_2_default_grp_ext_done_0_out; | |
906 | wire stage_2_default_grp_ctl_select_pulse; | |
907 | wire stage_2_default_grp_tsb_select_pulse; | |
908 | wire stage_2_default_grp_fsh_select_pulse; | |
909 | wire stage_2_default_grp_inv_select; | |
910 | wire stage_2_default_grp_log_select_pulse; | |
911 | wire stage_2_default_grp_int_en_select_pulse; | |
912 | wire stage_2_default_grp_en_err_select; | |
913 | wire stage_2_default_grp_err_select_pulse; | |
914 | wire stage_2_default_grp_flta_select_pulse; | |
915 | wire stage_2_default_grp_flts_select_pulse; | |
916 | wire stage_2_default_grp_prfc_select_pulse; | |
917 | wire stage_2_default_grp_prf0_select_pulse; | |
918 | wire stage_2_default_grp_prf1_select_pulse; | |
919 | wire stage_2_default_grp_vtb_select; | |
920 | wire stage_2_default_grp_ptb_select; | |
921 | wire stage_2_default_grp_tdb_select; | |
922 | wire stage_2_default_grp_dev2iotsb_select; | |
923 | wire stage_2_default_grp_IotsbDesc_select; | |
924 | ||
925 | dmu_mmu_csr_stage_2_default_grp dmu_mmu_csr_stage_2_default_grp | |
926 | ( | |
927 | .clk (clk), | |
928 | .read_data_0 (default_grp_read_data_0_out), | |
929 | .read_data_1 (default_grp_read_data_1_out), | |
930 | .ext_done_0 (default_grp_ext_done_0_out), | |
931 | .ctl_select_pulse (stage_2_default_grp_ctl_select_pulse), | |
932 | .ctl_select_pulse_out (default_grp_ctl_select_pulse), | |
933 | .tsb_select_pulse (stage_2_default_grp_tsb_select_pulse), | |
934 | .tsb_select_pulse_out (default_grp_tsb_select_pulse), | |
935 | .fsh_select_pulse (stage_2_default_grp_fsh_select_pulse), | |
936 | .fsh_select_pulse_out (default_grp_fsh_select_pulse), | |
937 | .inv_select (stage_2_default_grp_inv_select), | |
938 | .inv_select_out (default_grp_inv_select), | |
939 | .log_select_pulse (stage_2_default_grp_log_select_pulse), | |
940 | .log_select_pulse_out (default_grp_log_select_pulse), | |
941 | .int_en_select_pulse (stage_2_default_grp_int_en_select_pulse), | |
942 | .int_en_select_pulse_out (default_grp_int_en_select_pulse), | |
943 | .en_err_select (stage_2_default_grp_en_err_select), | |
944 | .en_err_select_out (default_grp_en_err_select), | |
945 | .err_select_pulse (stage_2_default_grp_err_select_pulse), | |
946 | .err_select_pulse_out (default_grp_err_select_pulse), | |
947 | .flta_select_pulse (stage_2_default_grp_flta_select_pulse), | |
948 | .flta_select_pulse_out (default_grp_flta_select_pulse), | |
949 | .flts_select_pulse (stage_2_default_grp_flts_select_pulse), | |
950 | .flts_select_pulse_out (default_grp_flts_select_pulse), | |
951 | .prfc_select_pulse (stage_2_default_grp_prfc_select_pulse), | |
952 | .prfc_select_pulse_out (default_grp_prfc_select_pulse), | |
953 | .prf0_select_pulse (stage_2_default_grp_prf0_select_pulse), | |
954 | .prf0_select_pulse_out (default_grp_prf0_select_pulse), | |
955 | .prf1_select_pulse (stage_2_default_grp_prf1_select_pulse), | |
956 | .prf1_select_pulse_out (default_grp_prf1_select_pulse), | |
957 | .vtb_select (stage_2_default_grp_vtb_select), | |
958 | .vtb_select_out (default_grp_vtb_select), | |
959 | .ptb_select (stage_2_default_grp_ptb_select), | |
960 | .ptb_select_out (default_grp_ptb_select), | |
961 | .tdb_select (stage_2_default_grp_tdb_select), | |
962 | .tdb_select_out (default_grp_tdb_select), | |
963 | .dev2iotsb_select (stage_2_default_grp_dev2iotsb_select), | |
964 | .dev2iotsb_select_out (default_grp_dev2iotsb_select), | |
965 | .IotsbDesc_select (stage_2_default_grp_IotsbDesc_select), | |
966 | .IotsbDesc_select_out (default_grp_IotsbDesc_select), | |
967 | .err_rw1c_alias (stage_mux_only_err_rw1c_alias), | |
968 | .err_rw1c_alias_out (stage_2_default_grp_err_rw1c_alias), | |
969 | .err_rw1s_alias (stage_mux_only_err_rw1s_alias), | |
970 | .err_rw1s_alias_out (stage_2_default_grp_err_rw1s_alias), | |
971 | .rst_l (stage_mux_only_rst_l), | |
972 | .rst_l_out (stage_2_default_grp_rst_l), | |
973 | .por_l (stage_mux_only_por_l), | |
974 | .por_l_out (stage_2_default_grp_por_l), | |
975 | .daemon_csrbus_wr_in (stage_mux_only_daemon_csrbus_wr), | |
976 | .daemon_csrbus_wr_out (stage_2_default_grp_daemon_csrbus_wr), | |
977 | .daemon_csrbus_wr_data_in (stage_mux_only_daemon_csrbus_wr_data), | |
978 | .daemon_csrbus_wr_data_out (stage_2_default_grp_daemon_csrbus_wr_data), | |
979 | .ext_addr_in (stage_mux_only_ext_addr[8:0]), | |
980 | .ext_addr_out (stage_2_default_grp_ext_addr), | |
981 | .read_data_0_out (stage_2_default_grp_read_data_0_out), | |
982 | .ext_done_0_out (stage_2_default_grp_ext_done_0_out) | |
983 | ); | |
984 | ||
985 | //----- Stage: 3 / Grp: stage_mux_only (1 inputs / 1 outputs) (Mux only) | |
986 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] stage_mux_only_read_data_0_out; | |
987 | ||
988 | dmu_mmu_csr_stage_mux_only dmu_mmu_csr_stage_mux_only | |
989 | ( | |
990 | .clk (clk), | |
991 | .read_data_0 (stage_2_default_grp_read_data_0_out), | |
992 | .ext_done_0 (stage_2_default_grp_ext_done_0_out), | |
993 | .ctl_select_pulse (ctl_select_pulse), | |
994 | .ctl_select_pulse_out (stage_2_default_grp_ctl_select_pulse), | |
995 | .tsb_select_pulse (tsb_select_pulse), | |
996 | .tsb_select_pulse_out (stage_2_default_grp_tsb_select_pulse), | |
997 | .fsh_select_pulse (fsh_select_pulse), | |
998 | .fsh_select_pulse_out (stage_2_default_grp_fsh_select_pulse), | |
999 | .inv_select (inv_select), | |
1000 | .inv_select_out (stage_2_default_grp_inv_select), | |
1001 | .log_select_pulse (log_select_pulse), | |
1002 | .log_select_pulse_out (stage_2_default_grp_log_select_pulse), | |
1003 | .int_en_select_pulse (int_en_select_pulse), | |
1004 | .int_en_select_pulse_out (stage_2_default_grp_int_en_select_pulse), | |
1005 | .en_err_select (en_err_select), | |
1006 | .en_err_select_out (stage_2_default_grp_en_err_select), | |
1007 | .err_select_pulse (err_select_pulse), | |
1008 | .err_select_pulse_out (stage_2_default_grp_err_select_pulse), | |
1009 | .flta_select_pulse (flta_select_pulse), | |
1010 | .flta_select_pulse_out (stage_2_default_grp_flta_select_pulse), | |
1011 | .flts_select_pulse (flts_select_pulse), | |
1012 | .flts_select_pulse_out (stage_2_default_grp_flts_select_pulse), | |
1013 | .prfc_select_pulse (prfc_select_pulse), | |
1014 | .prfc_select_pulse_out (stage_2_default_grp_prfc_select_pulse), | |
1015 | .prf0_select_pulse (prf0_select_pulse), | |
1016 | .prf0_select_pulse_out (stage_2_default_grp_prf0_select_pulse), | |
1017 | .prf1_select_pulse (prf1_select_pulse), | |
1018 | .prf1_select_pulse_out (stage_2_default_grp_prf1_select_pulse), | |
1019 | .vtb_select (vtb_select), | |
1020 | .vtb_select_out (stage_2_default_grp_vtb_select), | |
1021 | .ptb_select (ptb_select), | |
1022 | .ptb_select_out (stage_2_default_grp_ptb_select), | |
1023 | .tdb_select (tdb_select), | |
1024 | .tdb_select_out (stage_2_default_grp_tdb_select), | |
1025 | .dev2iotsb_select (dev2iotsb_select), | |
1026 | .dev2iotsb_select_out (stage_2_default_grp_dev2iotsb_select), | |
1027 | .IotsbDesc_select (IotsbDesc_select), | |
1028 | .IotsbDesc_select_out (stage_2_default_grp_IotsbDesc_select), | |
1029 | .err_rw1c_alias (err_rw1c_alias), | |
1030 | .err_rw1c_alias_out (stage_mux_only_err_rw1c_alias), | |
1031 | .err_rw1s_alias (err_rw1s_alias), | |
1032 | .err_rw1s_alias_out (stage_mux_only_err_rw1s_alias), | |
1033 | .daemon_csrbus_wr_in (daemon_csrbus_wr), | |
1034 | .daemon_csrbus_wr_out (stage_mux_only_daemon_csrbus_wr), | |
1035 | .daemon_csrbus_wr_data_in (daemon_csrbus_wr_data), | |
1036 | .daemon_csrbus_wr_data_out (stage_mux_only_daemon_csrbus_wr_data), | |
1037 | .ext_addr_in (daemon_csrbus_addr[8:0]), | |
1038 | .ext_addr_out (stage_mux_only_ext_addr), | |
1039 | .read_data_0_out (stage_mux_only_read_data_0_out), | |
1040 | .ext_done_0_out (stage_mux_only_ext_done_0_out), | |
1041 | .rst_l (rst_l), | |
1042 | .rst_l_out (stage_mux_only_rst_l), | |
1043 | .por_l (por_l), | |
1044 | .por_l_out (stage_mux_only_por_l) | |
1045 | ); | |
1046 | ||
1047 | //----- OUTPUT: csrbus_read_data | |
1048 | assign csrbus_read_data = stage_mux_only_read_data_0_out; | |
1049 | ||
1050 | endmodule // dmu_mmu_csr_csr |