| // Copyright lowRISC contributors. | 
 | // Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
 | // SPDX-License-Identifier: Apache-2.0 | 
 |  | 
 | package ${name}_env_pkg; | 
 |   // dep packages | 
 |   import uvm_pkg::*; | 
 |   import top_pkg::*; | 
 |   import dv_utils_pkg::*; | 
 |   import csr_utils_pkg::*; | 
 |   import tl_agent_pkg::*; | 
 | % for agent in env_agents: | 
 |   import ${agent}_agent_pkg::*; | 
 | % endfor | 
 |   import dv_lib_pkg::*; | 
 | % if is_cip: | 
 |   import cip_base_pkg::*; | 
 | % endif | 
 |  | 
 |   // macro includes | 
 |   `include "uvm_macros.svh" | 
 |   `include "dv_macros.svh" | 
 |  | 
 |   // parameters | 
 |  | 
 |   // types | 
 | % if env_agents == []: | 
 |   // forward declare classes to allow typedefs below | 
 |   typedef class ${name}_env_cfg; | 
 |   typedef class ${name}_env_cov; | 
 |  | 
 | % endif | 
 | % if env_agents == [] and is_cip: | 
 |   // reuse cip_base_virtual_seqeuencer as is with the right parameter set | 
 |   typedef class cip_base_virtual_sequencer #( | 
 | % elif env_agents == [] and not is_cip: | 
 |   // reuse dv_base_virtual_seqeuencer as is with the right parameter set | 
 |   typedef class dv_base_virtual_sequencer #( | 
 | % endif | 
 | % if env_agents == []: | 
 |       .CFG_T(${name}_env_cfg), | 
 |       .COV_T(${name}_env_cov) | 
 |   ) ${name}_virtual_sequencer; | 
 | % endif | 
 |  | 
 |   // functions | 
 |  | 
 |   // package sources | 
 |   `include "${name}_reg_block.sv" | 
 |   `include "${name}_env_cfg.sv" | 
 |   `include "${name}_env_cov.sv" | 
 | % if env_agents != []: | 
 |   `include "${name}_virtual_sequencer.sv" | 
 | % endif | 
 |   `include "${name}_scoreboard.sv" | 
 |   `include "${name}_env.sv" | 
 |   `include "${name}_vseq_list.sv" | 
 |  | 
 | endpackage |