kaz
kaze
cargo install kaze
kaz

kaze

An HDL embedded in Rust.

by ferris

0.1.15 (see all)License:MIT OR Apache-2.0
cargo install kaze
Readme

kaze

An HDL embedded in Rust.

Latest version Documentation License

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"

Example

use kaze::*;

fn main() -> std::io::Result<()> {
    // 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, sim::GenerationOptions::default(), std::io::stdout())?;

    // Generate Verilog code
    verilog::generate(inverter, std::io::stdout())?;

    Ok(())
}

Releases

See changelog for release information.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

GitHub Stars

141

LAST COMMIT

8mos ago

MAINTAINERS

1

CONTRIBUTORS

2

OPEN ISSUES

24

OPEN PRs

3
VersionTagPublished
0.1.15
2yrs ago
0.1.14
2yrs ago
0.1.13
2yrs ago
0.1.12
2yrs ago
No alternatives found
No tutorials found
Add a tutorial