There are constructs in Verilog used in ways syntactically correct, but yield unexpected or undesirable results. VLint is a Static analysis tool for Verilog, detecting design defects in Verilog source code.
- 2020-02-01, version 0.1 open sourced.
Based on open source project pyverilog.
Based on open source project pyverilog.
Supported defects:
- The assignment objects in if module and else module are inconsistent.
- Consider if else nesting to determine if there is no "else" matching with "if".
- Incomplete variables in sensitive list.
- The same module uses posedge or negedge.
- Blocking assignment and non blocking assignment.
- Cycle condition error.
- Variable multiple assignments in different always.
- Same judgment conditions in case or if statement.
- Wrong use of integer base in case statement.
- Variable bit width usage error.
- Linux like system
- Python 3.7 or higher version
- pyverilog: a Python-based Hardware Design Processing Toolkit for Verilog HDL. Installation instructions can be found at https://pypi.org/project/pyverilog/
Run the jar file in the out directory with the project source path:
java -jar VLint.jar verilog_src_dir
Weixing Ji : jwx@bit.edu.cn
Dejiang Jing
Zhi Zhou