[entropy_src/rtl] field enable has only 2 value states

For a 4 bit field, logic has been added to only respond to a value of 0xa and a value of 0x5.

Signed-off-by: Mark Branstad <mark.branstad@wdc.com>
diff --git a/hw/ip/entropy_src/data/entropy_src.hjson b/hw/ip/entropy_src/data/entropy_src.hjson
index c7eb7d0..03fc857 100644
--- a/hw/ip/entropy_src/data/entropy_src.hjson
+++ b/hw/ip/entropy_src/data/entropy_src.hjson
@@ -127,7 +127,6 @@
       desc: "Configuration register",
       swaccess: "rw",
       hwaccess: "hro",
-      hwqe:     "true",
       regwen:   "REGWEN",
       tags: [// Exclude from writes to these field because they cause side affects.
              "excl:CsrAllTests:CsrExclAll"]
@@ -212,7 +211,6 @@
       desc: "Entropy control register",
       swaccess: "rw",
       hwaccess: "hro",
-      hwqe:     "true",
       regwen:   "REGWEN",
       tags: [// Exclude from writes to these field because they cause side affects.
              "excl:CsrAllTests:CsrExclAll"]
@@ -1008,7 +1006,6 @@
       desc: "Firmware override control register",
       swaccess: "rw",
       hwaccess: "hro",
-      hwqe:     "true",
       regwen:   "REGWEN",
       fields: [
         { bits: "3:0",
diff --git a/hw/ip/entropy_src/rtl/entropy_src_core.sv b/hw/ip/entropy_src/rtl/entropy_src_core.sv
index 647235e..7115329 100644
--- a/hw/ip/entropy_src/rtl/entropy_src_core.sv
+++ b/hw/ip/entropy_src/rtl/entropy_src_core.sv
@@ -62,7 +62,6 @@
   localparam int ObserveFifoDepth = 64;
   localparam int PreCondWidth = 64;
   localparam int Clog2ObserveFifoDepth = $clog2(ObserveFifoDepth);
-  localparam int FieldEnableWidth = 4;
 
   //-----------------------
   // SHA3 parameters
@@ -80,22 +79,34 @@
   logic       load_seed;
   logic       fw_ov_mode;
   logic       fw_ov_mode_pfe;
+  logic       fw_ov_mode_pfd;
+  logic       fw_ov_mode_pfa;
   logic       fw_ov_entropy_insert;
   logic       fw_ov_entropy_insert_pfe;
+  logic       fw_ov_entropy_insert_pfd;
+  logic       fw_ov_entropy_insert_pfa;
   logic [ObserveFifoWidth-1:0] fw_ov_wr_data;
   logic       fw_ov_fifo_rd_pulse;
   logic       fw_ov_fifo_wr_pulse;
   logic       es_enable;
   logic       es_enable_pfe;
+  logic       es_enable_pfd;
+  logic       es_enable_pfa;
   logic       es_enable_early;
   logic       es_enable_lfsr;
   logic       es_enable_rng;
   logic       rng_bit_en;
-  logic       rng_bit_en_pfe;
+  logic       rng_bit_enable_pfe;
+  logic       rng_bit_enable_pfd;
+  logic       rng_bit_enable_pfa;
   logic [1:0] rng_bit_sel;
   logic       lfsr_incr;
   logic       lfsr_enable_pfe;
-  logic       entropy_data_reg_en_pfe;
+  logic       lfsr_enable_pfd;
+  logic       lfsr_enable_pfa;
+  logic       entropy_data_reg_enable_pfe;
+  logic       entropy_data_reg_enable_pfd;
+  logic       entropy_data_reg_enable_pfa;
   logic       es_data_reg_rd_en;
   logic       sw_es_rd_pulse;
   logic       event_es_entropy_valid;
@@ -158,11 +169,17 @@
   logic                     alert_cntrs_clr;
   logic                     health_test_clr;
   logic                     health_test_clr_pfe;
+  logic                     health_test_clr_pfd;
+  logic                     health_test_clr_pfa;
   logic                     health_test_done_pulse;
   logic [RngBusWidth-1:0]   health_test_esbus;
   logic                     health_test_esbus_vld;
   logic                     es_route_pfe;
+  logic                     es_route_pfd;
+  logic                     es_route_pfa;
   logic                     es_type_pfe;
+  logic                     es_type_pfd;
+  logic                     es_type_pfa;
   logic                     es_route_to_sw;
   logic                     es_bypass_to_sw;
   logic                     es_bypass_mode;
@@ -170,6 +187,8 @@
   logic                     rst_alert_cntr;
   logic                     boot_bypass_disable;
   logic                     boot_bypass_dis_pfe;
+  logic                     boot_bypass_dis_pfd;
+  logic                     boot_bypass_dis_pfa;
   logic                     fips_compliance;
 
   logic [HalfRegWidth-1:0] health_test_fips_window;
@@ -380,7 +399,18 @@
   logic                    unused_sha3_state;
   logic                    unused_entropy_data;
   logic                    unused_fw_ov_rd_data;
-  logic                    unused_rng_bit_sel;
+  // TODO: remove below after connecting up
+  logic                    unused_es_enable_pfa;
+  logic                    unused_lfsr_enable_pfa;
+  logic                    unused_entropy_data_reg_enable_pfa;
+  logic                    unused_fw_ov_mode_pfa;
+  logic                    unused_fw_ov_entropy_insert_pfa;
+  logic                    unused_rng_bit_enable_pfa;
+  logic                    unused_health_test_clr_pfa;
+  logic                    unused_es_route_pfa;
+  logic                    unused_es_type_pfa;
+  logic                    unused_boot_bypass_dis_pfa;
+
 
   // flops
   logic [15:0] es_rate_cntr_q, es_rate_cntr_d;
@@ -442,38 +472,33 @@
   // set up secure enable bits
   //--------------------------------------------
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_es_enable (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.conf.enable.qe),
-    .wdata_i                (reg2hw.conf.enable.q),
-    .enable_o               (es_enable_pfe)
-  );
+  // check for illegal enable field states, and set alert if detected
+  assign es_enable_pfe = (es_enb_e'(reg2hw.conf.enable.q) == ES_FIELD_ON);
+  assign es_enable_pfd = (es_enb_e'(reg2hw.conf.enable.q) == ~ES_FIELD_ON);
+  assign es_enable_pfa = !(es_enable_pfe || es_enable_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_es_enable_pfa = es_enable_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = es_enable_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = es_enable_pfa;
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_lfsr_enable (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.conf.lfsr_enable.qe),
-    .wdata_i                (reg2hw.conf.lfsr_enable.q),
-    .enable_o               (lfsr_enable_pfe)
-  );
+  assign lfsr_enable_pfe = (es_enb_e'(reg2hw.conf.lfsr_enable.q) == ES_FIELD_ON);
+  assign lfsr_enable_pfd = (es_enb_e'(reg2hw.conf.lfsr_enable.q) == ~ES_FIELD_ON);
+  assign lfsr_enable_pfa = !(lfsr_enable_pfe || lfsr_enable_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_lfsr_enable_pfa = lfsr_enable_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = lfsr_enable_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = lfsr_enable_pfa;
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_entropy_data_reg_en (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.conf.entropy_data_reg_enable.qe),
-    .wdata_i                (reg2hw.conf.entropy_data_reg_enable.q),
-    .enable_o               (entropy_data_reg_en_pfe)
-  );
+  assign entropy_data_reg_enable_pfe =
+         (es_enb_e'(reg2hw.conf.entropy_data_reg_enable.q) == ES_FIELD_ON);
+  assign entropy_data_reg_enable_pfd =
+         (es_enb_e'(reg2hw.conf.entropy_data_reg_enable.q) == ~ES_FIELD_ON);
+  assign entropy_data_reg_enable_pfa =
+         !(entropy_data_reg_enable_pfe || entropy_data_reg_enable_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_entropy_data_reg_enable_pfa = entropy_data_reg_enable_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = entropy_data_reg_enable_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = entropy_data_reg_enable_pfa;
 
   assign es_enable_d = {lfsr_enable_pfe,es_enable_pfe};
   assign es_enable_early = lfsr_enable_pfe || es_enable_pfe;
@@ -483,27 +508,23 @@
   assign load_seed = !es_enable;
   assign observe_fifo_thresh = reg2hw.observe_fifo_thresh.q;
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_fw_ov_mode (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.fw_ov_control.fw_ov_mode.qe),
-    .wdata_i                (reg2hw.fw_ov_control.fw_ov_mode.q),
-    .enable_o               (fw_ov_mode_pfe)
-  );
+  assign fw_ov_mode_pfe = (es_enb_e'(reg2hw.fw_ov_control.fw_ov_mode.q) == ES_FIELD_ON);
+  assign fw_ov_mode_pfd = (es_enb_e'(reg2hw.fw_ov_control.fw_ov_mode.q) == ~ES_FIELD_ON);
+  assign fw_ov_mode_pfa = !(fw_ov_mode_pfe || fw_ov_mode_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_fw_ov_mode_pfa = fw_ov_mode_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = fw_ov_mode_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = fw_ov_mode_pfa;
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_fw_ov_entropy_insert (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.fw_ov_control.fw_ov_entropy_insert.qe),
-    .wdata_i                (reg2hw.fw_ov_control.fw_ov_entropy_insert.q),
-    .enable_o               (fw_ov_entropy_insert_pfe)
-  );
+  assign fw_ov_entropy_insert_pfe =
+         (es_enb_e'(reg2hw.fw_ov_control.fw_ov_entropy_insert.q) == ES_FIELD_ON);
+  assign fw_ov_entropy_insert_pfd =
+         (es_enb_e'(reg2hw.fw_ov_control.fw_ov_entropy_insert.q) == ~ES_FIELD_ON);
+  assign fw_ov_entropy_insert_pfa = !(fw_ov_entropy_insert_pfe || fw_ov_entropy_insert_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_fw_ov_entropy_insert_pfa = fw_ov_entropy_insert_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = fw_ov_entropy_insert_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = fw_ov_entropy_insert_pfa;
 
   // firmware override controls
   assign fw_ov_mode = efuse_es_sw_ov_en_i && fw_ov_mode_pfe;
@@ -774,18 +795,15 @@
 
   // pack esrng bus into signal bit packer
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_rng_bit_en (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.conf.rng_bit_enable.qe),
-    .wdata_i                (reg2hw.conf.rng_bit_enable.q),
-    .enable_o               (rng_bit_en_pfe)
-  );
+  assign rng_bit_enable_pfe = (es_enb_e'(reg2hw.conf.rng_bit_enable.q) == ES_FIELD_ON);
+  assign rng_bit_enable_pfd = (es_enb_e'(reg2hw.conf.rng_bit_enable.q) == ~ES_FIELD_ON);
+  assign rng_bit_enable_pfa = !(rng_bit_enable_pfe || rng_bit_enable_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_rng_bit_enable_pfa = rng_bit_enable_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = rng_bit_enable_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = rng_bit_enable_pfa;
 
-  assign rng_bit_en = rng_bit_en_pfe;
+  assign rng_bit_en = rng_bit_enable_pfe;
   assign rng_bit_sel = reg2hw.conf.rng_bit_sel.q;
 
   prim_packer_fifo #(
@@ -835,16 +853,14 @@
   assign markov_active = es_enable;
   assign extht_active = es_enable;
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_health_test_clr (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.conf.health_test_clr.qe),
-    .wdata_i                (reg2hw.conf.health_test_clr.q),
-    .enable_o               (health_test_clr_pfe)
-  );
+  assign health_test_clr_pfe = (es_enb_e'(reg2hw.conf.health_test_clr.q) == ES_FIELD_ON);
+  assign health_test_clr_pfd = (es_enb_e'(reg2hw.conf.health_test_clr.q) == ~ES_FIELD_ON);
+  assign health_test_clr_pfa = !(health_test_clr_pfe || health_test_clr_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_health_test_clr_pfa = health_test_clr_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = health_test_clr_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = health_test_clr_pfa;
+
 
   assign health_test_clr = health_test_clr_pfe;
 
@@ -1215,38 +1231,29 @@
   assign event_es_health_test_failed = es_main_sm_alert;
   assign event_es_observe_fifo_ready = observe_fifo_thresh_met;
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_es_route (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.entropy_control.es_route.qe),
-    .wdata_i                (reg2hw.entropy_control.es_route.q),
-    .enable_o               (es_route_pfe)
-  );
+  assign es_route_pfe = (es_enb_e'(reg2hw.entropy_control.es_route.q) == ES_FIELD_ON);
+  assign es_route_pfd = (es_enb_e'(reg2hw.entropy_control.es_route.q) == ~ES_FIELD_ON);
+  assign es_route_pfa = !(es_route_pfe || es_route_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_es_route_pfa = es_route_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = es_route_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = es_route_pfa;
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_es_type (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.entropy_control.es_type.qe),
-    .wdata_i                (reg2hw.entropy_control.es_type.q),
-    .enable_o               (es_type_pfe)
-  );
+  assign es_type_pfe = (es_enb_e'(reg2hw.entropy_control.es_type.q) == ES_FIELD_ON);
+  assign es_type_pfd = (es_enb_e'(reg2hw.entropy_control.es_type.q) == ~ES_FIELD_ON);
+  assign es_type_pfa = !(es_type_pfe || es_type_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_es_type_pfa = es_type_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = es_type_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = es_type_pfa;
 
-  entropy_src_field_en #(
-    .FieldW(FieldEnableWidth),
-    .FieldEnVal(int'(ES_FIELD_ON))
-  ) u_entropy_src_field_en_boot_bypass_dis (
-    .clk_i                  (clk_i),
-    .rst_ni                 (rst_ni),
-    .wvalid_i               (reg2hw.conf.boot_bypass_disable.qe),
-    .wdata_i                (reg2hw.conf.boot_bypass_disable.q),
-    .enable_o               (boot_bypass_dis_pfe)
-  );
+  assign boot_bypass_dis_pfe = (es_enb_e'(reg2hw.conf.boot_bypass_disable.q) == ES_FIELD_ON);
+  assign boot_bypass_dis_pfd = (es_enb_e'(reg2hw.conf.boot_bypass_disable.q) == ~ES_FIELD_ON);
+  assign boot_bypass_dis_pfa = !(boot_bypass_dis_pfe || boot_bypass_dis_pfd);
+  // TODO: connect to recov alert reg after it has been created
+  assign unused_boot_bypass_dis_pfa = boot_bypass_dis_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.de = boot_bypass_dis_pfa;
+  //  assign hw2reg.recov_alert_sts.enable_field_alert.d  = boot_bypass_dis_pfa;
 
   assign es_route_to_sw = es_route_pfe;
   assign es_bypass_to_sw = es_type_pfe;
@@ -2306,7 +2313,7 @@
   assign pfifo_swread_pop =  es_enable && sw_es_rd_pulse;
 
   // set the es entropy to the read reg
-  assign es_data_reg_rd_en = es_enable && efuse_es_sw_reg_en_i && entropy_data_reg_en_pfe;
+  assign es_data_reg_rd_en = es_enable && efuse_es_sw_reg_en_i && entropy_data_reg_enable_pfe;
   assign hw2reg.entropy_data.d = es_data_reg_rd_en ? pfifo_swread_rdata : '0;
   assign sw_es_rd_pulse = es_data_reg_rd_en && reg2hw.entropy_data.re;
 
@@ -2318,17 +2325,6 @@
   assign unused_sha3_state = (|sha3_state[0][sha3_pkg::StateW-1:SeedLen]);
   assign unused_entropy_data = (|reg2hw.entropy_data.q);
   assign unused_fw_ov_rd_data = (|reg2hw.fw_ov_rd_data.q);
-  assign unused_rng_bit_sel = reg2hw.conf.rng_bit_sel.qe ||
-         // TODO: remove or enable these
-         reg2hw.conf.enable.qe ||
-         reg2hw.conf.lfsr_enable.qe ||
-         reg2hw.conf.entropy_data_reg_enable.qe ||
-         reg2hw.fw_ov_control.fw_ov_mode.qe ||
-         reg2hw.fw_ov_control.fw_ov_entropy_insert.qe ||
-         reg2hw.conf.rng_bit_enable.qe ||
-         reg2hw.conf.health_test_clr.qe ||
-         reg2hw.entropy_control.es_route.qe ||
-         reg2hw.entropy_control.es_type.qe ||
-         reg2hw.conf.boot_bypass_disable.qe;
+
 
 endmodule
diff --git a/hw/ip/entropy_src/rtl/entropy_src_reg_pkg.sv b/hw/ip/entropy_src/rtl/entropy_src_reg_pkg.sv
index 2038ebe..df69ddc 100644
--- a/hw/ip/entropy_src/rtl/entropy_src_reg_pkg.sv
+++ b/hw/ip/entropy_src/rtl/entropy_src_reg_pkg.sv
@@ -79,31 +79,24 @@
   typedef struct packed {
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } enable;
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } entropy_data_reg_enable;
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } lfsr_enable;
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } boot_bypass_disable;
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } health_test_clr;
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } rng_bit_enable;
     struct packed {
       logic [1:0]  q;
-      logic        qe;
     } rng_bit_sel;
   } entropy_src_reg2hw_conf_reg_t;
 
@@ -114,11 +107,9 @@
   typedef struct packed {
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } es_route;
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } es_type;
   } entropy_src_reg2hw_entropy_control_reg_t;
 
@@ -247,11 +238,9 @@
   typedef struct packed {
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } fw_ov_mode;
     struct packed {
       logic [3:0]  q;
-      logic        qe;
     } fw_ov_entropy_insert;
   } entropy_src_reg2hw_fw_ov_control_reg_t;
 
@@ -615,26 +604,26 @@
 
   // Register -> HW type
   typedef struct packed {
-    entropy_src_reg2hw_intr_state_reg_t intr_state; // [574:571]
-    entropy_src_reg2hw_intr_enable_reg_t intr_enable; // [570:567]
-    entropy_src_reg2hw_intr_test_reg_t intr_test; // [566:559]
-    entropy_src_reg2hw_alert_test_reg_t alert_test; // [558:555]
-    entropy_src_reg2hw_conf_reg_t conf; // [554:522]
-    entropy_src_reg2hw_rate_reg_t rate; // [521:506]
-    entropy_src_reg2hw_entropy_control_reg_t entropy_control; // [505:496]
-    entropy_src_reg2hw_entropy_data_reg_t entropy_data; // [495:463]
-    entropy_src_reg2hw_health_test_windows_reg_t health_test_windows; // [462:431]
-    entropy_src_reg2hw_repcnt_thresholds_reg_t repcnt_thresholds; // [430:397]
-    entropy_src_reg2hw_repcnts_thresholds_reg_t repcnts_thresholds; // [396:363]
-    entropy_src_reg2hw_adaptp_hi_thresholds_reg_t adaptp_hi_thresholds; // [362:329]
-    entropy_src_reg2hw_adaptp_lo_thresholds_reg_t adaptp_lo_thresholds; // [328:295]
-    entropy_src_reg2hw_bucket_thresholds_reg_t bucket_thresholds; // [294:261]
-    entropy_src_reg2hw_markov_hi_thresholds_reg_t markov_hi_thresholds; // [260:227]
-    entropy_src_reg2hw_markov_lo_thresholds_reg_t markov_lo_thresholds; // [226:193]
-    entropy_src_reg2hw_extht_hi_thresholds_reg_t extht_hi_thresholds; // [192:159]
-    entropy_src_reg2hw_extht_lo_thresholds_reg_t extht_lo_thresholds; // [158:125]
-    entropy_src_reg2hw_alert_threshold_reg_t alert_threshold; // [124:93]
-    entropy_src_reg2hw_fw_ov_control_reg_t fw_ov_control; // [92:83]
+    entropy_src_reg2hw_intr_state_reg_t intr_state; // [563:560]
+    entropy_src_reg2hw_intr_enable_reg_t intr_enable; // [559:556]
+    entropy_src_reg2hw_intr_test_reg_t intr_test; // [555:548]
+    entropy_src_reg2hw_alert_test_reg_t alert_test; // [547:544]
+    entropy_src_reg2hw_conf_reg_t conf; // [543:518]
+    entropy_src_reg2hw_rate_reg_t rate; // [517:502]
+    entropy_src_reg2hw_entropy_control_reg_t entropy_control; // [501:494]
+    entropy_src_reg2hw_entropy_data_reg_t entropy_data; // [493:461]
+    entropy_src_reg2hw_health_test_windows_reg_t health_test_windows; // [460:429]
+    entropy_src_reg2hw_repcnt_thresholds_reg_t repcnt_thresholds; // [428:395]
+    entropy_src_reg2hw_repcnts_thresholds_reg_t repcnts_thresholds; // [394:361]
+    entropy_src_reg2hw_adaptp_hi_thresholds_reg_t adaptp_hi_thresholds; // [360:327]
+    entropy_src_reg2hw_adaptp_lo_thresholds_reg_t adaptp_lo_thresholds; // [326:293]
+    entropy_src_reg2hw_bucket_thresholds_reg_t bucket_thresholds; // [292:259]
+    entropy_src_reg2hw_markov_hi_thresholds_reg_t markov_hi_thresholds; // [258:225]
+    entropy_src_reg2hw_markov_lo_thresholds_reg_t markov_lo_thresholds; // [224:191]
+    entropy_src_reg2hw_extht_hi_thresholds_reg_t extht_hi_thresholds; // [190:157]
+    entropy_src_reg2hw_extht_lo_thresholds_reg_t extht_lo_thresholds; // [156:123]
+    entropy_src_reg2hw_alert_threshold_reg_t alert_threshold; // [122:91]
+    entropy_src_reg2hw_fw_ov_control_reg_t fw_ov_control; // [90:83]
     entropy_src_reg2hw_fw_ov_rd_data_reg_t fw_ov_rd_data; // [82:50]
     entropy_src_reg2hw_fw_ov_wr_data_reg_t fw_ov_wr_data; // [49:17]
     entropy_src_reg2hw_observe_fifo_thresh_reg_t observe_fifo_thresh; // [16:10]
diff --git a/hw/ip/entropy_src/rtl/entropy_src_reg_top.sv b/hw/ip/entropy_src/rtl/entropy_src_reg_top.sv
index 5d57f64..540ce70 100644
--- a/hw/ip/entropy_src/rtl/entropy_src_reg_top.sv
+++ b/hw/ip/entropy_src/rtl/entropy_src_reg_top.sv
@@ -680,7 +680,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.conf.enable.qe),
+    .qe     (),
     .q      (reg2hw.conf.enable.q),
 
     // to register interface (read)
@@ -705,7 +705,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.conf.entropy_data_reg_enable.qe),
+    .qe     (),
     .q      (reg2hw.conf.entropy_data_reg_enable.q),
 
     // to register interface (read)
@@ -730,7 +730,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.conf.lfsr_enable.qe),
+    .qe     (),
     .q      (reg2hw.conf.lfsr_enable.q),
 
     // to register interface (read)
@@ -755,7 +755,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.conf.boot_bypass_disable.qe),
+    .qe     (),
     .q      (reg2hw.conf.boot_bypass_disable.q),
 
     // to register interface (read)
@@ -780,7 +780,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.conf.health_test_clr.qe),
+    .qe     (),
     .q      (reg2hw.conf.health_test_clr.q),
 
     // to register interface (read)
@@ -805,7 +805,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.conf.rng_bit_enable.qe),
+    .qe     (),
     .q      (reg2hw.conf.rng_bit_enable.q),
 
     // to register interface (read)
@@ -830,7 +830,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.conf.rng_bit_sel.qe),
+    .qe     (),
     .q      (reg2hw.conf.rng_bit_sel.q),
 
     // to register interface (read)
@@ -883,7 +883,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.entropy_control.es_route.qe),
+    .qe     (),
     .q      (reg2hw.entropy_control.es_route.q),
 
     // to register interface (read)
@@ -908,7 +908,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.entropy_control.es_type.qe),
+    .qe     (),
     .q      (reg2hw.entropy_control.es_type.q),
 
     // to register interface (read)
@@ -1874,7 +1874,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.fw_ov_control.fw_ov_mode.qe),
+    .qe     (),
     .q      (reg2hw.fw_ov_control.fw_ov_mode.q),
 
     // to register interface (read)
@@ -1899,7 +1899,7 @@
     .d      ('0),
 
     // to internal hardware
-    .qe     (reg2hw.fw_ov_control.fw_ov_entropy_insert.qe),
+    .qe     (),
     .q      (reg2hw.fw_ov_control.fw_ov_entropy_insert.q),
 
     // to register interface (read)