JanusHDL

Ways to work with JanusHDL

Which way fits you? Each row says when to use it, and where to read on.

The download holds the window (jhdlw), the command line (jhdl) and a language server (jhdl-lsp). They work together: the same file list or project runs in the window and on the command line, and the language server reads it too.

WayWhen to use it
The window, with a projectFor a design you come back to. A project file keeps the sources in their libraries, the top level, the stop time and the options: make it with File → New project…, then F5 runs it.
The window, without a projectFor a quick try. Simulate → Run simulation… (Ctrl+Shift+R) runs a VHDL file or a file list; or drop a .vhd or .f file on the window, and it runs straight away.
The command lineFor scripts and CI. jhdl runs VHDL files, a file list (jhdl -f LIST.f) or a project (jhdl run PROJECT.jhdlproj), and its exit code says whether the run passed.
Your existing scriptsTo keep the simulation scripts and makefiles you have. The compat folder holds small programs named like the commands they call: put one family's folder first on your PATH, and the scripts run on JanusHDL as they are.
Test frameworksUVVM and OSVVM: get them from their own projects, then compile them once (jhdl lib compile uvvm|osvvm FOLDER), or add their sources as libraries before your own files (listed, UVVM needs compatibility mode). VUnit 5: add VUnit's package vunit-janushdl in run.py; VUnit 4: run.py runs unchanged through the front ends in the compat folder.
Your own editorTo write VHDL in the editor you already use. jhdl-lsp gives it JanusHDL's own analysis: errors and warnings as you type, go to definition, hover and references.
The waveform viewer aloneTo look at a recording. jhdlw run.jhw opens a waveform database that jhdl --wave wrote, and VCD files (.vcd) open too; so does File → Open waveform… (Ctrl+O), or dropping the file on the window.

New to JanusHDL? The quick start takes you from the download to your first waveforms in about ten minutes.