Skip to content
HDL compiler based on LLHD
Rust VHDL SystemVerilog Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
scripts bump version to 0.5.0 Oct 24, 2019
src bump version to 0.6.0 Jan 26, 2020
tests
.gitignore
.gitmodules
.rustfmt.toml
.travis.yml
CHANGELOG.md
Cargo.lock
Cargo.toml
LICENSE-APACHE
LICENSE-MIT switch to dual licensing Jan 5, 2019
README.md

README.md

moore

Build Status Released API docs Crates.io

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.

Usage

Installation

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

cargo install moore

Example

Assume the following input file:

// foo.sv
module hello_world;
endmodule

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

moore foo.sv -e hello_world

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

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

Development

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 -- foo.sv -e foo
You can’t perform that action at this time.