// Copyright lowRISC contributors (OpenTitan project).
// 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
-moduletree prim_secded_inv_39_32_dec
-moduletree prim_secded_inv_64_57_enc
-moduletree prim_secded_inv_39_32_enc

// The DV environment binds in some modules to add CSR and TileLink
// assertions. Disable all coverage for these modules here. We'll
// enable assertion coverage for the modules below.
-moduletree *csr_assert_fpv
-moduletree tlul_assert

-module prim_cdc_rand_delay  // DV construct.

begin assert
  // Enable assertion coverage for bound-in assertion modules (we
  // disabled all coverage earlier in the file)
  +moduletree *csr_assert_fpv
  +moduletree tlul_assert
end

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
