blob: ff360a11489e4989ba4882fd1f65b9a57b749b00 [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 clkmgr_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 clkmgr_ral_pkg::*;
import lc_ctrl_pkg::lc_tx_t;
import lc_ctrl_pkg::On;
import lc_ctrl_pkg::Off;
// macro includes
`include "uvm_macros.svh"
`include "dv_macros.svh"
typedef virtual clkmgr_if clkmgr_vif;
typedef virtual clk_rst_if clk_rst_vif;
// parameters
localparam int NUM_PERI = 4;
localparam int NUM_TRANS = 5;
// alerts
parameter uint NUM_ALERTS = 1;
parameter string LIST_OF_ALERTS[] = {"fatal_fault"};
// types
// The enum values for these match the bit order in the CSRs.
typedef enum int {
PeriDiv4,
PeriDiv2,
PeriIo,
PeriUsb
} peri_e;
typedef enum int {
TransAes,
TransHmac,
TransKmac,
TransOtbnIoDiv4,
TransOtbnMain
} trans_e;
typedef enum int {
SrcMain,
SrcIoDiv4
} src_e;
// functions
// package sources
`include "clkmgr_env_cfg.sv"
`include "clkmgr_env_cov.sv"
`include "clkmgr_virtual_sequencer.sv"
`include "clkmgr_scoreboard.sv"
`include "clkmgr_env.sv"
`include "clkmgr_vseq_list.sv"
endpackage