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 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.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted