Verissimo SystemVerilog Testbench Linter User Guide
Rev. 24.1.8, 24 April 2024

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

  • Open HTML lint report in DVT as Verissimo GUI report

verissimo.sh -open_html_report /path/to/verissimo_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

  • Use a previously generated HTML report to pre-waive unchanged files

Step 1: Generate an HTML report for the project

verissimo.sh -cmd my_compile.args -ruleset my_ruleset.xml -gen_html_report -html_report_location /path/to/baseline_report

Step 2: After editing the project use the previously generated HTML report to pre-waive unchanged files

verissimo.sh -cmd my_compile.args -ruleset my_ruleset.xml -baseline_report /path/to/baseline_report/verissimo_html_report -prewaive_unchanged_files

Arguments

Argument Description
all Optional. Run "All Rules".
autocorrectOptional. Auto-correct failures for all checks enabled in the ruleset when running in batch mode.
autocorrect_checkout <perforce>Optional. Checkout files using specified revision control system to enable editing when using autocorrect.
autocorrect_reruns <number>Optional. Specify the maximum number of reruns when performing autocorrect in batch mode.
autocorrect_rule <rule name>Optional. Autocorrect a rule name from specified ruleset.
baseline_reportOptional. Directory of the baseline HTML report that is used to pre-waive unchanged files.
basic Optional. Run the "Basic Rules".
check_timeout <seconds>Optional. Set the timeout value of a check.
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.
compare_html_report_location <directory>Optional. Destination directory for the compare HTML lint report.
compile_waivers <file>Optional. Waive compilation errors using the waivers specified in the XML file. Waivers specified with this flag will have the highest precedence. See Compile Waivers.
compliance Optional. Run the "XVM Compliance Rules".
current_html_report_location <directory>Optional. Destination directory for the current HTML lint report.
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_runOptional. Execute a dry run of the verissimo.sh command. Arguments are validated, however linting is not done.
eclipsespace <directory>Optional. Directory of the Eclipse configuration and user area when running Verissimo in GUI Mode. Default value: /home/user/.eclipse.
fail_on_severity <error | warning | info>Optional. Fail if the result contains checks with severities equal or higher than the specified severity. Default: info.
forceOptional. Overwrite existing project when running Verissimo in GUI Mode.
gen_compare_html_report Optional. Generate the HTML compare report between baseline html report and current lint report. The baseline report is required.
gen_current_html_report Optional. Generate the current HTML lint report. The baseline report is required.
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, LINTED_FILES_TEXT, AUTOCORRECT_EDITS_TEXT, WAIVED_FAILURES_CSV, AVAILABLE_CHECKS_CSV. 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, LINTED_FILES_TEXT, AUTOCORRECT_EDITS_TEXT, WAIVED_FAILURES_CSV, AVAILABLE_CHECKS_CSV
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_code_dateOptional. Include the committer date in the generated lint report.
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.
license_queue_timeout <timeout>Optional. Maximum time in seconds to wait in queue for a license when one is not available.
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.
noexitOptional. If the script starts a new DVT do not exit until DVT is closed. Only works when running Verissimo in GUI Mode. (Not supported on Windows)
non_standardOptional. Run the "Non-standard Rules".
open_report <directory>Optional. Open the specified Verissimo HTML report in the DVT Verissimo GUI report.
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.
performanceOptional. Run the "Performance Rules".
prewaive_unchanged_filesOptional. Pre-waives the unchanged files based on the baseline report.
print_all_compile_problemsOptional. Print all compile problems. Include waived problems if used with "-print_compile_waivers_info".
print_compile_waivers_infoOptional. Prints how many problems each compile waiver has matched.
process_timeout <seconds>Optional. Set the timeout value of the complete linting process, including building.
progress_name <name>Optional. Customize the name of the generated HTML Progress Report.
project <directory>Optional. Directory of the project to be created when running Verissimo in GUI Mode.
project_name <name>Optional. Name of the project to be created when running Verissimo in GUI Mode. Default value: "project".
report_folder <directory>Optional. Name of the HTML report directory used to generate the HTML Progress Report.
rtlOptional. 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_rule <rule name>Optional. Run only rule name from specified ruleset.
session_timeout <seconds>Optional. Set the timeout value of the linting session, without building.
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.
thread_dump_interval <milliseconds>Optional. Set the interval of thread dumps for a rule. Default value: 200ms.
thread_dump_delay <milliseconds>Optional. Set the delay before a rule will generate thread dumps. Default value: 0ms.
thread_dump_rules <rules>Optional. Comma separated list of rule names for which thread dumps will be generated.
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.
workspace <directory>Optional. Directory of the eclipse workspace (temporary eclipse directory) when running Verissimo in GUI Mode.
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).

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.