Repository navigation
Getting Started
From the repository root:
makeThis creates fizzim.jar, which can be run on Linux or Windows:
java -jar fizzim.jarThe jar is compiled with --release 11 by default, so it runs on Java 11 or
newer even when built with a newer JDK.
To target a different runtime:
make JAVA_RELEASE=17If Java is not already on PATH, pass the JDK location:
make JAVA_HOME=/c/Users/MEA10713/Downloads/microsoft-jdk-25.0.3-windows-x64/jdk-25.0.3+9If GNU Make is not installed, use the Windows fallback:
make.cmd jar
make.cmd test
make.cmd cleanTo override the Java bytecode target:
set JAVA_RELEASE=17
make.cmd jarmake jar # build fizzim.jar
make clean # remove Java build outputs
make test # run the public backend regressionThe GUI saves .fzm diagram files. The backend turns a diagram into HDL:
perl fizzim.pl < my_fsm.fzm > my_fsm.svPrefer standard input/output redirection when running the backend by hand. The legacy tutorial warns against passing the input filename as a positional argument because missing option values can be mistaken for the filename.
Fizzim uses Java's logical Monospaced font for diagram text, the global canvas
table, and attribute-editor table cells. Java maps this to an available platform
font such as Consolas, DejaVu Sans Mono, or Liberation Mono.
The rest of the GUI uses the normal platform look-and-feel fonts.
Global outputs are split into two panes:
-
Outputsare generated as module output ports. -
Internalsare generated as internal FSM variables and omitted from the module port list.
Internals are useful for helper state, one-cycle pulses, and intermediate
registered values that should stay inside the FSM. Behind the scenes, Internals
are still stored as outputs with suppress_portlist for parser and backend
compatibility.