Package: pwrmgr_pkg
- File: pwrmgr_pkg.sv
Description
Copyright lowRISC contributors.
Licensed under the Apache License, Version 2.0, see LICENSE for details.
SPDX-License-Identifier: Apache-2.0
Power Manager Package
Constants
Name | Type | Value | Description |
---|---|---|---|
ALWAYS_ON_DOMAIN | int | 0 | |
PowerDomains | int | 2 | this needs to be a topgen populated number, or from topcfg? |
TotalWakeWidth | int | pwrmgr_reg_pkg::NumWkups + 2 | Abort and fall through are added |
pwr_ast_rsp_t | pwr_ast_rsp_t | undefined | default value of pwr_ast_rsp (for dangling ports) |
PWR_AST_RSP_SYNC_DEFAULT | pwr_ast_rsp_t | ||
PWR_RST_RSP_DEFAULT | pwr_rst_rsp_t | default value (for dangling ports) | |
pwr_otp_rsp_t | pwr_otp_rsp_t | undefined | default value (for dangling ports) |
pwr_lc_rsp_t | pwr_lc_rsp_t | undefined | default value (for dangling ports) |
pwr_flash_t | pwr_flash_t | undefined | |
pwr_cpu_t | pwr_cpu_t | undefined | default value (for dangling ports) |
WAKEUPS_DEFAULT | int | '0 | default value (for dangling ports) |
RSTREQS_DEFAULT | int | '0 |
Types
Name | Type | Description |
---|---|---|
pwr_ast_req_t | struct packed { logic main_pd_n; logic pwr_clamp_env; logic pwr_clamp; logic slow_clk_en; logic core_clk_en; logic io_clk_en; logic usb_clk_en; } |
// The following structs should eventually be relocated to other modules. typedef enum logic [1:0] { DiffValid = 2'b10, DiffInvalid = 2'b01 } pwrmgr_diff_e; pwrmgr to ast |
pwr_ast_rsp_t | struct packed { logic slow_clk_val; logic core_clk_val; logic io_clk_val; logic usb_clk_val; logic main_pok; } |
|
pwr_rst_req_t | struct packed { logic [PowerDomains-1:0] rst_lc_req; logic [PowerDomains-1:0] rst_sys_req; logic [pwrmgr_reg_pkg::NumRstReqs:0] rstreqs; reset_cause_e reset_cause; } |
pwrmgr to rstmgr |
pwr_rst_rsp_t | struct packed { logic [PowerDomains-1:0] rst_lc_src_n; logic [PowerDomains-1:0] rst_sys_src_n; } |
rstmgr to pwrmgr |
pwr_clk_rsp_t | struct packed { logic clk_status; } |
clkmgr to pwrmgr |
pwr_otp_req_t | struct packed { logic otp_init; } |
pwrmgr to otp |
pwr_otp_rsp_t | struct packed { logic otp_done; logic otp_idle; } |
otp to pwrmgr |
pwr_lc_req_t | struct packed { logic lc_init; } |
pwrmgr to lifecycle |
pwr_lc_rsp_t | struct packed { logic lc_done; logic lc_idle; } |
lifecycle to pwrmgr |
pwr_flash_t | struct packed { logic flash_idle; } |
|
pwr_cpu_t | struct packed { logic core_sleeping; } |
processor to pwrmgr |
pwr_peri_t | struct packed { logic [pwrmgr_reg_pkg::NumWkups-1:0] wakeups; logic [pwrmgr_reg_pkg::NumRstReqs:0] rstreqs; } |
peripherals to pwrmgr |
pwrup_cause_e | enum logic [1:0] { Por = 2'h0, Wake = 2'h1, Reset = 2'h2 } |
power-up causes |
low_power_hint_e | enum logic { None = 1'b0, LowPower = 1'b1 } |
low power hints |
fast_pwr_state_e | enum logic [4:0] { FastPwrStateLowPower, FastPwrStateEnableClocks, FastPwrStateReleaseLcRst, FastPwrStateOtpInit, FastPwrStateLcInit, FastPwrStateStrap, FastPwrStateAckPwrUp, FastPwrStateRomCheck, FastPwrStateActive, FastPwrStateDisClks, FastPwrStateFallThrough, FastPwrStateNvmIdleChk, FastPwrStateLowPowerPrep, FastPwrStateNvmShutDown, FastPwrStateResetPrep, FastPwrStateReqPwrDn } |
fast fsm state enum |
slow_pwr_state_e | enum logic [3:0] { SlowPwrStateReset, SlowPwrStateLowPower, SlowPwrStateMainPowerOn, SlowPwrStatePwrClampOff, SlowPwrStateClocksOn, SlowPwrStateReqPwrUp, SlowPwrStateIdle, SlowPwrStateAckPwrDn, SlowPwrStateClocksOff, SlowPwrStatePwrClampOn, SlowPwrStateMainPowerOff } |
slow fsm state enum |