Skip to content

Repository files navigation

yodl

Yet anOther (hardware) Description Language

Parallel Game Of Life

Quick links

Installation

npm

The JS build of Yodl can be installed from npm:

$ npm install --global yodl

wasm

A WASI Preview 1 build of yodl is included in this repository:

wasmtime --dir examples res/yodl-wasi.wasm examples/RISCV.yodl "write_firrtl"

To compile FIRRTL outputs to SystemVerilog, install firtool

Usage

$ yodl examples/Hello.yodl "write_firrtl Hello.fir"
$ firtool --format=fir --verilog Hello.fir -o Hello.sv

Development

Install Moonbit:

$ curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash -s '0.9.3+08f337e2c'

Checklist

  • FIRRTL export
  • Generic multi-port memories
  • Imports (TODO: unqualified imports)
  • Verilator + SDL graphics simulation example
  • Multi-dimensional vectors ([4][8]u16)
  • Optional module parameters (and register initial value)
  • Arbitrary port types
  • Type parameters
  • External modules
  • Source Maps
  • Test Benches
  • FIRRTL to RTLIL backend to bypass SystemVerilog generation
  • Language Server Protocol (LSP) support
  • KiCad schematics export
  • Web tour/playground

Releases

Packages

Used by

Contributors

Languages