CAPI=2:
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:${name}_env:0.1"
description: "${name.upper()} DV UVM environment"
filesets:
  files_dv:
    depend:
% if has_ral:
      - lowrisc:dv:ralgen
% endif
% if is_cip:
      - lowrisc:dv:cip_lib
% else:
      - lowrisc:dv:dv_lib
% endif
% for agent in env_agents:
      - lowrisc:dv:${agent}_agent
% endfor
    files:
      - ${name}_env_pkg.sv
      - ${name}_env_cfg.sv: {is_include_file: true}
      - ${name}_env_cov.sv: {is_include_file: true}
% if env_agents != []:
      - ${name}_virtual_sequencer.sv: {is_include_file: true}
% endif
      - ${name}_scoreboard.sv: {is_include_file: true}
      - ${name}_env.sv: {is_include_file: true}
      - seq_lib/${name}_vseq_list.sv: {is_include_file: true}
      - seq_lib/${name}_base_vseq.sv: {is_include_file: true}
      - seq_lib/${name}_common_vseq.sv: {is_include_file: true}
      - seq_lib/${name}_sanity_vseq.sv: {is_include_file: true}
    file_type: systemVerilogSource

% if has_ral:
generate:
  ral:
    generator: ralgen
    parameters:
      name: ${name}
      ip_hjson: ../../data/${name}.hjson
% endif

targets:
  default:
    filesets:
      - files_dv
% if has_ral:
    generate:
      - ral
% endif
