moore 0.7.0

A compiler for hardware description languages.


Build Status Released API docs

Moore is a compiler for hardware description languages that outputs llhd assembly, with a focus on usability, clear error reporting, and completeness. Its goal is to act as a frontend for hardware design tools such as synthesizers, linters, or logical equivalence checkers.



You need a working Rust installation. Use cargo to install moore:

cargo install moore


Assume the following input file:

module hello_world;

To compile and emit the corresponding LLHD assembly to standard output call moore with the file name and the module to elaborate (-e option):

moore -e hello_world

You can use llhd-sim to simulate the compiled module:

moore -e hello_world > foo.llhd
llhd-sim foo.llhd


Moore is developed in this repository, but is separated into the following crates:

  • moore: Top-level umbrella crate tying everything together
  • moore-svlog: SystemVerilog implementation
  • moore-svlog-syntax: SystemVerilog parser and AST implementation
  • moore-vhdl: VHDL implementation
  • moore-vhdl-syntax: VHDL parser and AST implementation

Some useful commands when working on moore:

cargo check
cargo test --all
cargo run -- -e foo