Skip to content

Getting Started

Aaron Cook edited this page May 10, 2026 · 2 revisions

Getting Started

Build The Jar

From the repository root:

make

This creates fizzim.jar, which can be run on Linux or Windows:

java -jar fizzim.jar

The 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=17

Windows Without Admin Rights

If 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+9

If GNU Make is not installed, use the Windows fallback:

make.cmd jar
make.cmd test
make.cmd clean

To override the Java bytecode target:

set JAVA_RELEASE=17
make.cmd jar

Common Commands

make jar      # build fizzim.jar
make clean    # remove Java build outputs
make test     # run the public backend regression

Running The Backend Directly

The GUI saves .fzm diagram files. The backend turns a diagram into HDL:

perl fizzim.pl < my_fsm.fzm > my_fsm.sv

Prefer 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.

Fonts

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.

User-Facing Attribute Panes

Global outputs are split into two panes:

  • Outputs are generated as module output ports.
  • Internals are 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.

Clone this wiki locally