Verissimo SystemVerilog Testbench Linter User Guide
Rev. 24.1.7, 9 April 2024

3.1.10 Waivers Tab

The waivers tab can be used to add, remove, edit and inspect waivers and pre-waivers.

There are three types of waivers:

  • Manually defined waivers

  • Manually defined pre-waivers

  • Inline waivers (collected from code)

Waivers are used to change the status of the failures or remove the failures that are matched. Pre-waivers are used to exclude files from linting, therefore reducing the total linting time.

3.1.10.1 Waivers Editor

Manually defined waivers can be created using New... button from the Waivers tab. The Lint Waivers Editor dialog offers an easy way to configure a waiver. The parameters that can be configured are:

  • File: the file where the waiver will be saved (from the waivers include tree)

  • Name: an unique name for the waiver

  • Description: a short explanation for the waiver

  • Status: the status that will be applied to the matched failures

  • Apply on: the scope of the waiver (it applies on matched or non matched failures)

  • Paths: the file paths on which this waiver applies to

  • Check Names: the name of the checks this waiver applies to

  • Message Patterns: the regular expression this waiver must match (Perl-like or simple regular expression)

  • Line Ranges: the line, or line ranges (StartLine:EndLine) this waiver must match

  • Elements: the elements used to obtain a set of files that will be waived; files containing only such elements and all the files included in the scope of those elements will be waived

The status option can be set to:

  • DISABLED: failures are removed

  • ERROR: failures are reported as errors

  • WARNING: failures are reported as warnings

  • INFO: failures are reported as info

The waiver will match a failure if all defined parameters match the failure properties (the check that generated the failure, line, file, or message). If a parameter is empty (not defined) it will match any value.

3.1.10.2 Pre-Waivers Editor

Manually defined pre-waivers can be created using New... button from the Waivers tab and setting the Waiver Type to PRE-WAIVER. The parameters that can be configured are:

  • File: the file where the pre-waiver will be saved (from the waivers include tree)

  • Name: an unique name for the pre-waiver

  • Description: a short explanation for the pre-waiver

  • Apply on: the scope of the pre-waiver (it applies on matched or non matched paths)

  • Paths: the paths on which this waiver applies to

  • Check Names: the name of the checks this pre-waiver applies to

  • Elements: the elements used to obtain a set of files that will be pre-waived; files containing only such elements and all the files included in the scope of those elements will be pre-waived

3.1.10.3 Inline Waivers

Inline waivers can be inserted in code as comments with the following syntax:

// @DVT_LINTER_WAIVER_START ["NAME"] STATUS [CHECK_1, CHECK_2]
code line
...
code line
// @DVT_LINTER_WAIVER_END ["NAME"]

Where:

  • NAME: is the waiver unique name (optional) and must be enclosed within quotation marks

  • STATUS: is the status applied to the hits (mandatory) and must be one of the valid status values (DISABLE, ERROR, WARNING, INFO)

  • CHECK_1, CHECK_2: is a list of check names (optional) this waiver applies to, if it's not defined the waiver applies to all checks