Skip to content

g4rry1/PP_SV

Repository files navigation

PP_SV - SystemVerilog Pretty Printer

PP_SV is a pretty printer designed to format SystemVerilog code according to a unified styling standard. It operates through syntax analysis using the Slang library. By constructing a Concrete Syntax Tree (CST), PP_SV completely reconstructs the code, ensuring readability and consistent style throughout the entire codebase.

🚀 Installation and Build

📥 Cloning the Project

The project uses git submodules for dependencies. To clone it correctly, run:

Cloning with automatic submodule initialization

git clone --recurse-submodules https://github.com/g4rry1/PP_SV.git

If you've already cloned the project without submodules:

Initializing and updating submodules

git submodule update --init --recursive

🔨 Building the Project

Creating a Build Directory

mkdir build && cd build
cmake ..
cmake --build . (or make)

✅ Verification

After successful build, run:

./my_project [path to SystemVerilog file]

Testing

The project uses the "Google Test" framework for testing.

If you don't have it installed, run:

sudo apt-get install libgtest-dev

Running Tests

./build/run_tests

📚 Used Submodules

The project uses the following libraries as submodules:

Library Purpose
slang SystemVerilog processing library

🔄 Updating Submodules

To update dependencies to the latest versions:

git submodule update --remote --recursive

Troubleshooting

If you encounter build errors related to dependencies:

Complete Submodule Reinitialization:

git submodule deinit --all
git submodule update --init --recursive

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •