svlint by dalance

SystemVerilog linter

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
MIT License

Copyright (c) 2019 

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Project Meta

  • Registered on LibreCores 10 months ago
  • Project started 11 months ago
  • Last commit 5 months ago

Commits

{"labels":[2019,2020],"series":[[102,79]]}

Commits per year

Contributors

{"labels":[2019,2020],"series":[[1,4]]}

Unique contributors per year

Releases

v0.4.7 is is the latest of 35 releases.

  • v0.4.7
    Apr 3, 2020 d332d84
  • v0.4.6
    Mar 23, 2020 65b1364
  • v0.4.5
    Mar 13, 2020 7fbe56a
  • v0.4.4
    Feb 21, 2020 8ce64b7
  • v0.4.3
    Feb 20, 2020 549ffa6
  • v0.4.2
    Feb 19, 2020 7b313dc
  • v0.4.1
    Feb 19, 2020 e326f4a
  • v0.4.0
    Feb 19, 2020 ad91124
  • v0.3.3
    Feb 9, 2020 8db771b
  • v0.3.2
    Jan 28, 2020 07e70d4
  • v0.3.1
    Jan 27, 2020 61fb675
  • v0.3.0
    Jan 23, 2020 e33f1ce
  • v0.2.21
    Jan 22, 2020 d07bbf1
  • v0.2.20
    Dec 12, 2019 85da78a
  • v0.2.19
    Dec 11, 2019 bc71c98
  • v0.2.18
    Dec 3, 2019 52844e3
  • v0.2.17
    Dec 2, 2019 a2608be
  • v0.2.16
    Nov 26, 2019 23d5b21
  • v0.2.15
    Nov 25, 2019 d7e3ccb
  • v0.2.14
    Nov 15, 2019 f63c6f2
  • v0.2.13
    Nov 14, 2019 ff34af7
  • v0.2.12
    Nov 13, 2019 4c280ef
  • v0.2.11
    Nov 13, 2019 5061753
  • v0.2.10
    Nov 13, 2019 f97909e
  • v0.2.9
    Nov 12, 2019 3b65ef7
  • v0.2.8
    Nov 8, 2019 6e098f4
  • v0.2.7
    Nov 8, 2019 b48402d
  • v0.2.6
    Nov 7, 2019 fdd45bd
  • v0.2.5
    Nov 6, 2019 b081be7
  • v0.2.4
    Nov 5, 2019 a6d6143
  • v0.2.3
    Nov 1, 2019 e1dc42f
  • v0.2.2
    Nov 1, 2019 2c63527
  • v0.2.1
    Nov 1, 2019 5de167f
  • v0.2.0
    Oct 30, 2019 147bc34
  • v0.1.0
    Oct 29, 2019 0a2dc52

Languages

{"labels":["Others","Verilog-SystemVerilog","Rust","YAML","Markdown"],"series":[7,38,24,5,3]}

Share of languages used

Data Sheet
Project Web Site
https://github.com/dalance/svlint.git
Issue Tracker
Last activity 2 months ago
v0.4.7 released 5 months ago
Primary language: Verilog-SystemVerilog
2 open issues
5 forks
6 watchers
68 stars
181 commits by 4 contributors
dalance Raamakrishnan taichi Damien Pretet
0,4,33,21,22,8,7,7,0,4,7,7,2,8,39,0,0,3,1,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

activity over the last year

LibreCores data updated 30 days ago