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

// Common coverage commands that apply to all DUTs.
//
// This coverge config file is provided by Xcelium and is located at:
// ${XCELIUM_HOME}/tools/icc/include/all_coverage.ccf
// Xcelium recommends including it, since it bundles together the common set of commands that enable
// coverage collection on various design elements, that are otherwise turned off by default. We
// maintain it locally with minor amends.

// Enables expression coverage of various Verilog operators.
set_expr_coverable_operators -all -event_or

// Enables expression coverage of operators in various conditions and assignments.
set_expr_coverable_statements -procassign -event_control -misc

// Enables scoring of Verilog modules compiled with -v/-y or -libcell option but continues to
// disable the scoring of Verilog modules defined with the 'celldefine compiler directive.
set_libcell_scoring

// Enables scoring of SystemVerilog continuous assignments, which is by disabled by default.
set_assign_scoring

// Scores branches together with block coverage.
set_branch_scoring

// Scores statements within a block.
set_statement_scoring

// Enables Toggle scoring and reporting of SystemVerilog enumerations and multidimensional static
// arrays , vectors, packed union, modport and generate blocks.
set_toggle_scoring -sv_enum enable_mda -sv_struct_with_enum -sv_modport -sv_mda 16 -sv_mda_of_struct -sv_generate -sv_packed_union

// Enable toggle coverage only on ports.
set_toggle_portsonly

// Enable scoring of FSM arcs (state transitions).
// TODO: re-enable this setting, temp disable due to #12544
// set_fsm_arc_scoring

// Include X->1|0 for toggle coverage collection. #10332
set_toggle_includex

// For ternary operator in default SOP mode
set_expr_scoring -vlog_short_circuit
