The first public Beta of Nilavon: Nilavon Studio, a desktop app, and nilavon, its command
line. Draft, not yet released: no tag and no published package.
What Nilavon is
Nilavon checks Verilog/SystemVerilog RTL against a Markdown specification on your own computer. It turns the specification into checks you review and approve, builds a cocotb test from what you approved, runs it on a bundled Icarus Verilog simulator, and keeps a record of what was checked and what happened.
specification → checks you review and approve → generated test → local simulation → result and evidence
Nothing runs that you have not approved, and a passing run proves only the checks it ran. Nilavon never claims coverage, protocol compliance or general correctness.
What is in this release
Three ways to check a design. A project’s Verify with choice offers:
- Built-in recipe: eight registered design shapes (synchronous FIFO, ready/valid stream, APB register file, two FIFO and ready/valid compositions, two bounded-state shapes, fixed-priority arbiter). The engine checks the structure and your signal bindings before it generates anything.
- Your own expected behavior: plain single-clock designs, where you classify each port and define finite observations step by step.
- General RTL (Beta): AI drafts requirements and checks from your specification and RTL, and you accept, decline or correct each item before anything runs. It drafts online with your own Anthropic or OpenAI API key, or with an optional local model on an Apple Silicon Mac. Its steps (Draft, Review, Approve, Run, Result) are pages of the project, like every other route.
Starting from your own folder. New project asks for the folder that holds your design (or
drop that folder on the window). Studio lists the RTL, headers and specification it finds, without
following links, and suggests which to use. With no specification, you write one from a short
template, saved as a new specification.md. A design that none of the recipes fits is created
without one and opens on General RTL (nilavon init --capability none on the command line).
A design that uses vendor primitives or standard cells takes their simulation models as library
files or folders, compiled only for the cells it uses (--library-file, --library-directory;
Simulation libraries in Studio). Nilavon ships no vendor library.
Learning. Four built-in exercises (counter, FIFO, handshake, APB register) each walk through one check in about ten minutes. A fifth, the General RTL tour, tries General RTL (Beta) without a key. It ships a small PWM design with a draft prepared in advance, so no AI is called. You import the draft, find and correct its one wrong check, approve and run. Beginner and Professional presentation options are available.
Results and evidence.
- Each result opens with the answer: the outcome, the counts, the first failure and what to do next. Each failed check shows what was expected and what was observed.
- Runs can record a waveform, shown in a read-only viewer that jumps to the failure. A General RTL run records one file per scenario.
- Each run keeps the RTL it used, so its report and evidence pack still name and include that RTL after you change the design.
- Re-check RTL fixes and re-runs a design inside the same project.
- Reports come in HTML, Markdown, JSON and JUnit. Evidence packs can be verified offline.
- Two runs can be compared.
- Known failures can be accepted for a limited time with reviewed, expiring waivers.
- A storage view shows what saved runs take, with a recorded delete.
Working safely with other people’s projects. A project you did not create in Studio opens read-only until you trust it. On Linux, runs can be contained (no network, writes only to the run folder), and so can the simulations a General RTL draft job runs while it drafts.
Getting around. You can reopen a project in three ways:
- from Recent projects on the start screen;
- from File → Open Recent;
- by dropping its folder on the window.
Each recent project shows how its newest run ended, on any route, and a project reopens on the Verify with route you left it on.
Help → Save support bundle… collects what support needs. Your design is never included. Help → About and Settings > General show the Studio and engine versions.
Command line. nilavon runs the same engine:
nilavon --helpgroups the commands by task.- Settings > Advanced > Command line puts
nilavonon yourPATHon macOS, Windows and the Linux tarball, after listing what it will change. - A command run before an earlier step (no project, nothing generated, a plan not approved yet) names the command that fixes it.
nilavon general …runs the General RTL commands.- The Linux DEB installs a man page and bash/zsh completion.
The user guide covers all of this. Every package carries it as USER_GUIDE.md
and as a page, USER_GUIDE.html, which Studio’s user guide links open in your browser, offline.
What is Beta
All of Nilavon 0.1.0 is Beta. These parts are explicitly unqualified:
- General RTL drafting, online and local. Every drafted item is labelled “AI-drafted: claimed, not verified” and enters the review only when you import it. Only the revision you approve runs.
- Local AI planning. No local model is qualified for plans in this build, so Settings does not offer to install one.
- Online planning with OpenAI, which is opt-in for each request.
Known limitations
- Unsigned packages. macOS Gatekeeper and Windows SmartScreen warn on first launch; the user guide shows the usual way past. There are no automatic updates.
- Platforms.
- The macOS (Apple Silicon) and Linux x64 packages of this version have been installed and checked.
- The Windows x64 package of this version has not yet been checked on Windows. An earlier build passed on Windows 11.
- Only the Linux DEB puts
nilavononPATHwhen installed. On macOS, Windows and the Linux tarball, Settings > Advanced > Command line installs it after showing what it will change; until then, rerun commands in Studio name the launcher’s full path. The AppImage cannot install it.
- Inputs. Verilog/SystemVerilog inside the project folder plus one Markdown specification. No other HDLs, and no multi-clock designs on the recipe and generic routes.
- Simulator. Icarus Verilog only (bundled 13.0).
- Outputs. Managed cocotb tests only, with no SystemVerilog or UVM output. Coverage is never measured or claimed.
- Waveforms. VCD only, up to 32 MiB per file. General RTL records only reference runs, at most 128 MiB per run, and not its draft jobs.
- Contained runs. Linux only, with Landlock (kernel 5.13 or later). On macOS and Windows a trusted project runs with your own file access.
- Command line. Results are JSON (
--prettymakes them readable). There is no plain-text summary yet. - Evidence packs. They prove integrity, not authorship: they are not signed.
The full list, with sources, is section 11 of the user guide.
System requirements
| System | Package |
|---|---|
| macOS on Apple Silicon (M1 or later) | DMG or ZIP |
| Windows 11 x64 | NSIS installer |
| Ubuntu 24.04 x64 (other current x64 Linux distributions are likely to work) | DEB, AppImage or .tar.gz |
Every package bundles its own Python engine and Icarus Verilog 13.0. You do not install Python or
a simulator, and you do not change PATH.
Optional:
- Online drafting or planning: an internet connection and your own Anthropic or OpenAI API key. Requests are billed to your provider account. A General RTL draft job on a small design cost about $0.30 to $5 at Claude Sonnet 5.5 list prices in a dry run (an estimate; see the online drafting guide).
- The optional local drafting model: an Apple Silicon Mac with 24 GiB of memory or more, and about 50 minutes per draft job (optional local model guide).
Privacy
Your RTL, specifications, tests and results stay on your computer. Nilavon has no telemetry, no crash reporting and no update checks. It goes online only when you ask:
- to download a local model;
- to send an online AI request with your own key, after showing you exactly what will be sent.
API keys are encrypted with your operating system’s key store and never go into project files.
The privacy statement, also in every package as PRIVACY.md, lists every case.
License
Nilavon is proprietary commercial software, licensed by subscription under the Nilavon Subscription
License Agreement in the packaged LICENSE (also at https://nilavon.com/license/). It is not open
source. Third-party components keep their own licenses
(THIRD_PARTY_NOTICES.md).
Support
Email hello@nilavon.com. For a problem report, attach the zip from
Help → Save support bundle… and include the version shown in Help → About Nilavon Studio
(on macOS, Nilavon Studio → About Nilavon Studio) or printed by nilavon --version.
Version
This release is 0.1.0. Studio (apps/studio/package.json), the engine
(nilavon_engine.__version__, engine/pyproject.toml) and the About panel already read 0.1.0, so
the first public Beta keeps that number and no version changes. A higher number would also change
the engine version recorded in every run and report, for no benefit. The Beta label comes from
these notes and the packaged notice, not from the version string. Later Betas count up as 0.2.0
and so on.