blob: f42fe4b6c4219281d95c0fff5834f47828a9f5b8 [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 keymgr_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 keymgr_ral_pkg::*;
import keymgr_kmac_agent_pkg::*;
// macro includes
`include "uvm_macros.svh"
`include "dv_macros.svh"
// parameters and types
parameter string LIST_OF_ALERTS[] = {"fatal_fault_err", "recov_operation_err"};
parameter uint NUM_ALERTS = 2;
parameter uint DIGEST_SHARE_WORD_NUM = keymgr_pkg::KeyWidth / TL_DW;
typedef virtual keymgr_if keymgr_vif;
typedef bit [keymgr_pkg::Shares-1:0][keymgr_pkg::KeyWidth-1:0] key_shares_t;
typedef enum {
IntrOpDone,
NumKeyMgrIntr
} keymgr_intr_e;
// functions
// state is incremental, if it's not in defined enum, consider as StDisabled
function automatic keymgr_pkg::keymgr_working_state_e get_next_state(
keymgr_pkg::keymgr_working_state_e current_state);
uint next_state = int'(current_state) + 1;
if (next_state >= int'(keymgr_pkg::StDisabled)) begin
return keymgr_pkg::StDisabled;
end else begin
return next_state;
end
endfunction
// package sources
`include "keymgr_env_cfg.sv"
`include "keymgr_env_cov.sv"
`include "keymgr_virtual_sequencer.sv"
`include "keymgr_scoreboard.sv"
`include "keymgr_env.sv"
`include "keymgr_vseq_list.sv"
endpackage