slang – SystemVerilog compiler and language services

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
VerilatorFast SystemVerilog simulator with static code checks and diagnostics
VeribleSystemVerilog parser, formatter and language server
ICARUS VerilogVerilog compiler and simulation system with broad language support
slangSystemVerilog compiler and language services with detailed diagnostics
svlintConfigurable SystemVerilog source checker with flexible rule settings

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our carefully curated directory of recommended free and open source software, covering every major software category.

The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more.

Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted