# yodl

> Modern Hardware Description Language

Latest version **0.3.1** (published 2026-08-23) · 0 weekly downloads

## Install

```sh
npm install yodl
pnpm add yodl
yarn add yodl
bun add yodl
```

Provides the command `yodl`.

## Health

**Score 60/100 (C)** — status: active.

Positive: has types; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.3.1 |
| Published | 2026-08-23 |
| First published | 2025-04-02 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 1.2 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | nathsou |

## Links

- npm: https://www.npmjs.com/package/yodl
- Repository: https://github.com/nathsou/yodl
- Homepage: https://github.com/nathsou/yodl#readme
- Issues: https://github.com/nathsou/yodl/issues
- npm.io page: https://npm.io/package/yodl

## Recent versions

- 0.3.1 (latest) — 2026-08-23
- 0.3.0 — 2026-06-07
- 0.2.1 — 2026-01-03
- 0.2.0 — 2025-12-21
- 0.1.0 — 2025-10-18
- 0.0.9 — 2025-09-30
- 0.0.8 — 2025-09-28
- 0.0.7 — 2025-09-25
- 0.0.6 — 2025-07-27
- 0.0.5 — 2025-07-16
- 0.0.4 — 2025-07-16
- 0.0.3 — 2025-06-27
- 0.0.2 — 2025-04-05
- 0.0.1 — 2025-04-02

## README

# yodl

Yet anOther (hardware) Description Language

<img src="res/gol.png" alt="Parallel Game Of Life" width="480px"/>

## Quick links

- [Documentation](https://nathsou.github.io/yodl/book/)
- [Playground](https://nathsou.github.io/yodl/playground.html)

# Installation

## npm
The JS build of Yodl can be installed from npm:

```bash
$ npm install --global yodl
```

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

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

To compile FIRRTL outputs to SystemVerilog, install [firtool](https://github.com/llvm/circt/releases/tag/firtool-1.149.0)

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

## Development
Install [Moonbit](https://www.moonbitlang.com/):

```bash
$ curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash -s '0.10.9+6e6c44045'
```

## Checklist

- [x] [FIRRTL](https://github.com/chipsalliance/firrtl-spec) export
- [x] Generic multi-port memories
- [x] Imports (TODO: unqualified imports)
- [x] Verilator + SDL graphics simulation example
- [x] Multi-dimensional vectors ([4][8]u16)
- [ ] Optional module parameters (and register initial value)
- [x] Arbitrary port types
- [x] Type parameters
- [x] External modules
- [ ] Source Maps
- [ ] Test Benches
- [X] FIRRTL to RTLIL backend to bypass SystemVerilog generation
- [ ] Language Server Protocol (LSP) support
- [ ] [KiCad schematics](https://dev-docs.kicad.org/en/file-formats/sexpr-schematic/index.html) export
- [x] Web tour/playground

---
_Source: https://npm.io/package/yodl · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
