Design verification tooling

SALT

A lightweight, configurable SystemVerilog and UVM linter for coding style, naming rules, and practical RTL/testbench checks.

01

Understanding the project

The idea in plain language.

SALT stands for SystemVerilog Analysis & Linting Tool. It is a fast Python linter intended for feedback on team conventions and common RTL/UVM mistakes without requiring a full compiler or heavyweight syntax parser.

The scanner discovers .sv and .svh files, builds a lightweight representation, applies enabled rules, and renders findings for either engineers or automation. Its modular rule structure makes it straightforward to add organization-specific checks.

02

Core capabilities

What the project can do.

  • 01

    Checks whitespace, line length, naming conventions, matching end tags, RTL constructs, and UVM conventions.

  • 02

    Includes core checks plus broad community-guideline rule sets for SystemVerilog and UVM.

  • 03

    Accepts YAML configuration for include/exclude patterns, rule enablement, and rule-specific options.

  • 04

    Produces text, JSON, or HTML reports while keeping diagnostic logging separate from report output.

  • 05

    Runs as either the salt command-line tool or a Python module.

03

Typical workflow

How someone uses it.

  1. 1

    Create a salt.yaml file describing source globs, excluded build directories, and the rules your team wants.

  2. 2

    Run salt check against one or more RTL or testbench paths.

  3. 3

    Read the file, line, severity, rule ID, and explanation for each finding, or feed JSON/HTML output into CI reporting.

04

Under the hood

Technology and design choices.

  • Python 3.11+
  • argparse
  • PyYAML
  • Regex-based scanner
  • Text/JSON/HTML reporters

05

Important considerations

What to know before using it.

  • SALT is intentionally not a compiler or complete parser, so it complements rather than replaces simulator and elaboration checks.
  • The demo contains deliberate violations and returns a non-zero status when it successfully finds them.