@@ -415,6 +415,10 @@ module soc_ifc_reg (
415
415
logic next;
416
416
logic load_next;
417
417
} crypto_err;
418
+ struct packed {
419
+ logic next;
420
+ logic load_next;
421
+ } dcls_error;
418
422
} CPTRA_HW_ERROR_FATAL ;
419
423
struct packed {
420
424
struct packed {
@@ -1505,6 +1509,9 @@ module soc_ifc_reg (
1505
1509
struct packed {
1506
1510
logic value;
1507
1511
} crypto_err;
1512
+ struct packed {
1513
+ logic value;
1514
+ } dcls_error;
1508
1515
} CPTRA_HW_ERROR_FATAL ;
1509
1516
struct packed {
1510
1517
struct packed {
@@ -2428,6 +2435,30 @@ module soc_ifc_reg (
2428
2435
end
2429
2436
end
2430
2437
assign hwif_out.CPTRA_HW_ERROR_FATAL .crypto_err.value = field_storage.CPTRA_HW_ERROR_FATAL .crypto_err.value;
2438
+ // Field: soc_ifc_reg.CPTRA_HW_ERROR_FATAL.dcls_error
2439
+ always_comb begin
2440
+ automatic logic [0 : 0 ] next_c;
2441
+ automatic logic load_next_c;
2442
+ next_c = field_storage.CPTRA_HW_ERROR_FATAL .dcls_error.value;
2443
+ load_next_c = '0 ;
2444
+ if (decoded_reg_strb.CPTRA_HW_ERROR_FATAL && decoded_req_is_wr) begin // SW write 1 clear
2445
+ next_c = field_storage.CPTRA_HW_ERROR_FATAL .dcls_error.value & ~ (decoded_wr_data[4 : 4 ] & decoded_wr_biten[4 : 4 ]);
2446
+ load_next_c = '1 ;
2447
+ end else if (hwif_in.CPTRA_HW_ERROR_FATAL .dcls_error.we) begin // HW Write - we
2448
+ next_c = hwif_in.CPTRA_HW_ERROR_FATAL .dcls_error.next;
2449
+ load_next_c = '1 ;
2450
+ end
2451
+ field_combo.CPTRA_HW_ERROR_FATAL .dcls_error.next = next_c;
2452
+ field_combo.CPTRA_HW_ERROR_FATAL .dcls_error.load_next = load_next_c;
2453
+ end
2454
+ always_ff @ (posedge clk or negedge hwif_in.cptra_pwrgood) begin
2455
+ if (~ hwif_in.cptra_pwrgood) begin
2456
+ field_storage.CPTRA_HW_ERROR_FATAL .dcls_error.value <= 1'h0 ;
2457
+ end else if (field_combo.CPTRA_HW_ERROR_FATAL .dcls_error.load_next) begin
2458
+ field_storage.CPTRA_HW_ERROR_FATAL .dcls_error.value <= field_combo.CPTRA_HW_ERROR_FATAL .dcls_error.next;
2459
+ end
2460
+ end
2461
+ assign hwif_out.CPTRA_HW_ERROR_FATAL .dcls_error.value = field_storage.CPTRA_HW_ERROR_FATAL .dcls_error.value;
2431
2462
// Field: soc_ifc_reg.CPTRA_HW_ERROR_NON_FATAL.mbox_prot_no_lock
2432
2463
always_comb begin
2433
2464
automatic logic [0 : 0 ] next_c;
@@ -7046,7 +7077,8 @@ module soc_ifc_reg (
7046
7077
assign readback_array[0 ][1 : 1 ] = (decoded_reg_strb.CPTRA_HW_ERROR_FATAL && ! decoded_req_is_wr) ? field_storage.CPTRA_HW_ERROR_FATAL .dccm_ecc_unc.value : '0 ;
7047
7078
assign readback_array[0 ][2 : 2 ] = (decoded_reg_strb.CPTRA_HW_ERROR_FATAL && ! decoded_req_is_wr) ? field_storage.CPTRA_HW_ERROR_FATAL .nmi_pin.value : '0 ;
7048
7079
assign readback_array[0 ][3 : 3 ] = (decoded_reg_strb.CPTRA_HW_ERROR_FATAL && ! decoded_req_is_wr) ? field_storage.CPTRA_HW_ERROR_FATAL .crypto_err.value : '0 ;
7049
- assign readback_array[0 ][31 : 4 ] = (decoded_reg_strb.CPTRA_HW_ERROR_FATAL && ! decoded_req_is_wr) ? hwif_in.CPTRA_HW_ERROR_FATAL .rsvd.next : '0 ;
7080
+ assign readback_array[0 ][4 : 4 ] = (decoded_reg_strb.CPTRA_HW_ERROR_FATAL && ! decoded_req_is_wr) ? field_storage.CPTRA_HW_ERROR_FATAL .dcls_error.value : '0 ;
7081
+ assign readback_array[0 ][31 : 5 ] = (decoded_reg_strb.CPTRA_HW_ERROR_FATAL && ! decoded_req_is_wr) ? hwif_in.CPTRA_HW_ERROR_FATAL .rsvd.next : '0 ;
7050
7082
assign readback_array[1 ][0 : 0 ] = (decoded_reg_strb.CPTRA_HW_ERROR_NON_FATAL && ! decoded_req_is_wr) ? field_storage.CPTRA_HW_ERROR_NON_FATAL .mbox_prot_no_lock.value : '0 ;
7051
7083
assign readback_array[1 ][1 : 1 ] = (decoded_reg_strb.CPTRA_HW_ERROR_NON_FATAL && ! decoded_req_is_wr) ? field_storage.CPTRA_HW_ERROR_NON_FATAL .mbox_prot_ooo.value : '0 ;
7052
7084
assign readback_array[1 ][2 : 2 ] = (decoded_reg_strb.CPTRA_HW_ERROR_NON_FATAL && ! decoded_req_is_wr) ? field_storage.CPTRA_HW_ERROR_NON_FATAL .mbox_ecc_unc.value : '0 ;
0 commit comments