HomeToolsFSM Designer
Quick start
Add State → click canvas
② Select a state → tick “reset state”
Add Transition → click source, then target
④ Edit condition in the inspector
⑤ RTL updates live →
Generated Verilog RTL

  

FSM Designer — Convert a State Diagram to Verilog RTL

This free online FSM designer turns a drawn finite state machine into clean, synthesizable Verilog RTL. Place states on the canvas, connect them with transitions, type the conditions on your inputs, and the tool generates the standard three-process state-machine template live — no install, no signup. It supports both Moore and Mealy machines and binary, one-hot and gray state encoding, making it useful for digital design students, FPGA developers and RTL/verification engineers.

Moore vs Mealy state machines

Moore machine

Outputs depend only on the current state. Outputs are stable for the whole clock cycle and are glitch-free, which makes Moore machines easier to time and verify. They may need one extra state/cycle to react.

Mealy machine

Outputs depend on the current state and the current inputs. Mealy machines react one cycle earlier and often need fewer states, but their combinational outputs can glitch and need care at clock-domain boundaries.

This tool generates both from the same diagram — switch the output type and the output logic block restructures automatically (per-state for Moore, per-transition for Mealy).

State encoding: binary, one-hot and gray

Pick the encoding with one click — only the localparam definitions change; the rest of the RTL stays identical.

The generated RTL: a clean 3-process FSM template

The tool emits the textbook coding style that synthesises predictably on Vivado, Quartus, Yosys and Synopsys Design Compiler:

How to use the FSM designer

Example state machines to try

Classic FSMs that make great practice — build them and watch the RTL update:

Frequently asked questions

What does this FSM tool generate?

Synthesizable Verilog RTL using the standard three-process template — a clocked state register, a combinational next-state case, and a combinational output block with safe defaults.

Is the Verilog synthesizable?

Yes. It uses only synthesizable constructs and works with Vivado, Quartus, Yosys and Synopsys DC. The output block defaults every output to 0 to avoid latch inference.

Can it do both Moore and Mealy?

Yes — switch the output type and the output logic regenerates: per-state assignments for Moore, per-transition assignments (gated by the input condition) for Mealy.

Which state encoding should I use?

Binary for minimum area, one-hot for fastest logic on FPGAs, gray when single-bit transitions matter. You can switch instantly and compare the generated localparams.

Related tools: Logic Gate Simulator · APB / AXI Register Map Generator · AXI4-Lite to APB Bridge