blob: acc6b099b0bb604ea9de55d6a5787d80fae45d21 [file] [log] [blame]
package rstmgr_pkg;
// global constants
parameter int ALWAYS_ON_SEL = 0;
// params that reference pwrmgr, should be replaced once pwrmgr is merged
//localparam int AlwaysOnSel = pwrmgr_pkg::AlwaysOnDomain;
//localparam int ExtResetReasons = pwrmgr_pkg::HwRstReqs;
localparam int PowerDomains = 2;
localparam int OffDomains = PowerDomains-1;
localparam int ExtResetReasons = 2;
// low power exit + external reasons + ndm_reset_req
localparam int ResetReasons = 1 + ExtResetReasons + 1;
// reasons for pwrmgr reset reset
typedef enum logic [1:0] {
None = 0,
LowPwrEntry = 1,
HwReq = 2,
Undefined = 3
} reset_cause_e;
// pwrmgr interface (these are declared in pwrmgr_pkg), should remove once present
typedef struct packed {
logic [PowerDomains-1:0] rst_lc_req;
logic [PowerDomains-1:0] rst_sys_req;
reset_cause_e reset_cause;
} pwr_rst_req_t;
// rstmgr to pwrmgr
typedef struct packed {
logic [PowerDomains-1:0] rst_lc_src_n;
logic [PowerDomains-1:0] rst_sys_src_n;
} pwr_rst_rsp_t;
// ast interface
typedef struct packed {
logic vcc_pok;
logic alw_pok;
} rstmgr_ast_t;
// default value for rstmgr_ast_rsp_t (for dangling ports)
parameter rstmgr_ast_t RSTMGR_AST_DEFAULT = '{
vcc_pok: 1'b1,
alw_pok: 1'b1
};
// resets generated and broadcast
// This should be templatized and generated
typedef struct packed {
logic rst_por_n;
logic rst_lc_n;
logic rst_sys_fixed_n;
logic rst_sys_n;
logic rst_spi_device_n;
logic rst_usb_n;
} rstmgr_out_t;
// peripherals reset requests
typedef struct packed {
logic rst_cpu_n;
logic ndmreset_req;
} rstmgr_cpu_t;
// default value for rstmgr_ast_rsp_t (for dangling ports)
parameter rstmgr_cpu_t RSTMGR_CPU_DEFAULT = '{
rst_cpu_n: 1'b1,
ndmreset_req: '0
};
// peripherals reset requests
typedef struct packed {
logic [ExtResetReasons-1:0] rst_reqs;
} rstmgr_peri_t;
// default value for rstmgr_ast_rsp_t (for dangling ports)
parameter rstmgr_peri_t RSTMGR_PERI_DEFAULT = '{
rst_reqs: '0
};
endpackage // rstmgr_pkg