Helion

Getting started

Install from a GitHub Release, or clone and run the gold. Native desktop target is Apple Silicon (aarch64-apple-darwin). CI is Linux (x86_64-unknown-linux-gnu). rustc 1.85.0.

Download (v2.0.4)

Each vX.Y.Z tag publishes these files. Current release is v2.0.4 (post-2.0 runtime/QoR grind: STA, bitgen, place-legalize, synth, parse; same counter gold WNS_PS=9640; SOFT ≠ PASS).

FileWhat
Helion-2.0.4-macos-arm64.zipHelion.app for Apple Silicon. Unsigned. Gatekeeper will warn.
helion-2.0.4-aarch64-apple-darwin.tar.gzCLI + IDE + HAD + examples
helion-2.0.4-x86_64-unknown-linux-gnu.tar.gzLinux CLI + headless IDE
SHA256SUMS.txthashes

Latest release Changelog Roadmap

Needs

Native arm64 only. No Rosetta, no vendor bitstream, no Docker.

Build and gold

git clone https://github.com/helion-fpga/helion.git
cd helion
cargo test --workspace
cargo run -p helion-cli -- doctor
cargo run -p helion-cli -- run examples/counter.sv --cycles 16
cargo run -p helion-gui --bin helion-ide -- --headless examples/counter.sv

Empty-XDC counter gold is WNS_PS=9640 and LED waveform LED[16]=0000000111111110 (LED = cnt[3]). helion doctor must print the HAD path, sites_clb=1024, sites_iob=32, and FeatureMap lines for HL10T-C32-1.

Desktop IDE (macOS)

./scripts/build-macos-app.sh
open dist/Helion.app
dist/Helion.app/Contents/MacOS/Helion --version
dist/Helion.app/Contents/MacOS/Helion --doctor
dist/Helion.app/Contents/MacOS/helion-cli doctor
dist/Helion.app/Contents/MacOS/helion-cli run \
    dist/Helion.app/Contents/Resources/examples/counter.sv --cycles 16
Path in Helion.appWhat
Contents/MacOS/Helionwindowed IDE (helion-ide)
Contents/MacOS/helion-cliCLI (APFS-safe name beside Helion)
Contents/Resources/devices/helionHAD (FeatureMap / parts)
Contents/Resources/examplescounter.sv, blinky.sv, …
Contents/Info.plistfpga.helion.ide, arm64-only

The windowed binary is Contents/MacOS/Helion. Do not launch the CLI as the app. Without the bundle:

cargo run -p helion-gui --release --target aarch64-apple-darwin --bin helion-ide
cargo run -p helion-cli --release --target aarch64-apple-darwin -- doctor
cargo run -p helion-cli --release --target aarch64-apple-darwin -- run examples/counter.sv --cycles 16

HELION_HAD overrides the part database. Otherwise the binary searches Helion.app/Contents/Resources/devices/helion, then cwd, then the compile-time tree.

Linux CI vs a Mac

Verified on Linux CI: workspace tests, headless IdeModel, helion-ide --headless, helion doctor, app layout assembly with scripts/build-macos-app.sh --layout-only.

Not verified on Linux: cargo build --release --target aarch64-apple-darwin, launching dist/Helion.app, codesign / notarization.

While you iterate

Run one test name, not the world:

cargo test -p helion-sv --lib TESTNAME

Large SystemVerilog

examples/ysyx_ibex.sv is in the tree (Open rail in the IDE). Ingest is helion-sv preprocess + parse. Fitting a full SoC on HL10T-C32-1 is not the synth bar. Do not abort the run because sv-parser is unhappy. Leftover Helion-legal constructs still map.

Next: use the IDE and CLI