blob: 6015801ed4a33983d7a3f12a0b3268f21c39bd25 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
package pwrmgr_env_pkg;
// dep packages
import uvm_pkg::*;
import top_pkg::*;
import dv_utils_pkg::*;
import dv_lib_pkg::*;
import tl_agent_pkg::*;
import cip_base_pkg::*;
import dv_base_reg_pkg::*;
import csr_utils_pkg::*;
import pwrmgr_ral_pkg::*;
import alert_esc_agent_pkg::*;
// macro includes
`include "uvm_macros.svh"
`include "dv_macros.svh"
// parameters
parameter int NUM_INTERRUPTS = 1;
// alerts
parameter uint NUM_ALERTS = 1;
parameter string LIST_OF_ALERTS[] = {"fatal_fault"};
// types
typedef enum int {
WakeupSysrst,
WakeupDbgCable,
WakeupPin,
WakeupUsb,
WakeupAonTimer,
WakeupSensorCtrl
} wakeup_e;
typedef struct packed {
logic main_pd_n;
logic usb_clk_en_active;
logic usb_clk_en_lp;
logic io_clk_en;
logic core_clk_en;
} control_enables_t;
typedef bit [pwrmgr_reg_pkg::NumWkups-1:0] wakeups_t;
typedef bit [pwrmgr_reg_pkg::NumRstReqs-1:0] resets_t;
// This is used to send all resets to rstmgr.
typedef bit [pwrmgr_pkg::HwResetWidth-1:0] resets_out_t;
// functions
// variables
bit [NUM_INTERRUPTS-1:0] exp_intr;
bit exp_wakeup_fall_through;
bit exp_wakeup_abort;
wakeups_t exp_wakeup_reasons;
control_enables_t control_enables;
logic low_power_hint;
// package sources
`include "pwrmgr_env_cfg.sv"
`include "pwrmgr_env_cov.sv"
`include "pwrmgr_virtual_sequencer.sv"
`include "pwrmgr_scoreboard.sv"
`include "pwrmgr_env.sv"
`include "pwrmgr_vseq_list.sv"
endpackage