Skip to content
SystemVerilog linter
Rust SystemVerilog Makefile
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Fix typo Nov 1, 2019
src Paren variable expansion #6 Dec 11, 2019
testcases Add interface_port_with_modport rule Nov 14, 2019
.gitignore Initial commit Oct 21, 2019
CHANGELOG.md Prepare to v0.2.20 Dec 12, 2019
Cargo.lock Start next development iteration v0.2.20 Dec 12, 2019
Cargo.toml Start next development iteration v0.2.20 Dec 12, 2019
LICENSE Add README Oct 29, 2019
Makefile Add .github Oct 29, 2019
README.md Update README Dec 11, 2019
RULES.md Update RULES.md Nov 14, 2019
build.rs Enale all rules when .svlint.toml is not found Nov 25, 2019
snapcraft.yaml Prepare to v0.2.20 Dec 12, 2019

README.md

svlint

SystemVerilog linter

Actions Status Snap Status codecov

Crates.io svlint

svlint

Installation

Download binary

Download from release page, and extract to the directory in PATH.

snapcraft

You can install from snapcraft

sudo snap install svlint

Cargo

You can install by cargo.

cargo install svlint

Usage

Configuration

First of all, you must put a configuration file .svlint.toml to specify enabled rules. Configuration file is searched to the upper directory until /. So you can put configuration file (.svlint.toml) on the repository root like .gitignore.

The example of configuration file is below:

[option]
exclude_paths = ["ip/.*"]

[rules]
non_ansi_module = true
wire_reg = true

The complete example can be generated by svlint --example

[option] section

exclude_paths is a list of regular expression. If a file path is matched with the list, the file is skipped to check.

[rules] section

By default, all rules are disabled. If you want to enable some rules, true can be specified.

Configuration update

If svlint is updated, .svlint.toml can be updated to the latest version by svlint --update.

Rules

All rules are here. Suggesting a new rule through Issues or Pull requests is welcome.

Plugin

svlint supports rule plugin. A sample project is below:

https://github.com/dalance/svlint-plugin-sample

Filelist

svlint supports filelist like major EDA tools. The following features are supported.

  • Substitute environment variables
  • Specify include directories by +incdir
  • Define Verilog define by +define
  • Include other filelists by -f

An example is below:

xxx.sv
${XXX_DIR}/yyy.sv
$(XXX_DIR)/zzz.sv
+incdir+$(PWD)/header/src
+define+SYNTHESIS
-f other.f

Option

svlint 0.2.12

USAGE:
    svlint [FLAGS] [OPTIONS] <files>...

FLAGS:
        --example    Prints config example
    -h, --help       Prints help information
    -s, --silent     Suppresses message
    -1               Prints results by single line
        --update     Updates config
    -V, --version    Prints version information
    -v, --verbose    Prints verbose message

OPTIONS:
    -c, --config <config>           Config file [default: .svlint.toml]
    -d, --define <defines>...       Define
    -f, --filelist <filelist>...    File list
    -i, --include <includes>...     Include path
    -p, --plugin <plugins>...       Plugin file

ARGS:
    <files>...    Source file
You can’t perform that action at this time.