Skip to content

Commit b3d205d

Browse files
committed
Switch to use DCLS VeeR version
Signed-off-by: Karol Gugala <[email protected]>
1 parent a7ce171 commit b3d205d

17 files changed

+103
-18
lines changed

src/integration/config/caliptra_top_tb.vf

+3-1
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ ${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/axi4_to_ahb.sv
218218
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/el2_lib.sv
219219
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/mem_lib.sv
220220
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/el2_mem_if.sv
221+
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/el2_regfile_if.sv
221222
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lsu/el2_lsu_addrcheck.sv
222223
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lsu/el2_lsu_bus_buffer.sv
223224
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lsu/el2_lsu_bus_intf.sv
@@ -234,6 +235,7 @@ ${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_dma_ctrl.sv
234235
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_pic_ctrl.sv
235236
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_pmp.sv
236237
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_veer.sv
238+
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_veer_lockstep.sv
237239
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_veer_wrapper.sv
238240
${CALIPTRA_ROOT}/src/ahb_lite_bus/rtl/ahb_lite_bus_inf.sv
239241
${CALIPTRA_ROOT}/src/ahb_lite_bus/rtl/ahb_lite_address_decoder.sv
@@ -621,4 +623,4 @@ ${CALIPTRA_ROOT}/src/csrng/rtl/csrng_block_encrypt.sv
621623
${CALIPTRA_ROOT}/src/csrng/rtl/csrng_state_db.sv
622624
${CALIPTRA_ROOT}/src/csrng/rtl/csrng_cmd_stage.sv
623625
${CALIPTRA_ROOT}/src/csrng/rtl/csrng.sv
624-
${CALIPTRA_ROOT}/src/integration/rtl/caliptra_top.sv
626+
${CALIPTRA_ROOT}/src/integration/rtl/caliptra_top.sv

src/integration/rtl/caliptra_reg.h

+4-2
Original file line numberDiff line numberDiff line change
@@ -9650,8 +9650,10 @@
96509650
#define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_NMI_PIN_MASK (0x4)
96519651
#define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_CRYPTO_ERR_LOW (3)
96529652
#define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_CRYPTO_ERR_MASK (0x8)
9653-
#define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_RSVD_LOW (4)
9654-
#define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_RSVD_MASK (0xfffffff0)
9653+
#define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_DCLS_ERROR_LOW (4)
9654+
#define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_DCLS_ERROR_MASK (0x10)
9655+
#define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_RSVD_LOW (5)
9656+
#define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_RSVD_MASK (0xffffffe0)
96559657
#endif
96569658
#define CLP_SOC_IFC_REG_CPTRA_HW_ERROR_NON_FATAL (0x30030004)
96579659
#ifndef SOC_IFC_REG_CPTRA_HW_ERROR_NON_FATAL

src/integration/rtl/caliptra_reg_field_defines.svh

+4-2
Original file line numberDiff line numberDiff line change
@@ -7691,8 +7691,10 @@
76917691
`define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_NMI_PIN_MASK (32'h4)
76927692
`define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_CRYPTO_ERR_LOW (3)
76937693
`define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_CRYPTO_ERR_MASK (32'h8)
7694-
`define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_RSVD_LOW (4)
7695-
`define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_RSVD_MASK (32'hfffffff0)
7694+
`define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_DCLS_ERROR_LOW (4)
7695+
`define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_DCLS_ERROR_MASK (32'h10)
7696+
`define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_RSVD_LOW (5)
7697+
`define SOC_IFC_REG_CPTRA_HW_ERROR_FATAL_RSVD_MASK (32'hffffffe0)
76967698
`endif
76977699
`ifndef SOC_IFC_REG_CPTRA_HW_ERROR_NON_FATAL
76987700
`define SOC_IFC_REG_CPTRA_HW_ERROR_NON_FATAL (32'h4)

src/integration/rtl/caliptra_top.sv

+15
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,12 @@ always_comb begin
439439
el2_icache_stub.ic_tag_data_raw_pre = '0;
440440
end
441441

442+
logic cptra_panic;
443+
444+
`ifndef RV_LOCKSTEP_ENABLE
445+
assign cptra_panic = 1'b0;
446+
`endif
447+
442448
el2_veer_wrapper rvtop (
443449
`ifdef CALIPTRA_FORCE_CPU_RESET
444450
.rst_l ( 1'b0 ),
@@ -577,6 +583,13 @@ el2_veer_wrapper rvtop (
577583
// Caliptra Memory Export Interface
578584
.el2_mem_export (el2_mem_export),
579585

586+
`ifdef RV_LOCKSTEP_ENABLE
587+
// Shadow Core control
588+
.disable_corruption_detection_i(1'b0),
589+
.lockstep_err_injection_en_i(1'b0),
590+
.corruption_detected_o(cptra_panic),
591+
`endif
592+
580593
.core_id ('0),
581594
.scan_mode ( scan_mode ), // To enable scan mode
582595
.mbist_mode ( 1'b0 ) // to enable mbist
@@ -1359,6 +1372,8 @@ soc_ifc_top1
13591372
.fw_update_rst_window(fw_update_rst_window),
13601373
//multiple cryptos operating at once, assert fatal error
13611374
.crypto_error(crypto_error),
1375+
// DCLS error
1376+
.dcls_error (cptra_panic ),
13621377
//caliptra uncore jtag ports
13631378
.cptra_uncore_dmi_reg_en( cptra_uncore_dmi_reg_en ),
13641379
.cptra_uncore_dmi_reg_wr_en( cptra_uncore_dmi_reg_wr_en ),

src/integration/rtl/config_defines.svh

+1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
`define CALIPTRA_RV_TOP `CALIPTRA_TOP.caliptra_top_dut
101101

102102
`define RV_TOP `CALIPTRA_RV_TOP.rvtop
103+
`define RV_LOCKSTEP_ENABLE 1
103104

104105
`define CALIPTRA_ICG cptra_clk_gate
105106

src/riscv_core/veer_el2/config/compile.yml

+2
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ targets:
5454
- $COMPILE_ROOT/rtl/lib/el2_lib.sv
5555
- $COMPILE_ROOT/rtl/lib/mem_lib.sv
5656
- $COMPILE_ROOT/rtl/lib/el2_mem_if.sv
57+
- $COMPILE_ROOT/rtl/lib/el2_regfile_if.sv
5758
- $COMPILE_ROOT/rtl/lsu/el2_lsu_addrcheck.sv
5859
- $COMPILE_ROOT/rtl/lsu/el2_lsu_bus_buffer.sv
5960
- $COMPILE_ROOT/rtl/lsu/el2_lsu_bus_intf.sv
@@ -70,6 +71,7 @@ targets:
7071
- $COMPILE_ROOT/rtl/el2_pic_ctrl.sv
7172
- $COMPILE_ROOT/rtl/el2_pmp.sv
7273
- $COMPILE_ROOT/rtl/el2_veer.sv
74+
- $COMPILE_ROOT/rtl/el2_veer_lockstep.sv
7375
- $COMPILE_ROOT/rtl/el2_veer_wrapper.sv
7476
tops: [el2_veer_wrapper]
7577
rtl_lint:

src/riscv_core/veer_el2/config/el2_veer_wrapper.vf

+3-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ ${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/axi4_to_ahb.sv
3333
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/el2_lib.sv
3434
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/mem_lib.sv
3535
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/el2_mem_if.sv
36+
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lib/el2_el2_regfile_if.sv
3637
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lsu/el2_lsu_addrcheck.sv
3738
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lsu/el2_lsu_bus_buffer.sv
3839
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/lsu/el2_lsu_bus_intf.sv
@@ -49,4 +50,5 @@ ${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_dma_ctrl.sv
4950
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_pic_ctrl.sv
5051
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_pmp.sv
5152
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_veer.sv
52-
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_veer_wrapper.sv
53+
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_veer_lockstep.sv
54+
${CALIPTRA_ROOT}/src/riscv_core/veer_el2/rtl/el2_veer_wrapper.sv

src/riscv_core/veer_el2/rtl/common_defines.sv

+3
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,9 @@
244244
`define RV_INST_ACCESS_MASK5 'hffffffff
245245
`define RV_INST_ACCESS_MASK6 'hffffffff
246246
`define RV_INST_ACCESS_MASK7 'hffffffff
247+
`define RV_LOCKSTEP_DELAY 3
248+
`define RV_LOCKSTEP_ENABLE 1
249+
`define RV_LOCKSTEP_REGFILE_ENABLE 1
247250
`define RV_PMP_ENTRIES 64
248251
`define REGWIDTH 32
249252
`define RV_RESET_VEC 'h00000000

src/riscv_core/veer_el2/rtl/el2_param.vh

+3
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,9 @@ parameter el2_param_t pt = '{
167167
INST_ACCESS_MASK6 : 36'h0FFFFFFFF ,
168168
INST_ACCESS_MASK7 : 36'h0FFFFFFFF ,
169169
LOAD_TO_USE_PLUS1 : 5'h00 ,
170+
LOCKSTEP_DELAY : 7'h03 ,
171+
LOCKSTEP_ENABLE : 5'h01 ,
172+
LOCKSTEP_REGFILE_ENABLE : 5'h01 ,
170173
LSU2DMA : 5'h00 ,
171174
LSU_BUS_ID : 5'h01 ,
172175
LSU_BUS_PRTY : 6'h02 ,

src/riscv_core/veer_el2/rtl/el2_pdef.vh

+3
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@ typedef struct packed {
168168
logic [35:0] INST_ACCESS_MASK6;
169169
logic [35:0] INST_ACCESS_MASK7;
170170
logic [4:0] LOAD_TO_USE_PLUS1;
171+
logic [6:0] LOCKSTEP_DELAY;
172+
logic [4:0] LOCKSTEP_ENABLE;
173+
logic [4:0] LOCKSTEP_REGFILE_ENABLE;
171174
logic [4:0] LSU2DMA;
172175
logic [4:0] LSU_BUS_ID;
173176
logic [5:0] LSU_BUS_PRTY;

src/soc_ifc/rtl/caliptra_top_reg.h

+4-2
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,10 @@
9090
#define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_NMI_PIN_MASK (0x4)
9191
#define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_CRYPTO_ERR_LOW (3)
9292
#define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_CRYPTO_ERR_MASK (0x8)
93-
#define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_RSVD_LOW (4)
94-
#define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_RSVD_MASK (0xfffffff0)
93+
#define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_DCLS_ERROR_LOW (4)
94+
#define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_DCLS_ERROR_MASK (0x10)
95+
#define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_RSVD_LOW (5)
96+
#define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_RSVD_MASK (0xffffffe0)
9597
#endif
9698
#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_NON_FATAL (0x30004)
9799
#ifndef GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_NON_FATAL

src/soc_ifc/rtl/caliptra_top_reg_field_defines.svh

+4-2
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,10 @@
7676
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_NMI_PIN_MASK (32'h4)
7777
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_CRYPTO_ERR_LOW (3)
7878
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_CRYPTO_ERR_MASK (32'h8)
79-
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_RSVD_LOW (4)
80-
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_RSVD_MASK (32'hfffffff0)
79+
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_DCLS_ERROR_LOW (4)
80+
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_DCLS_ERROR_MASK (32'h10)
81+
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_RSVD_LOW (5)
82+
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_FATAL_RSVD_MASK (32'hffffffe0)
8183
`endif
8284
`ifndef GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_NON_FATAL
8385
`define GENERIC_AND_FUSE_REG_CPTRA_HW_ERROR_NON_FATAL (32'h4)

src/soc_ifc/rtl/soc_ifc_external_reg.rdl

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ reg {
2828
rw_rw_sticky_hw dccm_ecc_unc=0; /* Uncorrectable double-bit error in DCCM */
2929
rw_rw_sticky_hw nmi_pin=0; /* Non-Maskable Interrupt due to WDT timeout */
3030
rw_rw_sticky_hw crypto_err=0; /* Crypto parallel operation error No Mask */
31-
field {sw=r; hw=w;} rsvd[28]=28'h0;
31+
rw_rw_sticky_hw dcls_error=0; /* Non-Maskable DCLS error */
32+
field {sw=r; hw=w;} rsvd[27]=27'h0;
3233
} CPTRA_HW_ERROR_FATAL;
3334
reg {
3435
name = "Hardware Error Non-Fatal";

src/soc_ifc/rtl/soc_ifc_reg.sv

+33-1
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,10 @@ module soc_ifc_reg (
415415
logic next;
416416
logic load_next;
417417
} crypto_err;
418+
struct packed{
419+
logic next;
420+
logic load_next;
421+
} dcls_error;
418422
} CPTRA_HW_ERROR_FATAL;
419423
struct packed{
420424
struct packed{
@@ -1505,6 +1509,9 @@ module soc_ifc_reg (
15051509
struct packed{
15061510
logic value;
15071511
} crypto_err;
1512+
struct packed{
1513+
logic value;
1514+
} dcls_error;
15081515
} CPTRA_HW_ERROR_FATAL;
15091516
struct packed{
15101517
struct packed{
@@ -2428,6 +2435,30 @@ module soc_ifc_reg (
24282435
end
24292436
end
24302437
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;
24312462
// Field: soc_ifc_reg.CPTRA_HW_ERROR_NON_FATAL.mbox_prot_no_lock
24322463
always_comb begin
24332464
automatic logic [0:0] next_c;
@@ -7046,7 +7077,8 @@ module soc_ifc_reg (
70467077
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;
70477078
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;
70487079
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;
70507082
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;
70517083
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;
70527084
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;

src/soc_ifc/rtl/soc_ifc_reg_pkg.sv

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,15 @@ package soc_ifc_reg_pkg;
1212
} soc_ifc_reg__rw_rw_sticky_hw__in_t;
1313

1414
typedef struct packed{
15-
logic [27:0] next;
15+
logic [26:0] next;
1616
} soc_ifc_reg__CPTRA_HW_ERROR_FATAL__rsvd__in_t;
1717

1818
typedef struct packed{
1919
soc_ifc_reg__rw_rw_sticky_hw__in_t iccm_ecc_unc;
2020
soc_ifc_reg__rw_rw_sticky_hw__in_t dccm_ecc_unc;
2121
soc_ifc_reg__rw_rw_sticky_hw__in_t nmi_pin;
2222
soc_ifc_reg__rw_rw_sticky_hw__in_t crypto_err;
23+
soc_ifc_reg__rw_rw_sticky_hw__in_t dcls_error;
2324
soc_ifc_reg__CPTRA_HW_ERROR_FATAL__rsvd__in_t rsvd;
2425
} soc_ifc_reg__CPTRA_HW_ERROR_FATAL__in_t;
2526

@@ -749,6 +750,7 @@ package soc_ifc_reg_pkg;
749750
soc_ifc_reg__rw_rw_sticky_hw__out_t dccm_ecc_unc;
750751
soc_ifc_reg__rw_rw_sticky_hw__out_t nmi_pin;
751752
soc_ifc_reg__rw_rw_sticky_hw__out_t crypto_err;
753+
soc_ifc_reg__rw_rw_sticky_hw__out_t dcls_error;
752754
} soc_ifc_reg__CPTRA_HW_ERROR_FATAL__out_t;
753755

754756
typedef struct packed{

src/soc_ifc/rtl/soc_ifc_reg_uvm.sv

+7-2
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ package soc_ifc_reg_uvm;
1414
soc_ifc_reg__CPTRA_HW_ERROR_FATAL_bit_cg dccm_ecc_unc_bit_cg[1];
1515
soc_ifc_reg__CPTRA_HW_ERROR_FATAL_bit_cg nmi_pin_bit_cg[1];
1616
soc_ifc_reg__CPTRA_HW_ERROR_FATAL_bit_cg crypto_err_bit_cg[1];
17-
soc_ifc_reg__CPTRA_HW_ERROR_FATAL_bit_cg rsvd_bit_cg[28];
17+
soc_ifc_reg__CPTRA_HW_ERROR_FATAL_bit_cg dcls_error_bit_cg[1];
18+
soc_ifc_reg__CPTRA_HW_ERROR_FATAL_bit_cg rsvd_bit_cg[27];
1819
soc_ifc_reg__CPTRA_HW_ERROR_FATAL_fld_cg fld_cg;
1920
rand uvm_reg_field iccm_ecc_unc;
2021
rand uvm_reg_field dccm_ecc_unc;
2122
rand uvm_reg_field nmi_pin;
2223
rand uvm_reg_field crypto_err;
24+
rand uvm_reg_field dcls_error;
2325
rand uvm_reg_field rsvd;
2426

2527
function new(string name = "soc_ifc_reg__CPTRA_HW_ERROR_FATAL");
@@ -40,13 +42,16 @@ package soc_ifc_reg_uvm;
4042
this.nmi_pin.configure(this, 1, 2, "W1C", 1, 'h0, 1, 1, 0);
4143
this.crypto_err = new("crypto_err");
4244
this.crypto_err.configure(this, 1, 3, "W1C", 1, 'h0, 1, 1, 0);
45+
this.dcls_error = new("dcls_error");
46+
this.dcls_error.configure(this, 1, 4, "W1C", 1, 'h0, 1, 1, 0);
4347
this.rsvd = new("rsvd");
44-
this.rsvd.configure(this, 28, 4, "RO", 1, 'h0, 1, 1, 0);
48+
this.rsvd.configure(this, 27, 5, "RO", 1, 'h0, 1, 1, 0);
4549
if (has_coverage(UVM_CVR_REG_BITS)) begin
4650
foreach(iccm_ecc_unc_bit_cg[bt]) iccm_ecc_unc_bit_cg[bt] = new();
4751
foreach(dccm_ecc_unc_bit_cg[bt]) dccm_ecc_unc_bit_cg[bt] = new();
4852
foreach(nmi_pin_bit_cg[bt]) nmi_pin_bit_cg[bt] = new();
4953
foreach(crypto_err_bit_cg[bt]) crypto_err_bit_cg[bt] = new();
54+
foreach(dcls_error_bit_cg[bt]) dcls_error_bit_cg[bt] = new();
5055
foreach(rsvd_bit_cg[bt]) rsvd_bit_cg[bt] = new();
5156
end
5257
if (has_coverage(UVM_CVR_FIELD_VALS))

0 commit comments

Comments
 (0)