svlint
SystemVerilog linter
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:
[]
= ["ip/.*"]
[]
= true
= 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