
abVisualRTL turns state diagrams into hardware. You place states on a zoomable canvas, draw transitions between them, and attach conditions, priorities and Moore or Mealy output actions — then the tool generates synthesizable RTL you can drop straight into a design.
The same diagram emits both SystemVerilog and VHDL. Typed input and output ports, a designated reset state, and automatic state-encoding bit-width all flow from the model into the generated code, with a live preview alongside the canvas so you see the HDL as you draw.
Under the hood it keeps a clean separation of model, UI and generators, a command-pattern undo system where every edit is reversible, and versioned JSON project files — the foundation for repeatable, testable code generation.
Get abVisualRTL Python code and tutorial at: https://github.com/digitekxplorer/abVisualRTL
Place states and draw transitions on a zoomable, grid-aligned canvas. Each transition carries a condition and a priority that resolves ordering between competing edges.
Attach state-based (Moore) or transition-based (Mealy) output actions, with a per-port default value that anchors combinational outputs cleanly.
One diagram, two targets: generate synthesizable SystemVerilog and VHDL from the identical model, with matching state encoding and reset behavior.
Declare input and output ports with widths; state-encoding bit-width is computed automatically so the enum and registers size themselves to the machine.
Mark the reset state and the generators wire up the reset branch and the state register around it — the machine always powers up where you intend.
The generated code updates alongside the diagram, so the RTL is visible as you edit states, transitions and actions rather than only on export.
Every edit is a reversible command on a proper undo/redo stack — a consistent history model instead of ad-hoc state snapshots.
Diagrams round-trip through a versioned JSON format with clean model serialization, keeping the model, UI and generators cleanly separated.
We use cookies to analyze website traffic and optimize your website experience. By accepting our use of cookies, your data will be aggregated with all other user data.