Ways to work with JanusHDL
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.
| Way | When to use it |
|---|---|
| The window, with a project | For 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 project | For 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 line | For 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 scripts | To 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 frameworks | UVVM 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 editor | To 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 alone | To 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.