[otbn,dv] Add RegFile we_err's to bad_internal_cg
Signed-off-by: Canberk Topal <ctopal@lowrisc.org>
diff --git a/hw/ip/otbn/dv/tracer/rtl/otbn_trace_if.sv b/hw/ip/otbn/dv/tracer/rtl/otbn_trace_if.sv
index de71d63..14d4caa 100644
--- a/hw/ip/otbn/dv/tracer/rtl/otbn_trace_if.sv
+++ b/hw/ip/otbn/dv/tracer/rtl/otbn_trace_if.sv
@@ -93,7 +93,9 @@
input logic ispr_predec_error,
input logic controller_predec_error,
input logic rf_bignum_predec_error,
- input logic rd_predec_error
+ input logic rd_predec_error,
+ input logic rf_base_spurious_we_err,
+ input logic rf_bignum_spurious_we_err
);
import otbn_pkg::*;
import prim_mubi_pkg::*;
@@ -344,6 +346,8 @@
logic scramble_state_err_i, scramble_state_err_d, scramble_state_err_q;
logic urnd_all_zero_d, urnd_all_zero_q;
logic insn_addr_err_d, insn_addr_err_q;
+ logic rf_base_spurious_we_err_d, rf_base_spurious_we_err_q;
+ logic rf_bignum_spurious_we_err_d, rf_bignum_spurious_we_err_q;
assign missed_gnt_d = (locking_o) ? '0 : (missed_gnt_q | missed_gnt_i);
assign predec_err_d = (locking_o) ? '0 : (predec_err_q | predec_err_i);
@@ -352,6 +356,10 @@
assign start_stop_bad_int_d = (locking_o) ? '0 : (start_stop_bad_int_q | start_stop_bad_int_i);
assign controller_bad_int_d = (locking_o) ? '0 : (controller_bad_int_q | controller_bad_int_i);
assign scramble_state_err_d = (locking_o) ? '0 : (scramble_state_err_q | scramble_state_err_i);
+ assign rf_base_spurious_we_err_d = (locking_o) ? '0 :
+ (rf_base_spurious_we_err_q | rf_base_spurious_we_err);
+ assign rf_bignum_spurious_we_err_d = (locking_o) ? '0 :
+ (rf_bignum_spurious_we_err_q | rf_bignum_spurious_we_err);
always_ff @(posedge clk_i or negedge rst_ni) begin
if (!rst_ni) begin
@@ -362,6 +370,8 @@
start_stop_bad_int_q <= '0;
controller_bad_int_q <= '0;
scramble_state_err_q <= '0;
+ rf_bignum_spurious_we_err_q <= '0;
+ rf_base_spurious_we_err_q <= '0;
end else begin
missed_gnt_q <= missed_gnt_d;
predec_err_q <= predec_err_d;
@@ -370,6 +380,8 @@
scramble_state_err_q <= scramble_state_err_d;
start_stop_bad_int_q <= start_stop_bad_int_d;
controller_bad_int_q <= controller_bad_int_d;
+ rf_base_spurious_we_err_q <= rf_base_spurious_we_err_d;
+ rf_bignum_spurious_we_err_q <= rf_bignum_spurious_we_err_d;
end
end
diff --git a/hw/ip/otbn/dv/uvm/env/otbn_env_cov.sv b/hw/ip/otbn/dv/uvm/env/otbn_env_cov.sv
index dd1d7fa..a557a9d 100644
--- a/hw/ip/otbn/dv/uvm/env/otbn_env_cov.sv
+++ b/hw/ip/otbn/dv/uvm/env/otbn_env_cov.sv
@@ -631,7 +631,9 @@
otbn_pkg::predec_err_t predec_err,
otbn_pkg::missed_gnt_t missed_gnt,
otbn_pkg::controller_bad_int_t controller_bad_int,
- otbn_pkg::start_stop_bad_int_t start_stop_bad_int);
+ otbn_pkg::start_stop_bad_int_t start_stop_bad_int,
+ logic rf_base_spurious_we_err,
+ logic rf_bignum_spurious_we_err);
`DEF_SEEN_CP(alu_bignum_predec_err, predec_err.alu_bignum_err)
`DEF_SEEN_CP(mac_bignum_predec_err, predec_err.mac_bignum_err)
@@ -659,6 +661,8 @@
`DEF_SEEN_CP(urnd_all_zero_cp, urnd_all_zero)
`DEF_SEEN_CP(insn_addr_err_cp, insn_addr_err)
`DEF_SEEN_CP(scramble_state_err_cp, scramble_state_err)
+ `DEF_SEEN_CP(rf_base_spurious_we_err_cp, rf_base_spurious_we_err)
+ `DEF_SEEN_CP(rf_bignum_spurious_we_err_cp, rf_bignum_spurious_we_err)
endgroup
@@ -2228,7 +2232,9 @@
cfg.trace_vif.predec_err_q,
cfg.trace_vif.missed_gnt_q,
cfg.trace_vif.controller_bad_int_q,
- cfg.trace_vif.start_stop_bad_int_q);
+ cfg.trace_vif.start_stop_bad_int_q,
+ cfg.trace_vif.rf_base_spurious_we_err_q,
+ cfg.trace_vif.rf_bignum_spurious_we_err_q);
endfunction
function void on_write_to_wr_csr(uvm_reg csr, logic [31:0] data, operational_state_e state);