[keymgr/dv] Fix coverage null object

Design changed sideload_clear to be gated by cfg_regwen
Updated env for this change to fix regression failures

Signed-off-by: Weicai Yang <weicai@google.com>
diff --git a/hw/ip/keymgr/dv/env/keymgr_env_cov.sv b/hw/ip/keymgr/dv/env/keymgr_env_cov.sv
index e791613..44872bc 100644
--- a/hw/ip/keymgr/dv/env/keymgr_env_cov.sv
+++ b/hw/ip/keymgr/dv/env/keymgr_env_cov.sv
@@ -76,7 +76,8 @@
                                                     keymgr_pkg::keymgr_ops_e op,
                                                     bit aes_sl_avail,
                                                     bit kmac_sl_avail,
-                                                    bit otbn_sl_avail);
+                                                    bit otbn_sl_avail,
+                                                    bit regwen);
     sideload_clear_cp: coverpoint sideload_clear {
       bins clear_none  = {0};
       bins clear_one[] = {[1:3]};
@@ -89,9 +90,12 @@
     aes_sl_avail_cp:   coverpoint aes_sl_avail;
     kmac_sl_avail_cp:  coverpoint kmac_sl_avail;
     otbn_sl_avail_cp:  coverpoint otbn_sl_avail;
+    regwen_cp:         coverpoint regwen;
+
     sideload_clear_x_state_op_cross: cross sideload_clear, state, op;
     sideload_clear_x_sl_avail_cross: cross sideload_clear_cp, aes_sl_avail, kmac_sl_avail,
                                            otbn_sl_avail;
+    sideload_clear_x_regwen_cross:   cross sideload_clear_cp, regwen_cp;
   endgroup
 
   covergroup err_code_cg with function sample(keymgr_pkg::keymgr_err_pos_e err_code);
diff --git a/hw/ip/keymgr/dv/env/keymgr_scoreboard.sv b/hw/ip/keymgr/dv/env/keymgr_scoreboard.sv
index 3c9b7d4..b64258d 100644
--- a/hw/ip/keymgr/dv/env/keymgr_scoreboard.sv
+++ b/hw/ip/keymgr/dv/env/keymgr_scoreboard.sv
@@ -410,6 +410,14 @@
         bit cfg_regwen = (current_op_status == keymgr_pkg::OpWip);
         if (csr.get_name() == "control") begin
           cov.control_w_regwen_cg.sample(item.a_data, cfg_regwen);
+        end else if (csr.get_name() == "sideload_clear") begin
+          cov.sideload_clear_cg.sample(`gmv(ral.sideload_clear.val),
+                                       current_state,
+                                       get_operation(),
+                                       cfg.keymgr_vif.aes_sideload_status == SideLoadAvail,
+                                       cfg.keymgr_vif.kmac_sideload_status == SideLoadAvail,
+                                       cfg.keymgr_vif.otbn_sideload_status == SideLoadAvail,
+                                       cfg_regwen);
         end else begin
           cov.sw_input_cg_wrap[csr.get_name()].sample(item.a_data, cfg_regwen);
         end
@@ -675,15 +683,6 @@
       end
       "sideload_clear": begin
         if (addr_phase_write) begin
-          if (cfg.en_cov) begin
-            cov.sideload_clear_cg.sample(`gmv(ral.sideload_clear.val),
-                                         current_state,
-                                         get_operation(),
-                                         cfg.keymgr_vif.aes_sideload_status == SideLoadAvail,
-                                         cfg.keymgr_vif.kmac_sideload_status == SideLoadAvail,
-                                         cfg.keymgr_vif.otbn_sideload_status == SideLoadAvail);
-          end
-
           fork
             begin
               cfg.clk_rst_vif.wait_clks(1);