Skip to content
An HDL embedded in Rust.
Rust
Branch: master
Clone or download

Latest commit

yupferris Clarify docs for Mem read port values
When the enable signal is not asserted, we previously documented the resulting value as undefined, but it actually has guaranteed semantics, so let's specify those instead.
Latest commit 13972ab Mar 27, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
kaze-sim-tests Change Mem semantics for simultaneous read/write Mar 27, 2020
kaze Clarify docs for Mem read port values Mar 27, 2020
CHANGELOG.md Clarify docs for Mem read port values Mar 27, 2020
LICENSE-APACHE Add license files Jan 25, 2020
LICENSE-MIT Add license files Jan 25, 2020
README.md Change SystemVerilog -> Verilog Mar 27, 2020
test.sh Add test script Dec 24, 2019

README.md

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, 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.

You can’t perform that action at this time.