slang is a SystemVerilog compiler frontend and language-services toolkit.
It lexes, parses, type-checks and elaborates SystemVerilog projects, exposing the resulting representation both through its command-line tools and as a reusable software library. The compiler includes static-analysis and lint diagnostics, but its scope is considerably broader than a conventional linter: the same frontend can support editors, refactoring software, synthesis tools and other applications that need a detailed understanding of SystemVerilog source. Its ability to continue parsing imperfect source also makes the infrastructure useful for interactive development tools where files are frequently incomplete while being edited.
This is free and open source software.
Key Features
- Parses, type-checks and elaborates SystemVerilog source using a standards-focused compiler frontend.
- Provides command-line linting and static-analysis diagnostics covering a wide range of potentially problematic constructs.
- Offers configurable warning groups together with controls for enabling, disabling and promoting individual diagnostics.
- Supports source comments that selectively disable and re-enable lint warnings around intentional constructs.
- Can emit diagnostics in JSON form for integration with automated tools and development environments.
- Provides access to the elaborated abstract syntax tree for source inspection and custom analysis.
- Can serialise project AST information as JSON for use by external programs.
- Includes Python bindings for applications that need programmatic access to SystemVerilog parsing and compilation facilities.
- Is designed to remain useful on incomplete or erroneous source, an important property for editor-based tooling.
- Can act as a preprocessor frontend for software that performs later stages of an electronic design workflow.
- Supports source-code introspection, generation and refactoring applications through its reusable library interfaces.
- Includes additional tooling built on the compiler infrastructure for analysing and improving SystemVerilog projects.
Website: github.com/MikePopoloski/slang
Support:
Developer: Michael Popoloski
License: MIT License
slang is written in C++. Learn C++ with our recommended free books and free tutorials.
Related Software
| Verilog Linter Tools | |
|---|---|
| Verilator | Fast SystemVerilog simulator with static code checks and diagnostics |
| Verible | SystemVerilog parser, formatter and language server |
| ICARUS Verilog | Verilog compiler and simulation system with broad language support |
| slang | SystemVerilog compiler and language services with detailed diagnostics |
| svlint | Configurable SystemVerilog source checker with flexible rule settings |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.