Verissimo SystemVerilog Testbench Linter User Guide
Rev. 21.1.40, 21 September 2021

Chapter 2. Run in Batch Mode

Verissimo can be invoked in batch mode by running:

$DVT_HOME/bin/verissimo.sh ...

Main Use Cases

  • Generate the HTML documentation of all the available rules:

verissimo.sh -gen_rulepool_doc

  • Generate the XML ruleset of all the available rules:

verissimo.sh -gen_rulepool_xml

  • Generate the XML ruleset of all the available rules, displaying id, default title and parameters for each rule

verissimo.sh -gen_rulepool_xml -rulepool_xml_include id,title,parameters

  • Run all rules

verissimo.sh -cmd my_compile.args

  • Run all rules and generate HTML lint report

verissimo.sh -cmd my_compile.args -gen_html_report

  • Run a specific ruleset

verissimo.sh -cmd my_compile.args -ruleset my_ruleset.xml

  • Run the XVM compliance ruleset

verissimo.sh -cmd my_compile.args -compliance

  • Generate the HTML documentation for a specific ruleset

verissimo.sh -gen_ruleset_doc -ruleset my_ruleset.xml

Arguments

Argument Description
basic Optional. Run the "Basic Rules".
cmd <command file> Mandatory. Compile using the specified compilation arguments file.
compare <directory>Optional. Directory of the HTML report to be compared with the report specified by the next 'compare' argument.
compare_baseline <directory>Optional. Directory of the baseline HTML report to be compared with the current report specified by the 'compare_current' argument.
compare_current <directory>Optional. Directory of the current HTML report to be compared with the baseline report specified by the 'compare_baseline' argument.
compile_waivers <file>Optional. Waive compilation errors using the waivers specified in the XML file. See Compile Waivers.
compliance Optional. Run the "XVM Compliance Rules".
custom_report_locationOptional. Destination directory for the custom lint report.
custom_rules <jars>Optional. Path to jars containing custom rules.
dead_codeOptional. Run the "Dead Code Rules".
debug_custom_rules <class>Optional. Name of the custom rule class to be debugged.
debug_custom_rules_from_files <files>Optional. Path of the file containing custom rule class names to be debugged.
diff <directory>Optional. Directory of the HTML report to be differentiated with other reports specified by subsequent 'diff' arguments.
dry_run Optional. Execute a dry run of the verissimo.sh command. Arguments are validated, however linting is not done.
enable_autocorrect Optional. Enable auto-correct when running Verissimo in GUI Mode.
fail_on_severity <error | warning | info>Optional. Fail if the result contains checks with severities equal or higher than the specified severity. Default: info
gen_custom_report <FTL file> Optional, one or more. Generate a custom report using the specified template. This can be user defined or one of the predefined templates: FAILURES_TEXT, FAILURES_JSON, FAILURES_XML. See Custom Report
gen_custom_report_ftl <name> Optional, one or more. Generate a custom report template using the specified option. Available values are: FAILURES_TEXT, FAILURES_JSON, FAILURES_XML
gen_progress_report Optional. Generate the HTML Progress Report with all the given HTML Reports.
gen_html_report Optional. Generates the HTML lint report.
gen_rulepool_doc Optional. Generate the HTML documentation with all available rules.
gen_rulepool_xml Optional. Generate the XML ruleset with all available rules.
gen_ruleset_doc Optional. Generate the HTML documentation with all the rules from the specified ruleset.
gen_ruleset_xml Optional. Generate the XML ruleset with all the rules from the specified predefined ruleset (if no predefined ruleset is specified, an XML with all available rules will be generated).
gen_txt_report Optional. Print lint failures in the Verissimo output.
guiOptional. Run Verissimo in GUI mode.
heap_size <size>Optional. Set the Java heap size. Default is 3072m.
helpPrint help and exit.
html_report_locationOptional. Destination directory for the HTML lint report.
ignore_build_config_errorsOptional. Ignore build configuration errors.
ignore_compile_errorsOptional. Ignore compile errors, disable printing of compilation errors and continue with linting.
ignore_lint_errorsOptional. Ignore lint errors and disable printing of lint errors.
ignore_lint_infosOptional. Ignore lint infos and disable printing of lint infos.
ignore_lint_warningsOptional. Ignore lint warnings and disable printing of lint warnings.
include_creation_dateOptional. Include the creation date of each failure in the generated lint report based on GIT, SVN or Perforce blame information or using the file's last modification date.
include_html_codeOptional. Include the linted source code as HTML files in the generated lint report.
info <key=value>Optional. Place a 'key=value' annotation on all hits from a generated HTML report, in order to create filters based on them after a merge of reports.
list_unused_available_rulesOptional. List available rules not used in current ruleset.
log <log file>Optional. Log to specified file.
manual_checks_status <XML file>Optional. Manual checks status file.
map <mapping>Optional. Create a mapping between linted files from current and baseline reports. The mapping has the format 'type+current_report_path_pattern=baseline_report_path_pattern', where the type is one of PERL or SIMPLE (if not specified PERL is used).
merge <directory>Optional. Directory of the HTML report to be merged with other reports specified by subsequent 'merge' arguments.
ovm Optional. Run Verissimo XVM rules as OVM (if not specified UVM will be used).
parent_folder <name>Optional. Directory that contains HTML reports which are used to generate the HTML Progress Report.
print_compile_waivers_infoOptional. Prints how many problems each compile waiver has matched.
progress_name <name>Optional. Customize the name of the generated HTML Progress Report.
report_folder <directory>Optional. Name of the HTML report directory used to generate the HTML Progress Report.
rtl Optional. Run the "RTL Rules".
rulepool_xml_include <rule_attributes>Optional. Used with -gen_rulepool_xml or -gen_ruleset_xml to specify what rule attributes should be displayed in the generated XML ruleset. Comma separated list of: complete_rule_info, id, name, title, severity, disable, description, parameters, commented_parameters, parameters_info.
ruleset <XML file> Optional. XML ruleset file. See Rulesets.
run_ruleOptional. Run only rule name from specified ruleset.
silentOptional. Turn on minimal output.
since <yyyy-MM-dd>Optional. Show only rules added since yyyy-MM-dd when generating rulepool HTML and XML or listing unused rules.
stack_size <size>Optional. Set the Java thread stack size. Default is 4m.
uvm_ieeeOptional. Run the "UVM IEEE 1800.2-2020 Compliance Rules".
version <size>Print version and exit.
waivers <XML file>Optional. XML waivers file. See Lint Waivers.
zero_exit_on_lint_failuresOptional. Return exit code zero even if some checks fail. Non-zero exit code is returned only when an internal error occurs (execution exceptions or wrong arguments).
thread_dump_intervalOptional. Set the interval of thread dumps for a rule. Default value: 200ms.
thread_dump_delayOptional. Set the delay before a rule will generate thread dumps. Default value: 0ms.
thread_dump_rulesOptional. Comma separated list of rule names for which thread dumps will be generated.

Exit code

The exit code is calculated with a bitwise OR operation between the following codes:

  • 0 - OK

  • 1 - Internal Error

  • 2 - Errors

  • 4 - Warnings

  • 8 - Infos

  • 16 - Build config or compile error

The codes for errors, warnings and infos indicate the presence of such failures in the lint report or in the New Failures/Added Rules categories of the compare report.

The exit code can be filtered using the following arguments:

  • -fail_on severity: E.g. if the fail_on severity is set on "error", the codes for warnings(4) and infos(8) will be filtered out;

  • -zero_exit_on_lint_failures: filters everything with the exception of the internal error(1);

  • -ignore_build_config_errors: if there are build configuration errors(16) they will be ignored and the exit code will be filtered;

  • -ignore_compile_errors: if there are compile errors(16) they will be ignored and the exit code will be filtered;

  • -ignore_lint_errors: if there are linting errors(2) they will be ignored and the exit code will be filtered;

  • -ignore_lint_warnings: if there are linting warnings(4) they will be ignored and the exit code will be filtered;

  • -ignore_lint_infos: if there are linting infos(8) they will be ignored and the exit code will be filtered.