Entity: pwrmgr
- File: pwrmgr.sv
Diagram
Description
Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0
Power Manager
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| NumAlerts | logic [NumAlerts-1:0] | undefined |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| clk_slow_i | input | Clocks and resets | |
| clk_i | input | ||
| rst_slow_ni | input | ||
| rst_ni | input | ||
| tl_i | input | Bus Interface | |
| tl_o | output | ||
| alert_rx_i | input | [NumAlerts-1:0] | Alerts |
| alert_tx_o | output | [NumAlerts-1:0] | |
| pwr_ast_i | input | pwr_ast_rsp_t | AST interface |
| pwr_ast_o | output | pwr_ast_req_t | |
| pwr_rst_i | input | pwr_rst_rsp_t | rstmgr interface |
| pwr_rst_o | output | pwr_rst_req_t | |
| pwr_clk_o | output | pwr_clk_req_t | clkmgr interface |
| pwr_clk_i | input | pwr_clk_rsp_t | |
| pwr_otp_i | input | pwr_otp_rsp_t | otp interface |
| pwr_otp_o | output | pwr_otp_req_t | |
| pwr_lc_i | input | pwr_lc_rsp_t | life cycle interface |
| pwr_lc_o | output | pwr_lc_req_t | |
| pwr_flash_i | input | pwr_flash_t | flash interface |
| pwr_cpu_i | input | pwr_cpu_t | processor interface |
| fetch_en_o | output | ||
| wakeups_i | input | [NumWkups-1:0] | peripherals wakeup and reset requests |
| rstreqs_i | input | [NumRstReqs-1:0] | |
| strap_o | output | pinmux and other peripherals | |
| low_power_o | output | ||
| rom_ctrl_i | input | rom_ctrl interface | |
| esc_rst_tx_i | input | escalation interface | |
| esc_rst_rx_o | output | ||
| intr_wakeup_o | output |
Signals
| Name | Type | Description |
|---|---|---|
| esc_rst_req | logic | ////////////////////////// / escalation detections ////////////////////////// |
| peri_reqs_raw | pwr_peri_t | ////////////////////////// / async declarations ////////////////////////// |
| reg2hw | pwrmgr_reg2hw_t | ////////////////////////// / clk_i domain declarations ////////////////////////// |
| hw2reg | pwrmgr_hw2reg_t | |
| peri_reqs_masked | pwr_peri_t | |
| req_pwrup | logic | |
| ack_pwrup | logic | |
| req_pwrdn | logic | |
| ack_pwrdn | logic | |
| pwrup_cause | pwrup_cause_e | |
| low_power_fall_through | logic | |
| low_power_abort | logic | |
| flash_rsp | pwr_flash_t | |
| otp_rsp | pwr_otp_rsp_t | |
| rom_ctrl_done | logic | |
| rom_ctrl_good | logic | |
| slow_wakeup_en | logic [NumWkups-1:0] | ////////////////////////// / clk_slow_i domain declarations ////////////////////////// Captured signals These signals, though on clk_i domain, are safe for clk_slow_i to use |
| slow_reset_en | logic [NumRstReqs-1:0] | |
| slow_ast | pwr_ast_rsp_t | |
| slow_peri_reqs | pwr_peri_t | |
| slow_peri_reqs_masked | pwr_peri_t | |
| slow_pwrup_cause | pwrup_cause_e | |
| slow_pwrup_cause_toggle | logic | |
| slow_req_pwrup | logic | |
| slow_ack_pwrup | logic | |
| slow_req_pwrdn | logic | |
| slow_ack_pwrdn | logic | |
| slow_main_pd_n | logic | |
| slow_io_clk_en | logic | |
| slow_core_clk_en | logic | |
| slow_usb_clk_en_lp | logic | |
| slow_usb_clk_en_active | logic | |
| alert_test | logic [NumAlerts-1:0] | ////////////////////////// / Register module ////////////////////////// |
| alerts | logic [NumAlerts-1:0] | ////////////////////////// / Register module ////////////////////////// |
| low_power_hint | logic | |
| lowpwr_cfg_wen | logic | |
| clr_hint | logic | |
| wkup | logic | |
| clr_cfg_lock | logic | |
| wake_info_wen | logic | ////////////////////////// / Wakeup Info Capture ////////////////////////// |
| wake_info_data | logic [TotalWakeWidth-1:0] |
Processes
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
Instantiations
- u_esc_rx: prim_esc_receiver
- u_reg: pwrmgr_reg_top
- i_cdc: pwrmgr_cdc
Description
//////////////////////////
/ cdc handling
//////////////////////////
- i_slow_fsm: pwrmgr_slow_fsm
Description
//////////////////////////
/ clk_slow FSM
//////////////////////////
- i_fsm: pwrmgr_fsm
- i_wake_info: pwrmgr_wake_info
- intr_wakeup: prim_intr_hw
Description
//////////////////////////
/ Interrupts
//////////////////////////
This interrupt is asserted whenever the fast FSM transitions
into active state. However, it does not assert during POR