[rbox] created the actual CSR files from hjson
Signed-off-by: Eric Shiu <eshiu@google.com>
diff --git a/hw/ip/rbox/rtl/rbox.sv b/hw/ip/rbox/rtl/rbox.sv
new file mode 100644
index 0000000..cada269
--- /dev/null
+++ b/hw/ip/rbox/rtl/rbox.sv
@@ -0,0 +1,177 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+//
+// rbox module
+
+`include "prim_assert.sv"
+
+module rbox (
+ input clk_i,//Always-on 24MHz clock(config)
+ input clk_aon_i,//Always-on 200KHz clock(logic)
+ input rst_ni,//power-on reset for the 24MHz clock(config)
+ input rst_slow_ni,//power-on reset for the 200KHz clock(logic)
+ output gsc_rst_o,//GSC reset to rstmgr
+ output rbox_intr_o,//rbox interrupt to PLIC
+
+ //Regster interface
+ input tlul_pkg::tl_h2d_t tl_i,
+ output tlul_pkg::tl_d2h_t tl_o,
+
+ //DIO
+ input cio_ac_present_i,//AC power is present
+ input cio_ec_rst_l_i,//EC reset is asserted by some other system agent
+ input cio_key0_in_i,//VolUp button in tablet; column output from the EC in a laptop
+ input cio_key1_in_i,//VolDown button in tablet; row input from keyboard matrix in a laptop
+ input cio_key2_in_i,//TBD button in tablet; row input from keyboard matrix in a laptop
+ input cio_pwrb_in_i,//Power button in both tablet and laptop
+ output logic cio_bat_disable_o,//Battery is disconnected
+ output logic cio_ec_rst_l_o,//EC reset is asserted by rbox
+ output logic cio_key0_out_o,//Passthrough from key0_in, can be configured to invert
+ output logic cio_key1_out_o,//Passthrough from key1_in, can be configured to invert
+ output logic cio_key2_out_o,//Passthrough from key2_in, can be configured to invert
+ output logic cio_pwrb_out_o,//Passthrough from pwrb_in, can be configured to invert
+ output logic cio_bat_disable_en_o,
+ output logic cio_ec_rst_l_en_o,
+ output logic cio_key0_out_en_o,
+ output logic cio_key1_out_en_o,
+ output logic cio_key2_out_en_o,
+ output logic cio_pwrb_out_en_o
+);
+
+ import rbox_reg_pkg::* ;
+
+ rbox_reg2hw_t reg2hw;
+ rbox_hw2reg_t hw2reg;
+
+ logic pwrb_int, key0_int, key1_int, key2_int, ac_present_int;
+ logic pwrb_out_hw, key0_out_hw, key1_out_hw, key2_out_hw, ec_rst_l_hw;
+ logic pwrb_out_int, key0_out_int, key1_out_int, key2_out_int, bat_disable_int;
+
+ //Always-on pins
+ assign cio_ec_rst_l_en_o = 1'b1;
+ assign cio_pwrb_out_en_o = 1'b1;
+ assign cio_key0_out_en_o = 1'b1;
+ assign cio_key1_out_en_o = 1'b1;
+ assign cio_key2_out_en_o = 1'b1;
+ assign cio_bat_disable_en_o = 1'b1;
+
+ // Register module
+ rbox_reg_top i_reg_top (
+ .clk_i(clk_i),
+ .rst_ni(rst_ni),
+ .tl_i(tl_i),
+ .tl_o(tl_o),
+ .reg2hw(reg2hw),
+ .hw2reg(hw2reg),
+ .devmode_i (1'b1)
+ );
+
+ //Instantiate the autoblock module
+ rbox_autoblock i_autoblock (
+ .clk_i(clk_i),
+ .rst_ni(rst_ni),
+ .clk_aon_i(clk_aon_i),
+ .rst_slow_ni(rst_slow_ni),
+ .pwrb_int(pwrb_int),
+ .key0_int(key0_int),
+ .key1_int(key1_int),
+ .key2_int(key2_int),
+ .pwrb_out_hw(pwrb_out_hw),
+ .key0_out_hw(key0_out_hw),
+ .key1_out_hw(key1_out_hw),
+ .key2_out_hw(key2_out_hw)
+ );
+
+ //Instantiate the pin inversion module
+ rbox_inv i_inversion (
+ .clk_aon_i(clk_aon_i),
+ .rst_slow_ni(rst_slow_ni),
+ .cio_pwrb_in_i(cio_pwrb_in_i),
+ .cio_key0_in_i(cio_key0_in_i),
+ .cio_key1_in_i(cio_key1_in_i),
+ .cio_key2_in_i(cio_key2_in_i),
+ .cio_ac_present_i(cio_ac_present_i),
+ .pwrb_out_int(pwrb_out_int),
+ .key0_out_int(key0_out_int),
+ .key1_out_int(key1_out_int),
+ .key2_out_int(key2_out_int),
+ .bat_disable_int(bat_disable_int),
+ .pwrb_int(pwrb_int),
+ .key0_int(key0_int),
+ .key1_int(key1_int),
+ .key2_int(key2_int),
+ .ac_present_int(ac_present_int),
+ .cio_bat_disable_o(cio_bat_disable_o),
+ .cio_pwrb_out_o(cio_pwrb_out_o),
+ .cio_key0_out_o(cio_key0_out_o),
+ .cio_key1_out_o(cio_key1_out_o),
+ .cio_key2_out_o(cio_key2_out_o)
+ );
+
+ //Instantiate the pin visibility and override module
+ rbox_pin i_pin_vis_ovd (
+ .clk_i(clk_i),
+ .rst_ni(rst_ni),
+ .clk_aon_i(clk_aon_i),
+ .rst_slow_ni(rst_slow_ni),
+ .cio_pwrb_in_i(cio_pwrb_in_i),
+ .cio_key0_in_i(cio_key0_in_i),
+ .cio_key1_in_i(cio_key1_in_i),
+ .cio_key2_in_i(cio_key2_in_i),
+ .cio_ac_present_i(cio_ac_present_i),
+ .cio_ec_rst_l_i(cio_ec_rst_l_i),
+ .pwrb_out_hw(pwrb_out_hw),
+ .key0_out_hw(key0_out_hw),
+ .key1_out_hw(key1_out_hw),
+ .key2_out_hw(key2_out_hw),
+ .bat_disable_hw(bat_disable_hw),
+ .ec_rst_l_hw(ec_rst_l_hw),
+ .pwrb_out_int(pwrb_out_int),
+ .key0_out_int(key0_out_int),
+ .key1_out_int(key1_out_int),
+ .key2_out_int(key2_out_int),
+ .bat_disable_int(bat_disable_int),
+ .cio_ec_rst_l_o(cio_ec_rst_l_o)
+ );
+
+ //Instantiate key-triggered interrupt module
+ rbox_keyintr i_keyintr (
+ .clk_i(clk_i),
+ .rst_ni(rst_ni),
+ .clk_aon_i(clk_aon_i),
+ .rst_slow_ni(rst_slow_ni),
+ .pwrb_int(pwrb_int),
+ .key0_int(key0_int),
+ .key1_int(key1_int),
+ .key2_int(key2_int),
+ .ac_present_int(ac_present_int),
+ .cio_ec_rst_l_i(cio_ec_rst_l_i)
+ );
+
+ //Instantiate combo module
+ rbox_combo i_combo (
+ .clk_i(clk_i),
+ .rst_ni(rst_ni),
+ .clk_aon_i(clk_aon_i),
+ .rst_slow_ni(rst_slow_ni),
+ .pwrb_int(pwr_int),
+ .key0_int(key0_int),
+ .key1_int(key1_int),
+ .key2_int(key2_int),
+ .ac_present_int(ac_present_int),
+ .cio_ec_rst_l_i(cio_ec_rst_l_i),
+ .bat_disable_hw(bat_disable_hw),
+ .gsc_rst_o(gsc_rst_o),
+ .ec_rst_l_hw(ec_rst_l_hw)
+ );
+
+ //Instantiate the interrupt module
+ rbox_intr i_intr (
+ .clk_i(clk_i),
+ .rst_ni(rst_ni),
+ .rbox_intr_o(rbox_intr_o)
+ );
+
+
+endmodule
diff --git a/hw/ip/rbox/rtl/rbox_reg_pkg.sv b/hw/ip/rbox/rtl/rbox_reg_pkg.sv
new file mode 100644
index 0000000..a802fa4
--- /dev/null
+++ b/hw/ip/rbox/rtl/rbox_reg_pkg.sv
@@ -0,0 +1,497 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+//
+// Register Package auto-generated by `reggen` containing data structure
+
+package rbox_reg_pkg;
+
+ // Param list
+ parameter int NumCombo = 4;
+
+ // Address width within the block
+ parameter int BlockAw = 7;
+
+ ////////////////////////////
+ // Typedefs for registers //
+ ////////////////////////////
+ typedef struct packed {
+ logic q;
+ } rbox_reg2hw_intr_state_reg_t;
+
+ typedef struct packed {
+ logic q;
+ } rbox_reg2hw_intr_enable_reg_t;
+
+ typedef struct packed {
+ logic q;
+ logic qe;
+ } rbox_reg2hw_intr_test_reg_t;
+
+ typedef struct packed {
+ logic [15:0] q;
+ logic qe;
+ } rbox_reg2hw_ec_rst_ctl_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic q;
+ } key0_in;
+ struct packed {
+ logic q;
+ } key0_out;
+ struct packed {
+ logic q;
+ } key1_in;
+ struct packed {
+ logic q;
+ } key1_out;
+ struct packed {
+ logic q;
+ } key2_in;
+ struct packed {
+ logic q;
+ } key2_out;
+ struct packed {
+ logic q;
+ } pwrb_in;
+ struct packed {
+ logic q;
+ } pwrb_out;
+ struct packed {
+ logic q;
+ } ac_present;
+ struct packed {
+ logic q;
+ } bat_disable;
+ } rbox_reg2hw_key_invert_ctl_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic q;
+ } bat_disable_0;
+ struct packed {
+ logic q;
+ } ec_rst_l_0;
+ struct packed {
+ logic q;
+ } pwrb_out_0;
+ struct packed {
+ logic q;
+ } key0_out_0;
+ struct packed {
+ logic q;
+ } key1_out_0;
+ struct packed {
+ logic q;
+ } key2_out_0;
+ struct packed {
+ logic q;
+ } bat_disable_1;
+ struct packed {
+ logic q;
+ } ec_rst_l_1;
+ struct packed {
+ logic q;
+ } pwrb_out_1;
+ struct packed {
+ logic q;
+ } key0_out_1;
+ struct packed {
+ logic q;
+ } key1_out_1;
+ struct packed {
+ logic q;
+ } key2_out_1;
+ } rbox_reg2hw_pin_allowed_ctl_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic q;
+ } bat_disable;
+ struct packed {
+ logic q;
+ } ec_rst_l;
+ struct packed {
+ logic q;
+ } pwrb_out;
+ struct packed {
+ logic q;
+ } key0_out;
+ struct packed {
+ logic q;
+ } key1_out;
+ struct packed {
+ logic q;
+ } key2_out;
+ } rbox_reg2hw_pin_out_ctl_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic q;
+ } bat_disable;
+ struct packed {
+ logic q;
+ } ec_rst_l;
+ struct packed {
+ logic q;
+ } pwrb_out;
+ struct packed {
+ logic q;
+ } key0_out;
+ struct packed {
+ logic q;
+ } key1_out;
+ struct packed {
+ logic q;
+ } key2_out;
+ } rbox_reg2hw_pin_out_value_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic q;
+ } pwrb_in_h2l;
+ struct packed {
+ logic q;
+ } key0_in_h2l;
+ struct packed {
+ logic q;
+ } key1_in_h2l;
+ struct packed {
+ logic q;
+ } key2_in_h2l;
+ struct packed {
+ logic q;
+ } ac_present_h2l;
+ struct packed {
+ logic q;
+ } ec_rst_l_h2l;
+ struct packed {
+ logic q;
+ } pwrb_in_l2h;
+ struct packed {
+ logic q;
+ } key0_in_l2h;
+ struct packed {
+ logic q;
+ } key1_in_l2h;
+ struct packed {
+ logic q;
+ } key2_in_l2h;
+ struct packed {
+ logic q;
+ } ac_present_l2h;
+ struct packed {
+ logic q;
+ } ec_rst_l_l2h;
+ } rbox_reg2hw_key_intr_ctl_reg_t;
+
+ typedef struct packed {
+ logic [15:0] q;
+ logic qe;
+ } rbox_reg2hw_key_intr_debounce_ctl_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic [15:0] q;
+ logic qe;
+ } debounce_timer;
+ struct packed {
+ logic q;
+ logic qe;
+ } auto_block_enable;
+ } rbox_reg2hw_auto_block_debounce_ctl_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic q;
+ } key0_out_sel;
+ struct packed {
+ logic q;
+ } key1_out_sel;
+ struct packed {
+ logic q;
+ } key2_out_sel;
+ struct packed {
+ logic q;
+ } key0_out_value;
+ struct packed {
+ logic q;
+ } key1_out_value;
+ struct packed {
+ logic q;
+ } key2_out_value;
+ } rbox_reg2hw_auto_block_out_ctl_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic q;
+ } key0_in_sel;
+ struct packed {
+ logic q;
+ } key1_in_sel;
+ struct packed {
+ logic q;
+ } key2_in_sel;
+ struct packed {
+ logic q;
+ } pwrb_in_sel;
+ struct packed {
+ logic q;
+ } ac_present_sel;
+ } rbox_reg2hw_com_sel_ctl_mreg_t;
+
+ typedef struct packed {
+ logic [31:0] q;
+ logic qe;
+ } rbox_reg2hw_com_det_ctl_mreg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic q;
+ } bat_disable;
+ struct packed {
+ logic q;
+ } interrupt;
+ struct packed {
+ logic q;
+ } ec_rst;
+ struct packed {
+ logic q;
+ } gsc_rst;
+ } rbox_reg2hw_com_out_ctl_mreg_t;
+
+
+ typedef struct packed {
+ logic d;
+ logic de;
+ } rbox_hw2reg_intr_state_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic d;
+ logic de;
+ } ac_present;
+ struct packed {
+ logic d;
+ logic de;
+ } ec_rst_l;
+ struct packed {
+ logic d;
+ logic de;
+ } pwrb_in;
+ struct packed {
+ logic d;
+ logic de;
+ } key0_in;
+ struct packed {
+ logic d;
+ logic de;
+ } key1_in;
+ struct packed {
+ logic d;
+ logic de;
+ } key2_in;
+ } rbox_hw2reg_pin_in_value_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic d;
+ logic de;
+ } combo0_h2l;
+ struct packed {
+ logic d;
+ logic de;
+ } combo1_h2l;
+ struct packed {
+ logic d;
+ logic de;
+ } combo2_h2l;
+ struct packed {
+ logic d;
+ logic de;
+ } combo3_h2l;
+ } rbox_hw2reg_combo_intr_status_reg_t;
+
+ typedef struct packed {
+ struct packed {
+ logic d;
+ logic de;
+ } pwrb_h2l;
+ struct packed {
+ logic d;
+ logic de;
+ } key0_in_h2l;
+ struct packed {
+ logic d;
+ logic de;
+ } key1_in_h2l;
+ struct packed {
+ logic d;
+ logic de;
+ } key2_in_h2l;
+ struct packed {
+ logic d;
+ logic de;
+ } ac_present_h2l;
+ struct packed {
+ logic d;
+ logic de;
+ } ec_rst_l_h2l;
+ struct packed {
+ logic d;
+ logic de;
+ } pwrb_l2h;
+ struct packed {
+ logic d;
+ logic de;
+ } key0_in_l2h;
+ struct packed {
+ logic d;
+ logic de;
+ } key1_in_l2h;
+ struct packed {
+ logic d;
+ logic de;
+ } key2_in_l2h;
+ struct packed {
+ logic d;
+ logic de;
+ } ac_present_l2h;
+ struct packed {
+ logic d;
+ logic de;
+ } ec_rst_l_l2h;
+ } rbox_hw2reg_key_intr_status_reg_t;
+
+
+ ///////////////////////////////////////
+ // Register to internal design logic //
+ ///////////////////////////////////////
+ typedef struct packed {
+ rbox_reg2hw_intr_state_reg_t intr_state; // [276:276]
+ rbox_reg2hw_intr_enable_reg_t intr_enable; // [275:275]
+ rbox_reg2hw_intr_test_reg_t intr_test; // [274:273]
+ rbox_reg2hw_ec_rst_ctl_reg_t ec_rst_ctl; // [272:256]
+ rbox_reg2hw_key_invert_ctl_reg_t key_invert_ctl; // [255:246]
+ rbox_reg2hw_pin_allowed_ctl_reg_t pin_allowed_ctl; // [245:234]
+ rbox_reg2hw_pin_out_ctl_reg_t pin_out_ctl; // [233:228]
+ rbox_reg2hw_pin_out_value_reg_t pin_out_value; // [227:222]
+ rbox_reg2hw_key_intr_ctl_reg_t key_intr_ctl; // [221:210]
+ rbox_reg2hw_key_intr_debounce_ctl_reg_t key_intr_debounce_ctl; // [209:193]
+ rbox_reg2hw_auto_block_debounce_ctl_reg_t auto_block_debounce_ctl; // [192:174]
+ rbox_reg2hw_auto_block_out_ctl_reg_t auto_block_out_ctl; // [173:168]
+ rbox_reg2hw_com_sel_ctl_mreg_t [3:0] com_sel_ctl; // [167:148]
+ rbox_reg2hw_com_det_ctl_mreg_t [3:0] com_det_ctl; // [147:16]
+ rbox_reg2hw_com_out_ctl_mreg_t [3:0] com_out_ctl; // [15:0]
+ } rbox_reg2hw_t;
+
+ ///////////////////////////////////////
+ // Internal design logic to register //
+ ///////////////////////////////////////
+ typedef struct packed {
+ rbox_hw2reg_intr_state_reg_t intr_state; // [45:44]
+ rbox_hw2reg_pin_in_value_reg_t pin_in_value; // [43:32]
+ rbox_hw2reg_combo_intr_status_reg_t combo_intr_status; // [31:24]
+ rbox_hw2reg_key_intr_status_reg_t key_intr_status; // [23:0]
+ } rbox_hw2reg_t;
+
+ // Register Address
+ parameter logic [BlockAw-1:0] RBOX_INTR_STATE_OFFSET = 7'h 0;
+ parameter logic [BlockAw-1:0] RBOX_INTR_ENABLE_OFFSET = 7'h 4;
+ parameter logic [BlockAw-1:0] RBOX_INTR_TEST_OFFSET = 7'h 8;
+ parameter logic [BlockAw-1:0] RBOX_REGWEN_OFFSET = 7'h c;
+ parameter logic [BlockAw-1:0] RBOX_EC_RST_CTL_OFFSET = 7'h 10;
+ parameter logic [BlockAw-1:0] RBOX_KEY_INVERT_CTL_OFFSET = 7'h 14;
+ parameter logic [BlockAw-1:0] RBOX_PIN_ALLOWED_CTL_OFFSET = 7'h 18;
+ parameter logic [BlockAw-1:0] RBOX_PIN_OUT_CTL_OFFSET = 7'h 1c;
+ parameter logic [BlockAw-1:0] RBOX_PIN_OUT_VALUE_OFFSET = 7'h 20;
+ parameter logic [BlockAw-1:0] RBOX_PIN_IN_VALUE_OFFSET = 7'h 24;
+ parameter logic [BlockAw-1:0] RBOX_KEY_INTR_CTL_OFFSET = 7'h 28;
+ parameter logic [BlockAw-1:0] RBOX_KEY_INTR_DEBOUNCE_CTL_OFFSET = 7'h 2c;
+ parameter logic [BlockAw-1:0] RBOX_AUTO_BLOCK_DEBOUNCE_CTL_OFFSET = 7'h 30;
+ parameter logic [BlockAw-1:0] RBOX_AUTO_BLOCK_OUT_CTL_OFFSET = 7'h 34;
+ parameter logic [BlockAw-1:0] RBOX_COM_SEL_CTL_0_OFFSET = 7'h 38;
+ parameter logic [BlockAw-1:0] RBOX_COM_SEL_CTL_1_OFFSET = 7'h 3c;
+ parameter logic [BlockAw-1:0] RBOX_COM_SEL_CTL_2_OFFSET = 7'h 40;
+ parameter logic [BlockAw-1:0] RBOX_COM_SEL_CTL_3_OFFSET = 7'h 44;
+ parameter logic [BlockAw-1:0] RBOX_COM_DET_CTL_0_OFFSET = 7'h 48;
+ parameter logic [BlockAw-1:0] RBOX_COM_DET_CTL_1_OFFSET = 7'h 4c;
+ parameter logic [BlockAw-1:0] RBOX_COM_DET_CTL_2_OFFSET = 7'h 50;
+ parameter logic [BlockAw-1:0] RBOX_COM_DET_CTL_3_OFFSET = 7'h 54;
+ parameter logic [BlockAw-1:0] RBOX_COM_OUT_CTL_0_OFFSET = 7'h 58;
+ parameter logic [BlockAw-1:0] RBOX_COM_OUT_CTL_1_OFFSET = 7'h 5c;
+ parameter logic [BlockAw-1:0] RBOX_COM_OUT_CTL_2_OFFSET = 7'h 60;
+ parameter logic [BlockAw-1:0] RBOX_COM_OUT_CTL_3_OFFSET = 7'h 64;
+ parameter logic [BlockAw-1:0] RBOX_COMBO_INTR_STATUS_OFFSET = 7'h 68;
+ parameter logic [BlockAw-1:0] RBOX_KEY_INTR_STATUS_OFFSET = 7'h 6c;
+
+ // Reset values for hwext registers and their fields
+ parameter logic [0:0] RBOX_INTR_TEST_RESVAL = 1'h 0;
+ parameter logic [0:0] RBOX_INTR_TEST_RBOX_INTR_O_RESVAL = 1'h 0;
+
+ // Register Index
+ typedef enum int {
+ RBOX_INTR_STATE,
+ RBOX_INTR_ENABLE,
+ RBOX_INTR_TEST,
+ RBOX_REGWEN,
+ RBOX_EC_RST_CTL,
+ RBOX_KEY_INVERT_CTL,
+ RBOX_PIN_ALLOWED_CTL,
+ RBOX_PIN_OUT_CTL,
+ RBOX_PIN_OUT_VALUE,
+ RBOX_PIN_IN_VALUE,
+ RBOX_KEY_INTR_CTL,
+ RBOX_KEY_INTR_DEBOUNCE_CTL,
+ RBOX_AUTO_BLOCK_DEBOUNCE_CTL,
+ RBOX_AUTO_BLOCK_OUT_CTL,
+ RBOX_COM_SEL_CTL_0,
+ RBOX_COM_SEL_CTL_1,
+ RBOX_COM_SEL_CTL_2,
+ RBOX_COM_SEL_CTL_3,
+ RBOX_COM_DET_CTL_0,
+ RBOX_COM_DET_CTL_1,
+ RBOX_COM_DET_CTL_2,
+ RBOX_COM_DET_CTL_3,
+ RBOX_COM_OUT_CTL_0,
+ RBOX_COM_OUT_CTL_1,
+ RBOX_COM_OUT_CTL_2,
+ RBOX_COM_OUT_CTL_3,
+ RBOX_COMBO_INTR_STATUS,
+ RBOX_KEY_INTR_STATUS
+ } rbox_id_e;
+
+ // Register width information to check illegal writes
+ parameter logic [3:0] RBOX_PERMIT [28] = '{
+ 4'b 0001, // index[ 0] RBOX_INTR_STATE
+ 4'b 0001, // index[ 1] RBOX_INTR_ENABLE
+ 4'b 0001, // index[ 2] RBOX_INTR_TEST
+ 4'b 0001, // index[ 3] RBOX_REGWEN
+ 4'b 0011, // index[ 4] RBOX_EC_RST_CTL
+ 4'b 0011, // index[ 5] RBOX_KEY_INVERT_CTL
+ 4'b 0011, // index[ 6] RBOX_PIN_ALLOWED_CTL
+ 4'b 0001, // index[ 7] RBOX_PIN_OUT_CTL
+ 4'b 0001, // index[ 8] RBOX_PIN_OUT_VALUE
+ 4'b 0001, // index[ 9] RBOX_PIN_IN_VALUE
+ 4'b 0011, // index[10] RBOX_KEY_INTR_CTL
+ 4'b 0011, // index[11] RBOX_KEY_INTR_DEBOUNCE_CTL
+ 4'b 0111, // index[12] RBOX_AUTO_BLOCK_DEBOUNCE_CTL
+ 4'b 0001, // index[13] RBOX_AUTO_BLOCK_OUT_CTL
+ 4'b 0001, // index[14] RBOX_COM_SEL_CTL_0
+ 4'b 0001, // index[15] RBOX_COM_SEL_CTL_1
+ 4'b 0001, // index[16] RBOX_COM_SEL_CTL_2
+ 4'b 0001, // index[17] RBOX_COM_SEL_CTL_3
+ 4'b 1111, // index[18] RBOX_COM_DET_CTL_0
+ 4'b 1111, // index[19] RBOX_COM_DET_CTL_1
+ 4'b 1111, // index[20] RBOX_COM_DET_CTL_2
+ 4'b 1111, // index[21] RBOX_COM_DET_CTL_3
+ 4'b 0001, // index[22] RBOX_COM_OUT_CTL_0
+ 4'b 0001, // index[23] RBOX_COM_OUT_CTL_1
+ 4'b 0001, // index[24] RBOX_COM_OUT_CTL_2
+ 4'b 0001, // index[25] RBOX_COM_OUT_CTL_3
+ 4'b 0001, // index[26] RBOX_COMBO_INTR_STATUS
+ 4'b 0011 // index[27] RBOX_KEY_INTR_STATUS
+ };
+endpackage
+
diff --git a/hw/ip/rbox/rtl/rbox_reg_top.sv b/hw/ip/rbox/rtl/rbox_reg_top.sv
new file mode 100644
index 0000000..1bf948f
--- /dev/null
+++ b/hw/ip/rbox/rtl/rbox_reg_top.sv
@@ -0,0 +1,4335 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+//
+// Register Top module auto-generated by `reggen`
+
+`include "prim_assert.sv"
+
+module rbox_reg_top (
+ input clk_i,
+ input rst_ni,
+
+ // Below Regster interface can be changed
+ input tlul_pkg::tl_h2d_t tl_i,
+ output tlul_pkg::tl_d2h_t tl_o,
+ // To HW
+ output rbox_reg_pkg::rbox_reg2hw_t reg2hw, // Write
+ input rbox_reg_pkg::rbox_hw2reg_t hw2reg, // Read
+
+ // Integrity check errors
+ output logic intg_err_o,
+
+ // Config
+ input devmode_i // If 1, explicit error return for unmapped register access
+);
+
+ import rbox_reg_pkg::* ;
+
+ localparam int AW = 7;
+ localparam int DW = 32;
+ localparam int DBW = DW/8; // Byte Width
+
+ // register signals
+ logic reg_we;
+ logic reg_re;
+ logic [AW-1:0] reg_addr;
+ logic [DW-1:0] reg_wdata;
+ logic [DBW-1:0] reg_be;
+ logic [DW-1:0] reg_rdata;
+ logic reg_error;
+
+ logic addrmiss, wr_err;
+
+ logic [DW-1:0] reg_rdata_next;
+
+ tlul_pkg::tl_h2d_t tl_reg_h2d;
+ tlul_pkg::tl_d2h_t tl_reg_d2h;
+
+ // incoming payload check
+ logic intg_err;
+ tlul_cmd_intg_chk u_chk (
+ .tl_i,
+ .err_o(intg_err)
+ );
+
+ logic intg_err_q;
+ always_ff @(posedge clk_i or negedge rst_ni) begin
+ if (!rst_ni) begin
+ intg_err_q <= '0;
+ end else if (intg_err) begin
+ intg_err_q <= 1'b1;
+ end
+ end
+
+ // integrity error output is permanent and should be used for alert generation
+ // register errors are transactional
+ assign intg_err_o = intg_err_q | intg_err;
+
+ // outgoing integrity generation
+ tlul_pkg::tl_d2h_t tl_o_pre;
+ tlul_rsp_intg_gen u_rsp_intg_gen (
+ .tl_i(tl_o_pre),
+ .tl_o
+ );
+
+ assign tl_reg_h2d = tl_i;
+ assign tl_o_pre = tl_reg_d2h;
+
+ tlul_adapter_reg #(
+ .RegAw(AW),
+ .RegDw(DW)
+ ) u_reg_if (
+ .clk_i,
+ .rst_ni,
+
+ .tl_i (tl_reg_h2d),
+ .tl_o (tl_reg_d2h),
+
+ .we_o (reg_we),
+ .re_o (reg_re),
+ .addr_o (reg_addr),
+ .wdata_o (reg_wdata),
+ .be_o (reg_be),
+ .rdata_i (reg_rdata),
+ .error_i (reg_error)
+ );
+
+ assign reg_rdata = reg_rdata_next ;
+ assign reg_error = (devmode_i & addrmiss) | wr_err | intg_err;
+
+ // Define SW related signals
+ // Format: <reg>_<field>_{wd|we|qs}
+ // or <reg>_{wd|we|qs} if field == 1 or 0
+ logic intr_state_qs;
+ logic intr_state_wd;
+ logic intr_state_we;
+ logic intr_enable_qs;
+ logic intr_enable_wd;
+ logic intr_enable_we;
+ logic intr_test_wd;
+ logic intr_test_we;
+ logic regwen_qs;
+ logic regwen_wd;
+ logic regwen_we;
+ logic [15:0] ec_rst_ctl_qs;
+ logic [15:0] ec_rst_ctl_wd;
+ logic ec_rst_ctl_we;
+ logic key_invert_ctl_key0_in_qs;
+ logic key_invert_ctl_key0_in_wd;
+ logic key_invert_ctl_key0_in_we;
+ logic key_invert_ctl_key0_out_qs;
+ logic key_invert_ctl_key0_out_wd;
+ logic key_invert_ctl_key0_out_we;
+ logic key_invert_ctl_key1_in_qs;
+ logic key_invert_ctl_key1_in_wd;
+ logic key_invert_ctl_key1_in_we;
+ logic key_invert_ctl_key1_out_qs;
+ logic key_invert_ctl_key1_out_wd;
+ logic key_invert_ctl_key1_out_we;
+ logic key_invert_ctl_key2_in_qs;
+ logic key_invert_ctl_key2_in_wd;
+ logic key_invert_ctl_key2_in_we;
+ logic key_invert_ctl_key2_out_qs;
+ logic key_invert_ctl_key2_out_wd;
+ logic key_invert_ctl_key2_out_we;
+ logic key_invert_ctl_pwrb_in_qs;
+ logic key_invert_ctl_pwrb_in_wd;
+ logic key_invert_ctl_pwrb_in_we;
+ logic key_invert_ctl_pwrb_out_qs;
+ logic key_invert_ctl_pwrb_out_wd;
+ logic key_invert_ctl_pwrb_out_we;
+ logic key_invert_ctl_ac_present_qs;
+ logic key_invert_ctl_ac_present_wd;
+ logic key_invert_ctl_ac_present_we;
+ logic key_invert_ctl_bat_disable_qs;
+ logic key_invert_ctl_bat_disable_wd;
+ logic key_invert_ctl_bat_disable_we;
+ logic pin_allowed_ctl_bat_disable_0_qs;
+ logic pin_allowed_ctl_bat_disable_0_wd;
+ logic pin_allowed_ctl_bat_disable_0_we;
+ logic pin_allowed_ctl_ec_rst_l_0_qs;
+ logic pin_allowed_ctl_ec_rst_l_0_wd;
+ logic pin_allowed_ctl_ec_rst_l_0_we;
+ logic pin_allowed_ctl_pwrb_out_0_qs;
+ logic pin_allowed_ctl_pwrb_out_0_wd;
+ logic pin_allowed_ctl_pwrb_out_0_we;
+ logic pin_allowed_ctl_key0_out_0_qs;
+ logic pin_allowed_ctl_key0_out_0_wd;
+ logic pin_allowed_ctl_key0_out_0_we;
+ logic pin_allowed_ctl_key1_out_0_qs;
+ logic pin_allowed_ctl_key1_out_0_wd;
+ logic pin_allowed_ctl_key1_out_0_we;
+ logic pin_allowed_ctl_key2_out_0_qs;
+ logic pin_allowed_ctl_key2_out_0_wd;
+ logic pin_allowed_ctl_key2_out_0_we;
+ logic pin_allowed_ctl_bat_disable_1_qs;
+ logic pin_allowed_ctl_bat_disable_1_wd;
+ logic pin_allowed_ctl_bat_disable_1_we;
+ logic pin_allowed_ctl_ec_rst_l_1_qs;
+ logic pin_allowed_ctl_ec_rst_l_1_wd;
+ logic pin_allowed_ctl_ec_rst_l_1_we;
+ logic pin_allowed_ctl_pwrb_out_1_qs;
+ logic pin_allowed_ctl_pwrb_out_1_wd;
+ logic pin_allowed_ctl_pwrb_out_1_we;
+ logic pin_allowed_ctl_key0_out_1_qs;
+ logic pin_allowed_ctl_key0_out_1_wd;
+ logic pin_allowed_ctl_key0_out_1_we;
+ logic pin_allowed_ctl_key1_out_1_qs;
+ logic pin_allowed_ctl_key1_out_1_wd;
+ logic pin_allowed_ctl_key1_out_1_we;
+ logic pin_allowed_ctl_key2_out_1_qs;
+ logic pin_allowed_ctl_key2_out_1_wd;
+ logic pin_allowed_ctl_key2_out_1_we;
+ logic pin_out_ctl_bat_disable_qs;
+ logic pin_out_ctl_bat_disable_wd;
+ logic pin_out_ctl_bat_disable_we;
+ logic pin_out_ctl_ec_rst_l_qs;
+ logic pin_out_ctl_ec_rst_l_wd;
+ logic pin_out_ctl_ec_rst_l_we;
+ logic pin_out_ctl_pwrb_out_qs;
+ logic pin_out_ctl_pwrb_out_wd;
+ logic pin_out_ctl_pwrb_out_we;
+ logic pin_out_ctl_key0_out_qs;
+ logic pin_out_ctl_key0_out_wd;
+ logic pin_out_ctl_key0_out_we;
+ logic pin_out_ctl_key1_out_qs;
+ logic pin_out_ctl_key1_out_wd;
+ logic pin_out_ctl_key1_out_we;
+ logic pin_out_ctl_key2_out_qs;
+ logic pin_out_ctl_key2_out_wd;
+ logic pin_out_ctl_key2_out_we;
+ logic pin_out_value_bat_disable_qs;
+ logic pin_out_value_bat_disable_wd;
+ logic pin_out_value_bat_disable_we;
+ logic pin_out_value_ec_rst_l_qs;
+ logic pin_out_value_ec_rst_l_wd;
+ logic pin_out_value_ec_rst_l_we;
+ logic pin_out_value_pwrb_out_qs;
+ logic pin_out_value_pwrb_out_wd;
+ logic pin_out_value_pwrb_out_we;
+ logic pin_out_value_key0_out_qs;
+ logic pin_out_value_key0_out_wd;
+ logic pin_out_value_key0_out_we;
+ logic pin_out_value_key1_out_qs;
+ logic pin_out_value_key1_out_wd;
+ logic pin_out_value_key1_out_we;
+ logic pin_out_value_key2_out_qs;
+ logic pin_out_value_key2_out_wd;
+ logic pin_out_value_key2_out_we;
+ logic pin_in_value_ac_present_qs;
+ logic pin_in_value_ec_rst_l_qs;
+ logic pin_in_value_pwrb_in_qs;
+ logic pin_in_value_key0_in_qs;
+ logic pin_in_value_key1_in_qs;
+ logic pin_in_value_key2_in_qs;
+ logic key_intr_ctl_pwrb_in_h2l_qs;
+ logic key_intr_ctl_pwrb_in_h2l_wd;
+ logic key_intr_ctl_pwrb_in_h2l_we;
+ logic key_intr_ctl_key0_in_h2l_qs;
+ logic key_intr_ctl_key0_in_h2l_wd;
+ logic key_intr_ctl_key0_in_h2l_we;
+ logic key_intr_ctl_key1_in_h2l_qs;
+ logic key_intr_ctl_key1_in_h2l_wd;
+ logic key_intr_ctl_key1_in_h2l_we;
+ logic key_intr_ctl_key2_in_h2l_qs;
+ logic key_intr_ctl_key2_in_h2l_wd;
+ logic key_intr_ctl_key2_in_h2l_we;
+ logic key_intr_ctl_ac_present_h2l_qs;
+ logic key_intr_ctl_ac_present_h2l_wd;
+ logic key_intr_ctl_ac_present_h2l_we;
+ logic key_intr_ctl_ec_rst_l_h2l_qs;
+ logic key_intr_ctl_ec_rst_l_h2l_wd;
+ logic key_intr_ctl_ec_rst_l_h2l_we;
+ logic key_intr_ctl_pwrb_in_l2h_qs;
+ logic key_intr_ctl_pwrb_in_l2h_wd;
+ logic key_intr_ctl_pwrb_in_l2h_we;
+ logic key_intr_ctl_key0_in_l2h_qs;
+ logic key_intr_ctl_key0_in_l2h_wd;
+ logic key_intr_ctl_key0_in_l2h_we;
+ logic key_intr_ctl_key1_in_l2h_qs;
+ logic key_intr_ctl_key1_in_l2h_wd;
+ logic key_intr_ctl_key1_in_l2h_we;
+ logic key_intr_ctl_key2_in_l2h_qs;
+ logic key_intr_ctl_key2_in_l2h_wd;
+ logic key_intr_ctl_key2_in_l2h_we;
+ logic key_intr_ctl_ac_present_l2h_qs;
+ logic key_intr_ctl_ac_present_l2h_wd;
+ logic key_intr_ctl_ac_present_l2h_we;
+ logic key_intr_ctl_ec_rst_l_l2h_qs;
+ logic key_intr_ctl_ec_rst_l_l2h_wd;
+ logic key_intr_ctl_ec_rst_l_l2h_we;
+ logic [15:0] key_intr_debounce_ctl_qs;
+ logic [15:0] key_intr_debounce_ctl_wd;
+ logic key_intr_debounce_ctl_we;
+ logic [15:0] auto_block_debounce_ctl_debounce_timer_qs;
+ logic [15:0] auto_block_debounce_ctl_debounce_timer_wd;
+ logic auto_block_debounce_ctl_debounce_timer_we;
+ logic auto_block_debounce_ctl_auto_block_enable_qs;
+ logic auto_block_debounce_ctl_auto_block_enable_wd;
+ logic auto_block_debounce_ctl_auto_block_enable_we;
+ logic auto_block_out_ctl_key0_out_sel_qs;
+ logic auto_block_out_ctl_key0_out_sel_wd;
+ logic auto_block_out_ctl_key0_out_sel_we;
+ logic auto_block_out_ctl_key1_out_sel_qs;
+ logic auto_block_out_ctl_key1_out_sel_wd;
+ logic auto_block_out_ctl_key1_out_sel_we;
+ logic auto_block_out_ctl_key2_out_sel_qs;
+ logic auto_block_out_ctl_key2_out_sel_wd;
+ logic auto_block_out_ctl_key2_out_sel_we;
+ logic auto_block_out_ctl_key0_out_value_qs;
+ logic auto_block_out_ctl_key0_out_value_wd;
+ logic auto_block_out_ctl_key0_out_value_we;
+ logic auto_block_out_ctl_key1_out_value_qs;
+ logic auto_block_out_ctl_key1_out_value_wd;
+ logic auto_block_out_ctl_key1_out_value_we;
+ logic auto_block_out_ctl_key2_out_value_qs;
+ logic auto_block_out_ctl_key2_out_value_wd;
+ logic auto_block_out_ctl_key2_out_value_we;
+ logic com_sel_ctl_0_key0_in_sel_0_qs;
+ logic com_sel_ctl_0_key0_in_sel_0_wd;
+ logic com_sel_ctl_0_key0_in_sel_0_we;
+ logic com_sel_ctl_0_key1_in_sel_0_qs;
+ logic com_sel_ctl_0_key1_in_sel_0_wd;
+ logic com_sel_ctl_0_key1_in_sel_0_we;
+ logic com_sel_ctl_0_key2_in_sel_0_qs;
+ logic com_sel_ctl_0_key2_in_sel_0_wd;
+ logic com_sel_ctl_0_key2_in_sel_0_we;
+ logic com_sel_ctl_0_pwrb_in_sel_0_qs;
+ logic com_sel_ctl_0_pwrb_in_sel_0_wd;
+ logic com_sel_ctl_0_pwrb_in_sel_0_we;
+ logic com_sel_ctl_0_ac_present_sel_0_qs;
+ logic com_sel_ctl_0_ac_present_sel_0_wd;
+ logic com_sel_ctl_0_ac_present_sel_0_we;
+ logic com_sel_ctl_1_key0_in_sel_1_qs;
+ logic com_sel_ctl_1_key0_in_sel_1_wd;
+ logic com_sel_ctl_1_key0_in_sel_1_we;
+ logic com_sel_ctl_1_key1_in_sel_1_qs;
+ logic com_sel_ctl_1_key1_in_sel_1_wd;
+ logic com_sel_ctl_1_key1_in_sel_1_we;
+ logic com_sel_ctl_1_key2_in_sel_1_qs;
+ logic com_sel_ctl_1_key2_in_sel_1_wd;
+ logic com_sel_ctl_1_key2_in_sel_1_we;
+ logic com_sel_ctl_1_pwrb_in_sel_1_qs;
+ logic com_sel_ctl_1_pwrb_in_sel_1_wd;
+ logic com_sel_ctl_1_pwrb_in_sel_1_we;
+ logic com_sel_ctl_1_ac_present_sel_1_qs;
+ logic com_sel_ctl_1_ac_present_sel_1_wd;
+ logic com_sel_ctl_1_ac_present_sel_1_we;
+ logic com_sel_ctl_2_key0_in_sel_2_qs;
+ logic com_sel_ctl_2_key0_in_sel_2_wd;
+ logic com_sel_ctl_2_key0_in_sel_2_we;
+ logic com_sel_ctl_2_key1_in_sel_2_qs;
+ logic com_sel_ctl_2_key1_in_sel_2_wd;
+ logic com_sel_ctl_2_key1_in_sel_2_we;
+ logic com_sel_ctl_2_key2_in_sel_2_qs;
+ logic com_sel_ctl_2_key2_in_sel_2_wd;
+ logic com_sel_ctl_2_key2_in_sel_2_we;
+ logic com_sel_ctl_2_pwrb_in_sel_2_qs;
+ logic com_sel_ctl_2_pwrb_in_sel_2_wd;
+ logic com_sel_ctl_2_pwrb_in_sel_2_we;
+ logic com_sel_ctl_2_ac_present_sel_2_qs;
+ logic com_sel_ctl_2_ac_present_sel_2_wd;
+ logic com_sel_ctl_2_ac_present_sel_2_we;
+ logic com_sel_ctl_3_key0_in_sel_3_qs;
+ logic com_sel_ctl_3_key0_in_sel_3_wd;
+ logic com_sel_ctl_3_key0_in_sel_3_we;
+ logic com_sel_ctl_3_key1_in_sel_3_qs;
+ logic com_sel_ctl_3_key1_in_sel_3_wd;
+ logic com_sel_ctl_3_key1_in_sel_3_we;
+ logic com_sel_ctl_3_key2_in_sel_3_qs;
+ logic com_sel_ctl_3_key2_in_sel_3_wd;
+ logic com_sel_ctl_3_key2_in_sel_3_we;
+ logic com_sel_ctl_3_pwrb_in_sel_3_qs;
+ logic com_sel_ctl_3_pwrb_in_sel_3_wd;
+ logic com_sel_ctl_3_pwrb_in_sel_3_we;
+ logic com_sel_ctl_3_ac_present_sel_3_qs;
+ logic com_sel_ctl_3_ac_present_sel_3_wd;
+ logic com_sel_ctl_3_ac_present_sel_3_we;
+ logic [31:0] com_det_ctl_0_qs;
+ logic [31:0] com_det_ctl_0_wd;
+ logic com_det_ctl_0_we;
+ logic [31:0] com_det_ctl_1_qs;
+ logic [31:0] com_det_ctl_1_wd;
+ logic com_det_ctl_1_we;
+ logic [31:0] com_det_ctl_2_qs;
+ logic [31:0] com_det_ctl_2_wd;
+ logic com_det_ctl_2_we;
+ logic [31:0] com_det_ctl_3_qs;
+ logic [31:0] com_det_ctl_3_wd;
+ logic com_det_ctl_3_we;
+ logic com_out_ctl_0_bat_disable_0_qs;
+ logic com_out_ctl_0_bat_disable_0_wd;
+ logic com_out_ctl_0_bat_disable_0_we;
+ logic com_out_ctl_0_interrupt_0_qs;
+ logic com_out_ctl_0_interrupt_0_wd;
+ logic com_out_ctl_0_interrupt_0_we;
+ logic com_out_ctl_0_ec_rst_0_qs;
+ logic com_out_ctl_0_ec_rst_0_wd;
+ logic com_out_ctl_0_ec_rst_0_we;
+ logic com_out_ctl_0_gsc_rst_0_qs;
+ logic com_out_ctl_0_gsc_rst_0_wd;
+ logic com_out_ctl_0_gsc_rst_0_we;
+ logic com_out_ctl_1_bat_disable_1_qs;
+ logic com_out_ctl_1_bat_disable_1_wd;
+ logic com_out_ctl_1_bat_disable_1_we;
+ logic com_out_ctl_1_interrupt_1_qs;
+ logic com_out_ctl_1_interrupt_1_wd;
+ logic com_out_ctl_1_interrupt_1_we;
+ logic com_out_ctl_1_ec_rst_1_qs;
+ logic com_out_ctl_1_ec_rst_1_wd;
+ logic com_out_ctl_1_ec_rst_1_we;
+ logic com_out_ctl_1_gsc_rst_1_qs;
+ logic com_out_ctl_1_gsc_rst_1_wd;
+ logic com_out_ctl_1_gsc_rst_1_we;
+ logic com_out_ctl_2_bat_disable_2_qs;
+ logic com_out_ctl_2_bat_disable_2_wd;
+ logic com_out_ctl_2_bat_disable_2_we;
+ logic com_out_ctl_2_interrupt_2_qs;
+ logic com_out_ctl_2_interrupt_2_wd;
+ logic com_out_ctl_2_interrupt_2_we;
+ logic com_out_ctl_2_ec_rst_2_qs;
+ logic com_out_ctl_2_ec_rst_2_wd;
+ logic com_out_ctl_2_ec_rst_2_we;
+ logic com_out_ctl_2_gsc_rst_2_qs;
+ logic com_out_ctl_2_gsc_rst_2_wd;
+ logic com_out_ctl_2_gsc_rst_2_we;
+ logic com_out_ctl_3_bat_disable_3_qs;
+ logic com_out_ctl_3_bat_disable_3_wd;
+ logic com_out_ctl_3_bat_disable_3_we;
+ logic com_out_ctl_3_interrupt_3_qs;
+ logic com_out_ctl_3_interrupt_3_wd;
+ logic com_out_ctl_3_interrupt_3_we;
+ logic com_out_ctl_3_ec_rst_3_qs;
+ logic com_out_ctl_3_ec_rst_3_wd;
+ logic com_out_ctl_3_ec_rst_3_we;
+ logic com_out_ctl_3_gsc_rst_3_qs;
+ logic com_out_ctl_3_gsc_rst_3_wd;
+ logic com_out_ctl_3_gsc_rst_3_we;
+ logic combo_intr_status_combo0_h2l_qs;
+ logic combo_intr_status_combo0_h2l_wd;
+ logic combo_intr_status_combo0_h2l_we;
+ logic combo_intr_status_combo1_h2l_qs;
+ logic combo_intr_status_combo1_h2l_wd;
+ logic combo_intr_status_combo1_h2l_we;
+ logic combo_intr_status_combo2_h2l_qs;
+ logic combo_intr_status_combo2_h2l_wd;
+ logic combo_intr_status_combo2_h2l_we;
+ logic combo_intr_status_combo3_h2l_qs;
+ logic combo_intr_status_combo3_h2l_wd;
+ logic combo_intr_status_combo3_h2l_we;
+ logic key_intr_status_pwrb_h2l_qs;
+ logic key_intr_status_pwrb_h2l_wd;
+ logic key_intr_status_pwrb_h2l_we;
+ logic key_intr_status_key0_in_h2l_qs;
+ logic key_intr_status_key0_in_h2l_wd;
+ logic key_intr_status_key0_in_h2l_we;
+ logic key_intr_status_key1_in_h2l_qs;
+ logic key_intr_status_key1_in_h2l_wd;
+ logic key_intr_status_key1_in_h2l_we;
+ logic key_intr_status_key2_in_h2l_qs;
+ logic key_intr_status_key2_in_h2l_wd;
+ logic key_intr_status_key2_in_h2l_we;
+ logic key_intr_status_ac_present_h2l_qs;
+ logic key_intr_status_ac_present_h2l_wd;
+ logic key_intr_status_ac_present_h2l_we;
+ logic key_intr_status_ec_rst_l_h2l_qs;
+ logic key_intr_status_ec_rst_l_h2l_wd;
+ logic key_intr_status_ec_rst_l_h2l_we;
+ logic key_intr_status_pwrb_l2h_qs;
+ logic key_intr_status_pwrb_l2h_wd;
+ logic key_intr_status_pwrb_l2h_we;
+ logic key_intr_status_key0_in_l2h_qs;
+ logic key_intr_status_key0_in_l2h_wd;
+ logic key_intr_status_key0_in_l2h_we;
+ logic key_intr_status_key1_in_l2h_qs;
+ logic key_intr_status_key1_in_l2h_wd;
+ logic key_intr_status_key1_in_l2h_we;
+ logic key_intr_status_key2_in_l2h_qs;
+ logic key_intr_status_key2_in_l2h_wd;
+ logic key_intr_status_key2_in_l2h_we;
+ logic key_intr_status_ac_present_l2h_qs;
+ logic key_intr_status_ac_present_l2h_wd;
+ logic key_intr_status_ac_present_l2h_we;
+ logic key_intr_status_ec_rst_l_l2h_qs;
+ logic key_intr_status_ec_rst_l_l2h_wd;
+ logic key_intr_status_ec_rst_l_l2h_we;
+
+ // Register instances
+ // R[intr_state]: V(False)
+
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_intr_state (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (intr_state_we),
+ .wd (intr_state_wd),
+
+ // from internal hardware
+ .de (hw2reg.intr_state.de),
+ .d (hw2reg.intr_state.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.intr_state.q ),
+
+ // to register interface (read)
+ .qs (intr_state_qs)
+ );
+
+
+ // R[intr_enable]: V(False)
+
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_intr_enable (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (intr_enable_we),
+ .wd (intr_enable_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.intr_enable.q ),
+
+ // to register interface (read)
+ .qs (intr_enable_qs)
+ );
+
+
+ // R[intr_test]: V(True)
+
+ prim_subreg_ext #(
+ .DW (1)
+ ) u_intr_test (
+ .re (1'b0),
+ .we (intr_test_we),
+ .wd (intr_test_wd),
+ .d ('0),
+ .qre (),
+ .qe (reg2hw.intr_test.qe),
+ .q (reg2hw.intr_test.q ),
+ .qs ()
+ );
+
+
+ // R[regwen]: V(False)
+
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W0C"),
+ .RESVAL (1'h1)
+ ) u_regwen (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (regwen_we),
+ .wd (regwen_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (regwen_qs)
+ );
+
+
+ // R[ec_rst_ctl]: V(False)
+
+ prim_subreg #(
+ .DW (16),
+ .SWACCESS("RW"),
+ .RESVAL (16'h7d0)
+ ) u_ec_rst_ctl (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (ec_rst_ctl_we & regwen_qs),
+ .wd (ec_rst_ctl_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (reg2hw.ec_rst_ctl.qe),
+ .q (reg2hw.ec_rst_ctl.q ),
+
+ // to register interface (read)
+ .qs (ec_rst_ctl_qs)
+ );
+
+
+ // R[key_invert_ctl]: V(False)
+
+ // F[key0_in]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_key0_in (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_key0_in_we & regwen_qs),
+ .wd (key_invert_ctl_key0_in_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.key0_in.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_key0_in_qs)
+ );
+
+
+ // F[key0_out]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_key0_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_key0_out_we & regwen_qs),
+ .wd (key_invert_ctl_key0_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.key0_out.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_key0_out_qs)
+ );
+
+
+ // F[key1_in]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_key1_in (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_key1_in_we & regwen_qs),
+ .wd (key_invert_ctl_key1_in_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.key1_in.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_key1_in_qs)
+ );
+
+
+ // F[key1_out]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_key1_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_key1_out_we & regwen_qs),
+ .wd (key_invert_ctl_key1_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.key1_out.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_key1_out_qs)
+ );
+
+
+ // F[key2_in]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_key2_in (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_key2_in_we & regwen_qs),
+ .wd (key_invert_ctl_key2_in_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.key2_in.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_key2_in_qs)
+ );
+
+
+ // F[key2_out]: 5:5
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_key2_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_key2_out_we & regwen_qs),
+ .wd (key_invert_ctl_key2_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.key2_out.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_key2_out_qs)
+ );
+
+
+ // F[pwrb_in]: 6:6
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_pwrb_in (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_pwrb_in_we & regwen_qs),
+ .wd (key_invert_ctl_pwrb_in_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.pwrb_in.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_pwrb_in_qs)
+ );
+
+
+ // F[pwrb_out]: 7:7
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_pwrb_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_pwrb_out_we & regwen_qs),
+ .wd (key_invert_ctl_pwrb_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.pwrb_out.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_pwrb_out_qs)
+ );
+
+
+ // F[ac_present]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_ac_present (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_ac_present_we & regwen_qs),
+ .wd (key_invert_ctl_ac_present_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.ac_present.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_ac_present_qs)
+ );
+
+
+ // F[bat_disable]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_invert_ctl_bat_disable (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_invert_ctl_bat_disable_we & regwen_qs),
+ .wd (key_invert_ctl_bat_disable_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_invert_ctl.bat_disable.q ),
+
+ // to register interface (read)
+ .qs (key_invert_ctl_bat_disable_qs)
+ );
+
+
+ // R[pin_allowed_ctl]: V(False)
+
+ // F[bat_disable_0]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_bat_disable_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_bat_disable_0_we & regwen_qs),
+ .wd (pin_allowed_ctl_bat_disable_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.bat_disable_0.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_bat_disable_0_qs)
+ );
+
+
+ // F[ec_rst_l_0]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h1)
+ ) u_pin_allowed_ctl_ec_rst_l_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_ec_rst_l_0_we & regwen_qs),
+ .wd (pin_allowed_ctl_ec_rst_l_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.ec_rst_l_0.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_ec_rst_l_0_qs)
+ );
+
+
+ // F[pwrb_out_0]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_pwrb_out_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_pwrb_out_0_we & regwen_qs),
+ .wd (pin_allowed_ctl_pwrb_out_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.pwrb_out_0.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_pwrb_out_0_qs)
+ );
+
+
+ // F[key0_out_0]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_key0_out_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_key0_out_0_we & regwen_qs),
+ .wd (pin_allowed_ctl_key0_out_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.key0_out_0.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_key0_out_0_qs)
+ );
+
+
+ // F[key1_out_0]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_key1_out_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_key1_out_0_we & regwen_qs),
+ .wd (pin_allowed_ctl_key1_out_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.key1_out_0.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_key1_out_0_qs)
+ );
+
+
+ // F[key2_out_0]: 5:5
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_key2_out_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_key2_out_0_we & regwen_qs),
+ .wd (pin_allowed_ctl_key2_out_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.key2_out_0.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_key2_out_0_qs)
+ );
+
+
+ // F[bat_disable_1]: 6:6
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_bat_disable_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_bat_disable_1_we & regwen_qs),
+ .wd (pin_allowed_ctl_bat_disable_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.bat_disable_1.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_bat_disable_1_qs)
+ );
+
+
+ // F[ec_rst_l_1]: 7:7
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_ec_rst_l_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_ec_rst_l_1_we & regwen_qs),
+ .wd (pin_allowed_ctl_ec_rst_l_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.ec_rst_l_1.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_ec_rst_l_1_qs)
+ );
+
+
+ // F[pwrb_out_1]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_pwrb_out_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_pwrb_out_1_we & regwen_qs),
+ .wd (pin_allowed_ctl_pwrb_out_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.pwrb_out_1.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_pwrb_out_1_qs)
+ );
+
+
+ // F[key0_out_1]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_key0_out_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_key0_out_1_we & regwen_qs),
+ .wd (pin_allowed_ctl_key0_out_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.key0_out_1.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_key0_out_1_qs)
+ );
+
+
+ // F[key1_out_1]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_key1_out_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_key1_out_1_we & regwen_qs),
+ .wd (pin_allowed_ctl_key1_out_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.key1_out_1.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_key1_out_1_qs)
+ );
+
+
+ // F[key2_out_1]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_allowed_ctl_key2_out_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (pin_allowed_ctl_key2_out_1_we & regwen_qs),
+ .wd (pin_allowed_ctl_key2_out_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_allowed_ctl.key2_out_1.q ),
+
+ // to register interface (read)
+ .qs (pin_allowed_ctl_key2_out_1_qs)
+ );
+
+
+ // R[pin_out_ctl]: V(False)
+
+ // F[bat_disable]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_ctl_bat_disable (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_ctl_bat_disable_we),
+ .wd (pin_out_ctl_bat_disable_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_ctl.bat_disable.q ),
+
+ // to register interface (read)
+ .qs (pin_out_ctl_bat_disable_qs)
+ );
+
+
+ // F[ec_rst_l]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h1)
+ ) u_pin_out_ctl_ec_rst_l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_ctl_ec_rst_l_we),
+ .wd (pin_out_ctl_ec_rst_l_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_ctl.ec_rst_l.q ),
+
+ // to register interface (read)
+ .qs (pin_out_ctl_ec_rst_l_qs)
+ );
+
+
+ // F[pwrb_out]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_ctl_pwrb_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_ctl_pwrb_out_we),
+ .wd (pin_out_ctl_pwrb_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_ctl.pwrb_out.q ),
+
+ // to register interface (read)
+ .qs (pin_out_ctl_pwrb_out_qs)
+ );
+
+
+ // F[key0_out]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_ctl_key0_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_ctl_key0_out_we),
+ .wd (pin_out_ctl_key0_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_ctl.key0_out.q ),
+
+ // to register interface (read)
+ .qs (pin_out_ctl_key0_out_qs)
+ );
+
+
+ // F[key1_out]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_ctl_key1_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_ctl_key1_out_we),
+ .wd (pin_out_ctl_key1_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_ctl.key1_out.q ),
+
+ // to register interface (read)
+ .qs (pin_out_ctl_key1_out_qs)
+ );
+
+
+ // F[key2_out]: 5:5
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_ctl_key2_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_ctl_key2_out_we),
+ .wd (pin_out_ctl_key2_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_ctl.key2_out.q ),
+
+ // to register interface (read)
+ .qs (pin_out_ctl_key2_out_qs)
+ );
+
+
+ // R[pin_out_value]: V(False)
+
+ // F[bat_disable]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_value_bat_disable (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_value_bat_disable_we),
+ .wd (pin_out_value_bat_disable_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_value.bat_disable.q ),
+
+ // to register interface (read)
+ .qs (pin_out_value_bat_disable_qs)
+ );
+
+
+ // F[ec_rst_l]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_value_ec_rst_l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_value_ec_rst_l_we),
+ .wd (pin_out_value_ec_rst_l_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_value.ec_rst_l.q ),
+
+ // to register interface (read)
+ .qs (pin_out_value_ec_rst_l_qs)
+ );
+
+
+ // F[pwrb_out]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_value_pwrb_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_value_pwrb_out_we),
+ .wd (pin_out_value_pwrb_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_value.pwrb_out.q ),
+
+ // to register interface (read)
+ .qs (pin_out_value_pwrb_out_qs)
+ );
+
+
+ // F[key0_out]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_value_key0_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_value_key0_out_we),
+ .wd (pin_out_value_key0_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_value.key0_out.q ),
+
+ // to register interface (read)
+ .qs (pin_out_value_key0_out_qs)
+ );
+
+
+ // F[key1_out]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_value_key1_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_value_key1_out_we),
+ .wd (pin_out_value_key1_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_value.key1_out.q ),
+
+ // to register interface (read)
+ .qs (pin_out_value_key1_out_qs)
+ );
+
+
+ // F[key2_out]: 5:5
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_pin_out_value_key2_out (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (pin_out_value_key2_out_we),
+ .wd (pin_out_value_key2_out_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.pin_out_value.key2_out.q ),
+
+ // to register interface (read)
+ .qs (pin_out_value_key2_out_qs)
+ );
+
+
+ // R[pin_in_value]: V(False)
+
+ // F[ac_present]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RO"),
+ .RESVAL (1'h0)
+ ) u_pin_in_value_ac_present (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ .we (1'b0),
+ .wd ('0 ),
+
+ // from internal hardware
+ .de (hw2reg.pin_in_value.ac_present.de),
+ .d (hw2reg.pin_in_value.ac_present.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (pin_in_value_ac_present_qs)
+ );
+
+
+ // F[ec_rst_l]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RO"),
+ .RESVAL (1'h0)
+ ) u_pin_in_value_ec_rst_l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ .we (1'b0),
+ .wd ('0 ),
+
+ // from internal hardware
+ .de (hw2reg.pin_in_value.ec_rst_l.de),
+ .d (hw2reg.pin_in_value.ec_rst_l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (pin_in_value_ec_rst_l_qs)
+ );
+
+
+ // F[pwrb_in]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RO"),
+ .RESVAL (1'h0)
+ ) u_pin_in_value_pwrb_in (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ .we (1'b0),
+ .wd ('0 ),
+
+ // from internal hardware
+ .de (hw2reg.pin_in_value.pwrb_in.de),
+ .d (hw2reg.pin_in_value.pwrb_in.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (pin_in_value_pwrb_in_qs)
+ );
+
+
+ // F[key0_in]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RO"),
+ .RESVAL (1'h0)
+ ) u_pin_in_value_key0_in (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ .we (1'b0),
+ .wd ('0 ),
+
+ // from internal hardware
+ .de (hw2reg.pin_in_value.key0_in.de),
+ .d (hw2reg.pin_in_value.key0_in.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (pin_in_value_key0_in_qs)
+ );
+
+
+ // F[key1_in]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RO"),
+ .RESVAL (1'h0)
+ ) u_pin_in_value_key1_in (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ .we (1'b0),
+ .wd ('0 ),
+
+ // from internal hardware
+ .de (hw2reg.pin_in_value.key1_in.de),
+ .d (hw2reg.pin_in_value.key1_in.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (pin_in_value_key1_in_qs)
+ );
+
+
+ // F[key2_in]: 5:5
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RO"),
+ .RESVAL (1'h0)
+ ) u_pin_in_value_key2_in (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ .we (1'b0),
+ .wd ('0 ),
+
+ // from internal hardware
+ .de (hw2reg.pin_in_value.key2_in.de),
+ .d (hw2reg.pin_in_value.key2_in.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (pin_in_value_key2_in_qs)
+ );
+
+
+ // R[key_intr_ctl]: V(False)
+
+ // F[pwrb_in_h2l]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_pwrb_in_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_pwrb_in_h2l_we & regwen_qs),
+ .wd (key_intr_ctl_pwrb_in_h2l_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.pwrb_in_h2l.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_pwrb_in_h2l_qs)
+ );
+
+
+ // F[key0_in_h2l]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_key0_in_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_key0_in_h2l_we & regwen_qs),
+ .wd (key_intr_ctl_key0_in_h2l_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.key0_in_h2l.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_key0_in_h2l_qs)
+ );
+
+
+ // F[key1_in_h2l]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_key1_in_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_key1_in_h2l_we & regwen_qs),
+ .wd (key_intr_ctl_key1_in_h2l_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.key1_in_h2l.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_key1_in_h2l_qs)
+ );
+
+
+ // F[key2_in_h2l]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_key2_in_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_key2_in_h2l_we & regwen_qs),
+ .wd (key_intr_ctl_key2_in_h2l_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.key2_in_h2l.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_key2_in_h2l_qs)
+ );
+
+
+ // F[ac_present_h2l]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_ac_present_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_ac_present_h2l_we & regwen_qs),
+ .wd (key_intr_ctl_ac_present_h2l_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.ac_present_h2l.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_ac_present_h2l_qs)
+ );
+
+
+ // F[ec_rst_l_h2l]: 5:5
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_ec_rst_l_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_ec_rst_l_h2l_we & regwen_qs),
+ .wd (key_intr_ctl_ec_rst_l_h2l_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.ec_rst_l_h2l.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_ec_rst_l_h2l_qs)
+ );
+
+
+ // F[pwrb_in_l2h]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_pwrb_in_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_pwrb_in_l2h_we & regwen_qs),
+ .wd (key_intr_ctl_pwrb_in_l2h_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.pwrb_in_l2h.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_pwrb_in_l2h_qs)
+ );
+
+
+ // F[key0_in_l2h]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_key0_in_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_key0_in_l2h_we & regwen_qs),
+ .wd (key_intr_ctl_key0_in_l2h_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.key0_in_l2h.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_key0_in_l2h_qs)
+ );
+
+
+ // F[key1_in_l2h]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_key1_in_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_key1_in_l2h_we & regwen_qs),
+ .wd (key_intr_ctl_key1_in_l2h_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.key1_in_l2h.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_key1_in_l2h_qs)
+ );
+
+
+ // F[key2_in_l2h]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_key2_in_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_key2_in_l2h_we & regwen_qs),
+ .wd (key_intr_ctl_key2_in_l2h_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.key2_in_l2h.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_key2_in_l2h_qs)
+ );
+
+
+ // F[ac_present_l2h]: 12:12
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_ac_present_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_ac_present_l2h_we & regwen_qs),
+ .wd (key_intr_ctl_ac_present_l2h_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.ac_present_l2h.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_ac_present_l2h_qs)
+ );
+
+
+ // F[ec_rst_l_l2h]: 13:13
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_ec_rst_l_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_ctl_ec_rst_l_l2h_we & regwen_qs),
+ .wd (key_intr_ctl_ec_rst_l_l2h_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.ec_rst_l_l2h.q ),
+
+ // to register interface (read)
+ .qs (key_intr_ctl_ec_rst_l_l2h_qs)
+ );
+
+
+ // R[key_intr_debounce_ctl]: V(False)
+
+ prim_subreg #(
+ .DW (16),
+ .SWACCESS("RW"),
+ .RESVAL (16'h0)
+ ) u_key_intr_debounce_ctl (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (key_intr_debounce_ctl_we & regwen_qs),
+ .wd (key_intr_debounce_ctl_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (reg2hw.key_intr_debounce_ctl.qe),
+ .q (reg2hw.key_intr_debounce_ctl.q ),
+
+ // to register interface (read)
+ .qs (key_intr_debounce_ctl_qs)
+ );
+
+
+ // R[auto_block_debounce_ctl]: V(False)
+
+ // F[debounce_timer]: 15:0
+ prim_subreg #(
+ .DW (16),
+ .SWACCESS("RW"),
+ .RESVAL (16'h0)
+ ) u_auto_block_debounce_ctl_debounce_timer (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (auto_block_debounce_ctl_debounce_timer_we & regwen_qs),
+ .wd (auto_block_debounce_ctl_debounce_timer_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (reg2hw.auto_block_debounce_ctl.debounce_timer.qe),
+ .q (reg2hw.auto_block_debounce_ctl.debounce_timer.q ),
+
+ // to register interface (read)
+ .qs (auto_block_debounce_ctl_debounce_timer_qs)
+ );
+
+
+ // F[auto_block_enable]: 16:16
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_auto_block_debounce_ctl_auto_block_enable (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (auto_block_debounce_ctl_auto_block_enable_we & regwen_qs),
+ .wd (auto_block_debounce_ctl_auto_block_enable_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (reg2hw.auto_block_debounce_ctl.auto_block_enable.qe),
+ .q (reg2hw.auto_block_debounce_ctl.auto_block_enable.q ),
+
+ // to register interface (read)
+ .qs (auto_block_debounce_ctl_auto_block_enable_qs)
+ );
+
+
+ // R[auto_block_out_ctl]: V(False)
+
+ // F[key0_out_sel]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_auto_block_out_ctl_key0_out_sel (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (auto_block_out_ctl_key0_out_sel_we & regwen_qs),
+ .wd (auto_block_out_ctl_key0_out_sel_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.auto_block_out_ctl.key0_out_sel.q ),
+
+ // to register interface (read)
+ .qs (auto_block_out_ctl_key0_out_sel_qs)
+ );
+
+
+ // F[key1_out_sel]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_auto_block_out_ctl_key1_out_sel (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (auto_block_out_ctl_key1_out_sel_we & regwen_qs),
+ .wd (auto_block_out_ctl_key1_out_sel_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.auto_block_out_ctl.key1_out_sel.q ),
+
+ // to register interface (read)
+ .qs (auto_block_out_ctl_key1_out_sel_qs)
+ );
+
+
+ // F[key2_out_sel]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_auto_block_out_ctl_key2_out_sel (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (auto_block_out_ctl_key2_out_sel_we & regwen_qs),
+ .wd (auto_block_out_ctl_key2_out_sel_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.auto_block_out_ctl.key2_out_sel.q ),
+
+ // to register interface (read)
+ .qs (auto_block_out_ctl_key2_out_sel_qs)
+ );
+
+
+ // F[key0_out_value]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_auto_block_out_ctl_key0_out_value (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (auto_block_out_ctl_key0_out_value_we & regwen_qs),
+ .wd (auto_block_out_ctl_key0_out_value_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.auto_block_out_ctl.key0_out_value.q ),
+
+ // to register interface (read)
+ .qs (auto_block_out_ctl_key0_out_value_qs)
+ );
+
+
+ // F[key1_out_value]: 5:5
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_auto_block_out_ctl_key1_out_value (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (auto_block_out_ctl_key1_out_value_we & regwen_qs),
+ .wd (auto_block_out_ctl_key1_out_value_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.auto_block_out_ctl.key1_out_value.q ),
+
+ // to register interface (read)
+ .qs (auto_block_out_ctl_key1_out_value_qs)
+ );
+
+
+ // F[key2_out_value]: 6:6
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_auto_block_out_ctl_key2_out_value (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (auto_block_out_ctl_key2_out_value_we & regwen_qs),
+ .wd (auto_block_out_ctl_key2_out_value_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.auto_block_out_ctl.key2_out_value.q ),
+
+ // to register interface (read)
+ .qs (auto_block_out_ctl_key2_out_value_qs)
+ );
+
+
+
+ // Subregister 0 of Multireg com_sel_ctl
+ // R[com_sel_ctl_0]: V(False)
+
+ // F[key0_in_sel_0]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_0_key0_in_sel_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_0_key0_in_sel_0_we & regwen_qs),
+ .wd (com_sel_ctl_0_key0_in_sel_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[0].key0_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_0_key0_in_sel_0_qs)
+ );
+
+
+ // F[key1_in_sel_0]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_0_key1_in_sel_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_0_key1_in_sel_0_we & regwen_qs),
+ .wd (com_sel_ctl_0_key1_in_sel_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[0].key1_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_0_key1_in_sel_0_qs)
+ );
+
+
+ // F[key2_in_sel_0]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_0_key2_in_sel_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_0_key2_in_sel_0_we & regwen_qs),
+ .wd (com_sel_ctl_0_key2_in_sel_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[0].key2_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_0_key2_in_sel_0_qs)
+ );
+
+
+ // F[pwrb_in_sel_0]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_0_pwrb_in_sel_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_0_pwrb_in_sel_0_we & regwen_qs),
+ .wd (com_sel_ctl_0_pwrb_in_sel_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[0].pwrb_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_0_pwrb_in_sel_0_qs)
+ );
+
+
+ // F[ac_present_sel_0]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_0_ac_present_sel_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_0_ac_present_sel_0_we & regwen_qs),
+ .wd (com_sel_ctl_0_ac_present_sel_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[0].ac_present_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_0_ac_present_sel_0_qs)
+ );
+
+
+ // Subregister 1 of Multireg com_sel_ctl
+ // R[com_sel_ctl_1]: V(False)
+
+ // F[key0_in_sel_1]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_1_key0_in_sel_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_1_key0_in_sel_1_we & regwen_qs),
+ .wd (com_sel_ctl_1_key0_in_sel_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[1].key0_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_1_key0_in_sel_1_qs)
+ );
+
+
+ // F[key1_in_sel_1]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_1_key1_in_sel_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_1_key1_in_sel_1_we & regwen_qs),
+ .wd (com_sel_ctl_1_key1_in_sel_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[1].key1_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_1_key1_in_sel_1_qs)
+ );
+
+
+ // F[key2_in_sel_1]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_1_key2_in_sel_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_1_key2_in_sel_1_we & regwen_qs),
+ .wd (com_sel_ctl_1_key2_in_sel_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[1].key2_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_1_key2_in_sel_1_qs)
+ );
+
+
+ // F[pwrb_in_sel_1]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_1_pwrb_in_sel_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_1_pwrb_in_sel_1_we & regwen_qs),
+ .wd (com_sel_ctl_1_pwrb_in_sel_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[1].pwrb_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_1_pwrb_in_sel_1_qs)
+ );
+
+
+ // F[ac_present_sel_1]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_1_ac_present_sel_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_1_ac_present_sel_1_we & regwen_qs),
+ .wd (com_sel_ctl_1_ac_present_sel_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[1].ac_present_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_1_ac_present_sel_1_qs)
+ );
+
+
+ // Subregister 2 of Multireg com_sel_ctl
+ // R[com_sel_ctl_2]: V(False)
+
+ // F[key0_in_sel_2]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_2_key0_in_sel_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_2_key0_in_sel_2_we & regwen_qs),
+ .wd (com_sel_ctl_2_key0_in_sel_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[2].key0_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_2_key0_in_sel_2_qs)
+ );
+
+
+ // F[key1_in_sel_2]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_2_key1_in_sel_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_2_key1_in_sel_2_we & regwen_qs),
+ .wd (com_sel_ctl_2_key1_in_sel_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[2].key1_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_2_key1_in_sel_2_qs)
+ );
+
+
+ // F[key2_in_sel_2]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_2_key2_in_sel_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_2_key2_in_sel_2_we & regwen_qs),
+ .wd (com_sel_ctl_2_key2_in_sel_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[2].key2_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_2_key2_in_sel_2_qs)
+ );
+
+
+ // F[pwrb_in_sel_2]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_2_pwrb_in_sel_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_2_pwrb_in_sel_2_we & regwen_qs),
+ .wd (com_sel_ctl_2_pwrb_in_sel_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[2].pwrb_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_2_pwrb_in_sel_2_qs)
+ );
+
+
+ // F[ac_present_sel_2]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_2_ac_present_sel_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_2_ac_present_sel_2_we & regwen_qs),
+ .wd (com_sel_ctl_2_ac_present_sel_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[2].ac_present_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_2_ac_present_sel_2_qs)
+ );
+
+
+ // Subregister 3 of Multireg com_sel_ctl
+ // R[com_sel_ctl_3]: V(False)
+
+ // F[key0_in_sel_3]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_3_key0_in_sel_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_3_key0_in_sel_3_we & regwen_qs),
+ .wd (com_sel_ctl_3_key0_in_sel_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[3].key0_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_3_key0_in_sel_3_qs)
+ );
+
+
+ // F[key1_in_sel_3]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_3_key1_in_sel_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_3_key1_in_sel_3_we & regwen_qs),
+ .wd (com_sel_ctl_3_key1_in_sel_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[3].key1_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_3_key1_in_sel_3_qs)
+ );
+
+
+ // F[key2_in_sel_3]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_3_key2_in_sel_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_3_key2_in_sel_3_we & regwen_qs),
+ .wd (com_sel_ctl_3_key2_in_sel_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[3].key2_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_3_key2_in_sel_3_qs)
+ );
+
+
+ // F[pwrb_in_sel_3]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_3_pwrb_in_sel_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_3_pwrb_in_sel_3_we & regwen_qs),
+ .wd (com_sel_ctl_3_pwrb_in_sel_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[3].pwrb_in_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_3_pwrb_in_sel_3_qs)
+ );
+
+
+ // F[ac_present_sel_3]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_sel_ctl_3_ac_present_sel_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_sel_ctl_3_ac_present_sel_3_we & regwen_qs),
+ .wd (com_sel_ctl_3_ac_present_sel_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_sel_ctl[3].ac_present_sel.q ),
+
+ // to register interface (read)
+ .qs (com_sel_ctl_3_ac_present_sel_3_qs)
+ );
+
+
+
+
+ // Subregister 0 of Multireg com_det_ctl
+ // R[com_det_ctl_0]: V(False)
+
+ prim_subreg #(
+ .DW (32),
+ .SWACCESS("RW"),
+ .RESVAL (32'h0)
+ ) u_com_det_ctl_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_det_ctl_0_we & regwen_qs),
+ .wd (com_det_ctl_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (reg2hw.com_det_ctl[0].qe),
+ .q (reg2hw.com_det_ctl[0].q ),
+
+ // to register interface (read)
+ .qs (com_det_ctl_0_qs)
+ );
+
+ // Subregister 1 of Multireg com_det_ctl
+ // R[com_det_ctl_1]: V(False)
+
+ prim_subreg #(
+ .DW (32),
+ .SWACCESS("RW"),
+ .RESVAL (32'h0)
+ ) u_com_det_ctl_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_det_ctl_1_we & regwen_qs),
+ .wd (com_det_ctl_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (reg2hw.com_det_ctl[1].qe),
+ .q (reg2hw.com_det_ctl[1].q ),
+
+ // to register interface (read)
+ .qs (com_det_ctl_1_qs)
+ );
+
+ // Subregister 2 of Multireg com_det_ctl
+ // R[com_det_ctl_2]: V(False)
+
+ prim_subreg #(
+ .DW (32),
+ .SWACCESS("RW"),
+ .RESVAL (32'h0)
+ ) u_com_det_ctl_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_det_ctl_2_we & regwen_qs),
+ .wd (com_det_ctl_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (reg2hw.com_det_ctl[2].qe),
+ .q (reg2hw.com_det_ctl[2].q ),
+
+ // to register interface (read)
+ .qs (com_det_ctl_2_qs)
+ );
+
+ // Subregister 3 of Multireg com_det_ctl
+ // R[com_det_ctl_3]: V(False)
+
+ prim_subreg #(
+ .DW (32),
+ .SWACCESS("RW"),
+ .RESVAL (32'h0)
+ ) u_com_det_ctl_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_det_ctl_3_we & regwen_qs),
+ .wd (com_det_ctl_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (reg2hw.com_det_ctl[3].qe),
+ .q (reg2hw.com_det_ctl[3].q ),
+
+ // to register interface (read)
+ .qs (com_det_ctl_3_qs)
+ );
+
+
+
+ // Subregister 0 of Multireg com_out_ctl
+ // R[com_out_ctl_0]: V(False)
+
+ // F[bat_disable_0]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_0_bat_disable_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_0_bat_disable_0_we & regwen_qs),
+ .wd (com_out_ctl_0_bat_disable_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[0].bat_disable.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_0_bat_disable_0_qs)
+ );
+
+
+ // F[interrupt_0]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_0_interrupt_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_0_interrupt_0_we & regwen_qs),
+ .wd (com_out_ctl_0_interrupt_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[0].interrupt.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_0_interrupt_0_qs)
+ );
+
+
+ // F[ec_rst_0]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_0_ec_rst_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_0_ec_rst_0_we & regwen_qs),
+ .wd (com_out_ctl_0_ec_rst_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[0].ec_rst.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_0_ec_rst_0_qs)
+ );
+
+
+ // F[gsc_rst_0]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_0_gsc_rst_0 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_0_gsc_rst_0_we & regwen_qs),
+ .wd (com_out_ctl_0_gsc_rst_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[0].gsc_rst.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_0_gsc_rst_0_qs)
+ );
+
+
+ // Subregister 1 of Multireg com_out_ctl
+ // R[com_out_ctl_1]: V(False)
+
+ // F[bat_disable_1]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_1_bat_disable_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_1_bat_disable_1_we & regwen_qs),
+ .wd (com_out_ctl_1_bat_disable_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[1].bat_disable.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_1_bat_disable_1_qs)
+ );
+
+
+ // F[interrupt_1]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_1_interrupt_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_1_interrupt_1_we & regwen_qs),
+ .wd (com_out_ctl_1_interrupt_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[1].interrupt.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_1_interrupt_1_qs)
+ );
+
+
+ // F[ec_rst_1]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_1_ec_rst_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_1_ec_rst_1_we & regwen_qs),
+ .wd (com_out_ctl_1_ec_rst_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[1].ec_rst.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_1_ec_rst_1_qs)
+ );
+
+
+ // F[gsc_rst_1]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_1_gsc_rst_1 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_1_gsc_rst_1_we & regwen_qs),
+ .wd (com_out_ctl_1_gsc_rst_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[1].gsc_rst.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_1_gsc_rst_1_qs)
+ );
+
+
+ // Subregister 2 of Multireg com_out_ctl
+ // R[com_out_ctl_2]: V(False)
+
+ // F[bat_disable_2]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_2_bat_disable_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_2_bat_disable_2_we & regwen_qs),
+ .wd (com_out_ctl_2_bat_disable_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[2].bat_disable.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_2_bat_disable_2_qs)
+ );
+
+
+ // F[interrupt_2]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_2_interrupt_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_2_interrupt_2_we & regwen_qs),
+ .wd (com_out_ctl_2_interrupt_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[2].interrupt.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_2_interrupt_2_qs)
+ );
+
+
+ // F[ec_rst_2]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_2_ec_rst_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_2_ec_rst_2_we & regwen_qs),
+ .wd (com_out_ctl_2_ec_rst_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[2].ec_rst.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_2_ec_rst_2_qs)
+ );
+
+
+ // F[gsc_rst_2]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_2_gsc_rst_2 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_2_gsc_rst_2_we & regwen_qs),
+ .wd (com_out_ctl_2_gsc_rst_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[2].gsc_rst.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_2_gsc_rst_2_qs)
+ );
+
+
+ // Subregister 3 of Multireg com_out_ctl
+ // R[com_out_ctl_3]: V(False)
+
+ // F[bat_disable_3]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_3_bat_disable_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_3_bat_disable_3_we & regwen_qs),
+ .wd (com_out_ctl_3_bat_disable_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[3].bat_disable.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_3_bat_disable_3_qs)
+ );
+
+
+ // F[interrupt_3]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_3_interrupt_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_3_interrupt_3_we & regwen_qs),
+ .wd (com_out_ctl_3_interrupt_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[3].interrupt.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_3_interrupt_3_qs)
+ );
+
+
+ // F[ec_rst_3]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_3_ec_rst_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_3_ec_rst_3_we & regwen_qs),
+ .wd (com_out_ctl_3_ec_rst_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[3].ec_rst.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_3_ec_rst_3_qs)
+ );
+
+
+ // F[gsc_rst_3]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_com_out_ctl_3_gsc_rst_3 (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface (qualified with register enable)
+ .we (com_out_ctl_3_gsc_rst_3_we & regwen_qs),
+ .wd (com_out_ctl_3_gsc_rst_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0 ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.com_out_ctl[3].gsc_rst.q ),
+
+ // to register interface (read)
+ .qs (com_out_ctl_3_gsc_rst_3_qs)
+ );
+
+
+
+ // R[combo_intr_status]: V(False)
+
+ // F[combo0_h2l]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_combo_intr_status_combo0_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (combo_intr_status_combo0_h2l_we),
+ .wd (combo_intr_status_combo0_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.combo_intr_status.combo0_h2l.de),
+ .d (hw2reg.combo_intr_status.combo0_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (combo_intr_status_combo0_h2l_qs)
+ );
+
+
+ // F[combo1_h2l]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_combo_intr_status_combo1_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (combo_intr_status_combo1_h2l_we),
+ .wd (combo_intr_status_combo1_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.combo_intr_status.combo1_h2l.de),
+ .d (hw2reg.combo_intr_status.combo1_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (combo_intr_status_combo1_h2l_qs)
+ );
+
+
+ // F[combo2_h2l]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_combo_intr_status_combo2_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (combo_intr_status_combo2_h2l_we),
+ .wd (combo_intr_status_combo2_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.combo_intr_status.combo2_h2l.de),
+ .d (hw2reg.combo_intr_status.combo2_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (combo_intr_status_combo2_h2l_qs)
+ );
+
+
+ // F[combo3_h2l]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_combo_intr_status_combo3_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (combo_intr_status_combo3_h2l_we),
+ .wd (combo_intr_status_combo3_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.combo_intr_status.combo3_h2l.de),
+ .d (hw2reg.combo_intr_status.combo3_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (combo_intr_status_combo3_h2l_qs)
+ );
+
+
+ // R[key_intr_status]: V(False)
+
+ // F[pwrb_h2l]: 0:0
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_pwrb_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_pwrb_h2l_we),
+ .wd (key_intr_status_pwrb_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.pwrb_h2l.de),
+ .d (hw2reg.key_intr_status.pwrb_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_pwrb_h2l_qs)
+ );
+
+
+ // F[key0_in_h2l]: 1:1
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_key0_in_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_key0_in_h2l_we),
+ .wd (key_intr_status_key0_in_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.key0_in_h2l.de),
+ .d (hw2reg.key_intr_status.key0_in_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_key0_in_h2l_qs)
+ );
+
+
+ // F[key1_in_h2l]: 2:2
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_key1_in_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_key1_in_h2l_we),
+ .wd (key_intr_status_key1_in_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.key1_in_h2l.de),
+ .d (hw2reg.key_intr_status.key1_in_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_key1_in_h2l_qs)
+ );
+
+
+ // F[key2_in_h2l]: 3:3
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_key2_in_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_key2_in_h2l_we),
+ .wd (key_intr_status_key2_in_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.key2_in_h2l.de),
+ .d (hw2reg.key_intr_status.key2_in_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_key2_in_h2l_qs)
+ );
+
+
+ // F[ac_present_h2l]: 4:4
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_ac_present_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_ac_present_h2l_we),
+ .wd (key_intr_status_ac_present_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.ac_present_h2l.de),
+ .d (hw2reg.key_intr_status.ac_present_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_ac_present_h2l_qs)
+ );
+
+
+ // F[ec_rst_l_h2l]: 5:5
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_ec_rst_l_h2l (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_ec_rst_l_h2l_we),
+ .wd (key_intr_status_ec_rst_l_h2l_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.ec_rst_l_h2l.de),
+ .d (hw2reg.key_intr_status.ec_rst_l_h2l.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_ec_rst_l_h2l_qs)
+ );
+
+
+ // F[pwrb_l2h]: 6:6
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_pwrb_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_pwrb_l2h_we),
+ .wd (key_intr_status_pwrb_l2h_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.pwrb_l2h.de),
+ .d (hw2reg.key_intr_status.pwrb_l2h.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_pwrb_l2h_qs)
+ );
+
+
+ // F[key0_in_l2h]: 7:7
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_key0_in_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_key0_in_l2h_we),
+ .wd (key_intr_status_key0_in_l2h_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.key0_in_l2h.de),
+ .d (hw2reg.key_intr_status.key0_in_l2h.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_key0_in_l2h_qs)
+ );
+
+
+ // F[key1_in_l2h]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_key1_in_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_key1_in_l2h_we),
+ .wd (key_intr_status_key1_in_l2h_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.key1_in_l2h.de),
+ .d (hw2reg.key_intr_status.key1_in_l2h.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_key1_in_l2h_qs)
+ );
+
+
+ // F[key2_in_l2h]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_key2_in_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_key2_in_l2h_we),
+ .wd (key_intr_status_key2_in_l2h_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.key2_in_l2h.de),
+ .d (hw2reg.key_intr_status.key2_in_l2h.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_key2_in_l2h_qs)
+ );
+
+
+ // F[ac_present_l2h]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_ac_present_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_ac_present_l2h_we),
+ .wd (key_intr_status_ac_present_l2h_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.ac_present_l2h.de),
+ .d (hw2reg.key_intr_status.ac_present_l2h.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_ac_present_l2h_qs)
+ );
+
+
+ // F[ec_rst_l_l2h]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("W1C"),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_ec_rst_l_l2h (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (key_intr_status_ec_rst_l_l2h_we),
+ .wd (key_intr_status_ec_rst_l_l2h_wd),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.ec_rst_l_l2h.de),
+ .d (hw2reg.key_intr_status.ec_rst_l_l2h.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (key_intr_status_ec_rst_l_l2h_qs)
+ );
+
+
+
+
+ logic [27:0] addr_hit;
+ always_comb begin
+ addr_hit = '0;
+ addr_hit[ 0] = (reg_addr == RBOX_INTR_STATE_OFFSET);
+ addr_hit[ 1] = (reg_addr == RBOX_INTR_ENABLE_OFFSET);
+ addr_hit[ 2] = (reg_addr == RBOX_INTR_TEST_OFFSET);
+ addr_hit[ 3] = (reg_addr == RBOX_REGWEN_OFFSET);
+ addr_hit[ 4] = (reg_addr == RBOX_EC_RST_CTL_OFFSET);
+ addr_hit[ 5] = (reg_addr == RBOX_KEY_INVERT_CTL_OFFSET);
+ addr_hit[ 6] = (reg_addr == RBOX_PIN_ALLOWED_CTL_OFFSET);
+ addr_hit[ 7] = (reg_addr == RBOX_PIN_OUT_CTL_OFFSET);
+ addr_hit[ 8] = (reg_addr == RBOX_PIN_OUT_VALUE_OFFSET);
+ addr_hit[ 9] = (reg_addr == RBOX_PIN_IN_VALUE_OFFSET);
+ addr_hit[10] = (reg_addr == RBOX_KEY_INTR_CTL_OFFSET);
+ addr_hit[11] = (reg_addr == RBOX_KEY_INTR_DEBOUNCE_CTL_OFFSET);
+ addr_hit[12] = (reg_addr == RBOX_AUTO_BLOCK_DEBOUNCE_CTL_OFFSET);
+ addr_hit[13] = (reg_addr == RBOX_AUTO_BLOCK_OUT_CTL_OFFSET);
+ addr_hit[14] = (reg_addr == RBOX_COM_SEL_CTL_0_OFFSET);
+ addr_hit[15] = (reg_addr == RBOX_COM_SEL_CTL_1_OFFSET);
+ addr_hit[16] = (reg_addr == RBOX_COM_SEL_CTL_2_OFFSET);
+ addr_hit[17] = (reg_addr == RBOX_COM_SEL_CTL_3_OFFSET);
+ addr_hit[18] = (reg_addr == RBOX_COM_DET_CTL_0_OFFSET);
+ addr_hit[19] = (reg_addr == RBOX_COM_DET_CTL_1_OFFSET);
+ addr_hit[20] = (reg_addr == RBOX_COM_DET_CTL_2_OFFSET);
+ addr_hit[21] = (reg_addr == RBOX_COM_DET_CTL_3_OFFSET);
+ addr_hit[22] = (reg_addr == RBOX_COM_OUT_CTL_0_OFFSET);
+ addr_hit[23] = (reg_addr == RBOX_COM_OUT_CTL_1_OFFSET);
+ addr_hit[24] = (reg_addr == RBOX_COM_OUT_CTL_2_OFFSET);
+ addr_hit[25] = (reg_addr == RBOX_COM_OUT_CTL_3_OFFSET);
+ addr_hit[26] = (reg_addr == RBOX_COMBO_INTR_STATUS_OFFSET);
+ addr_hit[27] = (reg_addr == RBOX_KEY_INTR_STATUS_OFFSET);
+ end
+
+ assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ;
+
+ // Check sub-word write is permitted
+ always_comb begin
+ wr_err = 1'b0;
+ if (addr_hit[ 0] && reg_we && (RBOX_PERMIT[ 0] != (RBOX_PERMIT[ 0] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[ 1] && reg_we && (RBOX_PERMIT[ 1] != (RBOX_PERMIT[ 1] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[ 2] && reg_we && (RBOX_PERMIT[ 2] != (RBOX_PERMIT[ 2] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[ 3] && reg_we && (RBOX_PERMIT[ 3] != (RBOX_PERMIT[ 3] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[ 4] && reg_we && (RBOX_PERMIT[ 4] != (RBOX_PERMIT[ 4] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[ 5] && reg_we && (RBOX_PERMIT[ 5] != (RBOX_PERMIT[ 5] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[ 6] && reg_we && (RBOX_PERMIT[ 6] != (RBOX_PERMIT[ 6] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[ 7] && reg_we && (RBOX_PERMIT[ 7] != (RBOX_PERMIT[ 7] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[ 8] && reg_we && (RBOX_PERMIT[ 8] != (RBOX_PERMIT[ 8] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[ 9] && reg_we && (RBOX_PERMIT[ 9] != (RBOX_PERMIT[ 9] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[10] && reg_we && (RBOX_PERMIT[10] != (RBOX_PERMIT[10] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[11] && reg_we && (RBOX_PERMIT[11] != (RBOX_PERMIT[11] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[12] && reg_we && (RBOX_PERMIT[12] != (RBOX_PERMIT[12] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[13] && reg_we && (RBOX_PERMIT[13] != (RBOX_PERMIT[13] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[14] && reg_we && (RBOX_PERMIT[14] != (RBOX_PERMIT[14] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[15] && reg_we && (RBOX_PERMIT[15] != (RBOX_PERMIT[15] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[16] && reg_we && (RBOX_PERMIT[16] != (RBOX_PERMIT[16] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[17] && reg_we && (RBOX_PERMIT[17] != (RBOX_PERMIT[17] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[18] && reg_we && (RBOX_PERMIT[18] != (RBOX_PERMIT[18] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[19] && reg_we && (RBOX_PERMIT[19] != (RBOX_PERMIT[19] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[20] && reg_we && (RBOX_PERMIT[20] != (RBOX_PERMIT[20] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[21] && reg_we && (RBOX_PERMIT[21] != (RBOX_PERMIT[21] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[22] && reg_we && (RBOX_PERMIT[22] != (RBOX_PERMIT[22] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[23] && reg_we && (RBOX_PERMIT[23] != (RBOX_PERMIT[23] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[24] && reg_we && (RBOX_PERMIT[24] != (RBOX_PERMIT[24] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[25] && reg_we && (RBOX_PERMIT[25] != (RBOX_PERMIT[25] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[26] && reg_we && (RBOX_PERMIT[26] != (RBOX_PERMIT[26] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[27] && reg_we && (RBOX_PERMIT[27] != (RBOX_PERMIT[27] & reg_be))) wr_err = 1'b1 ;
+ end
+
+ assign intr_state_we = addr_hit[0] & reg_we & !reg_error;
+ assign intr_state_wd = reg_wdata[0];
+
+ assign intr_enable_we = addr_hit[1] & reg_we & !reg_error;
+ assign intr_enable_wd = reg_wdata[0];
+
+ assign intr_test_we = addr_hit[2] & reg_we & !reg_error;
+ assign intr_test_wd = reg_wdata[0];
+
+ assign regwen_we = addr_hit[3] & reg_we & !reg_error;
+ assign regwen_wd = reg_wdata[0];
+
+ assign ec_rst_ctl_we = addr_hit[4] & reg_we & !reg_error;
+ assign ec_rst_ctl_wd = reg_wdata[15:0];
+
+ assign key_invert_ctl_key0_in_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_key0_in_wd = reg_wdata[0];
+
+ assign key_invert_ctl_key0_out_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_key0_out_wd = reg_wdata[1];
+
+ assign key_invert_ctl_key1_in_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_key1_in_wd = reg_wdata[2];
+
+ assign key_invert_ctl_key1_out_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_key1_out_wd = reg_wdata[3];
+
+ assign key_invert_ctl_key2_in_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_key2_in_wd = reg_wdata[4];
+
+ assign key_invert_ctl_key2_out_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_key2_out_wd = reg_wdata[5];
+
+ assign key_invert_ctl_pwrb_in_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_pwrb_in_wd = reg_wdata[6];
+
+ assign key_invert_ctl_pwrb_out_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_pwrb_out_wd = reg_wdata[7];
+
+ assign key_invert_ctl_ac_present_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_ac_present_wd = reg_wdata[8];
+
+ assign key_invert_ctl_bat_disable_we = addr_hit[5] & reg_we & !reg_error;
+ assign key_invert_ctl_bat_disable_wd = reg_wdata[9];
+
+ assign pin_allowed_ctl_bat_disable_0_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_bat_disable_0_wd = reg_wdata[0];
+
+ assign pin_allowed_ctl_ec_rst_l_0_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_ec_rst_l_0_wd = reg_wdata[1];
+
+ assign pin_allowed_ctl_pwrb_out_0_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_pwrb_out_0_wd = reg_wdata[2];
+
+ assign pin_allowed_ctl_key0_out_0_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_key0_out_0_wd = reg_wdata[3];
+
+ assign pin_allowed_ctl_key1_out_0_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_key1_out_0_wd = reg_wdata[4];
+
+ assign pin_allowed_ctl_key2_out_0_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_key2_out_0_wd = reg_wdata[5];
+
+ assign pin_allowed_ctl_bat_disable_1_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_bat_disable_1_wd = reg_wdata[6];
+
+ assign pin_allowed_ctl_ec_rst_l_1_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_ec_rst_l_1_wd = reg_wdata[7];
+
+ assign pin_allowed_ctl_pwrb_out_1_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_pwrb_out_1_wd = reg_wdata[8];
+
+ assign pin_allowed_ctl_key0_out_1_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_key0_out_1_wd = reg_wdata[9];
+
+ assign pin_allowed_ctl_key1_out_1_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_key1_out_1_wd = reg_wdata[10];
+
+ assign pin_allowed_ctl_key2_out_1_we = addr_hit[6] & reg_we & !reg_error;
+ assign pin_allowed_ctl_key2_out_1_wd = reg_wdata[11];
+
+ assign pin_out_ctl_bat_disable_we = addr_hit[7] & reg_we & !reg_error;
+ assign pin_out_ctl_bat_disable_wd = reg_wdata[0];
+
+ assign pin_out_ctl_ec_rst_l_we = addr_hit[7] & reg_we & !reg_error;
+ assign pin_out_ctl_ec_rst_l_wd = reg_wdata[1];
+
+ assign pin_out_ctl_pwrb_out_we = addr_hit[7] & reg_we & !reg_error;
+ assign pin_out_ctl_pwrb_out_wd = reg_wdata[2];
+
+ assign pin_out_ctl_key0_out_we = addr_hit[7] & reg_we & !reg_error;
+ assign pin_out_ctl_key0_out_wd = reg_wdata[3];
+
+ assign pin_out_ctl_key1_out_we = addr_hit[7] & reg_we & !reg_error;
+ assign pin_out_ctl_key1_out_wd = reg_wdata[4];
+
+ assign pin_out_ctl_key2_out_we = addr_hit[7] & reg_we & !reg_error;
+ assign pin_out_ctl_key2_out_wd = reg_wdata[5];
+
+ assign pin_out_value_bat_disable_we = addr_hit[8] & reg_we & !reg_error;
+ assign pin_out_value_bat_disable_wd = reg_wdata[0];
+
+ assign pin_out_value_ec_rst_l_we = addr_hit[8] & reg_we & !reg_error;
+ assign pin_out_value_ec_rst_l_wd = reg_wdata[1];
+
+ assign pin_out_value_pwrb_out_we = addr_hit[8] & reg_we & !reg_error;
+ assign pin_out_value_pwrb_out_wd = reg_wdata[2];
+
+ assign pin_out_value_key0_out_we = addr_hit[8] & reg_we & !reg_error;
+ assign pin_out_value_key0_out_wd = reg_wdata[3];
+
+ assign pin_out_value_key1_out_we = addr_hit[8] & reg_we & !reg_error;
+ assign pin_out_value_key1_out_wd = reg_wdata[4];
+
+ assign pin_out_value_key2_out_we = addr_hit[8] & reg_we & !reg_error;
+ assign pin_out_value_key2_out_wd = reg_wdata[5];
+
+
+
+
+
+
+
+ assign key_intr_ctl_pwrb_in_h2l_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_pwrb_in_h2l_wd = reg_wdata[0];
+
+ assign key_intr_ctl_key0_in_h2l_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_key0_in_h2l_wd = reg_wdata[1];
+
+ assign key_intr_ctl_key1_in_h2l_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_key1_in_h2l_wd = reg_wdata[2];
+
+ assign key_intr_ctl_key2_in_h2l_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_key2_in_h2l_wd = reg_wdata[3];
+
+ assign key_intr_ctl_ac_present_h2l_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_ac_present_h2l_wd = reg_wdata[4];
+
+ assign key_intr_ctl_ec_rst_l_h2l_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_ec_rst_l_h2l_wd = reg_wdata[5];
+
+ assign key_intr_ctl_pwrb_in_l2h_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_pwrb_in_l2h_wd = reg_wdata[8];
+
+ assign key_intr_ctl_key0_in_l2h_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_key0_in_l2h_wd = reg_wdata[9];
+
+ assign key_intr_ctl_key1_in_l2h_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_key1_in_l2h_wd = reg_wdata[10];
+
+ assign key_intr_ctl_key2_in_l2h_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_key2_in_l2h_wd = reg_wdata[11];
+
+ assign key_intr_ctl_ac_present_l2h_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_ac_present_l2h_wd = reg_wdata[12];
+
+ assign key_intr_ctl_ec_rst_l_l2h_we = addr_hit[10] & reg_we & !reg_error;
+ assign key_intr_ctl_ec_rst_l_l2h_wd = reg_wdata[13];
+
+ assign key_intr_debounce_ctl_we = addr_hit[11] & reg_we & !reg_error;
+ assign key_intr_debounce_ctl_wd = reg_wdata[15:0];
+
+ assign auto_block_debounce_ctl_debounce_timer_we = addr_hit[12] & reg_we & !reg_error;
+ assign auto_block_debounce_ctl_debounce_timer_wd = reg_wdata[15:0];
+
+ assign auto_block_debounce_ctl_auto_block_enable_we = addr_hit[12] & reg_we & !reg_error;
+ assign auto_block_debounce_ctl_auto_block_enable_wd = reg_wdata[16];
+
+ assign auto_block_out_ctl_key0_out_sel_we = addr_hit[13] & reg_we & !reg_error;
+ assign auto_block_out_ctl_key0_out_sel_wd = reg_wdata[0];
+
+ assign auto_block_out_ctl_key1_out_sel_we = addr_hit[13] & reg_we & !reg_error;
+ assign auto_block_out_ctl_key1_out_sel_wd = reg_wdata[1];
+
+ assign auto_block_out_ctl_key2_out_sel_we = addr_hit[13] & reg_we & !reg_error;
+ assign auto_block_out_ctl_key2_out_sel_wd = reg_wdata[2];
+
+ assign auto_block_out_ctl_key0_out_value_we = addr_hit[13] & reg_we & !reg_error;
+ assign auto_block_out_ctl_key0_out_value_wd = reg_wdata[4];
+
+ assign auto_block_out_ctl_key1_out_value_we = addr_hit[13] & reg_we & !reg_error;
+ assign auto_block_out_ctl_key1_out_value_wd = reg_wdata[5];
+
+ assign auto_block_out_ctl_key2_out_value_we = addr_hit[13] & reg_we & !reg_error;
+ assign auto_block_out_ctl_key2_out_value_wd = reg_wdata[6];
+
+ assign com_sel_ctl_0_key0_in_sel_0_we = addr_hit[14] & reg_we & !reg_error;
+ assign com_sel_ctl_0_key0_in_sel_0_wd = reg_wdata[0];
+
+ assign com_sel_ctl_0_key1_in_sel_0_we = addr_hit[14] & reg_we & !reg_error;
+ assign com_sel_ctl_0_key1_in_sel_0_wd = reg_wdata[1];
+
+ assign com_sel_ctl_0_key2_in_sel_0_we = addr_hit[14] & reg_we & !reg_error;
+ assign com_sel_ctl_0_key2_in_sel_0_wd = reg_wdata[2];
+
+ assign com_sel_ctl_0_pwrb_in_sel_0_we = addr_hit[14] & reg_we & !reg_error;
+ assign com_sel_ctl_0_pwrb_in_sel_0_wd = reg_wdata[3];
+
+ assign com_sel_ctl_0_ac_present_sel_0_we = addr_hit[14] & reg_we & !reg_error;
+ assign com_sel_ctl_0_ac_present_sel_0_wd = reg_wdata[4];
+
+ assign com_sel_ctl_1_key0_in_sel_1_we = addr_hit[15] & reg_we & !reg_error;
+ assign com_sel_ctl_1_key0_in_sel_1_wd = reg_wdata[0];
+
+ assign com_sel_ctl_1_key1_in_sel_1_we = addr_hit[15] & reg_we & !reg_error;
+ assign com_sel_ctl_1_key1_in_sel_1_wd = reg_wdata[1];
+
+ assign com_sel_ctl_1_key2_in_sel_1_we = addr_hit[15] & reg_we & !reg_error;
+ assign com_sel_ctl_1_key2_in_sel_1_wd = reg_wdata[2];
+
+ assign com_sel_ctl_1_pwrb_in_sel_1_we = addr_hit[15] & reg_we & !reg_error;
+ assign com_sel_ctl_1_pwrb_in_sel_1_wd = reg_wdata[3];
+
+ assign com_sel_ctl_1_ac_present_sel_1_we = addr_hit[15] & reg_we & !reg_error;
+ assign com_sel_ctl_1_ac_present_sel_1_wd = reg_wdata[4];
+
+ assign com_sel_ctl_2_key0_in_sel_2_we = addr_hit[16] & reg_we & !reg_error;
+ assign com_sel_ctl_2_key0_in_sel_2_wd = reg_wdata[0];
+
+ assign com_sel_ctl_2_key1_in_sel_2_we = addr_hit[16] & reg_we & !reg_error;
+ assign com_sel_ctl_2_key1_in_sel_2_wd = reg_wdata[1];
+
+ assign com_sel_ctl_2_key2_in_sel_2_we = addr_hit[16] & reg_we & !reg_error;
+ assign com_sel_ctl_2_key2_in_sel_2_wd = reg_wdata[2];
+
+ assign com_sel_ctl_2_pwrb_in_sel_2_we = addr_hit[16] & reg_we & !reg_error;
+ assign com_sel_ctl_2_pwrb_in_sel_2_wd = reg_wdata[3];
+
+ assign com_sel_ctl_2_ac_present_sel_2_we = addr_hit[16] & reg_we & !reg_error;
+ assign com_sel_ctl_2_ac_present_sel_2_wd = reg_wdata[4];
+
+ assign com_sel_ctl_3_key0_in_sel_3_we = addr_hit[17] & reg_we & !reg_error;
+ assign com_sel_ctl_3_key0_in_sel_3_wd = reg_wdata[0];
+
+ assign com_sel_ctl_3_key1_in_sel_3_we = addr_hit[17] & reg_we & !reg_error;
+ assign com_sel_ctl_3_key1_in_sel_3_wd = reg_wdata[1];
+
+ assign com_sel_ctl_3_key2_in_sel_3_we = addr_hit[17] & reg_we & !reg_error;
+ assign com_sel_ctl_3_key2_in_sel_3_wd = reg_wdata[2];
+
+ assign com_sel_ctl_3_pwrb_in_sel_3_we = addr_hit[17] & reg_we & !reg_error;
+ assign com_sel_ctl_3_pwrb_in_sel_3_wd = reg_wdata[3];
+
+ assign com_sel_ctl_3_ac_present_sel_3_we = addr_hit[17] & reg_we & !reg_error;
+ assign com_sel_ctl_3_ac_present_sel_3_wd = reg_wdata[4];
+
+ assign com_det_ctl_0_we = addr_hit[18] & reg_we & !reg_error;
+ assign com_det_ctl_0_wd = reg_wdata[31:0];
+
+ assign com_det_ctl_1_we = addr_hit[19] & reg_we & !reg_error;
+ assign com_det_ctl_1_wd = reg_wdata[31:0];
+
+ assign com_det_ctl_2_we = addr_hit[20] & reg_we & !reg_error;
+ assign com_det_ctl_2_wd = reg_wdata[31:0];
+
+ assign com_det_ctl_3_we = addr_hit[21] & reg_we & !reg_error;
+ assign com_det_ctl_3_wd = reg_wdata[31:0];
+
+ assign com_out_ctl_0_bat_disable_0_we = addr_hit[22] & reg_we & !reg_error;
+ assign com_out_ctl_0_bat_disable_0_wd = reg_wdata[0];
+
+ assign com_out_ctl_0_interrupt_0_we = addr_hit[22] & reg_we & !reg_error;
+ assign com_out_ctl_0_interrupt_0_wd = reg_wdata[1];
+
+ assign com_out_ctl_0_ec_rst_0_we = addr_hit[22] & reg_we & !reg_error;
+ assign com_out_ctl_0_ec_rst_0_wd = reg_wdata[2];
+
+ assign com_out_ctl_0_gsc_rst_0_we = addr_hit[22] & reg_we & !reg_error;
+ assign com_out_ctl_0_gsc_rst_0_wd = reg_wdata[3];
+
+ assign com_out_ctl_1_bat_disable_1_we = addr_hit[23] & reg_we & !reg_error;
+ assign com_out_ctl_1_bat_disable_1_wd = reg_wdata[0];
+
+ assign com_out_ctl_1_interrupt_1_we = addr_hit[23] & reg_we & !reg_error;
+ assign com_out_ctl_1_interrupt_1_wd = reg_wdata[1];
+
+ assign com_out_ctl_1_ec_rst_1_we = addr_hit[23] & reg_we & !reg_error;
+ assign com_out_ctl_1_ec_rst_1_wd = reg_wdata[2];
+
+ assign com_out_ctl_1_gsc_rst_1_we = addr_hit[23] & reg_we & !reg_error;
+ assign com_out_ctl_1_gsc_rst_1_wd = reg_wdata[3];
+
+ assign com_out_ctl_2_bat_disable_2_we = addr_hit[24] & reg_we & !reg_error;
+ assign com_out_ctl_2_bat_disable_2_wd = reg_wdata[0];
+
+ assign com_out_ctl_2_interrupt_2_we = addr_hit[24] & reg_we & !reg_error;
+ assign com_out_ctl_2_interrupt_2_wd = reg_wdata[1];
+
+ assign com_out_ctl_2_ec_rst_2_we = addr_hit[24] & reg_we & !reg_error;
+ assign com_out_ctl_2_ec_rst_2_wd = reg_wdata[2];
+
+ assign com_out_ctl_2_gsc_rst_2_we = addr_hit[24] & reg_we & !reg_error;
+ assign com_out_ctl_2_gsc_rst_2_wd = reg_wdata[3];
+
+ assign com_out_ctl_3_bat_disable_3_we = addr_hit[25] & reg_we & !reg_error;
+ assign com_out_ctl_3_bat_disable_3_wd = reg_wdata[0];
+
+ assign com_out_ctl_3_interrupt_3_we = addr_hit[25] & reg_we & !reg_error;
+ assign com_out_ctl_3_interrupt_3_wd = reg_wdata[1];
+
+ assign com_out_ctl_3_ec_rst_3_we = addr_hit[25] & reg_we & !reg_error;
+ assign com_out_ctl_3_ec_rst_3_wd = reg_wdata[2];
+
+ assign com_out_ctl_3_gsc_rst_3_we = addr_hit[25] & reg_we & !reg_error;
+ assign com_out_ctl_3_gsc_rst_3_wd = reg_wdata[3];
+
+ assign combo_intr_status_combo0_h2l_we = addr_hit[26] & reg_we & !reg_error;
+ assign combo_intr_status_combo0_h2l_wd = reg_wdata[0];
+
+ assign combo_intr_status_combo1_h2l_we = addr_hit[26] & reg_we & !reg_error;
+ assign combo_intr_status_combo1_h2l_wd = reg_wdata[1];
+
+ assign combo_intr_status_combo2_h2l_we = addr_hit[26] & reg_we & !reg_error;
+ assign combo_intr_status_combo2_h2l_wd = reg_wdata[2];
+
+ assign combo_intr_status_combo3_h2l_we = addr_hit[26] & reg_we & !reg_error;
+ assign combo_intr_status_combo3_h2l_wd = reg_wdata[3];
+
+ assign key_intr_status_pwrb_h2l_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_pwrb_h2l_wd = reg_wdata[0];
+
+ assign key_intr_status_key0_in_h2l_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_key0_in_h2l_wd = reg_wdata[1];
+
+ assign key_intr_status_key1_in_h2l_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_key1_in_h2l_wd = reg_wdata[2];
+
+ assign key_intr_status_key2_in_h2l_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_key2_in_h2l_wd = reg_wdata[3];
+
+ assign key_intr_status_ac_present_h2l_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_ac_present_h2l_wd = reg_wdata[4];
+
+ assign key_intr_status_ec_rst_l_h2l_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_ec_rst_l_h2l_wd = reg_wdata[5];
+
+ assign key_intr_status_pwrb_l2h_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_pwrb_l2h_wd = reg_wdata[6];
+
+ assign key_intr_status_key0_in_l2h_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_key0_in_l2h_wd = reg_wdata[7];
+
+ assign key_intr_status_key1_in_l2h_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_key1_in_l2h_wd = reg_wdata[8];
+
+ assign key_intr_status_key2_in_l2h_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_key2_in_l2h_wd = reg_wdata[9];
+
+ assign key_intr_status_ac_present_l2h_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_ac_present_l2h_wd = reg_wdata[10];
+
+ assign key_intr_status_ec_rst_l_l2h_we = addr_hit[27] & reg_we & !reg_error;
+ assign key_intr_status_ec_rst_l_l2h_wd = reg_wdata[11];
+
+ // Read data return
+ always_comb begin
+ reg_rdata_next = '0;
+ unique case (1'b1)
+ addr_hit[0]: begin
+ reg_rdata_next[0] = intr_state_qs;
+ end
+
+ addr_hit[1]: begin
+ reg_rdata_next[0] = intr_enable_qs;
+ end
+
+ addr_hit[2]: begin
+ reg_rdata_next[0] = '0;
+ end
+
+ addr_hit[3]: begin
+ reg_rdata_next[0] = regwen_qs;
+ end
+
+ addr_hit[4]: begin
+ reg_rdata_next[15:0] = ec_rst_ctl_qs;
+ end
+
+ addr_hit[5]: begin
+ reg_rdata_next[0] = key_invert_ctl_key0_in_qs;
+ reg_rdata_next[1] = key_invert_ctl_key0_out_qs;
+ reg_rdata_next[2] = key_invert_ctl_key1_in_qs;
+ reg_rdata_next[3] = key_invert_ctl_key1_out_qs;
+ reg_rdata_next[4] = key_invert_ctl_key2_in_qs;
+ reg_rdata_next[5] = key_invert_ctl_key2_out_qs;
+ reg_rdata_next[6] = key_invert_ctl_pwrb_in_qs;
+ reg_rdata_next[7] = key_invert_ctl_pwrb_out_qs;
+ reg_rdata_next[8] = key_invert_ctl_ac_present_qs;
+ reg_rdata_next[9] = key_invert_ctl_bat_disable_qs;
+ end
+
+ addr_hit[6]: begin
+ reg_rdata_next[0] = pin_allowed_ctl_bat_disable_0_qs;
+ reg_rdata_next[1] = pin_allowed_ctl_ec_rst_l_0_qs;
+ reg_rdata_next[2] = pin_allowed_ctl_pwrb_out_0_qs;
+ reg_rdata_next[3] = pin_allowed_ctl_key0_out_0_qs;
+ reg_rdata_next[4] = pin_allowed_ctl_key1_out_0_qs;
+ reg_rdata_next[5] = pin_allowed_ctl_key2_out_0_qs;
+ reg_rdata_next[6] = pin_allowed_ctl_bat_disable_1_qs;
+ reg_rdata_next[7] = pin_allowed_ctl_ec_rst_l_1_qs;
+ reg_rdata_next[8] = pin_allowed_ctl_pwrb_out_1_qs;
+ reg_rdata_next[9] = pin_allowed_ctl_key0_out_1_qs;
+ reg_rdata_next[10] = pin_allowed_ctl_key1_out_1_qs;
+ reg_rdata_next[11] = pin_allowed_ctl_key2_out_1_qs;
+ end
+
+ addr_hit[7]: begin
+ reg_rdata_next[0] = pin_out_ctl_bat_disable_qs;
+ reg_rdata_next[1] = pin_out_ctl_ec_rst_l_qs;
+ reg_rdata_next[2] = pin_out_ctl_pwrb_out_qs;
+ reg_rdata_next[3] = pin_out_ctl_key0_out_qs;
+ reg_rdata_next[4] = pin_out_ctl_key1_out_qs;
+ reg_rdata_next[5] = pin_out_ctl_key2_out_qs;
+ end
+
+ addr_hit[8]: begin
+ reg_rdata_next[0] = pin_out_value_bat_disable_qs;
+ reg_rdata_next[1] = pin_out_value_ec_rst_l_qs;
+ reg_rdata_next[2] = pin_out_value_pwrb_out_qs;
+ reg_rdata_next[3] = pin_out_value_key0_out_qs;
+ reg_rdata_next[4] = pin_out_value_key1_out_qs;
+ reg_rdata_next[5] = pin_out_value_key2_out_qs;
+ end
+
+ addr_hit[9]: begin
+ reg_rdata_next[0] = pin_in_value_ac_present_qs;
+ reg_rdata_next[1] = pin_in_value_ec_rst_l_qs;
+ reg_rdata_next[2] = pin_in_value_pwrb_in_qs;
+ reg_rdata_next[3] = pin_in_value_key0_in_qs;
+ reg_rdata_next[4] = pin_in_value_key1_in_qs;
+ reg_rdata_next[5] = pin_in_value_key2_in_qs;
+ end
+
+ addr_hit[10]: begin
+ reg_rdata_next[0] = key_intr_ctl_pwrb_in_h2l_qs;
+ reg_rdata_next[1] = key_intr_ctl_key0_in_h2l_qs;
+ reg_rdata_next[2] = key_intr_ctl_key1_in_h2l_qs;
+ reg_rdata_next[3] = key_intr_ctl_key2_in_h2l_qs;
+ reg_rdata_next[4] = key_intr_ctl_ac_present_h2l_qs;
+ reg_rdata_next[5] = key_intr_ctl_ec_rst_l_h2l_qs;
+ reg_rdata_next[8] = key_intr_ctl_pwrb_in_l2h_qs;
+ reg_rdata_next[9] = key_intr_ctl_key0_in_l2h_qs;
+ reg_rdata_next[10] = key_intr_ctl_key1_in_l2h_qs;
+ reg_rdata_next[11] = key_intr_ctl_key2_in_l2h_qs;
+ reg_rdata_next[12] = key_intr_ctl_ac_present_l2h_qs;
+ reg_rdata_next[13] = key_intr_ctl_ec_rst_l_l2h_qs;
+ end
+
+ addr_hit[11]: begin
+ reg_rdata_next[15:0] = key_intr_debounce_ctl_qs;
+ end
+
+ addr_hit[12]: begin
+ reg_rdata_next[15:0] = auto_block_debounce_ctl_debounce_timer_qs;
+ reg_rdata_next[16] = auto_block_debounce_ctl_auto_block_enable_qs;
+ end
+
+ addr_hit[13]: begin
+ reg_rdata_next[0] = auto_block_out_ctl_key0_out_sel_qs;
+ reg_rdata_next[1] = auto_block_out_ctl_key1_out_sel_qs;
+ reg_rdata_next[2] = auto_block_out_ctl_key2_out_sel_qs;
+ reg_rdata_next[4] = auto_block_out_ctl_key0_out_value_qs;
+ reg_rdata_next[5] = auto_block_out_ctl_key1_out_value_qs;
+ reg_rdata_next[6] = auto_block_out_ctl_key2_out_value_qs;
+ end
+
+ addr_hit[14]: begin
+ reg_rdata_next[0] = com_sel_ctl_0_key0_in_sel_0_qs;
+ reg_rdata_next[1] = com_sel_ctl_0_key1_in_sel_0_qs;
+ reg_rdata_next[2] = com_sel_ctl_0_key2_in_sel_0_qs;
+ reg_rdata_next[3] = com_sel_ctl_0_pwrb_in_sel_0_qs;
+ reg_rdata_next[4] = com_sel_ctl_0_ac_present_sel_0_qs;
+ end
+
+ addr_hit[15]: begin
+ reg_rdata_next[0] = com_sel_ctl_1_key0_in_sel_1_qs;
+ reg_rdata_next[1] = com_sel_ctl_1_key1_in_sel_1_qs;
+ reg_rdata_next[2] = com_sel_ctl_1_key2_in_sel_1_qs;
+ reg_rdata_next[3] = com_sel_ctl_1_pwrb_in_sel_1_qs;
+ reg_rdata_next[4] = com_sel_ctl_1_ac_present_sel_1_qs;
+ end
+
+ addr_hit[16]: begin
+ reg_rdata_next[0] = com_sel_ctl_2_key0_in_sel_2_qs;
+ reg_rdata_next[1] = com_sel_ctl_2_key1_in_sel_2_qs;
+ reg_rdata_next[2] = com_sel_ctl_2_key2_in_sel_2_qs;
+ reg_rdata_next[3] = com_sel_ctl_2_pwrb_in_sel_2_qs;
+ reg_rdata_next[4] = com_sel_ctl_2_ac_present_sel_2_qs;
+ end
+
+ addr_hit[17]: begin
+ reg_rdata_next[0] = com_sel_ctl_3_key0_in_sel_3_qs;
+ reg_rdata_next[1] = com_sel_ctl_3_key1_in_sel_3_qs;
+ reg_rdata_next[2] = com_sel_ctl_3_key2_in_sel_3_qs;
+ reg_rdata_next[3] = com_sel_ctl_3_pwrb_in_sel_3_qs;
+ reg_rdata_next[4] = com_sel_ctl_3_ac_present_sel_3_qs;
+ end
+
+ addr_hit[18]: begin
+ reg_rdata_next[31:0] = com_det_ctl_0_qs;
+ end
+
+ addr_hit[19]: begin
+ reg_rdata_next[31:0] = com_det_ctl_1_qs;
+ end
+
+ addr_hit[20]: begin
+ reg_rdata_next[31:0] = com_det_ctl_2_qs;
+ end
+
+ addr_hit[21]: begin
+ reg_rdata_next[31:0] = com_det_ctl_3_qs;
+ end
+
+ addr_hit[22]: begin
+ reg_rdata_next[0] = com_out_ctl_0_bat_disable_0_qs;
+ reg_rdata_next[1] = com_out_ctl_0_interrupt_0_qs;
+ reg_rdata_next[2] = com_out_ctl_0_ec_rst_0_qs;
+ reg_rdata_next[3] = com_out_ctl_0_gsc_rst_0_qs;
+ end
+
+ addr_hit[23]: begin
+ reg_rdata_next[0] = com_out_ctl_1_bat_disable_1_qs;
+ reg_rdata_next[1] = com_out_ctl_1_interrupt_1_qs;
+ reg_rdata_next[2] = com_out_ctl_1_ec_rst_1_qs;
+ reg_rdata_next[3] = com_out_ctl_1_gsc_rst_1_qs;
+ end
+
+ addr_hit[24]: begin
+ reg_rdata_next[0] = com_out_ctl_2_bat_disable_2_qs;
+ reg_rdata_next[1] = com_out_ctl_2_interrupt_2_qs;
+ reg_rdata_next[2] = com_out_ctl_2_ec_rst_2_qs;
+ reg_rdata_next[3] = com_out_ctl_2_gsc_rst_2_qs;
+ end
+
+ addr_hit[25]: begin
+ reg_rdata_next[0] = com_out_ctl_3_bat_disable_3_qs;
+ reg_rdata_next[1] = com_out_ctl_3_interrupt_3_qs;
+ reg_rdata_next[2] = com_out_ctl_3_ec_rst_3_qs;
+ reg_rdata_next[3] = com_out_ctl_3_gsc_rst_3_qs;
+ end
+
+ addr_hit[26]: begin
+ reg_rdata_next[0] = combo_intr_status_combo0_h2l_qs;
+ reg_rdata_next[1] = combo_intr_status_combo1_h2l_qs;
+ reg_rdata_next[2] = combo_intr_status_combo2_h2l_qs;
+ reg_rdata_next[3] = combo_intr_status_combo3_h2l_qs;
+ end
+
+ addr_hit[27]: begin
+ reg_rdata_next[0] = key_intr_status_pwrb_h2l_qs;
+ reg_rdata_next[1] = key_intr_status_key0_in_h2l_qs;
+ reg_rdata_next[2] = key_intr_status_key1_in_h2l_qs;
+ reg_rdata_next[3] = key_intr_status_key2_in_h2l_qs;
+ reg_rdata_next[4] = key_intr_status_ac_present_h2l_qs;
+ reg_rdata_next[5] = key_intr_status_ec_rst_l_h2l_qs;
+ reg_rdata_next[6] = key_intr_status_pwrb_l2h_qs;
+ reg_rdata_next[7] = key_intr_status_key0_in_l2h_qs;
+ reg_rdata_next[8] = key_intr_status_key1_in_l2h_qs;
+ reg_rdata_next[9] = key_intr_status_key2_in_l2h_qs;
+ reg_rdata_next[10] = key_intr_status_ac_present_l2h_qs;
+ reg_rdata_next[11] = key_intr_status_ec_rst_l_l2h_qs;
+ end
+
+ default: begin
+ reg_rdata_next = '1;
+ end
+ endcase
+ end
+
+ // Unused signal tieoff
+
+ // wdata / byte enable are not always fully used
+ // add a blanket unused statement to handle lint waivers
+ logic unused_wdata;
+ logic unused_be;
+ assign unused_wdata = ^reg_wdata;
+ assign unused_be = ^reg_be;
+
+ // Assertions for Register Interface
+ `ASSERT_PULSE(wePulse, reg_we)
+ `ASSERT_PULSE(rePulse, reg_re)
+
+ `ASSERT(reAfterRv, $rose(reg_re || reg_we) |=> tl_o.d_valid)
+
+ `ASSERT(en2addrHit, (reg_we || reg_re) |-> $onehot0(addr_hit))
+
+ // this is formulated as an assumption such that the FPV testbenches do disprove this
+ // property by mistake
+ //`ASSUME(reqParity, tl_reg_h2d.a_valid |-> tl_reg_h2d.a_user.chk_en == tlul_pkg::CheckDis)
+
+endmodule