Skip to content

oscargus/rust-vpi

Repository files navigation

vpi and vpi-sys

CI crates.io vpi docs.rs vpi MSRV vpi License: MIT

vpi is a Rust crate for easily working with the Verilog Procedural Interface (VPI) through Rust abstractions. There are several similar libraries, but the unique features of vpi are:

  • Rust abstractions: The user should only have to deal with Rust types and it should be easy to access things in a (relatively) safe way.
  • Features: The inclusion of extensions are optional. Currently, there is the sv feature to include SystemVerilog extensions, and the cb_info feature is enabled by default for simulators that support vpi_get_cb_info, but one can also consider simulator-specific ones.

vpi-sys is a simple bindgen-wrapper that automatically generates Rust-bindings.

There are examples in test_example to see how the crate can be used.

Coverage reports are published from the dedicated coverage workflow:

For more details about what the safe vpi crate currently wraps from vpi_user.h / sv_vpi_user.h, and which lower-level areas still require vpi-sys, see vpi/README.md.

Both crates are licensed under the MIT license. However, I do not claim any license for the .h-files in vpi-sys, which are based on the IEEE 1800 standard.

About

Rust wrapper for VPI

Resources

License

Stars

6 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors