Go
back
67 always_ff @(posedge clk_i or negedge rst_ni) begin
68 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
69 1/1 err_q <= '0;
Tests: T1 T2 T3
70 1/1 end else if (intg_err || reg_we_err) begin
Tests: T1 T2 T3
71 1/1 err_q <= 1'b1;
Tests: T174 T184 T187
72 end
MISSING_ELSE
73 end
74
75 // integrity error output is permanent and should be used for alert generation
76 // register errors are transactional
77 1/1 assign intg_err_o = err_q | intg_err | reg_we_err;
Tests: T1 T2 T3
78
79 // outgoing integrity generation
80 tlul_pkg::tl_d2h_t tl_o_pre;
81 tlul_rsp_intg_gen #(
82 .EnableRspIntgGen(1),
83 .EnableDataIntgGen(1)
84 ) u_rsp_intg_gen (
85 .tl_i(tl_o_pre),
86 .tl_o(tl_o)
87 );
88
89 1/1 assign tl_reg_h2d = tl_i;
Tests: T1 T2 T3
90 1/1 assign tl_o_pre = tl_reg_d2h;
Tests: T1 T2 T3
91
92 tlul_adapter_reg #(
93 .RegAw(AW),
94 .RegDw(DW),
95 .EnableDataIntgGen(0)
96 ) u_reg_if (
97 .clk_i (clk_i),
98 .rst_ni (rst_ni),
99
100 .tl_i (tl_reg_h2d),
101 .tl_o (tl_reg_d2h),
102
103 .en_ifetch_i(prim_mubi_pkg::MuBi4False),
104 .intg_error_o(),
105
106 .we_o (reg_we),
107 .re_o (reg_re),
108 .addr_o (reg_addr),
109 .wdata_o (reg_wdata),
110 .be_o (reg_be),
111 .busy_i (reg_busy),
112 .rdata_i (reg_rdata),
113 .error_i (reg_error)
114 );
115
116 // cdc oversampling signals
117
118 1/1 assign reg_rdata = reg_rdata_next ;
Tests: T1 T2 T3
119 1/1 assign reg_error = addrmiss | wr_err | intg_err;
Tests: T103 T185 T186
120
121 // Define SW related signals
122 // Format: <reg>_<field>_{wd|we|qs}
123 // or <reg>_{wd|we|qs} if field == 1 or 0
124 logic intr_state_we;
125 logic intr_state_fmt_threshold_qs;
126 logic intr_state_rx_threshold_qs;
127 logic intr_state_acq_threshold_qs;
128 logic intr_state_rx_overflow_qs;
129 logic intr_state_rx_overflow_wd;
130 logic intr_state_controller_halt_qs;
131 logic intr_state_scl_interference_qs;
132 logic intr_state_scl_interference_wd;
133 logic intr_state_sda_interference_qs;
134 logic intr_state_sda_interference_wd;
135 logic intr_state_stretch_timeout_qs;
136 logic intr_state_stretch_timeout_wd;
137 logic intr_state_sda_unstable_qs;
138 logic intr_state_sda_unstable_wd;
139 logic intr_state_cmd_complete_qs;
140 logic intr_state_cmd_complete_wd;
141 logic intr_state_tx_stretch_qs;
142 logic intr_state_tx_threshold_qs;
143 logic intr_state_acq_stretch_qs;
144 logic intr_state_unexp_stop_qs;
145 logic intr_state_unexp_stop_wd;
146 logic intr_state_host_timeout_qs;
147 logic intr_state_host_timeout_wd;
148 logic intr_enable_we;
149 logic intr_enable_fmt_threshold_qs;
150 logic intr_enable_fmt_threshold_wd;
151 logic intr_enable_rx_threshold_qs;
152 logic intr_enable_rx_threshold_wd;
153 logic intr_enable_acq_threshold_qs;
154 logic intr_enable_acq_threshold_wd;
155 logic intr_enable_rx_overflow_qs;
156 logic intr_enable_rx_overflow_wd;
157 logic intr_enable_controller_halt_qs;
158 logic intr_enable_controller_halt_wd;
159 logic intr_enable_scl_interference_qs;
160 logic intr_enable_scl_interference_wd;
161 logic intr_enable_sda_interference_qs;
162 logic intr_enable_sda_interference_wd;
163 logic intr_enable_stretch_timeout_qs;
164 logic intr_enable_stretch_timeout_wd;
165 logic intr_enable_sda_unstable_qs;
166 logic intr_enable_sda_unstable_wd;
167 logic intr_enable_cmd_complete_qs;
168 logic intr_enable_cmd_complete_wd;
169 logic intr_enable_tx_stretch_qs;
170 logic intr_enable_tx_stretch_wd;
171 logic intr_enable_tx_threshold_qs;
172 logic intr_enable_tx_threshold_wd;
173 logic intr_enable_acq_stretch_qs;
174 logic intr_enable_acq_stretch_wd;
175 logic intr_enable_unexp_stop_qs;
176 logic intr_enable_unexp_stop_wd;
177 logic intr_enable_host_timeout_qs;
178 logic intr_enable_host_timeout_wd;
179 logic intr_test_we;
180 logic intr_test_fmt_threshold_wd;
181 logic intr_test_rx_threshold_wd;
182 logic intr_test_acq_threshold_wd;
183 logic intr_test_rx_overflow_wd;
184 logic intr_test_controller_halt_wd;
185 logic intr_test_scl_interference_wd;
186 logic intr_test_sda_interference_wd;
187 logic intr_test_stretch_timeout_wd;
188 logic intr_test_sda_unstable_wd;
189 logic intr_test_cmd_complete_wd;
190 logic intr_test_tx_stretch_wd;
191 logic intr_test_tx_threshold_wd;
192 logic intr_test_acq_stretch_wd;
193 logic intr_test_unexp_stop_wd;
194 logic intr_test_host_timeout_wd;
195 logic alert_test_we;
196 logic alert_test_wd;
197 logic ctrl_we;
198 logic ctrl_enablehost_qs;
199 logic ctrl_enablehost_wd;
200 logic ctrl_enabletarget_qs;
201 logic ctrl_enabletarget_wd;
202 logic ctrl_llpbk_qs;
203 logic ctrl_llpbk_wd;
204 logic ctrl_nack_addr_after_timeout_qs;
205 logic ctrl_nack_addr_after_timeout_wd;
206 logic ctrl_ack_ctrl_en_qs;
207 logic ctrl_ack_ctrl_en_wd;
208 logic ctrl_multi_controller_monitor_en_qs;
209 logic ctrl_multi_controller_monitor_en_wd;
210 logic ctrl_tx_stretch_ctrl_en_qs;
211 logic ctrl_tx_stretch_ctrl_en_wd;
212 logic status_re;
213 logic status_fmtfull_qs;
214 logic status_rxfull_qs;
215 logic status_fmtempty_qs;
216 logic status_hostidle_qs;
217 logic status_targetidle_qs;
218 logic status_rxempty_qs;
219 logic status_txfull_qs;
220 logic status_acqfull_qs;
221 logic status_txempty_qs;
222 logic status_acqempty_qs;
223 logic status_ack_ctrl_stretch_qs;
224 logic rdata_re;
225 logic [7:0] rdata_qs;
226 logic fdata_we;
227 logic [7:0] fdata_fbyte_wd;
228 logic fdata_start_wd;
229 logic fdata_stop_wd;
230 logic fdata_readb_wd;
231 logic fdata_rcont_wd;
232 logic fdata_nakok_wd;
233 logic fifo_ctrl_we;
234 logic fifo_ctrl_rxrst_wd;
235 logic fifo_ctrl_fmtrst_wd;
236 logic fifo_ctrl_acqrst_wd;
237 logic fifo_ctrl_txrst_wd;
238 logic host_fifo_config_we;
239 logic [11:0] host_fifo_config_rx_thresh_qs;
240 logic [11:0] host_fifo_config_rx_thresh_wd;
241 logic [11:0] host_fifo_config_fmt_thresh_qs;
242 logic [11:0] host_fifo_config_fmt_thresh_wd;
243 logic target_fifo_config_we;
244 logic [11:0] target_fifo_config_tx_thresh_qs;
245 logic [11:0] target_fifo_config_tx_thresh_wd;
246 logic [11:0] target_fifo_config_acq_thresh_qs;
247 logic [11:0] target_fifo_config_acq_thresh_wd;
248 logic host_fifo_status_re;
249 logic [11:0] host_fifo_status_fmtlvl_qs;
250 logic [11:0] host_fifo_status_rxlvl_qs;
251 logic target_fifo_status_re;
252 logic [11:0] target_fifo_status_txlvl_qs;
253 logic [11:0] target_fifo_status_acqlvl_qs;
254 logic ovrd_we;
255 logic ovrd_txovrden_qs;
256 logic ovrd_txovrden_wd;
257 logic ovrd_sclval_qs;
258 logic ovrd_sclval_wd;
259 logic ovrd_sdaval_qs;
260 logic ovrd_sdaval_wd;
261 logic val_re;
262 logic [15:0] val_scl_rx_qs;
263 logic [15:0] val_sda_rx_qs;
264 logic timing0_we;
265 logic [12:0] timing0_thigh_qs;
266 logic [12:0] timing0_thigh_wd;
267 logic [12:0] timing0_tlow_qs;
268 logic [12:0] timing0_tlow_wd;
269 logic timing1_we;
270 logic [9:0] timing1_t_r_qs;
271 logic [9:0] timing1_t_r_wd;
272 logic [8:0] timing1_t_f_qs;
273 logic [8:0] timing1_t_f_wd;
274 logic timing2_we;
275 logic [12:0] timing2_tsu_sta_qs;
276 logic [12:0] timing2_tsu_sta_wd;
277 logic [12:0] timing2_thd_sta_qs;
278 logic [12:0] timing2_thd_sta_wd;
279 logic timing3_we;
280 logic [8:0] timing3_tsu_dat_qs;
281 logic [8:0] timing3_tsu_dat_wd;
282 logic [12:0] timing3_thd_dat_qs;
283 logic [12:0] timing3_thd_dat_wd;
284 logic timing4_we;
285 logic [12:0] timing4_tsu_sto_qs;
286 logic [12:0] timing4_tsu_sto_wd;
287 logic [12:0] timing4_t_buf_qs;
288 logic [12:0] timing4_t_buf_wd;
289 logic timeout_ctrl_we;
290 logic [29:0] timeout_ctrl_val_qs;
291 logic [29:0] timeout_ctrl_val_wd;
292 logic timeout_ctrl_mode_qs;
293 logic timeout_ctrl_mode_wd;
294 logic timeout_ctrl_en_qs;
295 logic timeout_ctrl_en_wd;
296 logic target_id_we;
297 logic [6:0] target_id_address0_qs;
298 logic [6:0] target_id_address0_wd;
299 logic [6:0] target_id_mask0_qs;
300 logic [6:0] target_id_mask0_wd;
301 logic [6:0] target_id_address1_qs;
302 logic [6:0] target_id_address1_wd;
303 logic [6:0] target_id_mask1_qs;
304 logic [6:0] target_id_mask1_wd;
305 logic acqdata_re;
306 logic [7:0] acqdata_abyte_qs;
307 logic [2:0] acqdata_signal_qs;
308 logic txdata_we;
309 logic [7:0] txdata_wd;
310 logic host_timeout_ctrl_we;
311 logic [19:0] host_timeout_ctrl_qs;
312 logic [19:0] host_timeout_ctrl_wd;
313 logic target_timeout_ctrl_we;
314 logic [30:0] target_timeout_ctrl_val_qs;
315 logic [30:0] target_timeout_ctrl_val_wd;
316 logic target_timeout_ctrl_en_qs;
317 logic target_timeout_ctrl_en_wd;
318 logic target_nack_count_re;
319 logic [7:0] target_nack_count_qs;
320 logic [7:0] target_nack_count_wd;
321 logic target_ack_ctrl_re;
322 logic target_ack_ctrl_we;
323 logic [8:0] target_ack_ctrl_nbytes_qs;
324 logic [8:0] target_ack_ctrl_nbytes_wd;
325 logic target_ack_ctrl_nack_wd;
326 logic acq_fifo_next_data_re;
327 logic [7:0] acq_fifo_next_data_qs;
328 logic host_nack_handler_timeout_we;
329 logic [30:0] host_nack_handler_timeout_val_qs;
330 logic [30:0] host_nack_handler_timeout_val_wd;
331 logic host_nack_handler_timeout_en_qs;
332 logic host_nack_handler_timeout_en_wd;
333 logic controller_events_we;
334 logic controller_events_nack_qs;
335 logic controller_events_nack_wd;
336 logic controller_events_unhandled_nack_timeout_qs;
337 logic controller_events_unhandled_nack_timeout_wd;
338 logic controller_events_bus_timeout_qs;
339 logic controller_events_bus_timeout_wd;
340 logic controller_events_arbitration_lost_qs;
341 logic controller_events_arbitration_lost_wd;
342 logic target_events_we;
343 logic target_events_tx_pending_qs;
344 logic target_events_tx_pending_wd;
345 logic target_events_bus_timeout_qs;
346 logic target_events_bus_timeout_wd;
347 logic target_events_arbitration_lost_qs;
348 logic target_events_arbitration_lost_wd;
349
350 // Register instances
351 // R[intr_state]: V(False)
352 // F[fmt_threshold]: 0:0
353 prim_subreg #(
354 .DW (1),
355 .SwAccess(prim_subreg_pkg::SwAccessRO),
356 .RESVAL (1'h0),
357 .Mubi (1'b0)
358 ) u_intr_state_fmt_threshold (
359 .clk_i (clk_i),
360 .rst_ni (rst_ni),
361
362 // from register interface
363 .we (1'b0),
364 .wd ('0),
365
366 // from internal hardware
367 .de (hw2reg.intr_state.fmt_threshold.de),
368 .d (hw2reg.intr_state.fmt_threshold.d),
369
370 // to internal hardware
371 .qe (),
372 .q (reg2hw.intr_state.fmt_threshold.q),
373 .ds (),
374
375 // to register interface (read)
376 .qs (intr_state_fmt_threshold_qs)
377 );
378
379 // F[rx_threshold]: 1:1
380 prim_subreg #(
381 .DW (1),
382 .SwAccess(prim_subreg_pkg::SwAccessRO),
383 .RESVAL (1'h0),
384 .Mubi (1'b0)
385 ) u_intr_state_rx_threshold (
386 .clk_i (clk_i),
387 .rst_ni (rst_ni),
388
389 // from register interface
390 .we (1'b0),
391 .wd ('0),
392
393 // from internal hardware
394 .de (hw2reg.intr_state.rx_threshold.de),
395 .d (hw2reg.intr_state.rx_threshold.d),
396
397 // to internal hardware
398 .qe (),
399 .q (reg2hw.intr_state.rx_threshold.q),
400 .ds (),
401
402 // to register interface (read)
403 .qs (intr_state_rx_threshold_qs)
404 );
405
406 // F[acq_threshold]: 2:2
407 prim_subreg #(
408 .DW (1),
409 .SwAccess(prim_subreg_pkg::SwAccessRO),
410 .RESVAL (1'h0),
411 .Mubi (1'b0)
412 ) u_intr_state_acq_threshold (
413 .clk_i (clk_i),
414 .rst_ni (rst_ni),
415
416 // from register interface
417 .we (1'b0),
418 .wd ('0),
419
420 // from internal hardware
421 .de (hw2reg.intr_state.acq_threshold.de),
422 .d (hw2reg.intr_state.acq_threshold.d),
423
424 // to internal hardware
425 .qe (),
426 .q (reg2hw.intr_state.acq_threshold.q),
427 .ds (),
428
429 // to register interface (read)
430 .qs (intr_state_acq_threshold_qs)
431 );
432
433 // F[rx_overflow]: 3:3
434 prim_subreg #(
435 .DW (1),
436 .SwAccess(prim_subreg_pkg::SwAccessW1C),
437 .RESVAL (1'h0),
438 .Mubi (1'b0)
439 ) u_intr_state_rx_overflow (
440 .clk_i (clk_i),
441 .rst_ni (rst_ni),
442
443 // from register interface
444 .we (intr_state_we),
445 .wd (intr_state_rx_overflow_wd),
446
447 // from internal hardware
448 .de (hw2reg.intr_state.rx_overflow.de),
449 .d (hw2reg.intr_state.rx_overflow.d),
450
451 // to internal hardware
452 .qe (),
453 .q (reg2hw.intr_state.rx_overflow.q),
454 .ds (),
455
456 // to register interface (read)
457 .qs (intr_state_rx_overflow_qs)
458 );
459
460 // F[controller_halt]: 4:4
461 prim_subreg #(
462 .DW (1),
463 .SwAccess(prim_subreg_pkg::SwAccessRO),
464 .RESVAL (1'h0),
465 .Mubi (1'b0)
466 ) u_intr_state_controller_halt (
467 .clk_i (clk_i),
468 .rst_ni (rst_ni),
469
470 // from register interface
471 .we (1'b0),
472 .wd ('0),
473
474 // from internal hardware
475 .de (hw2reg.intr_state.controller_halt.de),
476 .d (hw2reg.intr_state.controller_halt.d),
477
478 // to internal hardware
479 .qe (),
480 .q (reg2hw.intr_state.controller_halt.q),
481 .ds (),
482
483 // to register interface (read)
484 .qs (intr_state_controller_halt_qs)
485 );
486
487 // F[scl_interference]: 5:5
488 prim_subreg #(
489 .DW (1),
490 .SwAccess(prim_subreg_pkg::SwAccessW1C),
491 .RESVAL (1'h0),
492 .Mubi (1'b0)
493 ) u_intr_state_scl_interference (
494 .clk_i (clk_i),
495 .rst_ni (rst_ni),
496
497 // from register interface
498 .we (intr_state_we),
499 .wd (intr_state_scl_interference_wd),
500
501 // from internal hardware
502 .de (hw2reg.intr_state.scl_interference.de),
503 .d (hw2reg.intr_state.scl_interference.d),
504
505 // to internal hardware
506 .qe (),
507 .q (reg2hw.intr_state.scl_interference.q),
508 .ds (),
509
510 // to register interface (read)
511 .qs (intr_state_scl_interference_qs)
512 );
513
514 // F[sda_interference]: 6:6
515 prim_subreg #(
516 .DW (1),
517 .SwAccess(prim_subreg_pkg::SwAccessW1C),
518 .RESVAL (1'h0),
519 .Mubi (1'b0)
520 ) u_intr_state_sda_interference (
521 .clk_i (clk_i),
522 .rst_ni (rst_ni),
523
524 // from register interface
525 .we (intr_state_we),
526 .wd (intr_state_sda_interference_wd),
527
528 // from internal hardware
529 .de (hw2reg.intr_state.sda_interference.de),
530 .d (hw2reg.intr_state.sda_interference.d),
531
532 // to internal hardware
533 .qe (),
534 .q (reg2hw.intr_state.sda_interference.q),
535 .ds (),
536
537 // to register interface (read)
538 .qs (intr_state_sda_interference_qs)
539 );
540
541 // F[stretch_timeout]: 7:7
542 prim_subreg #(
543 .DW (1),
544 .SwAccess(prim_subreg_pkg::SwAccessW1C),
545 .RESVAL (1'h0),
546 .Mubi (1'b0)
547 ) u_intr_state_stretch_timeout (
548 .clk_i (clk_i),
549 .rst_ni (rst_ni),
550
551 // from register interface
552 .we (intr_state_we),
553 .wd (intr_state_stretch_timeout_wd),
554
555 // from internal hardware
556 .de (hw2reg.intr_state.stretch_timeout.de),
557 .d (hw2reg.intr_state.stretch_timeout.d),
558
559 // to internal hardware
560 .qe (),
561 .q (reg2hw.intr_state.stretch_timeout.q),
562 .ds (),
563
564 // to register interface (read)
565 .qs (intr_state_stretch_timeout_qs)
566 );
567
568 // F[sda_unstable]: 8:8
569 prim_subreg #(
570 .DW (1),
571 .SwAccess(prim_subreg_pkg::SwAccessW1C),
572 .RESVAL (1'h0),
573 .Mubi (1'b0)
574 ) u_intr_state_sda_unstable (
575 .clk_i (clk_i),
576 .rst_ni (rst_ni),
577
578 // from register interface
579 .we (intr_state_we),
580 .wd (intr_state_sda_unstable_wd),
581
582 // from internal hardware
583 .de (hw2reg.intr_state.sda_unstable.de),
584 .d (hw2reg.intr_state.sda_unstable.d),
585
586 // to internal hardware
587 .qe (),
588 .q (reg2hw.intr_state.sda_unstable.q),
589 .ds (),
590
591 // to register interface (read)
592 .qs (intr_state_sda_unstable_qs)
593 );
594
595 // F[cmd_complete]: 9:9
596 prim_subreg #(
597 .DW (1),
598 .SwAccess(prim_subreg_pkg::SwAccessW1C),
599 .RESVAL (1'h0),
600 .Mubi (1'b0)
601 ) u_intr_state_cmd_complete (
602 .clk_i (clk_i),
603 .rst_ni (rst_ni),
604
605 // from register interface
606 .we (intr_state_we),
607 .wd (intr_state_cmd_complete_wd),
608
609 // from internal hardware
610 .de (hw2reg.intr_state.cmd_complete.de),
611 .d (hw2reg.intr_state.cmd_complete.d),
612
613 // to internal hardware
614 .qe (),
615 .q (reg2hw.intr_state.cmd_complete.q),
616 .ds (),
617
618 // to register interface (read)
619 .qs (intr_state_cmd_complete_qs)
620 );
621
622 // F[tx_stretch]: 10:10
623 prim_subreg #(
624 .DW (1),
625 .SwAccess(prim_subreg_pkg::SwAccessRO),
626 .RESVAL (1'h0),
627 .Mubi (1'b0)
628 ) u_intr_state_tx_stretch (
629 .clk_i (clk_i),
630 .rst_ni (rst_ni),
631
632 // from register interface
633 .we (1'b0),
634 .wd ('0),
635
636 // from internal hardware
637 .de (hw2reg.intr_state.tx_stretch.de),
638 .d (hw2reg.intr_state.tx_stretch.d),
639
640 // to internal hardware
641 .qe (),
642 .q (reg2hw.intr_state.tx_stretch.q),
643 .ds (),
644
645 // to register interface (read)
646 .qs (intr_state_tx_stretch_qs)
647 );
648
649 // F[tx_threshold]: 11:11
650 prim_subreg #(
651 .DW (1),
652 .SwAccess(prim_subreg_pkg::SwAccessRO),
653 .RESVAL (1'h0),
654 .Mubi (1'b0)
655 ) u_intr_state_tx_threshold (
656 .clk_i (clk_i),
657 .rst_ni (rst_ni),
658
659 // from register interface
660 .we (1'b0),
661 .wd ('0),
662
663 // from internal hardware
664 .de (hw2reg.intr_state.tx_threshold.de),
665 .d (hw2reg.intr_state.tx_threshold.d),
666
667 // to internal hardware
668 .qe (),
669 .q (reg2hw.intr_state.tx_threshold.q),
670 .ds (),
671
672 // to register interface (read)
673 .qs (intr_state_tx_threshold_qs)
674 );
675
676 // F[acq_stretch]: 12:12
677 prim_subreg #(
678 .DW (1),
679 .SwAccess(prim_subreg_pkg::SwAccessRO),
680 .RESVAL (1'h0),
681 .Mubi (1'b0)
682 ) u_intr_state_acq_stretch (
683 .clk_i (clk_i),
684 .rst_ni (rst_ni),
685
686 // from register interface
687 .we (1'b0),
688 .wd ('0),
689
690 // from internal hardware
691 .de (hw2reg.intr_state.acq_stretch.de),
692 .d (hw2reg.intr_state.acq_stretch.d),
693
694 // to internal hardware
695 .qe (),
696 .q (reg2hw.intr_state.acq_stretch.q),
697 .ds (),
698
699 // to register interface (read)
700 .qs (intr_state_acq_stretch_qs)
701 );
702
703 // F[unexp_stop]: 13:13
704 prim_subreg #(
705 .DW (1),
706 .SwAccess(prim_subreg_pkg::SwAccessW1C),
707 .RESVAL (1'h0),
708 .Mubi (1'b0)
709 ) u_intr_state_unexp_stop (
710 .clk_i (clk_i),
711 .rst_ni (rst_ni),
712
713 // from register interface
714 .we (intr_state_we),
715 .wd (intr_state_unexp_stop_wd),
716
717 // from internal hardware
718 .de (hw2reg.intr_state.unexp_stop.de),
719 .d (hw2reg.intr_state.unexp_stop.d),
720
721 // to internal hardware
722 .qe (),
723 .q (reg2hw.intr_state.unexp_stop.q),
724 .ds (),
725
726 // to register interface (read)
727 .qs (intr_state_unexp_stop_qs)
728 );
729
730 // F[host_timeout]: 14:14
731 prim_subreg #(
732 .DW (1),
733 .SwAccess(prim_subreg_pkg::SwAccessW1C),
734 .RESVAL (1'h0),
735 .Mubi (1'b0)
736 ) u_intr_state_host_timeout (
737 .clk_i (clk_i),
738 .rst_ni (rst_ni),
739
740 // from register interface
741 .we (intr_state_we),
742 .wd (intr_state_host_timeout_wd),
743
744 // from internal hardware
745 .de (hw2reg.intr_state.host_timeout.de),
746 .d (hw2reg.intr_state.host_timeout.d),
747
748 // to internal hardware
749 .qe (),
750 .q (reg2hw.intr_state.host_timeout.q),
751 .ds (),
752
753 // to register interface (read)
754 .qs (intr_state_host_timeout_qs)
755 );
756
757
758 // R[intr_enable]: V(False)
759 // F[fmt_threshold]: 0:0
760 prim_subreg #(
761 .DW (1),
762 .SwAccess(prim_subreg_pkg::SwAccessRW),
763 .RESVAL (1'h0),
764 .Mubi (1'b0)
765 ) u_intr_enable_fmt_threshold (
766 .clk_i (clk_i),
767 .rst_ni (rst_ni),
768
769 // from register interface
770 .we (intr_enable_we),
771 .wd (intr_enable_fmt_threshold_wd),
772
773 // from internal hardware
774 .de (1'b0),
775 .d ('0),
776
777 // to internal hardware
778 .qe (),
779 .q (reg2hw.intr_enable.fmt_threshold.q),
780 .ds (),
781
782 // to register interface (read)
783 .qs (intr_enable_fmt_threshold_qs)
784 );
785
786 // F[rx_threshold]: 1:1
787 prim_subreg #(
788 .DW (1),
789 .SwAccess(prim_subreg_pkg::SwAccessRW),
790 .RESVAL (1'h0),
791 .Mubi (1'b0)
792 ) u_intr_enable_rx_threshold (
793 .clk_i (clk_i),
794 .rst_ni (rst_ni),
795
796 // from register interface
797 .we (intr_enable_we),
798 .wd (intr_enable_rx_threshold_wd),
799
800 // from internal hardware
801 .de (1'b0),
802 .d ('0),
803
804 // to internal hardware
805 .qe (),
806 .q (reg2hw.intr_enable.rx_threshold.q),
807 .ds (),
808
809 // to register interface (read)
810 .qs (intr_enable_rx_threshold_qs)
811 );
812
813 // F[acq_threshold]: 2:2
814 prim_subreg #(
815 .DW (1),
816 .SwAccess(prim_subreg_pkg::SwAccessRW),
817 .RESVAL (1'h0),
818 .Mubi (1'b0)
819 ) u_intr_enable_acq_threshold (
820 .clk_i (clk_i),
821 .rst_ni (rst_ni),
822
823 // from register interface
824 .we (intr_enable_we),
825 .wd (intr_enable_acq_threshold_wd),
826
827 // from internal hardware
828 .de (1'b0),
829 .d ('0),
830
831 // to internal hardware
832 .qe (),
833 .q (reg2hw.intr_enable.acq_threshold.q),
834 .ds (),
835
836 // to register interface (read)
837 .qs (intr_enable_acq_threshold_qs)
838 );
839
840 // F[rx_overflow]: 3:3
841 prim_subreg #(
842 .DW (1),
843 .SwAccess(prim_subreg_pkg::SwAccessRW),
844 .RESVAL (1'h0),
845 .Mubi (1'b0)
846 ) u_intr_enable_rx_overflow (
847 .clk_i (clk_i),
848 .rst_ni (rst_ni),
849
850 // from register interface
851 .we (intr_enable_we),
852 .wd (intr_enable_rx_overflow_wd),
853
854 // from internal hardware
855 .de (1'b0),
856 .d ('0),
857
858 // to internal hardware
859 .qe (),
860 .q (reg2hw.intr_enable.rx_overflow.q),
861 .ds (),
862
863 // to register interface (read)
864 .qs (intr_enable_rx_overflow_qs)
865 );
866
867 // F[controller_halt]: 4:4
868 prim_subreg #(
869 .DW (1),
870 .SwAccess(prim_subreg_pkg::SwAccessRW),
871 .RESVAL (1'h0),
872 .Mubi (1'b0)
873 ) u_intr_enable_controller_halt (
874 .clk_i (clk_i),
875 .rst_ni (rst_ni),
876
877 // from register interface
878 .we (intr_enable_we),
879 .wd (intr_enable_controller_halt_wd),
880
881 // from internal hardware
882 .de (1'b0),
883 .d ('0),
884
885 // to internal hardware
886 .qe (),
887 .q (reg2hw.intr_enable.controller_halt.q),
888 .ds (),
889
890 // to register interface (read)
891 .qs (intr_enable_controller_halt_qs)
892 );
893
894 // F[scl_interference]: 5:5
895 prim_subreg #(
896 .DW (1),
897 .SwAccess(prim_subreg_pkg::SwAccessRW),
898 .RESVAL (1'h0),
899 .Mubi (1'b0)
900 ) u_intr_enable_scl_interference (
901 .clk_i (clk_i),
902 .rst_ni (rst_ni),
903
904 // from register interface
905 .we (intr_enable_we),
906 .wd (intr_enable_scl_interference_wd),
907
908 // from internal hardware
909 .de (1'b0),
910 .d ('0),
911
912 // to internal hardware
913 .qe (),
914 .q (reg2hw.intr_enable.scl_interference.q),
915 .ds (),
916
917 // to register interface (read)
918 .qs (intr_enable_scl_interference_qs)
919 );
920
921 // F[sda_interference]: 6:6
922 prim_subreg #(
923 .DW (1),
924 .SwAccess(prim_subreg_pkg::SwAccessRW),
925 .RESVAL (1'h0),
926 .Mubi (1'b0)
927 ) u_intr_enable_sda_interference (
928 .clk_i (clk_i),
929 .rst_ni (rst_ni),
930
931 // from register interface
932 .we (intr_enable_we),
933 .wd (intr_enable_sda_interference_wd),
934
935 // from internal hardware
936 .de (1'b0),
937 .d ('0),
938
939 // to internal hardware
940 .qe (),
941 .q (reg2hw.intr_enable.sda_interference.q),
942 .ds (),
943
944 // to register interface (read)
945 .qs (intr_enable_sda_interference_qs)
946 );
947
948 // F[stretch_timeout]: 7:7
949 prim_subreg #(
950 .DW (1),
951 .SwAccess(prim_subreg_pkg::SwAccessRW),
952 .RESVAL (1'h0),
953 .Mubi (1'b0)
954 ) u_intr_enable_stretch_timeout (
955 .clk_i (clk_i),
956 .rst_ni (rst_ni),
957
958 // from register interface
959 .we (intr_enable_we),
960 .wd (intr_enable_stretch_timeout_wd),
961
962 // from internal hardware
963 .de (1'b0),
964 .d ('0),
965
966 // to internal hardware
967 .qe (),
968 .q (reg2hw.intr_enable.stretch_timeout.q),
969 .ds (),
970
971 // to register interface (read)
972 .qs (intr_enable_stretch_timeout_qs)
973 );
974
975 // F[sda_unstable]: 8:8
976 prim_subreg #(
977 .DW (1),
978 .SwAccess(prim_subreg_pkg::SwAccessRW),
979 .RESVAL (1'h0),
980 .Mubi (1'b0)
981 ) u_intr_enable_sda_unstable (
982 .clk_i (clk_i),
983 .rst_ni (rst_ni),
984
985 // from register interface
986 .we (intr_enable_we),
987 .wd (intr_enable_sda_unstable_wd),
988
989 // from internal hardware
990 .de (1'b0),
991 .d ('0),
992
993 // to internal hardware
994 .qe (),
995 .q (reg2hw.intr_enable.sda_unstable.q),
996 .ds (),
997
998 // to register interface (read)
999 .qs (intr_enable_sda_unstable_qs)
1000 );
1001
1002 // F[cmd_complete]: 9:9
1003 prim_subreg #(
1004 .DW (1),
1005 .SwAccess(prim_subreg_pkg::SwAccessRW),
1006 .RESVAL (1'h0),
1007 .Mubi (1'b0)
1008 ) u_intr_enable_cmd_complete (
1009 .clk_i (clk_i),
1010 .rst_ni (rst_ni),
1011
1012 // from register interface
1013 .we (intr_enable_we),
1014 .wd (intr_enable_cmd_complete_wd),
1015
1016 // from internal hardware
1017 .de (1'b0),
1018 .d ('0),
1019
1020 // to internal hardware
1021 .qe (),
1022 .q (reg2hw.intr_enable.cmd_complete.q),
1023 .ds (),
1024
1025 // to register interface (read)
1026 .qs (intr_enable_cmd_complete_qs)
1027 );
1028
1029 // F[tx_stretch]: 10:10
1030 prim_subreg #(
1031 .DW (1),
1032 .SwAccess(prim_subreg_pkg::SwAccessRW),
1033 .RESVAL (1'h0),
1034 .Mubi (1'b0)
1035 ) u_intr_enable_tx_stretch (
1036 .clk_i (clk_i),
1037 .rst_ni (rst_ni),
1038
1039 // from register interface
1040 .we (intr_enable_we),
1041 .wd (intr_enable_tx_stretch_wd),
1042
1043 // from internal hardware
1044 .de (1'b0),
1045 .d ('0),
1046
1047 // to internal hardware
1048 .qe (),
1049 .q (reg2hw.intr_enable.tx_stretch.q),
1050 .ds (),
1051
1052 // to register interface (read)
1053 .qs (intr_enable_tx_stretch_qs)
1054 );
1055
1056 // F[tx_threshold]: 11:11
1057 prim_subreg #(
1058 .DW (1),
1059 .SwAccess(prim_subreg_pkg::SwAccessRW),
1060 .RESVAL (1'h0),
1061 .Mubi (1'b0)
1062 ) u_intr_enable_tx_threshold (
1063 .clk_i (clk_i),
1064 .rst_ni (rst_ni),
1065
1066 // from register interface
1067 .we (intr_enable_we),
1068 .wd (intr_enable_tx_threshold_wd),
1069
1070 // from internal hardware
1071 .de (1'b0),
1072 .d ('0),
1073
1074 // to internal hardware
1075 .qe (),
1076 .q (reg2hw.intr_enable.tx_threshold.q),
1077 .ds (),
1078
1079 // to register interface (read)
1080 .qs (intr_enable_tx_threshold_qs)
1081 );
1082
1083 // F[acq_stretch]: 12:12
1084 prim_subreg #(
1085 .DW (1),
1086 .SwAccess(prim_subreg_pkg::SwAccessRW),
1087 .RESVAL (1'h0),
1088 .Mubi (1'b0)
1089 ) u_intr_enable_acq_stretch (
1090 .clk_i (clk_i),
1091 .rst_ni (rst_ni),
1092
1093 // from register interface
1094 .we (intr_enable_we),
1095 .wd (intr_enable_acq_stretch_wd),
1096
1097 // from internal hardware
1098 .de (1'b0),
1099 .d ('0),
1100
1101 // to internal hardware
1102 .qe (),
1103 .q (reg2hw.intr_enable.acq_stretch.q),
1104 .ds (),
1105
1106 // to register interface (read)
1107 .qs (intr_enable_acq_stretch_qs)
1108 );
1109
1110 // F[unexp_stop]: 13:13
1111 prim_subreg #(
1112 .DW (1),
1113 .SwAccess(prim_subreg_pkg::SwAccessRW),
1114 .RESVAL (1'h0),
1115 .Mubi (1'b0)
1116 ) u_intr_enable_unexp_stop (
1117 .clk_i (clk_i),
1118 .rst_ni (rst_ni),
1119
1120 // from register interface
1121 .we (intr_enable_we),
1122 .wd (intr_enable_unexp_stop_wd),
1123
1124 // from internal hardware
1125 .de (1'b0),
1126 .d ('0),
1127
1128 // to internal hardware
1129 .qe (),
1130 .q (reg2hw.intr_enable.unexp_stop.q),
1131 .ds (),
1132
1133 // to register interface (read)
1134 .qs (intr_enable_unexp_stop_qs)
1135 );
1136
1137 // F[host_timeout]: 14:14
1138 prim_subreg #(
1139 .DW (1),
1140 .SwAccess(prim_subreg_pkg::SwAccessRW),
1141 .RESVAL (1'h0),
1142 .Mubi (1'b0)
1143 ) u_intr_enable_host_timeout (
1144 .clk_i (clk_i),
1145 .rst_ni (rst_ni),
1146
1147 // from register interface
1148 .we (intr_enable_we),
1149 .wd (intr_enable_host_timeout_wd),
1150
1151 // from internal hardware
1152 .de (1'b0),
1153 .d ('0),
1154
1155 // to internal hardware
1156 .qe (),
1157 .q (reg2hw.intr_enable.host_timeout.q),
1158 .ds (),
1159
1160 // to register interface (read)
1161 .qs (intr_enable_host_timeout_qs)
1162 );
1163
1164
1165 // R[intr_test]: V(True)
1166 logic intr_test_qe;
1167 logic [14:0] intr_test_flds_we;
1168 1/1 assign intr_test_qe = &intr_test_flds_we;
Tests: T183 T131 T132
1169 // F[fmt_threshold]: 0:0
1170 prim_subreg_ext #(
1171 .DW (1)
1172 ) u_intr_test_fmt_threshold (
1173 .re (1'b0),
1174 .we (intr_test_we),
1175 .wd (intr_test_fmt_threshold_wd),
1176 .d ('0),
1177 .qre (),
1178 .qe (intr_test_flds_we[0]),
1179 .q (reg2hw.intr_test.fmt_threshold.q),
1180 .ds (),
1181 .qs ()
1182 );
1183 1/1 assign reg2hw.intr_test.fmt_threshold.qe = intr_test_qe;
Tests: T183 T131 T132
1184
1185 // F[rx_threshold]: 1:1
1186 prim_subreg_ext #(
1187 .DW (1)
1188 ) u_intr_test_rx_threshold (
1189 .re (1'b0),
1190 .we (intr_test_we),
1191 .wd (intr_test_rx_threshold_wd),
1192 .d ('0),
1193 .qre (),
1194 .qe (intr_test_flds_we[1]),
1195 .q (reg2hw.intr_test.rx_threshold.q),
1196 .ds (),
1197 .qs ()
1198 );
1199 1/1 assign reg2hw.intr_test.rx_threshold.qe = intr_test_qe;
Tests: T183 T131 T132
1200
1201 // F[acq_threshold]: 2:2
1202 prim_subreg_ext #(
1203 .DW (1)
1204 ) u_intr_test_acq_threshold (
1205 .re (1'b0),
1206 .we (intr_test_we),
1207 .wd (intr_test_acq_threshold_wd),
1208 .d ('0),
1209 .qre (),
1210 .qe (intr_test_flds_we[2]),
1211 .q (reg2hw.intr_test.acq_threshold.q),
1212 .ds (),
1213 .qs ()
1214 );
1215 1/1 assign reg2hw.intr_test.acq_threshold.qe = intr_test_qe;
Tests: T183 T131 T132
1216
1217 // F[rx_overflow]: 3:3
1218 prim_subreg_ext #(
1219 .DW (1)
1220 ) u_intr_test_rx_overflow (
1221 .re (1'b0),
1222 .we (intr_test_we),
1223 .wd (intr_test_rx_overflow_wd),
1224 .d ('0),
1225 .qre (),
1226 .qe (intr_test_flds_we[3]),
1227 .q (reg2hw.intr_test.rx_overflow.q),
1228 .ds (),
1229 .qs ()
1230 );
1231 1/1 assign reg2hw.intr_test.rx_overflow.qe = intr_test_qe;
Tests: T183 T131 T132
1232
1233 // F[controller_halt]: 4:4
1234 prim_subreg_ext #(
1235 .DW (1)
1236 ) u_intr_test_controller_halt (
1237 .re (1'b0),
1238 .we (intr_test_we),
1239 .wd (intr_test_controller_halt_wd),
1240 .d ('0),
1241 .qre (),
1242 .qe (intr_test_flds_we[4]),
1243 .q (reg2hw.intr_test.controller_halt.q),
1244 .ds (),
1245 .qs ()
1246 );
1247 1/1 assign reg2hw.intr_test.controller_halt.qe = intr_test_qe;
Tests: T183 T131 T132
1248
1249 // F[scl_interference]: 5:5
1250 prim_subreg_ext #(
1251 .DW (1)
1252 ) u_intr_test_scl_interference (
1253 .re (1'b0),
1254 .we (intr_test_we),
1255 .wd (intr_test_scl_interference_wd),
1256 .d ('0),
1257 .qre (),
1258 .qe (intr_test_flds_we[5]),
1259 .q (reg2hw.intr_test.scl_interference.q),
1260 .ds (),
1261 .qs ()
1262 );
1263 1/1 assign reg2hw.intr_test.scl_interference.qe = intr_test_qe;
Tests: T183 T131 T132
1264
1265 // F[sda_interference]: 6:6
1266 prim_subreg_ext #(
1267 .DW (1)
1268 ) u_intr_test_sda_interference (
1269 .re (1'b0),
1270 .we (intr_test_we),
1271 .wd (intr_test_sda_interference_wd),
1272 .d ('0),
1273 .qre (),
1274 .qe (intr_test_flds_we[6]),
1275 .q (reg2hw.intr_test.sda_interference.q),
1276 .ds (),
1277 .qs ()
1278 );
1279 1/1 assign reg2hw.intr_test.sda_interference.qe = intr_test_qe;
Tests: T183 T131 T132
1280
1281 // F[stretch_timeout]: 7:7
1282 prim_subreg_ext #(
1283 .DW (1)
1284 ) u_intr_test_stretch_timeout (
1285 .re (1'b0),
1286 .we (intr_test_we),
1287 .wd (intr_test_stretch_timeout_wd),
1288 .d ('0),
1289 .qre (),
1290 .qe (intr_test_flds_we[7]),
1291 .q (reg2hw.intr_test.stretch_timeout.q),
1292 .ds (),
1293 .qs ()
1294 );
1295 1/1 assign reg2hw.intr_test.stretch_timeout.qe = intr_test_qe;
Tests: T183 T131 T132
1296
1297 // F[sda_unstable]: 8:8
1298 prim_subreg_ext #(
1299 .DW (1)
1300 ) u_intr_test_sda_unstable (
1301 .re (1'b0),
1302 .we (intr_test_we),
1303 .wd (intr_test_sda_unstable_wd),
1304 .d ('0),
1305 .qre (),
1306 .qe (intr_test_flds_we[8]),
1307 .q (reg2hw.intr_test.sda_unstable.q),
1308 .ds (),
1309 .qs ()
1310 );
1311 1/1 assign reg2hw.intr_test.sda_unstable.qe = intr_test_qe;
Tests: T183 T131 T132
1312
1313 // F[cmd_complete]: 9:9
1314 prim_subreg_ext #(
1315 .DW (1)
1316 ) u_intr_test_cmd_complete (
1317 .re (1'b0),
1318 .we (intr_test_we),
1319 .wd (intr_test_cmd_complete_wd),
1320 .d ('0),
1321 .qre (),
1322 .qe (intr_test_flds_we[9]),
1323 .q (reg2hw.intr_test.cmd_complete.q),
1324 .ds (),
1325 .qs ()
1326 );
1327 1/1 assign reg2hw.intr_test.cmd_complete.qe = intr_test_qe;
Tests: T183 T131 T132
1328
1329 // F[tx_stretch]: 10:10
1330 prim_subreg_ext #(
1331 .DW (1)
1332 ) u_intr_test_tx_stretch (
1333 .re (1'b0),
1334 .we (intr_test_we),
1335 .wd (intr_test_tx_stretch_wd),
1336 .d ('0),
1337 .qre (),
1338 .qe (intr_test_flds_we[10]),
1339 .q (reg2hw.intr_test.tx_stretch.q),
1340 .ds (),
1341 .qs ()
1342 );
1343 1/1 assign reg2hw.intr_test.tx_stretch.qe = intr_test_qe;
Tests: T183 T131 T132
1344
1345 // F[tx_threshold]: 11:11
1346 prim_subreg_ext #(
1347 .DW (1)
1348 ) u_intr_test_tx_threshold (
1349 .re (1'b0),
1350 .we (intr_test_we),
1351 .wd (intr_test_tx_threshold_wd),
1352 .d ('0),
1353 .qre (),
1354 .qe (intr_test_flds_we[11]),
1355 .q (reg2hw.intr_test.tx_threshold.q),
1356 .ds (),
1357 .qs ()
1358 );
1359 1/1 assign reg2hw.intr_test.tx_threshold.qe = intr_test_qe;
Tests: T183 T131 T132
1360
1361 // F[acq_stretch]: 12:12
1362 prim_subreg_ext #(
1363 .DW (1)
1364 ) u_intr_test_acq_stretch (
1365 .re (1'b0),
1366 .we (intr_test_we),
1367 .wd (intr_test_acq_stretch_wd),
1368 .d ('0),
1369 .qre (),
1370 .qe (intr_test_flds_we[12]),
1371 .q (reg2hw.intr_test.acq_stretch.q),
1372 .ds (),
1373 .qs ()
1374 );
1375 1/1 assign reg2hw.intr_test.acq_stretch.qe = intr_test_qe;
Tests: T183 T131 T132
1376
1377 // F[unexp_stop]: 13:13
1378 prim_subreg_ext #(
1379 .DW (1)
1380 ) u_intr_test_unexp_stop (
1381 .re (1'b0),
1382 .we (intr_test_we),
1383 .wd (intr_test_unexp_stop_wd),
1384 .d ('0),
1385 .qre (),
1386 .qe (intr_test_flds_we[13]),
1387 .q (reg2hw.intr_test.unexp_stop.q),
1388 .ds (),
1389 .qs ()
1390 );
1391 1/1 assign reg2hw.intr_test.unexp_stop.qe = intr_test_qe;
Tests: T183 T131 T132
1392
1393 // F[host_timeout]: 14:14
1394 prim_subreg_ext #(
1395 .DW (1)
1396 ) u_intr_test_host_timeout (
1397 .re (1'b0),
1398 .we (intr_test_we),
1399 .wd (intr_test_host_timeout_wd),
1400 .d ('0),
1401 .qre (),
1402 .qe (intr_test_flds_we[14]),
1403 .q (reg2hw.intr_test.host_timeout.q),
1404 .ds (),
1405 .qs ()
1406 );
1407 1/1 assign reg2hw.intr_test.host_timeout.qe = intr_test_qe;
Tests: T183 T131 T132
1408
1409
1410 // R[alert_test]: V(True)
1411 logic alert_test_qe;
1412 logic [0:0] alert_test_flds_we;
1413 1/1 assign alert_test_qe = &alert_test_flds_we;
Tests: T98 T99 T100
1414 prim_subreg_ext #(
1415 .DW (1)
1416 ) u_alert_test (
1417 .re (1'b0),
1418 .we (alert_test_we),
1419 .wd (alert_test_wd),
1420 .d ('0),
1421 .qre (),
1422 .qe (alert_test_flds_we[0]),
1423 .q (reg2hw.alert_test.q),
1424 .ds (),
1425 .qs ()
1426 );
1427 1/1 assign reg2hw.alert_test.qe = alert_test_qe;
Tests: T98 T99 T100
1428
1429
1430 // R[ctrl]: V(False)
1431 // F[enablehost]: 0:0
1432 prim_subreg #(
1433 .DW (1),
1434 .SwAccess(prim_subreg_pkg::SwAccessRW),
1435 .RESVAL (1'h0),
1436 .Mubi (1'b0)
1437 ) u_ctrl_enablehost (
1438 .clk_i (clk_i),
1439 .rst_ni (rst_ni),
1440
1441 // from register interface
1442 .we (ctrl_we),
1443 .wd (ctrl_enablehost_wd),
1444
1445 // from internal hardware
1446 .de (1'b0),
1447 .d ('0),
1448
1449 // to internal hardware
1450 .qe (),
1451 .q (reg2hw.ctrl.enablehost.q),
1452 .ds (),
1453
1454 // to register interface (read)
1455 .qs (ctrl_enablehost_qs)
1456 );
1457
1458 // F[enabletarget]: 1:1
1459 prim_subreg #(
1460 .DW (1),
1461 .SwAccess(prim_subreg_pkg::SwAccessRW),
1462 .RESVAL (1'h0),
1463 .Mubi (1'b0)
1464 ) u_ctrl_enabletarget (
1465 .clk_i (clk_i),
1466 .rst_ni (rst_ni),
1467
1468 // from register interface
1469 .we (ctrl_we),
1470 .wd (ctrl_enabletarget_wd),
1471
1472 // from internal hardware
1473 .de (1'b0),
1474 .d ('0),
1475
1476 // to internal hardware
1477 .qe (),
1478 .q (reg2hw.ctrl.enabletarget.q),
1479 .ds (),
1480
1481 // to register interface (read)
1482 .qs (ctrl_enabletarget_qs)
1483 );
1484
1485 // F[llpbk]: 2:2
1486 prim_subreg #(
1487 .DW (1),
1488 .SwAccess(prim_subreg_pkg::SwAccessRW),
1489 .RESVAL (1'h0),
1490 .Mubi (1'b0)
1491 ) u_ctrl_llpbk (
1492 .clk_i (clk_i),
1493 .rst_ni (rst_ni),
1494
1495 // from register interface
1496 .we (ctrl_we),
1497 .wd (ctrl_llpbk_wd),
1498
1499 // from internal hardware
1500 .de (1'b0),
1501 .d ('0),
1502
1503 // to internal hardware
1504 .qe (),
1505 .q (reg2hw.ctrl.llpbk.q),
1506 .ds (),
1507
1508 // to register interface (read)
1509 .qs (ctrl_llpbk_qs)
1510 );
1511
1512 // F[nack_addr_after_timeout]: 3:3
1513 prim_subreg #(
1514 .DW (1),
1515 .SwAccess(prim_subreg_pkg::SwAccessRW),
1516 .RESVAL (1'h0),
1517 .Mubi (1'b0)
1518 ) u_ctrl_nack_addr_after_timeout (
1519 .clk_i (clk_i),
1520 .rst_ni (rst_ni),
1521
1522 // from register interface
1523 .we (ctrl_we),
1524 .wd (ctrl_nack_addr_after_timeout_wd),
1525
1526 // from internal hardware
1527 .de (1'b0),
1528 .d ('0),
1529
1530 // to internal hardware
1531 .qe (),
1532 .q (reg2hw.ctrl.nack_addr_after_timeout.q),
1533 .ds (),
1534
1535 // to register interface (read)
1536 .qs (ctrl_nack_addr_after_timeout_qs)
1537 );
1538
1539 // F[ack_ctrl_en]: 4:4
1540 prim_subreg #(
1541 .DW (1),
1542 .SwAccess(prim_subreg_pkg::SwAccessRW),
1543 .RESVAL (1'h0),
1544 .Mubi (1'b0)
1545 ) u_ctrl_ack_ctrl_en (
1546 .clk_i (clk_i),
1547 .rst_ni (rst_ni),
1548
1549 // from register interface
1550 .we (ctrl_we),
1551 .wd (ctrl_ack_ctrl_en_wd),
1552
1553 // from internal hardware
1554 .de (1'b0),
1555 .d ('0),
1556
1557 // to internal hardware
1558 .qe (),
1559 .q (reg2hw.ctrl.ack_ctrl_en.q),
1560 .ds (),
1561
1562 // to register interface (read)
1563 .qs (ctrl_ack_ctrl_en_qs)
1564 );
1565
1566 // F[multi_controller_monitor_en]: 5:5
1567 prim_subreg #(
1568 .DW (1),
1569 .SwAccess(prim_subreg_pkg::SwAccessRW),
1570 .RESVAL (1'h0),
1571 .Mubi (1'b0)
1572 ) u_ctrl_multi_controller_monitor_en (
1573 .clk_i (clk_i),
1574 .rst_ni (rst_ni),
1575
1576 // from register interface
1577 .we (ctrl_we),
1578 .wd (ctrl_multi_controller_monitor_en_wd),
1579
1580 // from internal hardware
1581 .de (1'b0),
1582 .d ('0),
1583
1584 // to internal hardware
1585 .qe (),
1586 .q (reg2hw.ctrl.multi_controller_monitor_en.q),
1587 .ds (),
1588
1589 // to register interface (read)
1590 .qs (ctrl_multi_controller_monitor_en_qs)
1591 );
1592
1593 // F[tx_stretch_ctrl_en]: 6:6
1594 prim_subreg #(
1595 .DW (1),
1596 .SwAccess(prim_subreg_pkg::SwAccessRW),
1597 .RESVAL (1'h0),
1598 .Mubi (1'b0)
1599 ) u_ctrl_tx_stretch_ctrl_en (
1600 .clk_i (clk_i),
1601 .rst_ni (rst_ni),
1602
1603 // from register interface
1604 .we (ctrl_we),
1605 .wd (ctrl_tx_stretch_ctrl_en_wd),
1606
1607 // from internal hardware
1608 .de (1'b0),
1609 .d ('0),
1610
1611 // to internal hardware
1612 .qe (),
1613 .q (reg2hw.ctrl.tx_stretch_ctrl_en.q),
1614 .ds (),
1615
1616 // to register interface (read)
1617 .qs (ctrl_tx_stretch_ctrl_en_qs)
1618 );
1619
1620
1621 // R[status]: V(True)
1622 // F[fmtfull]: 0:0
1623 prim_subreg_ext #(
1624 .DW (1)
1625 ) u_status_fmtfull (
1626 .re (status_re),
1627 .we (1'b0),
1628 .wd ('0),
1629 .d (hw2reg.status.fmtfull.d),
1630 .qre (),
1631 .qe (),
1632 .q (),
1633 .ds (),
1634 .qs (status_fmtfull_qs)
1635 );
1636
1637 // F[rxfull]: 1:1
1638 prim_subreg_ext #(
1639 .DW (1)
1640 ) u_status_rxfull (
1641 .re (status_re),
1642 .we (1'b0),
1643 .wd ('0),
1644 .d (hw2reg.status.rxfull.d),
1645 .qre (),
1646 .qe (),
1647 .q (),
1648 .ds (),
1649 .qs (status_rxfull_qs)
1650 );
1651
1652 // F[fmtempty]: 2:2
1653 prim_subreg_ext #(
1654 .DW (1)
1655 ) u_status_fmtempty (
1656 .re (status_re),
1657 .we (1'b0),
1658 .wd ('0),
1659 .d (hw2reg.status.fmtempty.d),
1660 .qre (),
1661 .qe (),
1662 .q (),
1663 .ds (),
1664 .qs (status_fmtempty_qs)
1665 );
1666
1667 // F[hostidle]: 3:3
1668 prim_subreg_ext #(
1669 .DW (1)
1670 ) u_status_hostidle (
1671 .re (status_re),
1672 .we (1'b0),
1673 .wd ('0),
1674 .d (hw2reg.status.hostidle.d),
1675 .qre (),
1676 .qe (),
1677 .q (),
1678 .ds (),
1679 .qs (status_hostidle_qs)
1680 );
1681
1682 // F[targetidle]: 4:4
1683 prim_subreg_ext #(
1684 .DW (1)
1685 ) u_status_targetidle (
1686 .re (status_re),
1687 .we (1'b0),
1688 .wd ('0),
1689 .d (hw2reg.status.targetidle.d),
1690 .qre (),
1691 .qe (),
1692 .q (),
1693 .ds (),
1694 .qs (status_targetidle_qs)
1695 );
1696
1697 // F[rxempty]: 5:5
1698 prim_subreg_ext #(
1699 .DW (1)
1700 ) u_status_rxempty (
1701 .re (status_re),
1702 .we (1'b0),
1703 .wd ('0),
1704 .d (hw2reg.status.rxempty.d),
1705 .qre (),
1706 .qe (),
1707 .q (),
1708 .ds (),
1709 .qs (status_rxempty_qs)
1710 );
1711
1712 // F[txfull]: 6:6
1713 prim_subreg_ext #(
1714 .DW (1)
1715 ) u_status_txfull (
1716 .re (status_re),
1717 .we (1'b0),
1718 .wd ('0),
1719 .d (hw2reg.status.txfull.d),
1720 .qre (),
1721 .qe (),
1722 .q (),
1723 .ds (),
1724 .qs (status_txfull_qs)
1725 );
1726
1727 // F[acqfull]: 7:7
1728 prim_subreg_ext #(
1729 .DW (1)
1730 ) u_status_acqfull (
1731 .re (status_re),
1732 .we (1'b0),
1733 .wd ('0),
1734 .d (hw2reg.status.acqfull.d),
1735 .qre (),
1736 .qe (),
1737 .q (),
1738 .ds (),
1739 .qs (status_acqfull_qs)
1740 );
1741
1742 // F[txempty]: 8:8
1743 prim_subreg_ext #(
1744 .DW (1)
1745 ) u_status_txempty (
1746 .re (status_re),
1747 .we (1'b0),
1748 .wd ('0),
1749 .d (hw2reg.status.txempty.d),
1750 .qre (),
1751 .qe (),
1752 .q (),
1753 .ds (),
1754 .qs (status_txempty_qs)
1755 );
1756
1757 // F[acqempty]: 9:9
1758 prim_subreg_ext #(
1759 .DW (1)
1760 ) u_status_acqempty (
1761 .re (status_re),
1762 .we (1'b0),
1763 .wd ('0),
1764 .d (hw2reg.status.acqempty.d),
1765 .qre (),
1766 .qe (),
1767 .q (),
1768 .ds (),
1769 .qs (status_acqempty_qs)
1770 );
1771
1772 // F[ack_ctrl_stretch]: 10:10
1773 prim_subreg_ext #(
1774 .DW (1)
1775 ) u_status_ack_ctrl_stretch (
1776 .re (status_re),
1777 .we (1'b0),
1778 .wd ('0),
1779 .d (hw2reg.status.ack_ctrl_stretch.d),
1780 .qre (),
1781 .qe (),
1782 .q (),
1783 .ds (),
1784 .qs (status_ack_ctrl_stretch_qs)
1785 );
1786
1787
1788 // R[rdata]: V(True)
1789 prim_subreg_ext #(
1790 .DW (8)
1791 ) u_rdata (
1792 .re (rdata_re),
1793 .we (1'b0),
1794 .wd ('0),
1795 .d (hw2reg.rdata.d),
1796 .qre (reg2hw.rdata.re),
1797 .qe (),
1798 .q (reg2hw.rdata.q),
1799 .ds (),
1800 .qs (rdata_qs)
1801 );
1802
1803
1804 // R[fdata]: V(False)
1805 logic fdata_qe;
1806 logic [5:0] fdata_flds_we;
1807 prim_flop #(
1808 .Width(1),
1809 .ResetValue(0)
1810 ) u_fdata0_qe (
1811 .clk_i(clk_i),
1812 .rst_ni(rst_ni),
1813 .d_i(&fdata_flds_we),
1814 .q_o(fdata_qe)
1815 );
1816 // F[fbyte]: 7:0
1817 prim_subreg #(
1818 .DW (8),
1819 .SwAccess(prim_subreg_pkg::SwAccessWO),
1820 .RESVAL (8'h0),
1821 .Mubi (1'b0)
1822 ) u_fdata_fbyte (
1823 .clk_i (clk_i),
1824 .rst_ni (rst_ni),
1825
1826 // from register interface
1827 .we (fdata_we),
1828 .wd (fdata_fbyte_wd),
1829
1830 // from internal hardware
1831 .de (1'b0),
1832 .d ('0),
1833
1834 // to internal hardware
1835 .qe (fdata_flds_we[0]),
1836 .q (reg2hw.fdata.fbyte.q),
1837 .ds (),
1838
1839 // to register interface (read)
1840 .qs ()
1841 );
1842 1/1 assign reg2hw.fdata.fbyte.qe = fdata_qe;
Tests: T1 T2 T3
1843
1844 // F[start]: 8:8
1845 prim_subreg #(
1846 .DW (1),
1847 .SwAccess(prim_subreg_pkg::SwAccessWO),
1848 .RESVAL (1'h0),
1849 .Mubi (1'b0)
1850 ) u_fdata_start (
1851 .clk_i (clk_i),
1852 .rst_ni (rst_ni),
1853
1854 // from register interface
1855 .we (fdata_we),
1856 .wd (fdata_start_wd),
1857
1858 // from internal hardware
1859 .de (1'b0),
1860 .d ('0),
1861
1862 // to internal hardware
1863 .qe (fdata_flds_we[1]),
1864 .q (reg2hw.fdata.start.q),
1865 .ds (),
1866
1867 // to register interface (read)
1868 .qs ()
1869 );
1870 1/1 assign reg2hw.fdata.start.qe = fdata_qe;
Tests: T1 T2 T3
1871
1872 // F[stop]: 9:9
1873 prim_subreg #(
1874 .DW (1),
1875 .SwAccess(prim_subreg_pkg::SwAccessWO),
1876 .RESVAL (1'h0),
1877 .Mubi (1'b0)
1878 ) u_fdata_stop (
1879 .clk_i (clk_i),
1880 .rst_ni (rst_ni),
1881
1882 // from register interface
1883 .we (fdata_we),
1884 .wd (fdata_stop_wd),
1885
1886 // from internal hardware
1887 .de (1'b0),
1888 .d ('0),
1889
1890 // to internal hardware
1891 .qe (fdata_flds_we[2]),
1892 .q (reg2hw.fdata.stop.q),
1893 .ds (),
1894
1895 // to register interface (read)
1896 .qs ()
1897 );
1898 1/1 assign reg2hw.fdata.stop.qe = fdata_qe;
Tests: T1 T2 T3
1899
1900 // F[readb]: 10:10
1901 prim_subreg #(
1902 .DW (1),
1903 .SwAccess(prim_subreg_pkg::SwAccessWO),
1904 .RESVAL (1'h0),
1905 .Mubi (1'b0)
1906 ) u_fdata_readb (
1907 .clk_i (clk_i),
1908 .rst_ni (rst_ni),
1909
1910 // from register interface
1911 .we (fdata_we),
1912 .wd (fdata_readb_wd),
1913
1914 // from internal hardware
1915 .de (1'b0),
1916 .d ('0),
1917
1918 // to internal hardware
1919 .qe (fdata_flds_we[3]),
1920 .q (reg2hw.fdata.readb.q),
1921 .ds (),
1922
1923 // to register interface (read)
1924 .qs ()
1925 );
1926 1/1 assign reg2hw.fdata.readb.qe = fdata_qe;
Tests: T1 T2 T3
1927
1928 // F[rcont]: 11:11
1929 prim_subreg #(
1930 .DW (1),
1931 .SwAccess(prim_subreg_pkg::SwAccessWO),
1932 .RESVAL (1'h0),
1933 .Mubi (1'b0)
1934 ) u_fdata_rcont (
1935 .clk_i (clk_i),
1936 .rst_ni (rst_ni),
1937
1938 // from register interface
1939 .we (fdata_we),
1940 .wd (fdata_rcont_wd),
1941
1942 // from internal hardware
1943 .de (1'b0),
1944 .d ('0),
1945
1946 // to internal hardware
1947 .qe (fdata_flds_we[4]),
1948 .q (reg2hw.fdata.rcont.q),
1949 .ds (),
1950
1951 // to register interface (read)
1952 .qs ()
1953 );
1954 1/1 assign reg2hw.fdata.rcont.qe = fdata_qe;
Tests: T1 T2 T3
1955
1956 // F[nakok]: 12:12
1957 prim_subreg #(
1958 .DW (1),
1959 .SwAccess(prim_subreg_pkg::SwAccessWO),
1960 .RESVAL (1'h0),
1961 .Mubi (1'b0)
1962 ) u_fdata_nakok (
1963 .clk_i (clk_i),
1964 .rst_ni (rst_ni),
1965
1966 // from register interface
1967 .we (fdata_we),
1968 .wd (fdata_nakok_wd),
1969
1970 // from internal hardware
1971 .de (1'b0),
1972 .d ('0),
1973
1974 // to internal hardware
1975 .qe (fdata_flds_we[5]),
1976 .q (reg2hw.fdata.nakok.q),
1977 .ds (),
1978
1979 // to register interface (read)
1980 .qs ()
1981 );
1982 1/1 assign reg2hw.fdata.nakok.qe = fdata_qe;
Tests: T1 T2 T3
1983
1984
1985 // R[fifo_ctrl]: V(False)
1986 logic fifo_ctrl_qe;
1987 logic [3:0] fifo_ctrl_flds_we;
1988 prim_flop #(
1989 .Width(1),
1990 .ResetValue(0)
1991 ) u_fifo_ctrl0_qe (
1992 .clk_i(clk_i),
1993 .rst_ni(rst_ni),
1994 .d_i(&fifo_ctrl_flds_we),
1995 .q_o(fifo_ctrl_qe)
1996 );
1997 // F[rxrst]: 0:0
1998 prim_subreg #(
1999 .DW (1),
2000 .SwAccess(prim_subreg_pkg::SwAccessWO),
2001 .RESVAL (1'h0),
2002 .Mubi (1'b0)
2003 ) u_fifo_ctrl_rxrst (
2004 .clk_i (clk_i),
2005 .rst_ni (rst_ni),
2006
2007 // from register interface
2008 .we (fifo_ctrl_we),
2009 .wd (fifo_ctrl_rxrst_wd),
2010
2011 // from internal hardware
2012 .de (1'b0),
2013 .d ('0),
2014
2015 // to internal hardware
2016 .qe (fifo_ctrl_flds_we[0]),
2017 .q (reg2hw.fifo_ctrl.rxrst.q),
2018 .ds (),
2019
2020 // to register interface (read)
2021 .qs ()
2022 );
2023 1/1 assign reg2hw.fifo_ctrl.rxrst.qe = fifo_ctrl_qe;
Tests: T1 T2 T3
2024
2025 // F[fmtrst]: 1:1
2026 prim_subreg #(
2027 .DW (1),
2028 .SwAccess(prim_subreg_pkg::SwAccessWO),
2029 .RESVAL (1'h0),
2030 .Mubi (1'b0)
2031 ) u_fifo_ctrl_fmtrst (
2032 .clk_i (clk_i),
2033 .rst_ni (rst_ni),
2034
2035 // from register interface
2036 .we (fifo_ctrl_we),
2037 .wd (fifo_ctrl_fmtrst_wd),
2038
2039 // from internal hardware
2040 .de (1'b0),
2041 .d ('0),
2042
2043 // to internal hardware
2044 .qe (fifo_ctrl_flds_we[1]),
2045 .q (reg2hw.fifo_ctrl.fmtrst.q),
2046 .ds (),
2047
2048 // to register interface (read)
2049 .qs ()
2050 );
2051 1/1 assign reg2hw.fifo_ctrl.fmtrst.qe = fifo_ctrl_qe;
Tests: T1 T2 T3
2052
2053 // F[acqrst]: 7:7
2054 prim_subreg #(
2055 .DW (1),
2056 .SwAccess(prim_subreg_pkg::SwAccessWO),
2057 .RESVAL (1'h0),
2058 .Mubi (1'b0)
2059 ) u_fifo_ctrl_acqrst (
2060 .clk_i (clk_i),
2061 .rst_ni (rst_ni),
2062
2063 // from register interface
2064 .we (fifo_ctrl_we),
2065 .wd (fifo_ctrl_acqrst_wd),
2066
2067 // from internal hardware
2068 .de (1'b0),
2069 .d ('0),
2070
2071 // to internal hardware
2072 .qe (fifo_ctrl_flds_we[2]),
2073 .q (reg2hw.fifo_ctrl.acqrst.q),
2074 .ds (),
2075
2076 // to register interface (read)
2077 .qs ()
2078 );
2079 1/1 assign reg2hw.fifo_ctrl.acqrst.qe = fifo_ctrl_qe;
Tests: T1 T2 T3
2080
2081 // F[txrst]: 8:8
2082 prim_subreg #(
2083 .DW (1),
2084 .SwAccess(prim_subreg_pkg::SwAccessWO),
2085 .RESVAL (1'h0),
2086 .Mubi (1'b0)
2087 ) u_fifo_ctrl_txrst (
2088 .clk_i (clk_i),
2089 .rst_ni (rst_ni),
2090
2091 // from register interface
2092 .we (fifo_ctrl_we),
2093 .wd (fifo_ctrl_txrst_wd),
2094
2095 // from internal hardware
2096 .de (1'b0),
2097 .d ('0),
2098
2099 // to internal hardware
2100 .qe (fifo_ctrl_flds_we[3]),
2101 .q (reg2hw.fifo_ctrl.txrst.q),
2102 .ds (),
2103
2104 // to register interface (read)
2105 .qs ()
2106 );
2107 1/1 assign reg2hw.fifo_ctrl.txrst.qe = fifo_ctrl_qe;
Tests: T1 T2 T3
2108
2109
2110 // R[host_fifo_config]: V(False)
2111 logic host_fifo_config_qe;
2112 logic [1:0] host_fifo_config_flds_we;
2113 prim_flop #(
2114 .Width(1),
2115 .ResetValue(0)
2116 ) u_host_fifo_config0_qe (
2117 .clk_i(clk_i),
2118 .rst_ni(rst_ni),
2119 .d_i(&host_fifo_config_flds_we),
2120 .q_o(host_fifo_config_qe)
2121 );
2122 // F[rx_thresh]: 11:0
2123 prim_subreg #(
2124 .DW (12),
2125 .SwAccess(prim_subreg_pkg::SwAccessRW),
2126 .RESVAL (12'h0),
2127 .Mubi (1'b0)
2128 ) u_host_fifo_config_rx_thresh (
2129 .clk_i (clk_i),
2130 .rst_ni (rst_ni),
2131
2132 // from register interface
2133 .we (host_fifo_config_we),
2134 .wd (host_fifo_config_rx_thresh_wd),
2135
2136 // from internal hardware
2137 .de (1'b0),
2138 .d ('0),
2139
2140 // to internal hardware
2141 .qe (host_fifo_config_flds_we[0]),
2142 .q (reg2hw.host_fifo_config.rx_thresh.q),
2143 .ds (),
2144
2145 // to register interface (read)
2146 .qs (host_fifo_config_rx_thresh_qs)
2147 );
2148 1/1 assign reg2hw.host_fifo_config.rx_thresh.qe = host_fifo_config_qe;
Tests: T1 T2 T3
2149
2150 // F[fmt_thresh]: 27:16
2151 prim_subreg #(
2152 .DW (12),
2153 .SwAccess(prim_subreg_pkg::SwAccessRW),
2154 .RESVAL (12'h0),
2155 .Mubi (1'b0)
2156 ) u_host_fifo_config_fmt_thresh (
2157 .clk_i (clk_i),
2158 .rst_ni (rst_ni),
2159
2160 // from register interface
2161 .we (host_fifo_config_we),
2162 .wd (host_fifo_config_fmt_thresh_wd),
2163
2164 // from internal hardware
2165 .de (1'b0),
2166 .d ('0),
2167
2168 // to internal hardware
2169 .qe (host_fifo_config_flds_we[1]),
2170 .q (reg2hw.host_fifo_config.fmt_thresh.q),
2171 .ds (),
2172
2173 // to register interface (read)
2174 .qs (host_fifo_config_fmt_thresh_qs)
2175 );
2176 1/1 assign reg2hw.host_fifo_config.fmt_thresh.qe = host_fifo_config_qe;
Tests: T1 T2 T3
2177
2178
2179 // R[target_fifo_config]: V(False)
2180 logic target_fifo_config_qe;
2181 logic [1:0] target_fifo_config_flds_we;
2182 prim_flop #(
2183 .Width(1),
2184 .ResetValue(0)
2185 ) u_target_fifo_config0_qe (
2186 .clk_i(clk_i),
2187 .rst_ni(rst_ni),
2188 .d_i(&target_fifo_config_flds_we),
2189 .q_o(target_fifo_config_qe)
2190 );
2191 // F[tx_thresh]: 11:0
2192 prim_subreg #(
2193 .DW (12),
2194 .SwAccess(prim_subreg_pkg::SwAccessRW),
2195 .RESVAL (12'h0),
2196 .Mubi (1'b0)
2197 ) u_target_fifo_config_tx_thresh (
2198 .clk_i (clk_i),
2199 .rst_ni (rst_ni),
2200
2201 // from register interface
2202 .we (target_fifo_config_we),
2203 .wd (target_fifo_config_tx_thresh_wd),
2204
2205 // from internal hardware
2206 .de (1'b0),
2207 .d ('0),
2208
2209 // to internal hardware
2210 .qe (target_fifo_config_flds_we[0]),
2211 .q (reg2hw.target_fifo_config.tx_thresh.q),
2212 .ds (),
2213
2214 // to register interface (read)
2215 .qs (target_fifo_config_tx_thresh_qs)
2216 );
2217 1/1 assign reg2hw.target_fifo_config.tx_thresh.qe = target_fifo_config_qe;
Tests: T1 T2 T3
2218
2219 // F[acq_thresh]: 27:16
2220 prim_subreg #(
2221 .DW (12),
2222 .SwAccess(prim_subreg_pkg::SwAccessRW),
2223 .RESVAL (12'h0),
2224 .Mubi (1'b0)
2225 ) u_target_fifo_config_acq_thresh (
2226 .clk_i (clk_i),
2227 .rst_ni (rst_ni),
2228
2229 // from register interface
2230 .we (target_fifo_config_we),
2231 .wd (target_fifo_config_acq_thresh_wd),
2232
2233 // from internal hardware
2234 .de (1'b0),
2235 .d ('0),
2236
2237 // to internal hardware
2238 .qe (target_fifo_config_flds_we[1]),
2239 .q (reg2hw.target_fifo_config.acq_thresh.q),
2240 .ds (),
2241
2242 // to register interface (read)
2243 .qs (target_fifo_config_acq_thresh_qs)
2244 );
2245 1/1 assign reg2hw.target_fifo_config.acq_thresh.qe = target_fifo_config_qe;
Tests: T1 T2 T3
2246
2247
2248 // R[host_fifo_status]: V(True)
2249 // F[fmtlvl]: 11:0
2250 prim_subreg_ext #(
2251 .DW (12)
2252 ) u_host_fifo_status_fmtlvl (
2253 .re (host_fifo_status_re),
2254 .we (1'b0),
2255 .wd ('0),
2256 .d (hw2reg.host_fifo_status.fmtlvl.d),
2257 .qre (),
2258 .qe (),
2259 .q (),
2260 .ds (),
2261 .qs (host_fifo_status_fmtlvl_qs)
2262 );
2263
2264 // F[rxlvl]: 27:16
2265 prim_subreg_ext #(
2266 .DW (12)
2267 ) u_host_fifo_status_rxlvl (
2268 .re (host_fifo_status_re),
2269 .we (1'b0),
2270 .wd ('0),
2271 .d (hw2reg.host_fifo_status.rxlvl.d),
2272 .qre (),
2273 .qe (),
2274 .q (),
2275 .ds (),
2276 .qs (host_fifo_status_rxlvl_qs)
2277 );
2278
2279
2280 // R[target_fifo_status]: V(True)
2281 // F[txlvl]: 11:0
2282 prim_subreg_ext #(
2283 .DW (12)
2284 ) u_target_fifo_status_txlvl (
2285 .re (target_fifo_status_re),
2286 .we (1'b0),
2287 .wd ('0),
2288 .d (hw2reg.target_fifo_status.txlvl.d),
2289 .qre (),
2290 .qe (),
2291 .q (),
2292 .ds (),
2293 .qs (target_fifo_status_txlvl_qs)
2294 );
2295
2296 // F[acqlvl]: 27:16
2297 prim_subreg_ext #(
2298 .DW (12)
2299 ) u_target_fifo_status_acqlvl (
2300 .re (target_fifo_status_re),
2301 .we (1'b0),
2302 .wd ('0),
2303 .d (hw2reg.target_fifo_status.acqlvl.d),
2304 .qre (),
2305 .qe (),
2306 .q (),
2307 .ds (),
2308 .qs (target_fifo_status_acqlvl_qs)
2309 );
2310
2311
2312 // R[ovrd]: V(False)
2313 // F[txovrden]: 0:0
2314 prim_subreg #(
2315 .DW (1),
2316 .SwAccess(prim_subreg_pkg::SwAccessRW),
2317 .RESVAL (1'h0),
2318 .Mubi (1'b0)
2319 ) u_ovrd_txovrden (
2320 .clk_i (clk_i),
2321 .rst_ni (rst_ni),
2322
2323 // from register interface
2324 .we (ovrd_we),
2325 .wd (ovrd_txovrden_wd),
2326
2327 // from internal hardware
2328 .de (1'b0),
2329 .d ('0),
2330
2331 // to internal hardware
2332 .qe (),
2333 .q (reg2hw.ovrd.txovrden.q),
2334 .ds (),
2335
2336 // to register interface (read)
2337 .qs (ovrd_txovrden_qs)
2338 );
2339
2340 // F[sclval]: 1:1
2341 prim_subreg #(
2342 .DW (1),
2343 .SwAccess(prim_subreg_pkg::SwAccessRW),
2344 .RESVAL (1'h0),
2345 .Mubi (1'b0)
2346 ) u_ovrd_sclval (
2347 .clk_i (clk_i),
2348 .rst_ni (rst_ni),
2349
2350 // from register interface
2351 .we (ovrd_we),
2352 .wd (ovrd_sclval_wd),
2353
2354 // from internal hardware
2355 .de (1'b0),
2356 .d ('0),
2357
2358 // to internal hardware
2359 .qe (),
2360 .q (reg2hw.ovrd.sclval.q),
2361 .ds (),
2362
2363 // to register interface (read)
2364 .qs (ovrd_sclval_qs)
2365 );
2366
2367 // F[sdaval]: 2:2
2368 prim_subreg #(
2369 .DW (1),
2370 .SwAccess(prim_subreg_pkg::SwAccessRW),
2371 .RESVAL (1'h0),
2372 .Mubi (1'b0)
2373 ) u_ovrd_sdaval (
2374 .clk_i (clk_i),
2375 .rst_ni (rst_ni),
2376
2377 // from register interface
2378 .we (ovrd_we),
2379 .wd (ovrd_sdaval_wd),
2380
2381 // from internal hardware
2382 .de (1'b0),
2383 .d ('0),
2384
2385 // to internal hardware
2386 .qe (),
2387 .q (reg2hw.ovrd.sdaval.q),
2388 .ds (),
2389
2390 // to register interface (read)
2391 .qs (ovrd_sdaval_qs)
2392 );
2393
2394
2395 // R[val]: V(True)
2396 // F[scl_rx]: 15:0
2397 prim_subreg_ext #(
2398 .DW (16)
2399 ) u_val_scl_rx (
2400 .re (val_re),
2401 .we (1'b0),
2402 .wd ('0),
2403 .d (hw2reg.val.scl_rx.d),
2404 .qre (),
2405 .qe (),
2406 .q (),
2407 .ds (),
2408 .qs (val_scl_rx_qs)
2409 );
2410
2411 // F[sda_rx]: 31:16
2412 prim_subreg_ext #(
2413 .DW (16)
2414 ) u_val_sda_rx (
2415 .re (val_re),
2416 .we (1'b0),
2417 .wd ('0),
2418 .d (hw2reg.val.sda_rx.d),
2419 .qre (),
2420 .qe (),
2421 .q (),
2422 .ds (),
2423 .qs (val_sda_rx_qs)
2424 );
2425
2426
2427 // R[timing0]: V(False)
2428 // F[thigh]: 12:0
2429 prim_subreg #(
2430 .DW (13),
2431 .SwAccess(prim_subreg_pkg::SwAccessRW),
2432 .RESVAL (13'h0),
2433 .Mubi (1'b0)
2434 ) u_timing0_thigh (
2435 .clk_i (clk_i),
2436 .rst_ni (rst_ni),
2437
2438 // from register interface
2439 .we (timing0_we),
2440 .wd (timing0_thigh_wd),
2441
2442 // from internal hardware
2443 .de (1'b0),
2444 .d ('0),
2445
2446 // to internal hardware
2447 .qe (),
2448 .q (reg2hw.timing0.thigh.q),
2449 .ds (),
2450
2451 // to register interface (read)
2452 .qs (timing0_thigh_qs)
2453 );
2454
2455 // F[tlow]: 28:16
2456 prim_subreg #(
2457 .DW (13),
2458 .SwAccess(prim_subreg_pkg::SwAccessRW),
2459 .RESVAL (13'h0),
2460 .Mubi (1'b0)
2461 ) u_timing0_tlow (
2462 .clk_i (clk_i),
2463 .rst_ni (rst_ni),
2464
2465 // from register interface
2466 .we (timing0_we),
2467 .wd (timing0_tlow_wd),
2468
2469 // from internal hardware
2470 .de (1'b0),
2471 .d ('0),
2472
2473 // to internal hardware
2474 .qe (),
2475 .q (reg2hw.timing0.tlow.q),
2476 .ds (),
2477
2478 // to register interface (read)
2479 .qs (timing0_tlow_qs)
2480 );
2481
2482
2483 // R[timing1]: V(False)
2484 // F[t_r]: 9:0
2485 prim_subreg #(
2486 .DW (10),
2487 .SwAccess(prim_subreg_pkg::SwAccessRW),
2488 .RESVAL (10'h0),
2489 .Mubi (1'b0)
2490 ) u_timing1_t_r (
2491 .clk_i (clk_i),
2492 .rst_ni (rst_ni),
2493
2494 // from register interface
2495 .we (timing1_we),
2496 .wd (timing1_t_r_wd),
2497
2498 // from internal hardware
2499 .de (1'b0),
2500 .d ('0),
2501
2502 // to internal hardware
2503 .qe (),
2504 .q (reg2hw.timing1.t_r.q),
2505 .ds (),
2506
2507 // to register interface (read)
2508 .qs (timing1_t_r_qs)
2509 );
2510
2511 // F[t_f]: 24:16
2512 prim_subreg #(
2513 .DW (9),
2514 .SwAccess(prim_subreg_pkg::SwAccessRW),
2515 .RESVAL (9'h0),
2516 .Mubi (1'b0)
2517 ) u_timing1_t_f (
2518 .clk_i (clk_i),
2519 .rst_ni (rst_ni),
2520
2521 // from register interface
2522 .we (timing1_we),
2523 .wd (timing1_t_f_wd),
2524
2525 // from internal hardware
2526 .de (1'b0),
2527 .d ('0),
2528
2529 // to internal hardware
2530 .qe (),
2531 .q (reg2hw.timing1.t_f.q),
2532 .ds (),
2533
2534 // to register interface (read)
2535 .qs (timing1_t_f_qs)
2536 );
2537
2538
2539 // R[timing2]: V(False)
2540 // F[tsu_sta]: 12:0
2541 prim_subreg #(
2542 .DW (13),
2543 .SwAccess(prim_subreg_pkg::SwAccessRW),
2544 .RESVAL (13'h0),
2545 .Mubi (1'b0)
2546 ) u_timing2_tsu_sta (
2547 .clk_i (clk_i),
2548 .rst_ni (rst_ni),
2549
2550 // from register interface
2551 .we (timing2_we),
2552 .wd (timing2_tsu_sta_wd),
2553
2554 // from internal hardware
2555 .de (1'b0),
2556 .d ('0),
2557
2558 // to internal hardware
2559 .qe (),
2560 .q (reg2hw.timing2.tsu_sta.q),
2561 .ds (),
2562
2563 // to register interface (read)
2564 .qs (timing2_tsu_sta_qs)
2565 );
2566
2567 // F[thd_sta]: 28:16
2568 prim_subreg #(
2569 .DW (13),
2570 .SwAccess(prim_subreg_pkg::SwAccessRW),
2571 .RESVAL (13'h0),
2572 .Mubi (1'b0)
2573 ) u_timing2_thd_sta (
2574 .clk_i (clk_i),
2575 .rst_ni (rst_ni),
2576
2577 // from register interface
2578 .we (timing2_we),
2579 .wd (timing2_thd_sta_wd),
2580
2581 // from internal hardware
2582 .de (1'b0),
2583 .d ('0),
2584
2585 // to internal hardware
2586 .qe (),
2587 .q (reg2hw.timing2.thd_sta.q),
2588 .ds (),
2589
2590 // to register interface (read)
2591 .qs (timing2_thd_sta_qs)
2592 );
2593
2594
2595 // R[timing3]: V(False)
2596 // F[tsu_dat]: 8:0
2597 prim_subreg #(
2598 .DW (9),
2599 .SwAccess(prim_subreg_pkg::SwAccessRW),
2600 .RESVAL (9'h0),
2601 .Mubi (1'b0)
2602 ) u_timing3_tsu_dat (
2603 .clk_i (clk_i),
2604 .rst_ni (rst_ni),
2605
2606 // from register interface
2607 .we (timing3_we),
2608 .wd (timing3_tsu_dat_wd),
2609
2610 // from internal hardware
2611 .de (1'b0),
2612 .d ('0),
2613
2614 // to internal hardware
2615 .qe (),
2616 .q (reg2hw.timing3.tsu_dat.q),
2617 .ds (),
2618
2619 // to register interface (read)
2620 .qs (timing3_tsu_dat_qs)
2621 );
2622
2623 // F[thd_dat]: 28:16
2624 prim_subreg #(
2625 .DW (13),
2626 .SwAccess(prim_subreg_pkg::SwAccessRW),
2627 .RESVAL (13'h0),
2628 .Mubi (1'b0)
2629 ) u_timing3_thd_dat (
2630 .clk_i (clk_i),
2631 .rst_ni (rst_ni),
2632
2633 // from register interface
2634 .we (timing3_we),
2635 .wd (timing3_thd_dat_wd),
2636
2637 // from internal hardware
2638 .de (1'b0),
2639 .d ('0),
2640
2641 // to internal hardware
2642 .qe (),
2643 .q (reg2hw.timing3.thd_dat.q),
2644 .ds (),
2645
2646 // to register interface (read)
2647 .qs (timing3_thd_dat_qs)
2648 );
2649
2650
2651 // R[timing4]: V(False)
2652 // F[tsu_sto]: 12:0
2653 prim_subreg #(
2654 .DW (13),
2655 .SwAccess(prim_subreg_pkg::SwAccessRW),
2656 .RESVAL (13'h0),
2657 .Mubi (1'b0)
2658 ) u_timing4_tsu_sto (
2659 .clk_i (clk_i),
2660 .rst_ni (rst_ni),
2661
2662 // from register interface
2663 .we (timing4_we),
2664 .wd (timing4_tsu_sto_wd),
2665
2666 // from internal hardware
2667 .de (1'b0),
2668 .d ('0),
2669
2670 // to internal hardware
2671 .qe (),
2672 .q (reg2hw.timing4.tsu_sto.q),
2673 .ds (),
2674
2675 // to register interface (read)
2676 .qs (timing4_tsu_sto_qs)
2677 );
2678
2679 // F[t_buf]: 28:16
2680 prim_subreg #(
2681 .DW (13),
2682 .SwAccess(prim_subreg_pkg::SwAccessRW),
2683 .RESVAL (13'h0),
2684 .Mubi (1'b0)
2685 ) u_timing4_t_buf (
2686 .clk_i (clk_i),
2687 .rst_ni (rst_ni),
2688
2689 // from register interface
2690 .we (timing4_we),
2691 .wd (timing4_t_buf_wd),
2692
2693 // from internal hardware
2694 .de (1'b0),
2695 .d ('0),
2696
2697 // to internal hardware
2698 .qe (),
2699 .q (reg2hw.timing4.t_buf.q),
2700 .ds (),
2701
2702 // to register interface (read)
2703 .qs (timing4_t_buf_qs)
2704 );
2705
2706
2707 // R[timeout_ctrl]: V(False)
2708 // F[val]: 29:0
2709 prim_subreg #(
2710 .DW (30),
2711 .SwAccess(prim_subreg_pkg::SwAccessRW),
2712 .RESVAL (30'h0),
2713 .Mubi (1'b0)
2714 ) u_timeout_ctrl_val (
2715 .clk_i (clk_i),
2716 .rst_ni (rst_ni),
2717
2718 // from register interface
2719 .we (timeout_ctrl_we),
2720 .wd (timeout_ctrl_val_wd),
2721
2722 // from internal hardware
2723 .de (1'b0),
2724 .d ('0),
2725
2726 // to internal hardware
2727 .qe (),
2728 .q (reg2hw.timeout_ctrl.val.q),
2729 .ds (),
2730
2731 // to register interface (read)
2732 .qs (timeout_ctrl_val_qs)
2733 );
2734
2735 // F[mode]: 30:30
2736 prim_subreg #(
2737 .DW (1),
2738 .SwAccess(prim_subreg_pkg::SwAccessRW),
2739 .RESVAL (1'h0),
2740 .Mubi (1'b0)
2741 ) u_timeout_ctrl_mode (
2742 .clk_i (clk_i),
2743 .rst_ni (rst_ni),
2744
2745 // from register interface
2746 .we (timeout_ctrl_we),
2747 .wd (timeout_ctrl_mode_wd),
2748
2749 // from internal hardware
2750 .de (1'b0),
2751 .d ('0),
2752
2753 // to internal hardware
2754 .qe (),
2755 .q (reg2hw.timeout_ctrl.mode.q),
2756 .ds (),
2757
2758 // to register interface (read)
2759 .qs (timeout_ctrl_mode_qs)
2760 );
2761
2762 // F[en]: 31:31
2763 prim_subreg #(
2764 .DW (1),
2765 .SwAccess(prim_subreg_pkg::SwAccessRW),
2766 .RESVAL (1'h0),
2767 .Mubi (1'b0)
2768 ) u_timeout_ctrl_en (
2769 .clk_i (clk_i),
2770 .rst_ni (rst_ni),
2771
2772 // from register interface
2773 .we (timeout_ctrl_we),
2774 .wd (timeout_ctrl_en_wd),
2775
2776 // from internal hardware
2777 .de (1'b0),
2778 .d ('0),
2779
2780 // to internal hardware
2781 .qe (),
2782 .q (reg2hw.timeout_ctrl.en.q),
2783 .ds (),
2784
2785 // to register interface (read)
2786 .qs (timeout_ctrl_en_qs)
2787 );
2788
2789
2790 // R[target_id]: V(False)
2791 // F[address0]: 6:0
2792 prim_subreg #(
2793 .DW (7),
2794 .SwAccess(prim_subreg_pkg::SwAccessRW),
2795 .RESVAL (7'h0),
2796 .Mubi (1'b0)
2797 ) u_target_id_address0 (
2798 .clk_i (clk_i),
2799 .rst_ni (rst_ni),
2800
2801 // from register interface
2802 .we (target_id_we),
2803 .wd (target_id_address0_wd),
2804
2805 // from internal hardware
2806 .de (1'b0),
2807 .d ('0),
2808
2809 // to internal hardware
2810 .qe (),
2811 .q (reg2hw.target_id.address0.q),
2812 .ds (),
2813
2814 // to register interface (read)
2815 .qs (target_id_address0_qs)
2816 );
2817
2818 // F[mask0]: 13:7
2819 prim_subreg #(
2820 .DW (7),
2821 .SwAccess(prim_subreg_pkg::SwAccessRW),
2822 .RESVAL (7'h0),
2823 .Mubi (1'b0)
2824 ) u_target_id_mask0 (
2825 .clk_i (clk_i),
2826 .rst_ni (rst_ni),
2827
2828 // from register interface
2829 .we (target_id_we),
2830 .wd (target_id_mask0_wd),
2831
2832 // from internal hardware
2833 .de (1'b0),
2834 .d ('0),
2835
2836 // to internal hardware
2837 .qe (),
2838 .q (reg2hw.target_id.mask0.q),
2839 .ds (),
2840
2841 // to register interface (read)
2842 .qs (target_id_mask0_qs)
2843 );
2844
2845 // F[address1]: 20:14
2846 prim_subreg #(
2847 .DW (7),
2848 .SwAccess(prim_subreg_pkg::SwAccessRW),
2849 .RESVAL (7'h0),
2850 .Mubi (1'b0)
2851 ) u_target_id_address1 (
2852 .clk_i (clk_i),
2853 .rst_ni (rst_ni),
2854
2855 // from register interface
2856 .we (target_id_we),
2857 .wd (target_id_address1_wd),
2858
2859 // from internal hardware
2860 .de (1'b0),
2861 .d ('0),
2862
2863 // to internal hardware
2864 .qe (),
2865 .q (reg2hw.target_id.address1.q),
2866 .ds (),
2867
2868 // to register interface (read)
2869 .qs (target_id_address1_qs)
2870 );
2871
2872 // F[mask1]: 27:21
2873 prim_subreg #(
2874 .DW (7),
2875 .SwAccess(prim_subreg_pkg::SwAccessRW),
2876 .RESVAL (7'h0),
2877 .Mubi (1'b0)
2878 ) u_target_id_mask1 (
2879 .clk_i (clk_i),
2880 .rst_ni (rst_ni),
2881
2882 // from register interface
2883 .we (target_id_we),
2884 .wd (target_id_mask1_wd),
2885
2886 // from internal hardware
2887 .de (1'b0),
2888 .d ('0),
2889
2890 // to internal hardware
2891 .qe (),
2892 .q (reg2hw.target_id.mask1.q),
2893 .ds (),
2894
2895 // to register interface (read)
2896 .qs (target_id_mask1_qs)
2897 );
2898
2899
2900 // R[acqdata]: V(True)
2901 // F[abyte]: 7:0
2902 prim_subreg_ext #(
2903 .DW (8)
2904 ) u_acqdata_abyte (
2905 .re (acqdata_re),
2906 .we (1'b0),
2907 .wd ('0),
2908 .d (hw2reg.acqdata.abyte.d),
2909 .qre (reg2hw.acqdata.abyte.re),
2910 .qe (),
2911 .q (reg2hw.acqdata.abyte.q),
2912 .ds (),
2913 .qs (acqdata_abyte_qs)
2914 );
2915
2916 // F[signal]: 10:8
2917 prim_subreg_ext #(
2918 .DW (3)
2919 ) u_acqdata_signal (
2920 .re (acqdata_re),
2921 .we (1'b0),
2922 .wd ('0),
2923 .d (hw2reg.acqdata.signal.d),
2924 .qre (reg2hw.acqdata.signal.re),
2925 .qe (),
2926 .q (reg2hw.acqdata.signal.q),
2927 .ds (),
2928 .qs (acqdata_signal_qs)
2929 );
2930
2931
2932 // R[txdata]: V(False)
2933 logic txdata_qe;
2934 logic [0:0] txdata_flds_we;
2935 prim_flop #(
2936 .Width(1),
2937 .ResetValue(0)
2938 ) u_txdata0_qe (
2939 .clk_i(clk_i),
2940 .rst_ni(rst_ni),
2941 .d_i(&txdata_flds_we),
2942 .q_o(txdata_qe)
2943 );
2944 prim_subreg #(
2945 .DW (8),
2946 .SwAccess(prim_subreg_pkg::SwAccessWO),
2947 .RESVAL (8'h0),
2948 .Mubi (1'b0)
2949 ) u_txdata (
2950 .clk_i (clk_i),
2951 .rst_ni (rst_ni),
2952
2953 // from register interface
2954 .we (txdata_we),
2955 .wd (txdata_wd),
2956
2957 // from internal hardware
2958 .de (1'b0),
2959 .d ('0),
2960
2961 // to internal hardware
2962 .qe (txdata_flds_we[0]),
2963 .q (reg2hw.txdata.q),
2964 .ds (),
2965
2966 // to register interface (read)
2967 .qs ()
2968 );
2969 1/1 assign reg2hw.txdata.qe = txdata_qe;
Tests: T1 T2 T3
2970
2971
2972 // R[host_timeout_ctrl]: V(False)
2973 prim_subreg #(
2974 .DW (20),
2975 .SwAccess(prim_subreg_pkg::SwAccessRW),
2976 .RESVAL (20'h0),
2977 .Mubi (1'b0)
2978 ) u_host_timeout_ctrl (
2979 .clk_i (clk_i),
2980 .rst_ni (rst_ni),
2981
2982 // from register interface
2983 .we (host_timeout_ctrl_we),
2984 .wd (host_timeout_ctrl_wd),
2985
2986 // from internal hardware
2987 .de (1'b0),
2988 .d ('0),
2989
2990 // to internal hardware
2991 .qe (),
2992 .q (reg2hw.host_timeout_ctrl.q),
2993 .ds (),
2994
2995 // to register interface (read)
2996 .qs (host_timeout_ctrl_qs)
2997 );
2998
2999
3000 // R[target_timeout_ctrl]: V(False)
3001 // F[val]: 30:0
3002 prim_subreg #(
3003 .DW (31),
3004 .SwAccess(prim_subreg_pkg::SwAccessRW),
3005 .RESVAL (31'h0),
3006 .Mubi (1'b0)
3007 ) u_target_timeout_ctrl_val (
3008 .clk_i (clk_i),
3009 .rst_ni (rst_ni),
3010
3011 // from register interface
3012 .we (target_timeout_ctrl_we),
3013 .wd (target_timeout_ctrl_val_wd),
3014
3015 // from internal hardware
3016 .de (1'b0),
3017 .d ('0),
3018
3019 // to internal hardware
3020 .qe (),
3021 .q (reg2hw.target_timeout_ctrl.val.q),
3022 .ds (),
3023
3024 // to register interface (read)
3025 .qs (target_timeout_ctrl_val_qs)
3026 );
3027
3028 // F[en]: 31:31
3029 prim_subreg #(
3030 .DW (1),
3031 .SwAccess(prim_subreg_pkg::SwAccessRW),
3032 .RESVAL (1'h0),
3033 .Mubi (1'b0)
3034 ) u_target_timeout_ctrl_en (
3035 .clk_i (clk_i),
3036 .rst_ni (rst_ni),
3037
3038 // from register interface
3039 .we (target_timeout_ctrl_we),
3040 .wd (target_timeout_ctrl_en_wd),
3041
3042 // from internal hardware
3043 .de (1'b0),
3044 .d ('0),
3045
3046 // to internal hardware
3047 .qe (),
3048 .q (reg2hw.target_timeout_ctrl.en.q),
3049 .ds (),
3050
3051 // to register interface (read)
3052 .qs (target_timeout_ctrl_en_qs)
3053 );
3054
3055
3056 // R[target_nack_count]: V(False)
3057 prim_subreg #(
3058 .DW (8),
3059 .SwAccess(prim_subreg_pkg::SwAccessRC),
3060 .RESVAL (8'h0),
3061 .Mubi (1'b0)
3062 ) u_target_nack_count (
3063 .clk_i (clk_i),
3064 .rst_ni (rst_ni),
3065
3066 // from register interface
3067 .we (target_nack_count_re),
3068 .wd (target_nack_count_wd),
3069
3070 // from internal hardware
3071 .de (hw2reg.target_nack_count.de),
3072 .d (hw2reg.target_nack_count.d),
3073
3074 // to internal hardware
3075 .qe (),
3076 .q (reg2hw.target_nack_count.q),
3077 .ds (),
3078
3079 // to register interface (read)
3080 .qs (target_nack_count_qs)
3081 );
3082
3083
3084 // R[target_ack_ctrl]: V(True)
3085 logic target_ack_ctrl_qe;
3086 logic [1:0] target_ack_ctrl_flds_we;
3087 1/1 assign target_ack_ctrl_qe = &target_ack_ctrl_flds_we;
Tests: T44 T45 T46
3088 // F[nbytes]: 8:0
3089 prim_subreg_ext #(
3090 .DW (9)
3091 ) u_target_ack_ctrl_nbytes (
3092 .re (target_ack_ctrl_re),
3093 .we (target_ack_ctrl_we),
3094 .wd (target_ack_ctrl_nbytes_wd),
3095 .d (hw2reg.target_ack_ctrl.nbytes.d),
3096 .qre (),
3097 .qe (target_ack_ctrl_flds_we[0]),
3098 .q (reg2hw.target_ack_ctrl.nbytes.q),
3099 .ds (),
3100 .qs (target_ack_ctrl_nbytes_qs)
3101 );
3102 1/1 assign reg2hw.target_ack_ctrl.nbytes.qe = target_ack_ctrl_qe;
Tests: T44 T45 T46
3103
3104 // F[nack]: 31:31
3105 prim_subreg_ext #(
3106 .DW (1)
3107 ) u_target_ack_ctrl_nack (
3108 .re (1'b0),
3109 .we (target_ack_ctrl_we),
3110 .wd (target_ack_ctrl_nack_wd),
3111 .d ('0),
3112 .qre (),
3113 .qe (target_ack_ctrl_flds_we[1]),
3114 .q (reg2hw.target_ack_ctrl.nack.q),
3115 .ds (),
3116 .qs ()
3117 );
3118 1/1 assign reg2hw.target_ack_ctrl.nack.qe = target_ack_ctrl_qe;
Tests: T44 T45 T46
3119
3120
3121 // R[acq_fifo_next_data]: V(True)
3122 prim_subreg_ext #(
3123 .DW (8)
3124 ) u_acq_fifo_next_data (
3125 .re (acq_fifo_next_data_re),
3126 .we (1'b0),
3127 .wd ('0),
3128 .d (hw2reg.acq_fifo_next_data.d),
3129 .qre (),
3130 .qe (),
3131 .q (),
3132 .ds (),
3133 .qs (acq_fifo_next_data_qs)
3134 );
3135
3136
3137 // R[host_nack_handler_timeout]: V(False)
3138 // F[val]: 30:0
3139 prim_subreg #(
3140 .DW (31),
3141 .SwAccess(prim_subreg_pkg::SwAccessRW),
3142 .RESVAL (31'h0),
3143 .Mubi (1'b0)
3144 ) u_host_nack_handler_timeout_val (
3145 .clk_i (clk_i),
3146 .rst_ni (rst_ni),
3147
3148 // from register interface
3149 .we (host_nack_handler_timeout_we),
3150 .wd (host_nack_handler_timeout_val_wd),
3151
3152 // from internal hardware
3153 .de (1'b0),
3154 .d ('0),
3155
3156 // to internal hardware
3157 .qe (),
3158 .q (reg2hw.host_nack_handler_timeout.val.q),
3159 .ds (),
3160
3161 // to register interface (read)
3162 .qs (host_nack_handler_timeout_val_qs)
3163 );
3164
3165 // F[en]: 31:31
3166 prim_subreg #(
3167 .DW (1),
3168 .SwAccess(prim_subreg_pkg::SwAccessRW),
3169 .RESVAL (1'h0),
3170 .Mubi (1'b0)
3171 ) u_host_nack_handler_timeout_en (
3172 .clk_i (clk_i),
3173 .rst_ni (rst_ni),
3174
3175 // from register interface
3176 .we (host_nack_handler_timeout_we),
3177 .wd (host_nack_handler_timeout_en_wd),
3178
3179 // from internal hardware
3180 .de (1'b0),
3181 .d ('0),
3182
3183 // to internal hardware
3184 .qe (),
3185 .q (reg2hw.host_nack_handler_timeout.en.q),
3186 .ds (),
3187
3188 // to register interface (read)
3189 .qs (host_nack_handler_timeout_en_qs)
3190 );
3191
3192
3193 // R[controller_events]: V(False)
3194 // F[nack]: 0:0
3195 prim_subreg #(
3196 .DW (1),
3197 .SwAccess(prim_subreg_pkg::SwAccessW1C),
3198 .RESVAL (1'h0),
3199 .Mubi (1'b0)
3200 ) u_controller_events_nack (
3201 .clk_i (clk_i),
3202 .rst_ni (rst_ni),
3203
3204 // from register interface
3205 .we (controller_events_we),
3206 .wd (controller_events_nack_wd),
3207
3208 // from internal hardware
3209 .de (hw2reg.controller_events.nack.de),
3210 .d (hw2reg.controller_events.nack.d),
3211
3212 // to internal hardware
3213 .qe (),
3214 .q (reg2hw.controller_events.nack.q),
3215 .ds (),
3216
3217 // to register interface (read)
3218 .qs (controller_events_nack_qs)
3219 );
3220
3221 // F[unhandled_nack_timeout]: 1:1
3222 prim_subreg #(
3223 .DW (1),
3224 .SwAccess(prim_subreg_pkg::SwAccessW1C),
3225 .RESVAL (1'h0),
3226 .Mubi (1'b0)
3227 ) u_controller_events_unhandled_nack_timeout (
3228 .clk_i (clk_i),
3229 .rst_ni (rst_ni),
3230
3231 // from register interface
3232 .we (controller_events_we),
3233 .wd (controller_events_unhandled_nack_timeout_wd),
3234
3235 // from internal hardware
3236 .de (hw2reg.controller_events.unhandled_nack_timeout.de),
3237 .d (hw2reg.controller_events.unhandled_nack_timeout.d),
3238
3239 // to internal hardware
3240 .qe (),
3241 .q (reg2hw.controller_events.unhandled_nack_timeout.q),
3242 .ds (),
3243
3244 // to register interface (read)
3245 .qs (controller_events_unhandled_nack_timeout_qs)
3246 );
3247
3248 // F[bus_timeout]: 2:2
3249 prim_subreg #(
3250 .DW (1),
3251 .SwAccess(prim_subreg_pkg::SwAccessW1C),
3252 .RESVAL (1'h0),
3253 .Mubi (1'b0)
3254 ) u_controller_events_bus_timeout (
3255 .clk_i (clk_i),
3256 .rst_ni (rst_ni),
3257
3258 // from register interface
3259 .we (controller_events_we),
3260 .wd (controller_events_bus_timeout_wd),
3261
3262 // from internal hardware
3263 .de (hw2reg.controller_events.bus_timeout.de),
3264 .d (hw2reg.controller_events.bus_timeout.d),
3265
3266 // to internal hardware
3267 .qe (),
3268 .q (reg2hw.controller_events.bus_timeout.q),
3269 .ds (),
3270
3271 // to register interface (read)
3272 .qs (controller_events_bus_timeout_qs)
3273 );
3274
3275 // F[arbitration_lost]: 3:3
3276 prim_subreg #(
3277 .DW (1),
3278 .SwAccess(prim_subreg_pkg::SwAccessW1C),
3279 .RESVAL (1'h0),
3280 .Mubi (1'b0)
3281 ) u_controller_events_arbitration_lost (
3282 .clk_i (clk_i),
3283 .rst_ni (rst_ni),
3284
3285 // from register interface
3286 .we (controller_events_we),
3287 .wd (controller_events_arbitration_lost_wd),
3288
3289 // from internal hardware
3290 .de (hw2reg.controller_events.arbitration_lost.de),
3291 .d (hw2reg.controller_events.arbitration_lost.d),
3292
3293 // to internal hardware
3294 .qe (),
3295 .q (reg2hw.controller_events.arbitration_lost.q),
3296 .ds (),
3297
3298 // to register interface (read)
3299 .qs (controller_events_arbitration_lost_qs)
3300 );
3301
3302
3303 // R[target_events]: V(False)
3304 // F[tx_pending]: 0:0
3305 prim_subreg #(
3306 .DW (1),
3307 .SwAccess(prim_subreg_pkg::SwAccessW1C),
3308 .RESVAL (1'h0),
3309 .Mubi (1'b0)
3310 ) u_target_events_tx_pending (
3311 .clk_i (clk_i),
3312 .rst_ni (rst_ni),
3313
3314 // from register interface
3315 .we (target_events_we),
3316 .wd (target_events_tx_pending_wd),
3317
3318 // from internal hardware
3319 .de (hw2reg.target_events.tx_pending.de),
3320 .d (hw2reg.target_events.tx_pending.d),
3321
3322 // to internal hardware
3323 .qe (),
3324 .q (reg2hw.target_events.tx_pending.q),
3325 .ds (),
3326
3327 // to register interface (read)
3328 .qs (target_events_tx_pending_qs)
3329 );
3330
3331 // F[bus_timeout]: 1:1
3332 prim_subreg #(
3333 .DW (1),
3334 .SwAccess(prim_subreg_pkg::SwAccessW1C),
3335 .RESVAL (1'h0),
3336 .Mubi (1'b0)
3337 ) u_target_events_bus_timeout (
3338 .clk_i (clk_i),
3339 .rst_ni (rst_ni),
3340
3341 // from register interface
3342 .we (target_events_we),
3343 .wd (target_events_bus_timeout_wd),
3344
3345 // from internal hardware
3346 .de (hw2reg.target_events.bus_timeout.de),
3347 .d (hw2reg.target_events.bus_timeout.d),
3348
3349 // to internal hardware
3350 .qe (),
3351 .q (reg2hw.target_events.bus_timeout.q),
3352 .ds (),
3353
3354 // to register interface (read)
3355 .qs (target_events_bus_timeout_qs)
3356 );
3357
3358 // F[arbitration_lost]: 2:2
3359 prim_subreg #(
3360 .DW (1),
3361 .SwAccess(prim_subreg_pkg::SwAccessW1C),
3362 .RESVAL (1'h0),
3363 .Mubi (1'b0)
3364 ) u_target_events_arbitration_lost (
3365 .clk_i (clk_i),
3366 .rst_ni (rst_ni),
3367
3368 // from register interface
3369 .we (target_events_we),
3370 .wd (target_events_arbitration_lost_wd),
3371
3372 // from internal hardware
3373 .de (hw2reg.target_events.arbitration_lost.de),
3374 .d (hw2reg.target_events.arbitration_lost.d),
3375
3376 // to internal hardware
3377 .qe (),
3378 .q (reg2hw.target_events.arbitration_lost.q),
3379 .ds (),
3380
3381 // to register interface (read)
3382 .qs (target_events_arbitration_lost_qs)
3383 );
3384
3385
3386
3387 logic [31:0] addr_hit;
3388 always_comb begin
3389 1/1 addr_hit = '0;
Tests: T1 T2 T3
3390 1/1 addr_hit[ 0] = (reg_addr == I2C_INTR_STATE_OFFSET);
Tests: T1 T2 T3
3391 1/1 addr_hit[ 1] = (reg_addr == I2C_INTR_ENABLE_OFFSET);
Tests: T1 T2 T3
3392 1/1 addr_hit[ 2] = (reg_addr == I2C_INTR_TEST_OFFSET);
Tests: T1 T2 T3
3393 1/1 addr_hit[ 3] = (reg_addr == I2C_ALERT_TEST_OFFSET);
Tests: T1 T2 T3
3394 1/1 addr_hit[ 4] = (reg_addr == I2C_CTRL_OFFSET);
Tests: T1 T2 T3
3395 1/1 addr_hit[ 5] = (reg_addr == I2C_STATUS_OFFSET);
Tests: T1 T2 T3
3396 1/1 addr_hit[ 6] = (reg_addr == I2C_RDATA_OFFSET);
Tests: T1 T2 T3
3397 1/1 addr_hit[ 7] = (reg_addr == I2C_FDATA_OFFSET);
Tests: T1 T2 T3
3398 1/1 addr_hit[ 8] = (reg_addr == I2C_FIFO_CTRL_OFFSET);
Tests: T1 T2 T3
3399 1/1 addr_hit[ 9] = (reg_addr == I2C_HOST_FIFO_CONFIG_OFFSET);
Tests: T1 T2 T3
3400 1/1 addr_hit[10] = (reg_addr == I2C_TARGET_FIFO_CONFIG_OFFSET);
Tests: T1 T2 T3
3401 1/1 addr_hit[11] = (reg_addr == I2C_HOST_FIFO_STATUS_OFFSET);
Tests: T1 T2 T3
3402 1/1 addr_hit[12] = (reg_addr == I2C_TARGET_FIFO_STATUS_OFFSET);
Tests: T1 T2 T3
3403 1/1 addr_hit[13] = (reg_addr == I2C_OVRD_OFFSET);
Tests: T1 T2 T3
3404 1/1 addr_hit[14] = (reg_addr == I2C_VAL_OFFSET);
Tests: T1 T2 T3
3405 1/1 addr_hit[15] = (reg_addr == I2C_TIMING0_OFFSET);
Tests: T1 T2 T3
3406 1/1 addr_hit[16] = (reg_addr == I2C_TIMING1_OFFSET);
Tests: T1 T2 T3
3407 1/1 addr_hit[17] = (reg_addr == I2C_TIMING2_OFFSET);
Tests: T1 T2 T3
3408 1/1 addr_hit[18] = (reg_addr == I2C_TIMING3_OFFSET);
Tests: T1 T2 T3
3409 1/1 addr_hit[19] = (reg_addr == I2C_TIMING4_OFFSET);
Tests: T1 T2 T3
3410 1/1 addr_hit[20] = (reg_addr == I2C_TIMEOUT_CTRL_OFFSET);
Tests: T1 T2 T3
3411 1/1 addr_hit[21] = (reg_addr == I2C_TARGET_ID_OFFSET);
Tests: T1 T2 T3
3412 1/1 addr_hit[22] = (reg_addr == I2C_ACQDATA_OFFSET);
Tests: T1 T2 T3
3413 1/1 addr_hit[23] = (reg_addr == I2C_TXDATA_OFFSET);
Tests: T1 T2 T3
3414 1/1 addr_hit[24] = (reg_addr == I2C_HOST_TIMEOUT_CTRL_OFFSET);
Tests: T1 T2 T3
3415 1/1 addr_hit[25] = (reg_addr == I2C_TARGET_TIMEOUT_CTRL_OFFSET);
Tests: T1 T2 T3
3416 1/1 addr_hit[26] = (reg_addr == I2C_TARGET_NACK_COUNT_OFFSET);
Tests: T1 T2 T3
3417 1/1 addr_hit[27] = (reg_addr == I2C_TARGET_ACK_CTRL_OFFSET);
Tests: T1 T2 T3
3418 1/1 addr_hit[28] = (reg_addr == I2C_ACQ_FIFO_NEXT_DATA_OFFSET);
Tests: T1 T2 T3
3419 1/1 addr_hit[29] = (reg_addr == I2C_HOST_NACK_HANDLER_TIMEOUT_OFFSET);
Tests: T1 T2 T3
3420 1/1 addr_hit[30] = (reg_addr == I2C_CONTROLLER_EVENTS_OFFSET);
Tests: T1 T2 T3
3421 1/1 addr_hit[31] = (reg_addr == I2C_TARGET_EVENTS_OFFSET);
Tests: T1 T2 T3
3422 end
3423
3424 1/1 assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ;
Tests: T1 T2 T3
3425
3426 // Check sub-word write is permitted
3427 always_comb begin
3428 1/1 wr_err = (reg_we &
Tests: T1 T2 T3
3429 ((addr_hit[ 0] & (|(I2C_PERMIT[ 0] & ~reg_be))) |
3430 (addr_hit[ 1] & (|(I2C_PERMIT[ 1] & ~reg_be))) |
3431 (addr_hit[ 2] & (|(I2C_PERMIT[ 2] & ~reg_be))) |
3432 (addr_hit[ 3] & (|(I2C_PERMIT[ 3] & ~reg_be))) |
3433 (addr_hit[ 4] & (|(I2C_PERMIT[ 4] & ~reg_be))) |
3434 (addr_hit[ 5] & (|(I2C_PERMIT[ 5] & ~reg_be))) |
3435 (addr_hit[ 6] & (|(I2C_PERMIT[ 6] & ~reg_be))) |
3436 (addr_hit[ 7] & (|(I2C_PERMIT[ 7] & ~reg_be))) |
3437 (addr_hit[ 8] & (|(I2C_PERMIT[ 8] & ~reg_be))) |
3438 (addr_hit[ 9] & (|(I2C_PERMIT[ 9] & ~reg_be))) |
3439 (addr_hit[10] & (|(I2C_PERMIT[10] & ~reg_be))) |
3440 (addr_hit[11] & (|(I2C_PERMIT[11] & ~reg_be))) |
3441 (addr_hit[12] & (|(I2C_PERMIT[12] & ~reg_be))) |
3442 (addr_hit[13] & (|(I2C_PERMIT[13] & ~reg_be))) |
3443 (addr_hit[14] & (|(I2C_PERMIT[14] & ~reg_be))) |
3444 (addr_hit[15] & (|(I2C_PERMIT[15] & ~reg_be))) |
3445 (addr_hit[16] & (|(I2C_PERMIT[16] & ~reg_be))) |
3446 (addr_hit[17] & (|(I2C_PERMIT[17] & ~reg_be))) |
3447 (addr_hit[18] & (|(I2C_PERMIT[18] & ~reg_be))) |
3448 (addr_hit[19] & (|(I2C_PERMIT[19] & ~reg_be))) |
3449 (addr_hit[20] & (|(I2C_PERMIT[20] & ~reg_be))) |
3450 (addr_hit[21] & (|(I2C_PERMIT[21] & ~reg_be))) |
3451 (addr_hit[22] & (|(I2C_PERMIT[22] & ~reg_be))) |
3452 (addr_hit[23] & (|(I2C_PERMIT[23] & ~reg_be))) |
3453 (addr_hit[24] & (|(I2C_PERMIT[24] & ~reg_be))) |
3454 (addr_hit[25] & (|(I2C_PERMIT[25] & ~reg_be))) |
3455 (addr_hit[26] & (|(I2C_PERMIT[26] & ~reg_be))) |
3456 (addr_hit[27] & (|(I2C_PERMIT[27] & ~reg_be))) |
3457 (addr_hit[28] & (|(I2C_PERMIT[28] & ~reg_be))) |
3458 (addr_hit[29] & (|(I2C_PERMIT[29] & ~reg_be))) |
3459 (addr_hit[30] & (|(I2C_PERMIT[30] & ~reg_be))) |
3460 (addr_hit[31] & (|(I2C_PERMIT[31] & ~reg_be)))));
3461 end
3462
3463 // Generate write-enables
3464 1/1 assign intr_state_we = addr_hit[0] & reg_we & !reg_error;
Tests: T1 T2 T3
3465
3466 1/1 assign intr_state_rx_overflow_wd = reg_wdata[3];
Tests: T1 T2 T3
3467
3468 1/1 assign intr_state_scl_interference_wd = reg_wdata[5];
Tests: T1 T2 T3
3469
3470 1/1 assign intr_state_sda_interference_wd = reg_wdata[6];
Tests: T1 T2 T3
3471
3472 1/1 assign intr_state_stretch_timeout_wd = reg_wdata[7];
Tests: T1 T2 T3
3473
3474 1/1 assign intr_state_sda_unstable_wd = reg_wdata[8];
Tests: T1 T2 T3
3475
3476 1/1 assign intr_state_cmd_complete_wd = reg_wdata[9];
Tests: T1 T2 T3
3477
3478 1/1 assign intr_state_unexp_stop_wd = reg_wdata[13];
Tests: T1 T2 T3
3479
3480 1/1 assign intr_state_host_timeout_wd = reg_wdata[14];
Tests: T1 T2 T3
3481 1/1 assign intr_enable_we = addr_hit[1] & reg_we & !reg_error;
Tests: T1 T2 T3
3482
3483 1/1 assign intr_enable_fmt_threshold_wd = reg_wdata[0];
Tests: T1 T2 T3
3484
3485 1/1 assign intr_enable_rx_threshold_wd = reg_wdata[1];
Tests: T1 T2 T3
3486
3487 1/1 assign intr_enable_acq_threshold_wd = reg_wdata[2];
Tests: T1 T2 T3
3488
3489 1/1 assign intr_enable_rx_overflow_wd = reg_wdata[3];
Tests: T1 T2 T3
3490
3491 1/1 assign intr_enable_controller_halt_wd = reg_wdata[4];
Tests: T1 T2 T3
3492
3493 1/1 assign intr_enable_scl_interference_wd = reg_wdata[5];
Tests: T1 T2 T3
3494
3495 1/1 assign intr_enable_sda_interference_wd = reg_wdata[6];
Tests: T1 T2 T3
3496
3497 1/1 assign intr_enable_stretch_timeout_wd = reg_wdata[7];
Tests: T1 T2 T3
3498
3499 1/1 assign intr_enable_sda_unstable_wd = reg_wdata[8];
Tests: T1 T2 T3
3500
3501 1/1 assign intr_enable_cmd_complete_wd = reg_wdata[9];
Tests: T1 T2 T3
3502
3503 1/1 assign intr_enable_tx_stretch_wd = reg_wdata[10];
Tests: T1 T2 T3
3504
3505 1/1 assign intr_enable_tx_threshold_wd = reg_wdata[11];
Tests: T1 T2 T3
3506
3507 1/1 assign intr_enable_acq_stretch_wd = reg_wdata[12];
Tests: T1 T2 T3
3508
3509 1/1 assign intr_enable_unexp_stop_wd = reg_wdata[13];
Tests: T1 T2 T3
3510
3511 1/1 assign intr_enable_host_timeout_wd = reg_wdata[14];
Tests: T1 T2 T3
3512 1/1 assign intr_test_we = addr_hit[2] & reg_we & !reg_error;
Tests: T1 T2 T3
3513
3514 1/1 assign intr_test_fmt_threshold_wd = reg_wdata[0];
Tests: T1 T2 T3
3515
3516 1/1 assign intr_test_rx_threshold_wd = reg_wdata[1];
Tests: T1 T2 T3
3517
3518 1/1 assign intr_test_acq_threshold_wd = reg_wdata[2];
Tests: T1 T2 T3
3519
3520 1/1 assign intr_test_rx_overflow_wd = reg_wdata[3];
Tests: T1 T2 T3
3521
3522 1/1 assign intr_test_controller_halt_wd = reg_wdata[4];
Tests: T1 T2 T3
3523
3524 1/1 assign intr_test_scl_interference_wd = reg_wdata[5];
Tests: T1 T2 T3
3525
3526 1/1 assign intr_test_sda_interference_wd = reg_wdata[6];
Tests: T1 T2 T3
3527
3528 1/1 assign intr_test_stretch_timeout_wd = reg_wdata[7];
Tests: T1 T2 T3
3529
3530 1/1 assign intr_test_sda_unstable_wd = reg_wdata[8];
Tests: T1 T2 T3
3531
3532 1/1 assign intr_test_cmd_complete_wd = reg_wdata[9];
Tests: T1 T2 T3
3533
3534 1/1 assign intr_test_tx_stretch_wd = reg_wdata[10];
Tests: T1 T2 T3
3535
3536 1/1 assign intr_test_tx_threshold_wd = reg_wdata[11];
Tests: T1 T2 T3
3537
3538 1/1 assign intr_test_acq_stretch_wd = reg_wdata[12];
Tests: T1 T2 T3
3539
3540 1/1 assign intr_test_unexp_stop_wd = reg_wdata[13];
Tests: T1 T2 T3
3541
3542 1/1 assign intr_test_host_timeout_wd = reg_wdata[14];
Tests: T1 T2 T3
3543 1/1 assign alert_test_we = addr_hit[3] & reg_we & !reg_error;
Tests: T1 T2 T3
3544
3545 1/1 assign alert_test_wd = reg_wdata[0];
Tests: T1 T2 T3
3546 1/1 assign ctrl_we = addr_hit[4] & reg_we & !reg_error;
Tests: T1 T2 T3
3547
3548 1/1 assign ctrl_enablehost_wd = reg_wdata[0];
Tests: T1 T2 T3
3549
3550 1/1 assign ctrl_enabletarget_wd = reg_wdata[1];
Tests: T1 T2 T3
3551
3552 1/1 assign ctrl_llpbk_wd = reg_wdata[2];
Tests: T1 T2 T3
3553
3554 1/1 assign ctrl_nack_addr_after_timeout_wd = reg_wdata[3];
Tests: T1 T2 T3
3555
3556 1/1 assign ctrl_ack_ctrl_en_wd = reg_wdata[4];
Tests: T1 T2 T3
3557
3558 1/1 assign ctrl_multi_controller_monitor_en_wd = reg_wdata[5];
Tests: T1 T2 T3
3559
3560 1/1 assign ctrl_tx_stretch_ctrl_en_wd = reg_wdata[6];
Tests: T1 T2 T3
3561 1/1 assign status_re = addr_hit[5] & reg_re & !reg_error;
Tests: T1 T2 T3
3562 1/1 assign rdata_re = addr_hit[6] & reg_re & !reg_error;
Tests: T1 T2 T3
3563 1/1 assign fdata_we = addr_hit[7] & reg_we & !reg_error;
Tests: T1 T2 T3
3564
3565 1/1 assign fdata_fbyte_wd = reg_wdata[7:0];
Tests: T1 T2 T3
3566
3567 1/1 assign fdata_start_wd = reg_wdata[8];
Tests: T1 T2 T3
3568
3569 1/1 assign fdata_stop_wd = reg_wdata[9];
Tests: T1 T2 T3
3570
3571 1/1 assign fdata_readb_wd = reg_wdata[10];
Tests: T1 T2 T3
3572
3573 1/1 assign fdata_rcont_wd = reg_wdata[11];
Tests: T1 T2 T3
3574
3575 1/1 assign fdata_nakok_wd = reg_wdata[12];
Tests: T1 T2 T3
3576 1/1 assign fifo_ctrl_we = addr_hit[8] & reg_we & !reg_error;
Tests: T1 T2 T3
3577
3578 1/1 assign fifo_ctrl_rxrst_wd = reg_wdata[0];
Tests: T1 T2 T3
3579
3580 1/1 assign fifo_ctrl_fmtrst_wd = reg_wdata[1];
Tests: T1 T2 T3
3581
3582 1/1 assign fifo_ctrl_acqrst_wd = reg_wdata[7];
Tests: T1 T2 T3
3583
3584 1/1 assign fifo_ctrl_txrst_wd = reg_wdata[8];
Tests: T1 T2 T3
3585 1/1 assign host_fifo_config_we = addr_hit[9] & reg_we & !reg_error;
Tests: T1 T2 T3
3586
3587 1/1 assign host_fifo_config_rx_thresh_wd = reg_wdata[11:0];
Tests: T1 T2 T3
3588
3589 1/1 assign host_fifo_config_fmt_thresh_wd = reg_wdata[27:16];
Tests: T1 T2 T3
3590 1/1 assign target_fifo_config_we = addr_hit[10] & reg_we & !reg_error;
Tests: T1 T2 T3
3591
3592 1/1 assign target_fifo_config_tx_thresh_wd = reg_wdata[11:0];
Tests: T1 T2 T3
3593
3594 1/1 assign target_fifo_config_acq_thresh_wd = reg_wdata[27:16];
Tests: T1 T2 T3
3595 1/1 assign host_fifo_status_re = addr_hit[11] & reg_re & !reg_error;
Tests: T1 T2 T3
3596 1/1 assign target_fifo_status_re = addr_hit[12] & reg_re & !reg_error;
Tests: T1 T2 T3
3597 1/1 assign ovrd_we = addr_hit[13] & reg_we & !reg_error;
Tests: T1 T2 T3
3598
3599 1/1 assign ovrd_txovrden_wd = reg_wdata[0];
Tests: T1 T2 T3
3600
3601 1/1 assign ovrd_sclval_wd = reg_wdata[1];
Tests: T1 T2 T3
3602
3603 1/1 assign ovrd_sdaval_wd = reg_wdata[2];
Tests: T1 T2 T3
3604 1/1 assign val_re = addr_hit[14] & reg_re & !reg_error;
Tests: T1 T2 T3
3605 1/1 assign timing0_we = addr_hit[15] & reg_we & !reg_error;
Tests: T1 T2 T3
3606
3607 1/1 assign timing0_thigh_wd = reg_wdata[12:0];
Tests: T1 T2 T3
3608
3609 1/1 assign timing0_tlow_wd = reg_wdata[28:16];
Tests: T1 T2 T3
3610 1/1 assign timing1_we = addr_hit[16] & reg_we & !reg_error;
Tests: T1 T2 T3
3611
3612 1/1 assign timing1_t_r_wd = reg_wdata[9:0];
Tests: T1 T2 T3
3613
3614 1/1 assign timing1_t_f_wd = reg_wdata[24:16];
Tests: T1 T2 T3
3615 1/1 assign timing2_we = addr_hit[17] & reg_we & !reg_error;
Tests: T1 T2 T3
3616
3617 1/1 assign timing2_tsu_sta_wd = reg_wdata[12:0];
Tests: T1 T2 T3
3618
3619 1/1 assign timing2_thd_sta_wd = reg_wdata[28:16];
Tests: T1 T2 T3
3620 1/1 assign timing3_we = addr_hit[18] & reg_we & !reg_error;
Tests: T1 T2 T3
3621
3622 1/1 assign timing3_tsu_dat_wd = reg_wdata[8:0];
Tests: T1 T2 T3
3623
3624 1/1 assign timing3_thd_dat_wd = reg_wdata[28:16];
Tests: T1 T2 T3
3625 1/1 assign timing4_we = addr_hit[19] & reg_we & !reg_error;
Tests: T1 T2 T3
3626
3627 1/1 assign timing4_tsu_sto_wd = reg_wdata[12:0];
Tests: T1 T2 T3
3628
3629 1/1 assign timing4_t_buf_wd = reg_wdata[28:16];
Tests: T1 T2 T3
3630 1/1 assign timeout_ctrl_we = addr_hit[20] & reg_we & !reg_error;
Tests: T1 T2 T3
3631
3632 1/1 assign timeout_ctrl_val_wd = reg_wdata[29:0];
Tests: T1 T2 T3
3633
3634 1/1 assign timeout_ctrl_mode_wd = reg_wdata[30];
Tests: T1 T2 T3
3635
3636 1/1 assign timeout_ctrl_en_wd = reg_wdata[31];
Tests: T1 T2 T3
3637 1/1 assign target_id_we = addr_hit[21] & reg_we & !reg_error;
Tests: T1 T2 T3
3638
3639 1/1 assign target_id_address0_wd = reg_wdata[6:0];
Tests: T1 T2 T3
3640
3641 1/1 assign target_id_mask0_wd = reg_wdata[13:7];
Tests: T1 T2 T3
3642
3643 1/1 assign target_id_address1_wd = reg_wdata[20:14];
Tests: T1 T2 T3
3644
3645 1/1 assign target_id_mask1_wd = reg_wdata[27:21];
Tests: T1 T2 T3
3646 1/1 assign acqdata_re = addr_hit[22] & reg_re & !reg_error;
Tests: T1 T2 T3
3647 1/1 assign txdata_we = addr_hit[23] & reg_we & !reg_error;
Tests: T1 T2 T3
3648
3649 1/1 assign txdata_wd = reg_wdata[7:0];
Tests: T1 T2 T3
3650 1/1 assign host_timeout_ctrl_we = addr_hit[24] & reg_we & !reg_error;
Tests: T1 T2 T3
3651
3652 1/1 assign host_timeout_ctrl_wd = reg_wdata[19:0];
Tests: T1 T2 T3
3653 1/1 assign target_timeout_ctrl_we = addr_hit[25] & reg_we & !reg_error;
Tests: T1 T2 T3
3654
3655 1/1 assign target_timeout_ctrl_val_wd = reg_wdata[30:0];
Tests: T1 T2 T3
3656
3657 1/1 assign target_timeout_ctrl_en_wd = reg_wdata[31];
Tests: T1 T2 T3
3658 1/1 assign target_nack_count_re = addr_hit[26] & reg_re & !reg_error;
Tests: T1 T2 T3
3659
3660 assign target_nack_count_wd = '1;
3661 1/1 assign target_ack_ctrl_re = addr_hit[27] & reg_re & !reg_error;
Tests: T1 T2 T3
3662 1/1 assign target_ack_ctrl_we = addr_hit[27] & reg_we & !reg_error;
Tests: T1 T2 T3
3663
3664 1/1 assign target_ack_ctrl_nbytes_wd = reg_wdata[8:0];
Tests: T1 T2 T3
3665
3666 1/1 assign target_ack_ctrl_nack_wd = reg_wdata[31];
Tests: T1 T2 T3
3667 1/1 assign acq_fifo_next_data_re = addr_hit[28] & reg_re & !reg_error;
Tests: T1 T2 T3
3668 1/1 assign host_nack_handler_timeout_we = addr_hit[29] & reg_we & !reg_error;
Tests: T1 T2 T3
3669
3670 1/1 assign host_nack_handler_timeout_val_wd = reg_wdata[30:0];
Tests: T1 T2 T3
3671
3672 1/1 assign host_nack_handler_timeout_en_wd = reg_wdata[31];
Tests: T1 T2 T3
3673 1/1 assign controller_events_we = addr_hit[30] & reg_we & !reg_error;
Tests: T1 T2 T3
3674
3675 1/1 assign controller_events_nack_wd = reg_wdata[0];
Tests: T1 T2 T3
3676
3677 1/1 assign controller_events_unhandled_nack_timeout_wd = reg_wdata[1];
Tests: T1 T2 T3
3678
3679 1/1 assign controller_events_bus_timeout_wd = reg_wdata[2];
Tests: T1 T2 T3
3680
3681 1/1 assign controller_events_arbitration_lost_wd = reg_wdata[3];
Tests: T1 T2 T3
3682 1/1 assign target_events_we = addr_hit[31] & reg_we & !reg_error;
Tests: T1 T2 T3
3683
3684 1/1 assign target_events_tx_pending_wd = reg_wdata[0];
Tests: T1 T2 T3
3685
3686 1/1 assign target_events_bus_timeout_wd = reg_wdata[1];
Tests: T1 T2 T3
3687
3688 1/1 assign target_events_arbitration_lost_wd = reg_wdata[2];
Tests: T1 T2 T3
3689
3690 // Assign write-enables to checker logic vector.
3691 always_comb begin
3692 1/1 reg_we_check = '0;
Tests: T1 T2 T3
3693 1/1 reg_we_check[0] = intr_state_we;
Tests: T1 T2 T3
3694 1/1 reg_we_check[1] = intr_enable_we;
Tests: T1 T2 T3
3695 1/1 reg_we_check[2] = intr_test_we;
Tests: T1 T2 T3
3696 1/1 reg_we_check[3] = alert_test_we;
Tests: T1 T2 T3
3697 1/1 reg_we_check[4] = ctrl_we;
Tests: T1 T2 T3
3698 1/1 reg_we_check[5] = 1'b0;
Tests: T1 T2 T3
3699 1/1 reg_we_check[6] = 1'b0;
Tests: T1 T2 T3
3700 1/1 reg_we_check[7] = fdata_we;
Tests: T1 T2 T3
3701 1/1 reg_we_check[8] = fifo_ctrl_we;
Tests: T1 T2 T3
3702 1/1 reg_we_check[9] = host_fifo_config_we;
Tests: T1 T2 T3
3703 1/1 reg_we_check[10] = target_fifo_config_we;
Tests: T1 T2 T3
3704 1/1 reg_we_check[11] = 1'b0;
Tests: T1 T2 T3
3705 1/1 reg_we_check[12] = 1'b0;
Tests: T1 T2 T3
3706 1/1 reg_we_check[13] = ovrd_we;
Tests: T1 T2 T3
3707 1/1 reg_we_check[14] = 1'b0;
Tests: T1 T2 T3
3708 1/1 reg_we_check[15] = timing0_we;
Tests: T1 T2 T3
3709 1/1 reg_we_check[16] = timing1_we;
Tests: T1 T2 T3
3710 1/1 reg_we_check[17] = timing2_we;
Tests: T1 T2 T3
3711 1/1 reg_we_check[18] = timing3_we;
Tests: T1 T2 T3
3712 1/1 reg_we_check[19] = timing4_we;
Tests: T1 T2 T3
3713 1/1 reg_we_check[20] = timeout_ctrl_we;
Tests: T1 T2 T3
3714 1/1 reg_we_check[21] = target_id_we;
Tests: T1 T2 T3
3715 1/1 reg_we_check[22] = 1'b0;
Tests: T1 T2 T3
3716 1/1 reg_we_check[23] = txdata_we;
Tests: T1 T2 T3
3717 1/1 reg_we_check[24] = host_timeout_ctrl_we;
Tests: T1 T2 T3
3718 1/1 reg_we_check[25] = target_timeout_ctrl_we;
Tests: T1 T2 T3
3719 1/1 reg_we_check[26] = 1'b0;
Tests: T1 T2 T3
3720 1/1 reg_we_check[27] = target_ack_ctrl_we;
Tests: T1 T2 T3
3721 1/1 reg_we_check[28] = 1'b0;
Tests: T1 T2 T3
3722 1/1 reg_we_check[29] = host_nack_handler_timeout_we;
Tests: T1 T2 T3
3723 1/1 reg_we_check[30] = controller_events_we;
Tests: T1 T2 T3
3724 1/1 reg_we_check[31] = target_events_we;
Tests: T1 T2 T3
3725 end
3726
3727 // Read data return
3728 always_comb begin
3729 1/1 reg_rdata_next = '0;
Tests: T1 T2 T3
3730 1/1 unique case (1'b1)
Tests: T1 T2 T3
3731 addr_hit[0]: begin
3732 1/1 reg_rdata_next[0] = intr_state_fmt_threshold_qs;
Tests: T1 T2 T3
3733 1/1 reg_rdata_next[1] = intr_state_rx_threshold_qs;
Tests: T1 T2 T3
3734 1/1 reg_rdata_next[2] = intr_state_acq_threshold_qs;
Tests: T1 T2 T3
3735 1/1 reg_rdata_next[3] = intr_state_rx_overflow_qs;
Tests: T1 T2 T3
3736 1/1 reg_rdata_next[4] = intr_state_controller_halt_qs;
Tests: T1 T2 T3
3737 1/1 reg_rdata_next[5] = intr_state_scl_interference_qs;
Tests: T1 T2 T3
3738 1/1 reg_rdata_next[6] = intr_state_sda_interference_qs;
Tests: T1 T2 T3
3739 1/1 reg_rdata_next[7] = intr_state_stretch_timeout_qs;
Tests: T1 T2 T3
3740 1/1 reg_rdata_next[8] = intr_state_sda_unstable_qs;
Tests: T1 T2 T3
3741 1/1 reg_rdata_next[9] = intr_state_cmd_complete_qs;
Tests: T1 T2 T3
3742 1/1 reg_rdata_next[10] = intr_state_tx_stretch_qs;
Tests: T1 T2 T3
3743 1/1 reg_rdata_next[11] = intr_state_tx_threshold_qs;
Tests: T1 T2 T3
3744 1/1 reg_rdata_next[12] = intr_state_acq_stretch_qs;
Tests: T1 T2 T3
3745 1/1 reg_rdata_next[13] = intr_state_unexp_stop_qs;
Tests: T1 T2 T3
3746 1/1 reg_rdata_next[14] = intr_state_host_timeout_qs;
Tests: T1 T2 T3
3747 end
3748
3749 addr_hit[1]: begin
3750 1/1 reg_rdata_next[0] = intr_enable_fmt_threshold_qs;
Tests: T1 T2 T3
3751 1/1 reg_rdata_next[1] = intr_enable_rx_threshold_qs;
Tests: T1 T2 T3
3752 1/1 reg_rdata_next[2] = intr_enable_acq_threshold_qs;
Tests: T1 T2 T3
3753 1/1 reg_rdata_next[3] = intr_enable_rx_overflow_qs;
Tests: T1 T2 T3
3754 1/1 reg_rdata_next[4] = intr_enable_controller_halt_qs;
Tests: T1 T2 T3
3755 1/1 reg_rdata_next[5] = intr_enable_scl_interference_qs;
Tests: T1 T2 T3
3756 1/1 reg_rdata_next[6] = intr_enable_sda_interference_qs;
Tests: T1 T2 T3
3757 1/1 reg_rdata_next[7] = intr_enable_stretch_timeout_qs;
Tests: T1 T2 T3
3758 1/1 reg_rdata_next[8] = intr_enable_sda_unstable_qs;
Tests: T1 T2 T3
3759 1/1 reg_rdata_next[9] = intr_enable_cmd_complete_qs;
Tests: T1 T2 T3
3760 1/1 reg_rdata_next[10] = intr_enable_tx_stretch_qs;
Tests: T1 T2 T3
3761 1/1 reg_rdata_next[11] = intr_enable_tx_threshold_qs;
Tests: T1 T2 T3
3762 1/1 reg_rdata_next[12] = intr_enable_acq_stretch_qs;
Tests: T1 T2 T3
3763 1/1 reg_rdata_next[13] = intr_enable_unexp_stop_qs;
Tests: T1 T2 T3
3764 1/1 reg_rdata_next[14] = intr_enable_host_timeout_qs;
Tests: T1 T2 T3
3765 end
3766
3767 addr_hit[2]: begin
3768 1/1 reg_rdata_next[0] = '0;
Tests: T1 T2 T3
3769 1/1 reg_rdata_next[1] = '0;
Tests: T1 T2 T3
3770 1/1 reg_rdata_next[2] = '0;
Tests: T1 T2 T3
3771 1/1 reg_rdata_next[3] = '0;
Tests: T1 T2 T3
3772 1/1 reg_rdata_next[4] = '0;
Tests: T1 T2 T3
3773 1/1 reg_rdata_next[5] = '0;
Tests: T1 T2 T3
3774 1/1 reg_rdata_next[6] = '0;
Tests: T1 T2 T3
3775 1/1 reg_rdata_next[7] = '0;
Tests: T1 T2 T3
3776 1/1 reg_rdata_next[8] = '0;
Tests: T1 T2 T3
3777 1/1 reg_rdata_next[9] = '0;
Tests: T1 T2 T3
3778 1/1 reg_rdata_next[10] = '0;
Tests: T1 T2 T3
3779 1/1 reg_rdata_next[11] = '0;
Tests: T1 T2 T3
3780 1/1 reg_rdata_next[12] = '0;
Tests: T1 T2 T3
3781 1/1 reg_rdata_next[13] = '0;
Tests: T1 T2 T3
3782 1/1 reg_rdata_next[14] = '0;
Tests: T1 T2 T3
3783 end
3784
3785 addr_hit[3]: begin
3786 1/1 reg_rdata_next[0] = '0;
Tests: T1 T2 T3
3787 end
3788
3789 addr_hit[4]: begin
3790 1/1 reg_rdata_next[0] = ctrl_enablehost_qs;
Tests: T1 T2 T3
3791 1/1 reg_rdata_next[1] = ctrl_enabletarget_qs;
Tests: T1 T2 T3
3792 1/1 reg_rdata_next[2] = ctrl_llpbk_qs;
Tests: T1 T2 T3
3793 1/1 reg_rdata_next[3] = ctrl_nack_addr_after_timeout_qs;
Tests: T1 T2 T3
3794 1/1 reg_rdata_next[4] = ctrl_ack_ctrl_en_qs;
Tests: T1 T2 T3
3795 1/1 reg_rdata_next[5] = ctrl_multi_controller_monitor_en_qs;
Tests: T1 T2 T3
3796 1/1 reg_rdata_next[6] = ctrl_tx_stretch_ctrl_en_qs;
Tests: T1 T2 T3
3797 end
3798
3799 addr_hit[5]: begin
3800 1/1 reg_rdata_next[0] = status_fmtfull_qs;
Tests: T1 T2 T3
3801 1/1 reg_rdata_next[1] = status_rxfull_qs;
Tests: T1 T2 T3
3802 1/1 reg_rdata_next[2] = status_fmtempty_qs;
Tests: T1 T2 T3
3803 1/1 reg_rdata_next[3] = status_hostidle_qs;
Tests: T1 T2 T3
3804 1/1 reg_rdata_next[4] = status_targetidle_qs;
Tests: T1 T2 T3
3805 1/1 reg_rdata_next[5] = status_rxempty_qs;
Tests: T1 T2 T3
3806 1/1 reg_rdata_next[6] = status_txfull_qs;
Tests: T1 T2 T3
3807 1/1 reg_rdata_next[7] = status_acqfull_qs;
Tests: T1 T2 T3
3808 1/1 reg_rdata_next[8] = status_txempty_qs;
Tests: T1 T2 T3
3809 1/1 reg_rdata_next[9] = status_acqempty_qs;
Tests: T1 T2 T3
3810 1/1 reg_rdata_next[10] = status_ack_ctrl_stretch_qs;
Tests: T1 T2 T3
3811 end
3812
3813 addr_hit[6]: begin
3814 1/1 reg_rdata_next[7:0] = rdata_qs;
Tests: T1 T2 T3
3815 end
3816
3817 addr_hit[7]: begin
3818 1/1 reg_rdata_next[7:0] = '0;
Tests: T1 T2 T3
3819 1/1 reg_rdata_next[8] = '0;
Tests: T1 T2 T3
3820 1/1 reg_rdata_next[9] = '0;
Tests: T1 T2 T3
3821 1/1 reg_rdata_next[10] = '0;
Tests: T1 T2 T3
3822 1/1 reg_rdata_next[11] = '0;
Tests: T1 T2 T3
3823 1/1 reg_rdata_next[12] = '0;
Tests: T1 T2 T3
3824 end
3825
3826 addr_hit[8]: begin
3827 1/1 reg_rdata_next[0] = '0;
Tests: T1 T2 T3
3828 1/1 reg_rdata_next[1] = '0;
Tests: T1 T2 T3
3829 1/1 reg_rdata_next[7] = '0;
Tests: T1 T2 T3
3830 1/1 reg_rdata_next[8] = '0;
Tests: T1 T2 T3
3831 end
3832
3833 addr_hit[9]: begin
3834 1/1 reg_rdata_next[11:0] = host_fifo_config_rx_thresh_qs;
Tests: T1 T2 T3
3835 1/1 reg_rdata_next[27:16] = host_fifo_config_fmt_thresh_qs;
Tests: T1 T2 T3
3836 end
3837
3838 addr_hit[10]: begin
3839 1/1 reg_rdata_next[11:0] = target_fifo_config_tx_thresh_qs;
Tests: T1 T2 T3
3840 1/1 reg_rdata_next[27:16] = target_fifo_config_acq_thresh_qs;
Tests: T1 T2 T3
3841 end
3842
3843 addr_hit[11]: begin
3844 1/1 reg_rdata_next[11:0] = host_fifo_status_fmtlvl_qs;
Tests: T1 T2 T3
3845 1/1 reg_rdata_next[27:16] = host_fifo_status_rxlvl_qs;
Tests: T1 T2 T3
3846 end
3847
3848 addr_hit[12]: begin
3849 1/1 reg_rdata_next[11:0] = target_fifo_status_txlvl_qs;
Tests: T1 T2 T3
3850 1/1 reg_rdata_next[27:16] = target_fifo_status_acqlvl_qs;
Tests: T1 T2 T3
3851 end
3852
3853 addr_hit[13]: begin
3854 1/1 reg_rdata_next[0] = ovrd_txovrden_qs;
Tests: T1 T2 T3
3855 1/1 reg_rdata_next[1] = ovrd_sclval_qs;
Tests: T1 T2 T3
3856 1/1 reg_rdata_next[2] = ovrd_sdaval_qs;
Tests: T1 T2 T3
3857 end
3858
3859 addr_hit[14]: begin
3860 1/1 reg_rdata_next[15:0] = val_scl_rx_qs;
Tests: T1 T2 T3
3861 1/1 reg_rdata_next[31:16] = val_sda_rx_qs;
Tests: T1 T2 T3
3862 end
3863
3864 addr_hit[15]: begin
3865 1/1 reg_rdata_next[12:0] = timing0_thigh_qs;
Tests: T2 T3 T4
3866 1/1 reg_rdata_next[28:16] = timing0_tlow_qs;
Tests: T2 T3 T4
3867 end
3868
3869 addr_hit[16]: begin
3870 1/1 reg_rdata_next[9:0] = timing1_t_r_qs;
Tests: T1 T2 T3
3871 1/1 reg_rdata_next[24:16] = timing1_t_f_qs;
Tests: T1 T2 T3
3872 end
3873
3874 addr_hit[17]: begin
3875 1/1 reg_rdata_next[12:0] = timing2_tsu_sta_qs;
Tests: T2 T3 T4
3876 1/1 reg_rdata_next[28:16] = timing2_thd_sta_qs;
Tests: T2 T3 T4
3877 end
3878
3879 addr_hit[18]: begin
3880 1/1 reg_rdata_next[8:0] = timing3_tsu_dat_qs;
Tests: T2 T3 T4
3881 1/1 reg_rdata_next[28:16] = timing3_thd_dat_qs;
Tests: T2 T3 T4
3882 end
3883
3884 addr_hit[19]: begin
3885 1/1 reg_rdata_next[12:0] = timing4_tsu_sto_qs;
Tests: T1 T2 T3
3886 1/1 reg_rdata_next[28:16] = timing4_t_buf_qs;
Tests: T1 T2 T3
3887 end
3888
3889 addr_hit[20]: begin
3890 1/1 reg_rdata_next[29:0] = timeout_ctrl_val_qs;
Tests: T1 T2 T3
3891 1/1 reg_rdata_next[30] = timeout_ctrl_mode_qs;
Tests: T1 T2 T3
3892 1/1 reg_rdata_next[31] = timeout_ctrl_en_qs;
Tests: T1 T2 T3
3893 end
3894
3895 addr_hit[21]: begin
3896 1/1 reg_rdata_next[6:0] = target_id_address0_qs;
Tests: T1 T2 T3
3897 1/1 reg_rdata_next[13:7] = target_id_mask0_qs;
Tests: T1 T2 T3
3898 1/1 reg_rdata_next[20:14] = target_id_address1_qs;
Tests: T1 T2 T3
3899 1/1 reg_rdata_next[27:21] = target_id_mask1_qs;
Tests: T1 T2 T3
3900 end
3901
3902 addr_hit[22]: begin
3903 1/1 reg_rdata_next[7:0] = acqdata_abyte_qs;
Tests: T2 T3 T4
3904 1/1 reg_rdata_next[10:8] = acqdata_signal_qs;
Tests: T2 T3 T4
3905 end
3906
3907 addr_hit[23]: begin
3908 1/1 reg_rdata_next[7:0] = '0;
Tests: T2 T3 T4
3909 end
3910
3911 addr_hit[24]: begin
3912 1/1 reg_rdata_next[19:0] = host_timeout_ctrl_qs;
Tests: T2 T3 T4
3913 end
3914
3915 addr_hit[25]: begin
3916 1/1 reg_rdata_next[30:0] = target_timeout_ctrl_val_qs;
Tests: T1 T2 T3
3917 1/1 reg_rdata_next[31] = target_timeout_ctrl_en_qs;
Tests: T1 T2 T3
3918 end
3919
3920 addr_hit[26]: begin
3921 1/1 reg_rdata_next[7:0] = target_nack_count_qs;
Tests: T1 T2 T3
3922 end
3923
3924 addr_hit[27]: begin
3925 1/1 reg_rdata_next[8:0] = target_ack_ctrl_nbytes_qs;
Tests: T1 T2 T3
3926 1/1 reg_rdata_next[31] = '0;
Tests: T1 T2 T3
3927 end
3928
3929 addr_hit[28]: begin
3930 1/1 reg_rdata_next[7:0] = acq_fifo_next_data_qs;
Tests: T2 T3 T4
3931 end
3932
3933 addr_hit[29]: begin
3934 1/1 reg_rdata_next[30:0] = host_nack_handler_timeout_val_qs;
Tests: T1 T2 T3
3935 1/1 reg_rdata_next[31] = host_nack_handler_timeout_en_qs;
Tests: T1 T2 T3
3936 end
3937
3938 addr_hit[30]: begin
3939 1/1 reg_rdata_next[0] = controller_events_nack_qs;
Tests: T1 T2 T3
3940 1/1 reg_rdata_next[1] = controller_events_unhandled_nack_timeout_qs;
Tests: T1 T2 T3
3941 1/1 reg_rdata_next[2] = controller_events_bus_timeout_qs;
Tests: T1 T2 T3
3942 1/1 reg_rdata_next[3] = controller_events_arbitration_lost_qs;
Tests: T1 T2 T3
3943 end
3944
3945 addr_hit[31]: begin
3946 1/1 reg_rdata_next[0] = target_events_tx_pending_qs;
Tests: T1 T2 T3
3947 1/1 reg_rdata_next[1] = target_events_bus_timeout_qs;
Tests: T1 T2 T3
3948 1/1 reg_rdata_next[2] = target_events_arbitration_lost_qs;
Tests: T1 T2 T3
3949 end
3950
3951 default: begin
3952 reg_rdata_next = '1;
3953 end
3954 endcase
3955 end
3956
3957 // shadow busy
3958 logic shadow_busy;
3959 assign shadow_busy = 1'b0;
3960
3961 // register busy
3962 unreachable assign reg_busy = shadow_busy;
3963
3964 // Unused signal tieoff
3965
3966 // wdata / byte enable are not always fully used
3967 // add a blanket unused statement to handle lint waivers
3968 logic unused_wdata;
3969 logic unused_be;
3970 1/1 assign unused_wdata = ^reg_wdata;
Tests: T1 T2 T3
3971 1/1 assign unused_be = ^reg_be;
Tests: T1 T2 T3