Skip to content

cyril0124/verilua

Repository files navigation

🌔 Verilua

GitHub Actions Workflow Status GitHub Release GitHub commits since latest release GitHub Created At Static Badge Static Badge

Verilua is a versatile simulation framework for Hardware Verification based on LuaJIT. It can be used as a Hardwave Verification Language (HVL) to write testbenches and simulate hardware designs. Or it can be used as a Hardware Script Engine (HSE) to embed Lua scripts into the simulation. It can also can be used as a Waveform Analysis Language(WAL) to analyze the provided waveform files(VCD, FST, FSDB, etc).

📦 Installation(from release)

Download from release

wget https://github.com/cyril0124/verilua/releases/download/v1.0.0/verilua-x64-ubuntu-22.04.zip

unzip verilua-x64-ubuntu-22.04.zip -d <path-to-install>

Activate verilua

Add the following line to your ~/.bashrc or ~/.zshrc:

source <path-to-install>/verilua.sh

Test installation

You need to reload your shell configuration file to activate verilua. After that, you can test the installation by running:

test_verilua

If you see the following output, then the installation is successful:

[test_verilua] Test verilua finished!

Update verilua

To update the verilua to the latest version, you can run:

update_verilua

Important

  • Make sure that you have the permission to write to the verilua home directory(or verilua install directory).
  • update_verilua is only available if you have installed verilua from release.

💡 Why Lua/LuaJIT?

  • 🚀 High Performance: LuaJIT, a Just-In-Time Compiler, transforms Lua code into native machine code, delivering exceptional speed and efficiency.
  • Lightweight & Fast: Lua boasts a minimal runtime and near-instant startup time, outpacing other dynamic languages like Python.
  • 💫 Seamless C Integration: LuaJIT's Foreign Function Interface (FFI) enables efficient calls to C functions and libraries, and even supports calling Rust code, simplifying integration with native code.
  • 👍 Enhanced Development: While Lua is dynamically typed, tools like LuaLS and EmmyLuaLs introduce a comment-based type system, significantly improving code clarity and developer experience.

🌟 Credits

  • LuaJIT - A high-performance Lua implementation powering Verilua's speed and efficiency.
  • Cocotb - A source of inspiration for Verilua's design and functionality.
  • Slang - A robust parser for Verilog/SystemVerilog files, integral to many tools in this repository.
  • Xmake - The foundation of our streamlined and efficient build system.

About

Verilua: An Open Source Versatile Framework for Efficient Hardware Verification and Analysis Using LuaJIT

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •