Entity: sysrst_ctrl
- File: sysrst_ctrl.sv
Diagram
Description
Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0
sysrst_ctrl module
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| NumAlerts | logic [NumAlerts-1:0] | undefined |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| clk_i | input | Always-on 24MHz clock(config) | |
| clk_aon_i | input | Always-on 200KHz clock(logic) | |
| rst_ni | input | power-on reset for the 24MHz clock(config) | |
| rst_aon_ni | input | power-on reset for the 200KHz clock(logic) | |
| tl_i | input | Register interface | |
| tl_o | output | ||
| alert_rx_i | input | [NumAlerts-1:0] | Alerts |
| alert_tx_o | output | [NumAlerts-1:0] | |
| aon_sysrst_ctrl_wkup_req_o | output | OT wake to pwrmgr | |
| aon_sysrst_ctrl_rst_req_o | output | OT reset to rstmgr | |
| intr_sysrst_ctrl_o | output | sysrst_ctrl interrupt to PLIC | |
| cio_ac_present_i | input | AC power is present | |
| cio_ec_rst_l_i | input | EC reset is asserted by some other system agent | |
| cio_key0_in_i | input | VolUp button in tablet; column output from the EC in a laptop | |
| cio_key1_in_i | input | VolDown button in tablet; row input from keyboard matrix in a laptop | |
| cio_key2_in_i | input | TBD button in tablet; row input from keyboard matrix in a laptop | |
| cio_pwrb_in_i | input | Power button in both tablet and laptop | |
| cio_lid_open_i | input | lid is open from GMR | |
| cio_bat_disable_o | output | Battery is disconnected | |
| cio_flash_wp_l_o | output | Flash write protect is asserted by sysrst_ctrl | |
| cio_ec_rst_l_o | output | EC reset is asserted by sysrst_ctrl | |
| cio_key0_out_o | output | Passthrough from key0_in, can be configured to invert | |
| cio_key1_out_o | output | Passthrough from key1_in, can be configured to invert | |
| cio_key2_out_o | output | Passthrough from key2_in, can be configured to invert | |
| cio_pwrb_out_o | output | Passthrough from pwrb_in, can be configured to invert | |
| cio_z3_wakeup_o | output | Exit from Z4 sleep mode and enter Z3 mode | |
| cio_bat_disable_en_o | output | ||
| cio_flash_wp_l_en_o | output | ||
| cio_ec_rst_l_en_o | output | ||
| cio_key0_out_en_o | output | ||
| cio_key1_out_en_o | output | ||
| cio_key2_out_en_o | output | ||
| cio_pwrb_out_en_o | output | ||
| cio_z3_wakeup_en_o | output |
Signals
| Name | Type | Description |
|---|---|---|
| reg2hw | sysrst_ctrl_reg2hw_t | |
| hw2reg | sysrst_ctrl_hw2reg_t | |
| alert_test | logic [NumAlerts-1:0] | |
| alerts | logic [NumAlerts-1:0] | |
| pwrb_int | logic | ///////////////////////////////////// Input inversion and Synchronizers // ///////////////////////////////////// Optionally invert some of the input signals |
| key0_int | logic | ///////////////////////////////////// Input inversion and Synchronizers // ///////////////////////////////////// Optionally invert some of the input signals |
| key1_int | logic | ///////////////////////////////////// Input inversion and Synchronizers // ///////////////////////////////////// Optionally invert some of the input signals |
| key2_int | logic | ///////////////////////////////////// Input inversion and Synchronizers // ///////////////////////////////////// Optionally invert some of the input signals |
| ac_present_int | logic | ///////////////////////////////////// Input inversion and Synchronizers // ///////////////////////////////////// Optionally invert some of the input signals |
| lid_open_int | logic | ///////////////////////////////////// Input inversion and Synchronizers // ///////////////////////////////////// Optionally invert some of the input signals |
| ec_rst_l_int | logic | ///////////////////////////////////// Input inversion and Synchronizers // ///////////////////////////////////// Optionally invert some of the input signals |
| aon_pwrb_int | logic | Synchronize input signals to AON clock |
| aon_key0_int | logic | Synchronize input signals to AON clock |
| aon_key1_int | logic | Synchronize input signals to AON clock |
| aon_key2_int | logic | Synchronize input signals to AON clock |
| aon_ac_present_int | logic | |
| aon_lid_open_int | logic | |
| aon_ec_rst_l_int | logic | |
| pwrb_out_hw | logic | ///////////// Autoblock // ///////////// This module operates on both synchronized and unsynchronized signals. I.e., the passthrough signals are NOT synchronnous to the AON clock. |
| key0_out_hw | logic | ///////////// Autoblock // ///////////// This module operates on both synchronized and unsynchronized signals. I.e., the passthrough signals are NOT synchronnous to the AON clock. |
| key1_out_hw | logic | ///////////// Autoblock // ///////////// This module operates on both synchronized and unsynchronized signals. I.e., the passthrough signals are NOT synchronnous to the AON clock. |
| key2_out_hw | logic | ///////////// Autoblock // ///////////// This module operates on both synchronized and unsynchronized signals. I.e., the passthrough signals are NOT synchronnous to the AON clock. |
| aon_z3_wakeup_hw | logic | /////// ULP // /////// This module runs on the AON clock entirely. Hence, its local signals are not prefixed with aon_*. |
| aon_ulp_wakeup_pulse_int | logic | |
| aon_sysrst_ctrl_key_intr | logic | /////////////////////////// Key triggered interrups // /////////////////////////// This module runs on the AON clock entirely. Hence, its local signals are not prefixed with aon_*. |
| aon_sysrst_ctrl_combo_intr | logic | /////////////////// Combo detection // /////////////////// This module runs on the AON clock entirely. Hence, its local signals are not prefixed with aon_*. |
| aon_bat_disable_hw | logic | /////////////////// Combo detection // /////////////////// This module runs on the AON clock entirely. Hence, its local signals are not prefixed with aon_*. |
| aon_ec_rst_l_hw | logic | /////////////////// Combo detection // /////////////////// This module runs on the AON clock entirely. Hence, its local signals are not prefixed with aon_*. |
| pwrb_out_int | logic | ///////////////////////////// Pin visibility / override // ///////////////////////////// This module operates on both synchronized and unsynchronized signals. I.e., the passthrough signals are NOT synchronnous to the AON clock. |
| key0_out_int | logic | ///////////////////////////// Pin visibility / override // ///////////////////////////// This module operates on both synchronized and unsynchronized signals. I.e., the passthrough signals are NOT synchronnous to the AON clock. |
| key1_out_int | logic | ///////////////////////////// Pin visibility / override // ///////////////////////////// This module operates on both synchronized and unsynchronized signals. I.e., the passthrough signals are NOT synchronnous to the AON clock. |
| key2_out_int | logic | ///////////////////////////// Pin visibility / override // ///////////////////////////// This module operates on both synchronized and unsynchronized signals. I.e., the passthrough signals are NOT synchronnous to the AON clock. |
| aon_bat_disable_out_int | logic | ///////////////////////////// Pin visibility / override // ///////////////////////////// This module operates on both synchronized and unsynchronized signals. I.e., the passthrough signals are NOT synchronnous to the AON clock. |
| aon_z3_wakeup_out_int | logic | |
| aon_ec_rst_out_int_l | logic | |
| aon_flash_wp_out_int_l | logic | |
| wkup_req | logic | sync the wakeup request (level) to bus clock to trigger an IRQ. |
Instantiations
- u_reg: sysrst_ctrl_reg_top
- u_prim_flop_2sync_input: prim_flop_2sync
- u_sysrst_ctrl_autoblock: sysrst_ctrl_autoblock
- u_sysrst_ctrl_ulp: sysrst_ctrl_ulp
- u_sysrst_ctrl_keyintr: sysrst_ctrl_keyintr
- u_sysrst_ctrl_combo: sysrst_ctrl_combo
- u_sysrst_ctrl_pin: sysrst_ctrl_pin
- u_prim_flop_2sync: prim_flop_2sync
- u_prim_intr_hw: prim_intr_hw
Description
Instantiate the interrupt module