Entity: pwrmgr_fsm
- File: pwrmgr_fsm.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 Fast FSM
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| clk_i | input | ||
| rst_ni | input | ||
| clk_slow_i | input | ||
| rst_slow_ni | input | ||
| req_pwrup_i | input | interface with slow_fsm | |
| pwrup_cause_i | input | pwrup_cause_e | |
| ack_pwrup_o | output | ||
| req_pwrdn_o | output | ||
| ack_pwrdn_i | input | ||
| low_power_entry_i | input | ||
| main_pd_ni | input | ||
| reset_reqs_i | input | [NumRstReqs:0] | |
| wkup_o | output | generate wake interrupt | |
| fall_through_o | output | ||
| abort_o | output | ||
| clr_hint_o | output | ||
| clr_cfg_lock_o | output | ||
| pwr_rst_o | output | pwr_rst_req_t | rstmgr |
| pwr_rst_i | input | pwr_rst_rsp_t | |
| ips_clk_en_o | output | clkmgr | |
| clk_en_status_i | input | ||
| otp_init_o | output | otp | |
| otp_done_i | input | ||
| otp_idle_i | input | ||
| lc_init_o | output | lc | |
| lc_done_i | input | ||
| lc_idle_i | input | ||
| flash_idle_i | input | flash | |
| rom_ctrl_done_i | input | rom_ctrl | |
| rom_ctrl_good_i | input | ||
| strap_o | output | pinmux | |
| low_power_o | output | ||
| fetch_en_o | output | processing elements |
Signals
| Name | Type | Description |
|---|---|---|
| pd_n_rsts_asserted | logic | all powered down domains have resets asserted |
| all_rsts_asserted | logic | all domains have resets asserted |
| reset_valid | logic | resets are valid |
| reset_cause_q | reset_cause_e | |
| reset_cause_d | reset_cause_e | |
| reset_req | logic | reset request |
| strap_sampled | logic | strap sample should only happen on cold boot or when the the system goes through a reset cycle |
| fetch_en_q | lc_ctrl_pkg::lc_tx_t | disable processing element fetching |
| fetch_en_d | lc_ctrl_pkg::lc_tx_t | disable processing element fetching |
| state_d | fast_pwr_state_e | |
| state_q | fast_pwr_state_e | |
| reset_ongoing_q | logic | |
| reset_ongoing_d | logic | |
| req_pwrdn_q | logic | |
| req_pwrdn_d | logic | |
| ack_pwrup_q | logic | |
| ack_pwrup_d | logic | |
| ip_clk_en_q | logic | |
| ip_clk_en_d | logic | |
| rst_lc_req_q | logic [PowerDomains-1:0] | |
| rst_sys_req_q | logic [PowerDomains-1:0] | |
| rst_lc_req_d | logic [PowerDomains-1:0] | |
| rst_sys_req_d | logic [PowerDomains-1:0] | |
| otp_init | logic | |
| lc_init | logic | |
| low_power_q | logic | |
| low_power_d | logic | |
| rst_sys_src_n | [PowerDomains-1:OffDomainSelStart] | |
| slow_lc_done | logic | Life cycle broadcast may take time to propagate through the system. The sync below simulates that behavior using the slowest clock in the system. |
| lc_done | logic |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| OffDomainSelStart | int | ALWAYS_ON_DOMAIN + 1 | when there are multiple on domains, the latter 1 should become another parameter |
Processes
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( )
Type: always_comb
Instantiations
- u_fetch_en: prim_lc_sender
- u_slow_sync_lc_done: prim_flop_2sync
- u_sync_lc_done: prim_flop_2sync
- u_reg_otp_init: prim_flop
- u_reg_lc_init: prim_flop