// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

// Enables coverage on the entire DUT. Limits the port only toggle coverage to
// the DUT IOs.

+tree tb.dut
-module pins_if     // DV construct.
-module clk_rst_if  // DV construct.

// The modules below are preverified in FPV and / or DV testbenches.
-moduletree prim_alert_sender
-moduletree prim_alert_receiver
-moduletree prim_count
-moduletree prim_esc_sender
-moduletree prim_esc_receiver
-moduletree prim_lfsr
-moduletree prim_onehot_check
-moduletree prim_prince
-moduletree prim_secded_inv_64_57_dec // use in reg_top
-moduletree prim_secded_inv_39_32_dec // use in reg_top

// csr_assert_fpv is an auto-generated csr read assertion module. So only assertion coverage is
// meaningful to collect.
-moduletree *csr_assert_fpv
-module prim_cdc_rand_delay  // DV construct.

begin tgl
  -tree tb
  +tree tb.dut 1
  +module prim_alert_sender
  +module prim_alert_receiver
  +module prim_count
  +module prim_esc_sender
  +module prim_esc_receiver
  +module prim_lfsr
  +module prim_onehot_check
  +module prim_prince
  +module prim_secded_inv_64_57_dec
  +module prim_secded_inv_39_32_dec
end

begin assert
  +moduletree *csr_assert_fpv
end
