#system-verilog #bindings #slang

slang-rs

Rust bindings for the Slang Verilog parser

14 breaking releases

0.15.0 Feb 14, 2025
0.13.0 Jan 14, 2025
0.12.0 Nov 19, 2024

#512 in Hardware support

Download history 172/week @ 2024-12-02 198/week @ 2024-12-09 70/week @ 2024-12-16 87/week @ 2025-01-06 211/week @ 2025-01-13 206/week @ 2025-01-20 101/week @ 2025-01-27 4733/week @ 2025-02-03 317/week @ 2025-02-10 234/week @ 2025-02-17 100/week @ 2025-02-24 249/week @ 2025-03-03 214/week @ 2025-03-10 704/week @ 2025-03-17

1,270 downloads per month
Used in topstitch

Apache-2.0

28KB
664 lines

slang-rs

Parse SystemVerilog with Slang using a Rust API.

Note: the API is currently under development and is subject to frequent changes.

Prerequisite

First install the Slang parser. We recommend building it from source.

curl -LO "https://github.com/MikePopoloski/slang/archive/refs/tags/v6.0.tar.gz"
tar xzvf v6.0.tar.gz
cd slang-6.0
cmake -B build
cmake --build build -j8

This will take a few minutes. Then set an environment variable to specify the location of the Slang binary:

export SLANG_PATH=`realpath build/bin/slang`

Installation

Install Rust if you don't have it already:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Then clone this repository:

git clone https://github.com/xlsynth/slang-rs.git

To run the tests:

cd slang-rs
cargo test

Dependencies

~7–18MB
~285K SLoC