kaze 0.1.4

An HDL embedded in Rust
Documentation

An HDL embedded in Rust.

kaze provides an API to describe Modules composed of Signals, which can then be used to generate Rust simulator code or verilog modules.

kaze's API is designed to be as minimal as possible while still being expressive. It's designed to prevent the user from being able to describe buggy or incorrect hardware as much as possible. This enables a user to hack on designs fearlessly, while the API and generators ensure that these designs are sound.

Usage

[dependencies]
kaze = "0.1"

Examples

# fn main() -> std::io::Result<()> {
use kaze::*;

// Create a context, which will contain our module(s)
let c = Context::new();

// Create a module
let inverter = c.module("Inverter");
let i = inverter.input("i", 1); // 1-bit input
inverter.output("o", !i); // Output inverted input

// Generate Rust simulator code
sim::generate(inverter, std::io::stdout())?;

// Generate verilog code
verilog::generate(inverter, std::io::stdout())?;
# Ok(())
# }