Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: dmu_imu_ics_addr_decode.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_imu_ics_addr_decode | |
36 | ( | |
37 | clk, | |
38 | rst_l, | |
39 | daemon_csrbus_valid, | |
40 | daemon_csrbus_addr, | |
41 | csrbus_src_bus, | |
42 | daemon_csrbus_wr, | |
43 | daemon_csrbus_wr_out, | |
44 | daemon_csrbus_wr_data, | |
45 | daemon_csrbus_wr_data_out, | |
46 | daemon_csrbus_mapped, | |
47 | csrbus_acc_vio, | |
48 | daemon_transaction_in_progress, | |
49 | instance_id, | |
50 | daemon_csrbus_done, | |
51 | imu_error_log_en_reg_select_pulse, | |
52 | imu_int_en_reg_select_pulse, | |
53 | imu_enabled_error_status_reg_select, | |
54 | imu_logged_error_status_reg_select_pulse, | |
55 | imu_logged_error_status_reg_rw1c_alias, | |
56 | imu_logged_error_status_reg_rw1s_alias, | |
57 | imu_rds_error_log_reg_select_pulse, | |
58 | imu_scs_error_log_reg_select_pulse, | |
59 | imu_eqs_error_log_reg_select_pulse, | |
60 | dmc_interrupt_mask_reg_select_pulse, | |
61 | dmc_interrupt_status_reg_select, | |
62 | imu_perf_cntrl_select_pulse, | |
63 | imu_perf_cnt0_select_pulse, | |
64 | imu_perf_cnt1_select_pulse, | |
65 | msi_32_addr_reg_select_pulse, | |
66 | msi_64_addr_reg_select_pulse, | |
67 | mem_64_pcie_offset_reg_select_pulse | |
68 | ); | |
69 | ||
70 | //==================================================================== | |
71 | // Polarity declarations | |
72 | //==================================================================== | |
73 | input clk; // Clock signal | |
74 | input rst_l; // Reset | |
75 | input daemon_csrbus_valid; // Daemon_Valid | |
76 | input [`FIRE_CSRBUS_ADDR_WIDTH - 1:0] daemon_csrbus_addr; // Daemon_Addr | |
77 | input [1:0] csrbus_src_bus; // Source bus | |
78 | input daemon_csrbus_wr; // Read/Write signal | |
79 | output daemon_csrbus_wr_out; // Read/Write signal | |
80 | input [`FIRE_CSRBUS_DATA_WIDTH-1:0] daemon_csrbus_wr_data; // Write data | |
81 | output [`FIRE_CSRBUS_DATA_WIDTH-1:0] daemon_csrbus_wr_data_out; // Write data | |
82 | output daemon_csrbus_mapped; // mapped | |
83 | output csrbus_acc_vio; // acc_vio | |
84 | input daemon_transaction_in_progress; // daemon_transaction_in_progress | |
85 | input instance_id; // Instance ID | |
86 | output daemon_csrbus_done; // Operation is done | |
87 | output imu_error_log_en_reg_select_pulse; // select signal | |
88 | output imu_int_en_reg_select_pulse; // select signal | |
89 | output imu_enabled_error_status_reg_select; // select signal | |
90 | output imu_logged_error_status_reg_select_pulse; // select signal | |
91 | output imu_logged_error_status_reg_rw1c_alias; // alias signal | |
92 | output imu_logged_error_status_reg_rw1s_alias; // alias signal | |
93 | output imu_rds_error_log_reg_select_pulse; // select signal | |
94 | output imu_scs_error_log_reg_select_pulse; // select signal | |
95 | output imu_eqs_error_log_reg_select_pulse; // select signal | |
96 | output dmc_interrupt_mask_reg_select_pulse; // select signal | |
97 | output dmc_interrupt_status_reg_select; // select signal | |
98 | output imu_perf_cntrl_select_pulse; // select signal | |
99 | output imu_perf_cnt0_select_pulse; // select signal | |
100 | output imu_perf_cnt1_select_pulse; // select signal | |
101 | output msi_32_addr_reg_select_pulse; // select signal | |
102 | output msi_64_addr_reg_select_pulse; // select signal | |
103 | output mem_64_pcie_offset_reg_select_pulse; // select signal | |
104 | ||
105 | //==================================================================== | |
106 | // Type declarations | |
107 | //==================================================================== | |
108 | wire clk; // Clock signal | |
109 | wire rst_l; // Reset | |
110 | wire daemon_csrbus_valid; // Daemon_Valid | |
111 | wire [`FIRE_CSRBUS_ADDR_WIDTH - 1:0] daemon_csrbus_addr; // Daemon_Addr | |
112 | wire [1:0] csrbus_src_bus; // Source bus | |
113 | wire daemon_csrbus_wr; // Read/Write signal | |
114 | reg daemon_csrbus_wr_out; // Read/Write signal | |
115 | wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] daemon_csrbus_wr_data; // Write data | |
116 | reg [`FIRE_CSRBUS_DATA_WIDTH-1:0] daemon_csrbus_wr_data_out; // Write data | |
117 | wire daemon_csrbus_mapped; // mapped | |
118 | wire csrbus_acc_vio; // acc_vio | |
119 | wire daemon_transaction_in_progress; // daemon_transaction_in_progress | |
120 | wire instance_id; // Instance ID | |
121 | wire daemon_csrbus_done; // Operation is done | |
122 | reg imu_error_log_en_reg_select_pulse; // select signal | |
123 | reg imu_int_en_reg_select_pulse; // select signal | |
124 | reg imu_enabled_error_status_reg_select; // select signal | |
125 | reg imu_logged_error_status_reg_select_pulse; // select signal | |
126 | wire imu_logged_error_status_reg_rw1c_alias; // alias signal | |
127 | wire imu_logged_error_status_reg_rw1s_alias; // alias signal | |
128 | reg imu_rds_error_log_reg_select_pulse; // select signal | |
129 | reg imu_scs_error_log_reg_select_pulse; // select signal | |
130 | reg imu_eqs_error_log_reg_select_pulse; // select signal | |
131 | reg dmc_interrupt_mask_reg_select_pulse; // select signal | |
132 | reg dmc_interrupt_status_reg_select; // select signal | |
133 | reg imu_perf_cntrl_select_pulse; // select signal | |
134 | reg imu_perf_cnt0_select_pulse; // select signal | |
135 | reg imu_perf_cnt1_select_pulse; // select signal | |
136 | reg msi_32_addr_reg_select_pulse; // select signal | |
137 | reg msi_64_addr_reg_select_pulse; // select signal | |
138 | reg mem_64_pcie_offset_reg_select_pulse; // select signal | |
139 | ||
140 | ||
141 | //==================================================================== | |
142 | // Clocked valid | |
143 | //==================================================================== | |
144 | reg clocked_valid; | |
145 | reg clocked_valid_pulse; | |
146 | always @(posedge clk) | |
147 | begin | |
148 | if(~rst_l) | |
149 | begin | |
150 | clocked_valid <= 1'b0; | |
151 | clocked_valid_pulse <= 1'b0; | |
152 | end | |
153 | else | |
154 | begin | |
155 | clocked_valid <= daemon_csrbus_valid; | |
156 | clocked_valid_pulse <= daemon_csrbus_valid & ~clocked_valid; | |
157 | end | |
158 | end | |
159 | ||
160 | //==================================================================== | |
161 | // Address Decode | |
162 | //==================================================================== | |
163 | reg imu_error_log_en_reg_addr_decoded; | |
164 | reg imu_int_en_reg_addr_decoded; | |
165 | reg imu_enabled_error_status_reg_addr_decoded; | |
166 | reg imu_logged_error_status_reg_rw1c_alias_addr_decoded; | |
167 | reg imu_logged_error_status_reg_rw1s_alias_addr_decoded; | |
168 | reg imu_rds_error_log_reg_addr_decoded; | |
169 | reg imu_scs_error_log_reg_addr_decoded; | |
170 | reg imu_eqs_error_log_reg_addr_decoded; | |
171 | reg dmc_interrupt_mask_reg_addr_decoded; | |
172 | reg dmc_interrupt_status_reg_addr_decoded; | |
173 | reg imu_perf_cntrl_addr_decoded; | |
174 | reg imu_perf_cnt0_addr_decoded; | |
175 | reg imu_perf_cnt1_addr_decoded; | |
176 | reg msi_32_addr_reg_addr_decoded; | |
177 | reg msi_64_addr_reg_addr_decoded; | |
178 | reg mem_64_pcie_offset_reg_addr_decoded; | |
179 | ||
180 | always @(daemon_csrbus_addr or daemon_csrbus_valid or instance_id) | |
181 | begin | |
182 | if (~daemon_csrbus_valid) | |
183 | begin | |
184 | imu_error_log_en_reg_addr_decoded = 1'b0; | |
185 | imu_int_en_reg_addr_decoded = 1'b0; | |
186 | imu_enabled_error_status_reg_addr_decoded = 1'b0; | |
187 | imu_logged_error_status_reg_rw1c_alias_addr_decoded = 1'b0; | |
188 | imu_logged_error_status_reg_rw1s_alias_addr_decoded = 1'b0; | |
189 | imu_rds_error_log_reg_addr_decoded = 1'b0; | |
190 | imu_scs_error_log_reg_addr_decoded = 1'b0; | |
191 | imu_eqs_error_log_reg_addr_decoded = 1'b0; | |
192 | dmc_interrupt_mask_reg_addr_decoded = 1'b0; | |
193 | dmc_interrupt_status_reg_addr_decoded = 1'b0; | |
194 | imu_perf_cntrl_addr_decoded = 1'b0; | |
195 | imu_perf_cnt0_addr_decoded = 1'b0; | |
196 | imu_perf_cnt1_addr_decoded = 1'b0; | |
197 | msi_32_addr_reg_addr_decoded = 1'b0; | |
198 | msi_64_addr_reg_addr_decoded = 1'b0; | |
199 | mem_64_pcie_offset_reg_addr_decoded = 1'b0; | |
200 | end | |
201 | else | |
202 | case (instance_id) | |
203 | ||
204 | `FIRE_DLC_IMU_ICS_INSTANCE_ID_VALUE_A: | |
205 | begin | |
206 | imu_error_log_en_reg_addr_decoded = | |
207 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_ERROR_LOG_EN_REG_HW_ADDR; | |
208 | imu_int_en_reg_addr_decoded = | |
209 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_INT_EN_REG_HW_ADDR; | |
210 | imu_enabled_error_status_reg_addr_decoded = | |
211 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_ENABLED_ERROR_STATUS_REG_HW_ADDR; | |
212 | imu_logged_error_status_reg_rw1c_alias_addr_decoded = | |
213 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_LOGGED_ERROR_STATUS_REG_RW1C_ALIAS_HW_ADDR; | |
214 | imu_logged_error_status_reg_rw1s_alias_addr_decoded = | |
215 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_LOGGED_ERROR_STATUS_REG_RW1S_ALIAS_HW_ADDR; | |
216 | imu_rds_error_log_reg_addr_decoded = | |
217 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_RDS_ERROR_LOG_REG_HW_ADDR; | |
218 | imu_scs_error_log_reg_addr_decoded = | |
219 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_SCS_ERROR_LOG_REG_HW_ADDR; | |
220 | imu_eqs_error_log_reg_addr_decoded = | |
221 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_EQS_ERROR_LOG_REG_HW_ADDR; | |
222 | dmc_interrupt_mask_reg_addr_decoded = | |
223 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_DMC_INTERRUPT_MASK_REG_HW_ADDR; | |
224 | dmc_interrupt_status_reg_addr_decoded = | |
225 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_DMC_INTERRUPT_STATUS_REG_HW_ADDR; | |
226 | imu_perf_cntrl_addr_decoded = | |
227 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_PERF_CNTRL_HW_ADDR; | |
228 | imu_perf_cnt0_addr_decoded = | |
229 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_PERF_CNT0_HW_ADDR; | |
230 | imu_perf_cnt1_addr_decoded = | |
231 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_IMU_PERF_CNT1_HW_ADDR; | |
232 | msi_32_addr_reg_addr_decoded = | |
233 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_MSI_32_ADDR_REG_HW_ADDR; | |
234 | msi_64_addr_reg_addr_decoded = | |
235 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_MSI_64_ADDR_REG_HW_ADDR; | |
236 | mem_64_pcie_offset_reg_addr_decoded = | |
237 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_A_MEM_64_PCIE_OFFSET_REG_HW_ADDR; | |
238 | end | |
239 | ||
240 | `FIRE_DLC_IMU_ICS_INSTANCE_ID_VALUE_B: | |
241 | begin | |
242 | imu_error_log_en_reg_addr_decoded = | |
243 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_ERROR_LOG_EN_REG_HW_ADDR; | |
244 | imu_int_en_reg_addr_decoded = | |
245 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_INT_EN_REG_HW_ADDR; | |
246 | imu_enabled_error_status_reg_addr_decoded = | |
247 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_ENABLED_ERROR_STATUS_REG_HW_ADDR; | |
248 | imu_logged_error_status_reg_rw1c_alias_addr_decoded = | |
249 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_LOGGED_ERROR_STATUS_REG_RW1C_ALIAS_HW_ADDR; | |
250 | imu_logged_error_status_reg_rw1s_alias_addr_decoded = | |
251 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_LOGGED_ERROR_STATUS_REG_RW1S_ALIAS_HW_ADDR; | |
252 | imu_rds_error_log_reg_addr_decoded = | |
253 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_RDS_ERROR_LOG_REG_HW_ADDR; | |
254 | imu_scs_error_log_reg_addr_decoded = | |
255 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_SCS_ERROR_LOG_REG_HW_ADDR; | |
256 | imu_eqs_error_log_reg_addr_decoded = | |
257 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_EQS_ERROR_LOG_REG_HW_ADDR; | |
258 | dmc_interrupt_mask_reg_addr_decoded = | |
259 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_DMC_INTERRUPT_MASK_REG_HW_ADDR; | |
260 | dmc_interrupt_status_reg_addr_decoded = | |
261 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_DMC_INTERRUPT_STATUS_REG_HW_ADDR; | |
262 | imu_perf_cntrl_addr_decoded = | |
263 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_PERF_CNTRL_HW_ADDR; | |
264 | imu_perf_cnt0_addr_decoded = | |
265 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_PERF_CNT0_HW_ADDR; | |
266 | imu_perf_cnt1_addr_decoded = | |
267 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_IMU_PERF_CNT1_HW_ADDR; | |
268 | msi_32_addr_reg_addr_decoded = | |
269 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_MSI_32_ADDR_REG_HW_ADDR; | |
270 | msi_64_addr_reg_addr_decoded = | |
271 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_MSI_64_ADDR_REG_HW_ADDR; | |
272 | mem_64_pcie_offset_reg_addr_decoded = | |
273 | daemon_csrbus_addr[26:0] == `FIRE_DLC_IMU_ICS_CSR_B_MEM_64_PCIE_OFFSET_REG_HW_ADDR; | |
274 | end | |
275 | ||
276 | default: | |
277 | begin | |
278 | imu_error_log_en_reg_addr_decoded = 1'b0; | |
279 | imu_int_en_reg_addr_decoded = 1'b0; | |
280 | imu_enabled_error_status_reg_addr_decoded = 1'b0; | |
281 | imu_logged_error_status_reg_rw1s_alias_addr_decoded = 1'b0; | |
282 | imu_logged_error_status_reg_rw1c_alias_addr_decoded = 1'b0; | |
283 | imu_rds_error_log_reg_addr_decoded = 1'b0; | |
284 | imu_scs_error_log_reg_addr_decoded = 1'b0; | |
285 | imu_eqs_error_log_reg_addr_decoded = 1'b0; | |
286 | dmc_interrupt_mask_reg_addr_decoded = 1'b0; | |
287 | dmc_interrupt_status_reg_addr_decoded = 1'b0; | |
288 | imu_perf_cntrl_addr_decoded = 1'b0; | |
289 | imu_perf_cnt0_addr_decoded = 1'b0; | |
290 | imu_perf_cnt1_addr_decoded = 1'b0; | |
291 | msi_32_addr_reg_addr_decoded = 1'b0; | |
292 | msi_64_addr_reg_addr_decoded = 1'b0; | |
293 | mem_64_pcie_offset_reg_addr_decoded = 1'b0; | |
294 | // vlint flag_system_call off | |
295 | // synopsys translate_off | |
296 | if(daemon_csrbus_valid) | |
297 | begin // axis tbcall_region | |
298 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"ERROR: Instance ID for module dmu_imu_ics_csr is bad"); `endif | |
299 | end // end of tbcall_region | |
300 | // synopsys translate_on | |
301 | // vlint flag_system_call on | |
302 | end | |
303 | endcase | |
304 | end | |
305 | ||
306 | //==================================================================== | |
307 | // Register violations | |
308 | //==================================================================== | |
309 | //----- reg_acc_vio: imu_error_log_en_reg | |
310 | reg imu_error_log_en_reg_acc_vio; | |
311 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
312 | imu_error_log_en_reg_addr_decoded or | |
313 | daemon_transaction_in_progress) | |
314 | begin | |
315 | if (daemon_transaction_in_progress | ~imu_error_log_en_reg_addr_decoded) | |
316 | imu_error_log_en_reg_acc_vio = 1'b0; | |
317 | else | |
318 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
319 | // reads | |
320 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
321 | imu_error_log_en_reg_acc_vio = 1'b0; | |
322 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
323 | imu_error_log_en_reg_acc_vio = 1'b0; | |
324 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
325 | imu_error_log_en_reg_acc_vio = 1'b0; | |
326 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
327 | imu_error_log_en_reg_acc_vio = 1'b0; | |
328 | // writes | |
329 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
330 | imu_error_log_en_reg_acc_vio = 1'b0; | |
331 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
332 | imu_error_log_en_reg_acc_vio = 1'b0; | |
333 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
334 | imu_error_log_en_reg_acc_vio = 1'b0; | |
335 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
336 | imu_error_log_en_reg_acc_vio = 1'b0; | |
337 | ||
338 | default: | |
339 | begin | |
340 | imu_error_log_en_reg_acc_vio = 1'b0; | |
341 | begin // axis tbcall_region | |
342 | // vlint flag_system_call off | |
343 | // synopsys translate_off | |
344 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_error_log_en_reg"); `endif | |
345 | // synopsys translate_on | |
346 | // vlint flag_system_call on | |
347 | end // end of tbcall_region | |
348 | end | |
349 | endcase | |
350 | end | |
351 | //----- reg_acc_vio: imu_int_en_reg | |
352 | reg imu_int_en_reg_acc_vio; | |
353 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
354 | imu_int_en_reg_addr_decoded or | |
355 | daemon_transaction_in_progress) | |
356 | begin | |
357 | if (daemon_transaction_in_progress | ~imu_int_en_reg_addr_decoded) | |
358 | imu_int_en_reg_acc_vio = 1'b0; | |
359 | else | |
360 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
361 | // reads | |
362 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
363 | imu_int_en_reg_acc_vio = 1'b0; | |
364 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
365 | imu_int_en_reg_acc_vio = 1'b0; | |
366 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
367 | imu_int_en_reg_acc_vio = 1'b0; | |
368 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
369 | imu_int_en_reg_acc_vio = 1'b0; | |
370 | // writes | |
371 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
372 | imu_int_en_reg_acc_vio = 1'b0; | |
373 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
374 | imu_int_en_reg_acc_vio = 1'b0; | |
375 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
376 | imu_int_en_reg_acc_vio = 1'b0; | |
377 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
378 | imu_int_en_reg_acc_vio = 1'b0; | |
379 | ||
380 | default: | |
381 | begin | |
382 | imu_int_en_reg_acc_vio = 1'b0; | |
383 | begin // axis tbcall_region | |
384 | // vlint flag_system_call off | |
385 | // synopsys translate_off | |
386 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_int_en_reg"); `endif | |
387 | // synopsys translate_on | |
388 | // vlint flag_system_call on | |
389 | end // end of tbcall_region | |
390 | end | |
391 | endcase | |
392 | end | |
393 | //----- reg_acc_vio: imu_enabled_error_status_reg | |
394 | reg imu_enabled_error_status_reg_acc_vio; | |
395 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
396 | imu_enabled_error_status_reg_addr_decoded or | |
397 | daemon_transaction_in_progress) | |
398 | begin | |
399 | if (daemon_transaction_in_progress | ~imu_enabled_error_status_reg_addr_decoded) | |
400 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
401 | else | |
402 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
403 | // reads | |
404 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
405 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
406 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
407 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
408 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
409 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
410 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
411 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
412 | // writes | |
413 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
414 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
415 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
416 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
417 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
418 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
419 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
420 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
421 | ||
422 | default: | |
423 | begin | |
424 | imu_enabled_error_status_reg_acc_vio = 1'b0; | |
425 | begin // axis tbcall_region | |
426 | // vlint flag_system_call off | |
427 | // synopsys translate_off | |
428 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_enabled_error_status_reg"); `endif | |
429 | // synopsys translate_on | |
430 | // vlint flag_system_call on | |
431 | end // end of tbcall_region | |
432 | end | |
433 | endcase | |
434 | end | |
435 | //----- reg_acc_vio: imu_logged_error_status_reg | |
436 | reg imu_logged_error_status_reg_acc_vio; | |
437 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
438 | imu_logged_error_status_reg_rw1c_alias_addr_decoded or | |
439 | imu_logged_error_status_reg_rw1s_alias_addr_decoded or | |
440 | daemon_transaction_in_progress) | |
441 | begin | |
442 | if (daemon_transaction_in_progress | | |
443 | ~ (imu_logged_error_status_reg_rw1c_alias_addr_decoded | imu_logged_error_status_reg_rw1s_alias_addr_decoded)) | |
444 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
445 | else | |
446 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
447 | // reads | |
448 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
449 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
450 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
451 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
452 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
453 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
454 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
455 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
456 | // writes | |
457 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
458 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
459 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
460 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
461 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
462 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
463 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
464 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
465 | ||
466 | default: | |
467 | begin | |
468 | imu_logged_error_status_reg_acc_vio = 1'b0; | |
469 | begin // axis tbcall_region | |
470 | // vlint flag_system_call off | |
471 | // synopsys translate_off | |
472 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_logged_error_status_reg_rw1c_alias"); `endif | |
473 | // synopsys translate_on | |
474 | // vlint flag_system_call on | |
475 | end // end of tbcall_region | |
476 | end | |
477 | endcase | |
478 | end | |
479 | //----- reg_acc_vio: imu_rds_error_log_reg | |
480 | reg imu_rds_error_log_reg_acc_vio; | |
481 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
482 | imu_rds_error_log_reg_addr_decoded or | |
483 | daemon_transaction_in_progress) | |
484 | begin | |
485 | if (daemon_transaction_in_progress | ~imu_rds_error_log_reg_addr_decoded) | |
486 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
487 | else | |
488 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
489 | // reads | |
490 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
491 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
492 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
493 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
494 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
495 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
496 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
497 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
498 | // writes | |
499 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
500 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
501 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
502 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
503 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
504 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
505 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
506 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
507 | ||
508 | default: | |
509 | begin | |
510 | imu_rds_error_log_reg_acc_vio = 1'b0; | |
511 | begin // axis tbcall_region | |
512 | // vlint flag_system_call off | |
513 | // synopsys translate_off | |
514 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_rds_error_log_reg"); `endif | |
515 | // synopsys translate_on | |
516 | // vlint flag_system_call on | |
517 | end // end of tbcall_region | |
518 | end | |
519 | endcase | |
520 | end | |
521 | //----- reg_acc_vio: imu_scs_error_log_reg | |
522 | reg imu_scs_error_log_reg_acc_vio; | |
523 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
524 | imu_scs_error_log_reg_addr_decoded or | |
525 | daemon_transaction_in_progress) | |
526 | begin | |
527 | if (daemon_transaction_in_progress | ~imu_scs_error_log_reg_addr_decoded) | |
528 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
529 | else | |
530 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
531 | // reads | |
532 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
533 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
534 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
535 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
536 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
537 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
538 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
539 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
540 | // writes | |
541 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
542 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
543 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
544 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
545 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
546 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
547 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
548 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
549 | ||
550 | default: | |
551 | begin | |
552 | imu_scs_error_log_reg_acc_vio = 1'b0; | |
553 | begin // axis tbcall_region | |
554 | // vlint flag_system_call off | |
555 | // synopsys translate_off | |
556 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_scs_error_log_reg"); `endif | |
557 | // synopsys translate_on | |
558 | // vlint flag_system_call on | |
559 | end // end of tbcall_region | |
560 | end | |
561 | endcase | |
562 | end | |
563 | //----- reg_acc_vio: imu_eqs_error_log_reg | |
564 | reg imu_eqs_error_log_reg_acc_vio; | |
565 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
566 | imu_eqs_error_log_reg_addr_decoded or | |
567 | daemon_transaction_in_progress) | |
568 | begin | |
569 | if (daemon_transaction_in_progress | ~imu_eqs_error_log_reg_addr_decoded) | |
570 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
571 | else | |
572 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
573 | // reads | |
574 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
575 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
576 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
577 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
578 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
579 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
580 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
581 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
582 | // writes | |
583 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
584 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
585 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
586 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
587 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
588 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
589 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
590 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
591 | ||
592 | default: | |
593 | begin | |
594 | imu_eqs_error_log_reg_acc_vio = 1'b0; | |
595 | begin // axis tbcall_region | |
596 | // vlint flag_system_call off | |
597 | // synopsys translate_off | |
598 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_eqs_error_log_reg"); `endif | |
599 | // synopsys translate_on | |
600 | // vlint flag_system_call on | |
601 | end // end of tbcall_region | |
602 | end | |
603 | endcase | |
604 | end | |
605 | //----- reg_acc_vio: dmc_interrupt_mask_reg | |
606 | reg dmc_interrupt_mask_reg_acc_vio; | |
607 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
608 | dmc_interrupt_mask_reg_addr_decoded or | |
609 | daemon_transaction_in_progress) | |
610 | begin | |
611 | if (daemon_transaction_in_progress | ~dmc_interrupt_mask_reg_addr_decoded) | |
612 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
613 | else | |
614 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
615 | // reads | |
616 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
617 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
618 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
619 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
620 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
621 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
622 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
623 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
624 | // writes | |
625 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
626 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
627 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
628 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
629 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
630 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
631 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
632 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
633 | ||
634 | default: | |
635 | begin | |
636 | dmc_interrupt_mask_reg_acc_vio = 1'b0; | |
637 | begin // axis tbcall_region | |
638 | // vlint flag_system_call off | |
639 | // synopsys translate_off | |
640 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_dmc_interrupt_mask_reg"); `endif | |
641 | // synopsys translate_on | |
642 | // vlint flag_system_call on | |
643 | end // end of tbcall_region | |
644 | end | |
645 | endcase | |
646 | end | |
647 | //----- reg_acc_vio: dmc_interrupt_status_reg | |
648 | reg dmc_interrupt_status_reg_acc_vio; | |
649 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
650 | dmc_interrupt_status_reg_addr_decoded or | |
651 | daemon_transaction_in_progress) | |
652 | begin | |
653 | if (daemon_transaction_in_progress | ~dmc_interrupt_status_reg_addr_decoded) | |
654 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
655 | else | |
656 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
657 | // reads | |
658 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
659 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
660 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
661 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
662 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
663 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
664 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
665 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
666 | // writes | |
667 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
668 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
669 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
670 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
671 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
672 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
673 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
674 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
675 | ||
676 | default: | |
677 | begin | |
678 | dmc_interrupt_status_reg_acc_vio = 1'b0; | |
679 | begin // axis tbcall_region | |
680 | // vlint flag_system_call off | |
681 | // synopsys translate_off | |
682 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_dmc_interrupt_status_reg"); `endif | |
683 | // synopsys translate_on | |
684 | // vlint flag_system_call on | |
685 | end // end of tbcall_region | |
686 | end | |
687 | endcase | |
688 | end | |
689 | //----- reg_acc_vio: imu_perf_cntrl | |
690 | reg imu_perf_cntrl_acc_vio; | |
691 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
692 | imu_perf_cntrl_addr_decoded or | |
693 | daemon_transaction_in_progress) | |
694 | begin | |
695 | if (daemon_transaction_in_progress | ~imu_perf_cntrl_addr_decoded) | |
696 | imu_perf_cntrl_acc_vio = 1'b0; | |
697 | else | |
698 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
699 | // reads | |
700 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
701 | imu_perf_cntrl_acc_vio = 1'b0; | |
702 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
703 | imu_perf_cntrl_acc_vio = 1'b0; | |
704 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
705 | imu_perf_cntrl_acc_vio = 1'b0; | |
706 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
707 | imu_perf_cntrl_acc_vio = 1'b0; | |
708 | // writes | |
709 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
710 | imu_perf_cntrl_acc_vio = 1'b0; | |
711 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
712 | imu_perf_cntrl_acc_vio = 1'b0; | |
713 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
714 | imu_perf_cntrl_acc_vio = 1'b0; | |
715 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
716 | imu_perf_cntrl_acc_vio = 1'b0; | |
717 | ||
718 | default: | |
719 | begin | |
720 | imu_perf_cntrl_acc_vio = 1'b0; | |
721 | begin // axis tbcall_region | |
722 | // vlint flag_system_call off | |
723 | // synopsys translate_off | |
724 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_perf_cntrl"); `endif | |
725 | // synopsys translate_on | |
726 | // vlint flag_system_call on | |
727 | end // end of tbcall_region | |
728 | end | |
729 | endcase | |
730 | end | |
731 | //----- reg_acc_vio: imu_perf_cnt0 | |
732 | reg imu_perf_cnt0_acc_vio; | |
733 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
734 | imu_perf_cnt0_addr_decoded or | |
735 | daemon_transaction_in_progress) | |
736 | begin | |
737 | if (daemon_transaction_in_progress | ~imu_perf_cnt0_addr_decoded) | |
738 | imu_perf_cnt0_acc_vio = 1'b0; | |
739 | else | |
740 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
741 | // reads | |
742 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
743 | imu_perf_cnt0_acc_vio = 1'b0; | |
744 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
745 | imu_perf_cnt0_acc_vio = 1'b0; | |
746 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
747 | imu_perf_cnt0_acc_vio = 1'b0; | |
748 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
749 | imu_perf_cnt0_acc_vio = 1'b0; | |
750 | // writes | |
751 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
752 | imu_perf_cnt0_acc_vio = 1'b0; | |
753 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
754 | imu_perf_cnt0_acc_vio = 1'b0; | |
755 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
756 | imu_perf_cnt0_acc_vio = 1'b0; | |
757 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
758 | imu_perf_cnt0_acc_vio = 1'b0; | |
759 | ||
760 | default: | |
761 | begin | |
762 | imu_perf_cnt0_acc_vio = 1'b0; | |
763 | begin // axis tbcall_region | |
764 | // vlint flag_system_call off | |
765 | // synopsys translate_off | |
766 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_perf_cnt0"); `endif | |
767 | // synopsys translate_on | |
768 | // vlint flag_system_call on | |
769 | end // end of tbcall_region | |
770 | end | |
771 | endcase | |
772 | end | |
773 | //----- reg_acc_vio: imu_perf_cnt1 | |
774 | reg imu_perf_cnt1_acc_vio; | |
775 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
776 | imu_perf_cnt1_addr_decoded or | |
777 | daemon_transaction_in_progress) | |
778 | begin | |
779 | if (daemon_transaction_in_progress | ~imu_perf_cnt1_addr_decoded) | |
780 | imu_perf_cnt1_acc_vio = 1'b0; | |
781 | else | |
782 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
783 | // reads | |
784 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
785 | imu_perf_cnt1_acc_vio = 1'b0; | |
786 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
787 | imu_perf_cnt1_acc_vio = 1'b0; | |
788 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
789 | imu_perf_cnt1_acc_vio = 1'b0; | |
790 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
791 | imu_perf_cnt1_acc_vio = 1'b0; | |
792 | // writes | |
793 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
794 | imu_perf_cnt1_acc_vio = 1'b0; | |
795 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
796 | imu_perf_cnt1_acc_vio = 1'b0; | |
797 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
798 | imu_perf_cnt1_acc_vio = 1'b0; | |
799 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
800 | imu_perf_cnt1_acc_vio = 1'b0; | |
801 | ||
802 | default: | |
803 | begin | |
804 | imu_perf_cnt1_acc_vio = 1'b0; | |
805 | begin // axis tbcall_region | |
806 | // vlint flag_system_call off | |
807 | // synopsys translate_off | |
808 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_imu_perf_cnt1"); `endif | |
809 | // synopsys translate_on | |
810 | // vlint flag_system_call on | |
811 | end // end of tbcall_region | |
812 | end | |
813 | endcase | |
814 | end | |
815 | //----- reg_acc_vio: msi_32_addr_reg | |
816 | reg msi_32_addr_reg_acc_vio; | |
817 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
818 | msi_32_addr_reg_addr_decoded or | |
819 | daemon_transaction_in_progress) | |
820 | begin | |
821 | if (daemon_transaction_in_progress | ~msi_32_addr_reg_addr_decoded) | |
822 | msi_32_addr_reg_acc_vio = 1'b0; | |
823 | else | |
824 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
825 | // reads | |
826 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
827 | msi_32_addr_reg_acc_vio = 1'b0; | |
828 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
829 | msi_32_addr_reg_acc_vio = 1'b0; | |
830 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
831 | msi_32_addr_reg_acc_vio = 1'b0; | |
832 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
833 | msi_32_addr_reg_acc_vio = 1'b0; | |
834 | // writes | |
835 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
836 | msi_32_addr_reg_acc_vio = 1'b0; | |
837 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
838 | msi_32_addr_reg_acc_vio = 1'b0; | |
839 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
840 | msi_32_addr_reg_acc_vio = 1'b0; | |
841 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
842 | msi_32_addr_reg_acc_vio = 1'b0; | |
843 | ||
844 | default: | |
845 | begin | |
846 | msi_32_addr_reg_acc_vio = 1'b0; | |
847 | begin // axis tbcall_region | |
848 | // vlint flag_system_call off | |
849 | // synopsys translate_off | |
850 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_msi_32_addr_reg"); `endif | |
851 | // synopsys translate_on | |
852 | // vlint flag_system_call on | |
853 | end // end of tbcall_region | |
854 | end | |
855 | endcase | |
856 | end | |
857 | //----- reg_acc_vio: msi_64_addr_reg | |
858 | reg msi_64_addr_reg_acc_vio; | |
859 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
860 | msi_64_addr_reg_addr_decoded or | |
861 | daemon_transaction_in_progress) | |
862 | begin | |
863 | if (daemon_transaction_in_progress | ~msi_64_addr_reg_addr_decoded) | |
864 | msi_64_addr_reg_acc_vio = 1'b0; | |
865 | else | |
866 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
867 | // reads | |
868 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
869 | msi_64_addr_reg_acc_vio = 1'b0; | |
870 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
871 | msi_64_addr_reg_acc_vio = 1'b0; | |
872 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
873 | msi_64_addr_reg_acc_vio = 1'b0; | |
874 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
875 | msi_64_addr_reg_acc_vio = 1'b0; | |
876 | // writes | |
877 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
878 | msi_64_addr_reg_acc_vio = 1'b0; | |
879 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
880 | msi_64_addr_reg_acc_vio = 1'b0; | |
881 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
882 | msi_64_addr_reg_acc_vio = 1'b0; | |
883 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
884 | msi_64_addr_reg_acc_vio = 1'b0; | |
885 | ||
886 | default: | |
887 | begin | |
888 | msi_64_addr_reg_acc_vio = 1'b0; | |
889 | begin // axis tbcall_region | |
890 | // vlint flag_system_call off | |
891 | // synopsys translate_off | |
892 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_msi_64_addr_reg"); `endif | |
893 | // synopsys translate_on | |
894 | // vlint flag_system_call on | |
895 | end // end of tbcall_region | |
896 | end | |
897 | endcase | |
898 | end | |
899 | //----- reg_acc_vio: mem_64_pcie_offset_reg | |
900 | reg mem_64_pcie_offset_reg_acc_vio; | |
901 | always @(csrbus_src_bus or daemon_csrbus_wr or | |
902 | mem_64_pcie_offset_reg_addr_decoded or | |
903 | daemon_transaction_in_progress) | |
904 | begin | |
905 | if (daemon_transaction_in_progress | ~mem_64_pcie_offset_reg_addr_decoded) | |
906 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
907 | else | |
908 | case ({csrbus_src_bus, daemon_csrbus_wr}) | |
909 | // reads | |
910 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b0}: | |
911 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
912 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b0}: | |
913 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
914 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b0}: | |
915 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
916 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b0}: | |
917 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
918 | // writes | |
919 | {`FIRE_CSRBUS_SRC_BUS_ENC_JTAG, 1'b1}: | |
920 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
921 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_SLOW, 1'b1}: | |
922 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
923 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_MED, 1'b1}: | |
924 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
925 | {`FIRE_CSRBUS_SRC_BUS_ENC_PIO_FAST, 1'b1}: | |
926 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
927 | ||
928 | default: | |
929 | begin | |
930 | mem_64_pcie_offset_reg_acc_vio = 1'b0; | |
931 | begin // axis tbcall_region | |
932 | // vlint flag_system_call off | |
933 | // synopsys translate_off | |
934 | `ifdef PR_ERROR if ($time > 1 && rst_l) `PR_ERROR("dmu_imu_ics_addr_decode",`MON_ERROR,"acc_vio: default case of dmu_imu_ics_csr_a_mem_64_pcie_offset_reg"); `endif | |
935 | // synopsys translate_on | |
936 | // vlint flag_system_call on | |
937 | end // end of tbcall_region | |
938 | end | |
939 | endcase | |
940 | end | |
941 | ||
942 | //==================================================================== | |
943 | // Status: daemon_csrbus_mapped / csrbus_acc_vio | |
944 | //==================================================================== | |
945 | //----- OUTPUT: daemon_csrbus_mapped | |
946 | assign daemon_csrbus_mapped = clocked_valid_pulse & | |
947 | ( | |
948 | imu_error_log_en_reg_addr_decoded | | |
949 | imu_int_en_reg_addr_decoded | | |
950 | imu_enabled_error_status_reg_addr_decoded | | |
951 | imu_logged_error_status_reg_rw1s_alias_addr_decoded | | |
952 | imu_logged_error_status_reg_rw1c_alias_addr_decoded | | |
953 | imu_rds_error_log_reg_addr_decoded | | |
954 | imu_scs_error_log_reg_addr_decoded | | |
955 | imu_eqs_error_log_reg_addr_decoded | | |
956 | dmc_interrupt_mask_reg_addr_decoded | | |
957 | dmc_interrupt_status_reg_addr_decoded | | |
958 | imu_perf_cntrl_addr_decoded | | |
959 | imu_perf_cnt0_addr_decoded | | |
960 | imu_perf_cnt1_addr_decoded | | |
961 | msi_32_addr_reg_addr_decoded | | |
962 | msi_64_addr_reg_addr_decoded | | |
963 | mem_64_pcie_offset_reg_addr_decoded | |
964 | ); | |
965 | ||
966 | ||
967 | // daemon_csrbus_mapped gets asserted after fixed number of cycles | |
968 | // after daemon_csrbus_valid become high | |
969 | /* 0in assert_together -name mapped_after_valid | |
970 | -leader $0in_rising_edge($0in_delay(daemon_csrbus_valid, 1)) | |
971 | -follower $0in_rising_edge(daemon_csrbus_mapped) | |
972 | -message ("daemon_csrbus_mapped was not asserted 1 clock cycles from csrbus_valid") | |
973 | -module dmu_imu_ics_addr_decode | |
974 | -clock clk | |
975 | -active $0in_rising_edge(daemon_csrbus_mapped) | |
976 | */ | |
977 | ||
978 | // daemon_csrbus_mapped is a pulse | |
979 | /* 0in assert_timer -name daemon_csrbus_mapped_pulse | |
980 | -var daemon_csrbus_mapped -max 1 | |
981 | -message "daemon_csrbus_mapped pulse length is not 1" | |
982 | -module dmu_imu_ics_addr_decode | |
983 | -clock clk | |
984 | */ | |
985 | //----- OUTPUT: csrbus_acc_vio | |
986 | assign csrbus_acc_vio = clocked_valid_pulse & | |
987 | imu_error_log_en_reg_acc_vio | | |
988 | imu_int_en_reg_acc_vio | | |
989 | imu_enabled_error_status_reg_acc_vio | | |
990 | imu_logged_error_status_reg_acc_vio | | |
991 | imu_rds_error_log_reg_acc_vio | | |
992 | imu_scs_error_log_reg_acc_vio | | |
993 | imu_eqs_error_log_reg_acc_vio | | |
994 | dmc_interrupt_mask_reg_acc_vio | | |
995 | dmc_interrupt_status_reg_acc_vio | | |
996 | imu_perf_cntrl_acc_vio | | |
997 | imu_perf_cnt0_acc_vio | | |
998 | imu_perf_cnt1_acc_vio | | |
999 | msi_32_addr_reg_acc_vio | | |
1000 | msi_64_addr_reg_acc_vio | | |
1001 | mem_64_pcie_offset_reg_acc_vio; | |
1002 | ||
1003 | //==================================================================== | |
1004 | // Select | |
1005 | //==================================================================== | |
1006 | always @(posedge clk) | |
1007 | begin | |
1008 | if(~rst_l) | |
1009 | begin | |
1010 | imu_error_log_en_reg_select_pulse <= 1'b0; | |
1011 | imu_int_en_reg_select_pulse <= 1'b0; | |
1012 | imu_enabled_error_status_reg_select <= 1'b0; | |
1013 | imu_logged_error_status_reg_select_pulse <= 1'b0; | |
1014 | imu_rds_error_log_reg_select_pulse <= 1'b0; | |
1015 | imu_scs_error_log_reg_select_pulse <= 1'b0; | |
1016 | imu_eqs_error_log_reg_select_pulse <= 1'b0; | |
1017 | dmc_interrupt_mask_reg_select_pulse <= 1'b0; | |
1018 | dmc_interrupt_status_reg_select <= 1'b0; | |
1019 | imu_perf_cntrl_select_pulse <= 1'b0; | |
1020 | imu_perf_cnt0_select_pulse <= 1'b0; | |
1021 | imu_perf_cnt1_select_pulse <= 1'b0; | |
1022 | msi_32_addr_reg_select_pulse <= 1'b0; | |
1023 | msi_64_addr_reg_select_pulse <= 1'b0; | |
1024 | mem_64_pcie_offset_reg_select_pulse <= 1'b0; | |
1025 | end | |
1026 | else | |
1027 | begin | |
1028 | imu_error_log_en_reg_select_pulse <= | |
1029 | ~imu_error_log_en_reg_acc_vio & | |
1030 | clocked_valid_pulse & | |
1031 | imu_error_log_en_reg_addr_decoded; | |
1032 | ||
1033 | imu_int_en_reg_select_pulse <= | |
1034 | ~imu_int_en_reg_acc_vio & | |
1035 | clocked_valid_pulse & | |
1036 | imu_int_en_reg_addr_decoded; | |
1037 | ||
1038 | imu_enabled_error_status_reg_select <= | |
1039 | ~imu_enabled_error_status_reg_acc_vio & | |
1040 | imu_enabled_error_status_reg_addr_decoded; | |
1041 | ||
1042 | imu_logged_error_status_reg_select_pulse <= | |
1043 | ~imu_logged_error_status_reg_acc_vio & | |
1044 | clocked_valid_pulse & | |
1045 | ( | |
1046 | imu_logged_error_status_reg_rw1c_alias_addr_decoded | | |
1047 | imu_logged_error_status_reg_rw1s_alias_addr_decoded | |
1048 | ); | |
1049 | ||
1050 | imu_rds_error_log_reg_select_pulse <= | |
1051 | ~imu_rds_error_log_reg_acc_vio & | |
1052 | clocked_valid_pulse & | |
1053 | imu_rds_error_log_reg_addr_decoded; | |
1054 | ||
1055 | imu_scs_error_log_reg_select_pulse <= | |
1056 | ~imu_scs_error_log_reg_acc_vio & | |
1057 | clocked_valid_pulse & | |
1058 | imu_scs_error_log_reg_addr_decoded; | |
1059 | ||
1060 | imu_eqs_error_log_reg_select_pulse <= | |
1061 | ~imu_eqs_error_log_reg_acc_vio & | |
1062 | clocked_valid_pulse & | |
1063 | imu_eqs_error_log_reg_addr_decoded; | |
1064 | ||
1065 | dmc_interrupt_mask_reg_select_pulse <= | |
1066 | ~dmc_interrupt_mask_reg_acc_vio & | |
1067 | clocked_valid_pulse & | |
1068 | dmc_interrupt_mask_reg_addr_decoded; | |
1069 | ||
1070 | dmc_interrupt_status_reg_select <= | |
1071 | ~dmc_interrupt_status_reg_acc_vio & | |
1072 | dmc_interrupt_status_reg_addr_decoded; | |
1073 | ||
1074 | imu_perf_cntrl_select_pulse <= | |
1075 | ~imu_perf_cntrl_acc_vio & | |
1076 | clocked_valid_pulse & | |
1077 | imu_perf_cntrl_addr_decoded; | |
1078 | ||
1079 | imu_perf_cnt0_select_pulse <= | |
1080 | ~imu_perf_cnt0_acc_vio & | |
1081 | clocked_valid_pulse & | |
1082 | imu_perf_cnt0_addr_decoded; | |
1083 | ||
1084 | imu_perf_cnt1_select_pulse <= | |
1085 | ~imu_perf_cnt1_acc_vio & | |
1086 | clocked_valid_pulse & | |
1087 | imu_perf_cnt1_addr_decoded; | |
1088 | ||
1089 | msi_32_addr_reg_select_pulse <= | |
1090 | ~msi_32_addr_reg_acc_vio & | |
1091 | clocked_valid_pulse & | |
1092 | msi_32_addr_reg_addr_decoded; | |
1093 | ||
1094 | msi_64_addr_reg_select_pulse <= | |
1095 | ~msi_64_addr_reg_acc_vio & | |
1096 | clocked_valid_pulse & | |
1097 | msi_64_addr_reg_addr_decoded; | |
1098 | ||
1099 | mem_64_pcie_offset_reg_select_pulse <= | |
1100 | ~mem_64_pcie_offset_reg_acc_vio & | |
1101 | clocked_valid_pulse & | |
1102 | mem_64_pcie_offset_reg_addr_decoded; | |
1103 | ||
1104 | end | |
1105 | end | |
1106 | ||
1107 | //==================================================================== | |
1108 | // daemon_csrbus_wr / daemon_csrbus_wr_data | |
1109 | //==================================================================== | |
1110 | always @(posedge clk) | |
1111 | begin | |
1112 | if(~rst_l) | |
1113 | begin | |
1114 | daemon_csrbus_wr_out <= 1'b0; | |
1115 | daemon_csrbus_wr_data_out <= `FIRE_CSRBUS_DATA_WIDTH'b0; | |
1116 | end | |
1117 | else | |
1118 | begin | |
1119 | daemon_csrbus_wr_out <= daemon_csrbus_wr; | |
1120 | daemon_csrbus_wr_data_out <= daemon_csrbus_wr_data; | |
1121 | end | |
1122 | end | |
1123 | ||
1124 | //==================================================================== | |
1125 | // Cycle Counter: Used for ExtReadTiming / ExtWriteTiming | |
1126 | //==================================================================== | |
1127 | ||
1128 | //==================================================================== | |
1129 | // Alias | |
1130 | //==================================================================== | |
1131 | assign imu_logged_error_status_reg_rw1c_alias= | |
1132 | imu_logged_error_status_reg_rw1c_alias_addr_decoded; | |
1133 | ||
1134 | assign imu_logged_error_status_reg_rw1s_alias= | |
1135 | imu_logged_error_status_reg_rw1s_alias_addr_decoded; | |
1136 | ||
1137 | ||
1138 | //==================================================================== | |
1139 | // OUTPUT: daemon_csrbus_done (pipelining) | |
1140 | //==================================================================== | |
1141 | //----- DONE for internal/extern registers | |
1142 | reg stage_1_daemon_csrbus_done_internal_0; | |
1143 | reg stage_2_daemon_csrbus_done_internal_0; | |
1144 | ||
1145 | always @(posedge clk) | |
1146 | begin | |
1147 | if(~rst_l) | |
1148 | begin | |
1149 | stage_1_daemon_csrbus_done_internal_0 <= 1'b0; | |
1150 | end | |
1151 | else | |
1152 | begin | |
1153 | stage_1_daemon_csrbus_done_internal_0 <= | |
1154 | imu_error_log_en_reg_select_pulse | | |
1155 | imu_int_en_reg_select_pulse | | |
1156 | imu_logged_error_status_reg_select_pulse | | |
1157 | imu_rds_error_log_reg_select_pulse | | |
1158 | imu_scs_error_log_reg_select_pulse | | |
1159 | imu_eqs_error_log_reg_select_pulse | | |
1160 | dmc_interrupt_mask_reg_select_pulse | | |
1161 | imu_perf_cntrl_select_pulse | | |
1162 | imu_perf_cnt0_select_pulse | | |
1163 | imu_perf_cnt1_select_pulse | | |
1164 | msi_32_addr_reg_select_pulse | | |
1165 | msi_64_addr_reg_select_pulse | | |
1166 | mem_64_pcie_offset_reg_select_pulse | | |
1167 | imu_enabled_error_status_reg_select & clocked_valid_pulse | | |
1168 | dmc_interrupt_status_reg_select & clocked_valid_pulse; | |
1169 | end | |
1170 | if(~rst_l) | |
1171 | begin | |
1172 | stage_2_daemon_csrbus_done_internal_0 <= 1'b0; | |
1173 | end | |
1174 | else | |
1175 | begin | |
1176 | stage_2_daemon_csrbus_done_internal_0 <= | |
1177 | stage_1_daemon_csrbus_done_internal_0; | |
1178 | end | |
1179 | end | |
1180 | ||
1181 | //----- OUTPUT: daemon_csrbus_done | |
1182 | assign daemon_csrbus_done = daemon_csrbus_valid & | |
1183 | ( | |
1184 | stage_2_daemon_csrbus_done_internal_0 | |
1185 | ); | |
1186 | ||
1187 | // daemon_csrbus_done gets asserted only when csrbus_valid is high | |
1188 | /* 0in assert -name daemon_csrbus_done_high | |
1189 | -var daemon_csrbus_valid -active daemon_csrbus_done | |
1190 | -message "csrbus_done got asserted while csrbus_valid is low" | |
1191 | -module dmu_imu_ics_addr_decode | |
1192 | -clock clk | |
1193 | */ | |
1194 | ||
1195 | // daemon_csrbus_done is a pulse | |
1196 | /* 0in assert_timer -name daemon_csrbus_done_pulse | |
1197 | -var daemon_csrbus_done -max 1 | |
1198 | -message "csrbus_done pulse length is not 1" | |
1199 | -module dmu_imu_ics_addr_decode | |
1200 | -clock clk | |
1201 | */ | |
1202 | ||
1203 | endmodule // dmu_imu_ics_addr_decode |