The VHDL studio where simulation time runs both ways.
Soft Forge HDL Studio turns VS Code into an FPGA workbench: breakpoints inside processes, step back through simulated time, a WebGL signal viewer, and the Vivado flow from synthesis to a programmed board. It looks and behaves like the rest of VS Code.
$ code --install-extension SoftForge.soft-forge-hdl-studio
The debugger, CLI, Vivado flow and block design editor are free. The signal viewer is Pro, with a 30-minute trial.
- GHDL
- GDB
- Vivado
- xsim
- hw_server
- GHW & VCD
- CMake
- Claude Code
From a testbench to a blinking board, without leaving the editor.
Everything sits on the tools you already trust (GHDL, GDB and Vivado), driven from VS Code, the terminal, or an AI agent. Every view is a VS Code view: the same rows, tabs, status bar and theme as the rest of the workbench.
A debugger that understands simulation time
Set breakpoints in processes and subprograms, step through sequential statements, and then step time: to the next delta with activity, by a fixed step, or run 100 ns from the Debug Console. The Variables view lists every signal of the design with its current value.
- Data breakpoints: break when a signal changes, or when it reaches
x"5" - Break on failing assertions, with the failing line on top of the stack
- Deposit values from the Variables view; hover any signal
Time travel: rewind a recorded session
Overshot the bug? Ctrl+Shift+F10 steps back, reverse continue runs back to the previous breakpoint, and Run Back To… returns to any earlier time. The viewer's marker follows. On the bundled examples, a rewind takes about a tenth of a second.
How time travel worksA signal viewer drawn on the GPU Pro
Every signal of the elaborated design, streamed while the simulation runs, in a WebGL viewer built for long runs. The hierarchy is a VS Code tree; the time ruler, cursor and hover widget work like the editor's. Vectors in any radix, state machines by name, analog traces with a key.
- Live mode follows the simulation; the debugger's time is a marker
- ← → jump between edges; F fits; A goes analog
- Future time is shaded until the simulation reaches it
GHW and VCD files open in the same viewer
Double-click a .ghw or .vcd in the Explorer. Records and arrays expand as groups, enumerations read by name, reals plot as analog traces, and the file is watched: simulate again and the view keeps its zoom and its expanded scopes.
One workspace file, edited as a settings page
A .hdl-workspace next to the code holds sources, testbenches, top, part, board, constraints and toolchains. It opens as a dashboard laid out like VS Code's settings editor, and F5, the Flow view and the hdl command all read it. The file is sorted JSON, so it merges in git.
Vivado, from synthesis to a programmed board
Synthesis, implementation, bitstream and xsim run as VS Code tasks, with errors in the Problems view and the numbers that matter (WNS, utilisation, DRC) in the Flow view. The Hardware view finds your board through hw_server and programs it.
- Checkpoints are reused while they are newer than the sources
- Constraints generated for Basys 3, Arty A7, Nexys A7, Zybo Z7, Cmod S7
- Vivado runs in the work folder, so your project folder stays clean
Block designs that merge in git
Wire your entities, Xilinx IP and primitives on a canvas with ELK auto-layout. A .vbd file is an event log, one event per line, so two branches that each add a block merge without a conflict. Export an HDL wrapper for GHDL, or Tcl for Vivado's IP integrator.
A command line your AI agent can drive
hdl is on the PATH of every VS Code terminal. It analyses, simulates and reads waveforms headless, or drives the debug session of the open window: step, continue, watch, force. Every command speaks --json. hdl skill --install teaches Claude Code to use it.
F5 is the setup
No launch.json: the folder is analysed, the open entity elaborated, the session paused at 0 fs.
CMake-friendly
A testbench can be an add_executable(); point the launch at the result and debug it.
Hardware view
Targets, devices, XADC temperature and voltages, bitstreams and a program log.
Agent tools
A Claude skill plus language model tools for Copilot agent mode: read signals, run, set breakpoints.
Examples to download
The counter, the CMake synthesiser, Basys 3, Arty A7 and the block design, each as a zip.
Works offline
License keys are verified on your machine; the viewer keeps working without a connection.
Free to build. Pro to see.
Everything that edits, simulates, debugs and builds is free. The signal viewer is part of Pro.
Free Free
$0forever
- Highlighting, the Aurora theme, snippets
- Debugger with time control and time travel
- Workspace dashboard and diagnostics on save
- Vivado flow, reports and hardware programming
- Block design editor
hdlcommand line and Claude skill
Pro Pro
$35per seat / month
- Everything in Free
- Live signal viewer during simulation and debugging
- GHW and VCD waveform files, watched for changes
- Analog traces, radixes, deposits from the viewer
- VCD export for GTKWave
- Verified offline; sign in or paste a license key
Press F5 on a testbench. That's the setup.
No launch.json needed: HDL Studio analyses the folder, elaborates the open entity and pauses at 0 fs.