Ant64 System Overview

A federation of specialised subsystems — each focused, each deterministic, all connected.


FireStorm — Main CPU and Chipset (GoWin GW5AT FPGA)

The Ant64's processing fabric is one FPGA containing both a 64-bit RISC-V CPU (FireStorm) and the custom chipset alongside it — graphics, audio, blitter, copper, rasteriser. CPU and chipset share the FPGA's memory ports and timing fabric, so the CPU and the hardware aren't separated by a driver layer or a memory copy — they're the same silicon, running in the same clock domain.

FireStorm Execution Engine

GoWin GW5AT-138 (Ant64 / Ant64C) · GW5AT-60 (Ant64S) · ~$26/chip volume · 22nm

FireStorm EE (RV64GC + 7 custom extensions)
    |
    +--> AntOS (FreeRTOS-based, multi-task)
    +--> User applications (C++ · Dear ImGui · Luau · scripting)
    +--> Audio engine setup, AI, pathfinding, game state
    +--> Chipset register writes (one address space)
  • RV64GC compatible — vanilla RISC-V binaries run unchanged from DDR3
  • Wide mode — hot-path code in 36-bit SRAM has 64 GPRs, 64 FPRs, wider immediates, predicated execution, dual-issue
  • Seven custom extensions — Xcrisp (memory primitives), Xstack (BSRAM stacks), Xcond (predication), Xlate (translators), Xctx (hardware contexts), Xmath (games/audio/DSP math), and the implicit Xwide
  • Shallow OoO microarchitecture — register scoreboarding, dual-issue, DSP-block-backed multipliers, ~380 MHz on the GW5AT

Chipset (in the same FPGA)

Block Detail
Display pipeline Up to 16 hardware layers, copper-driven raster effects
Blitter Memory moves, transforms, blends, transparency
Audio engine 128+ voices · FM / VA / sample / granular / physical modelling · WM8958/WM8960 codec
Copper Beam-synchronised list processor for mid-scanline register changes
2D rasteriser ImGui draw-list backend · triangle setup · scanline fill · texture sampling
Raycaster / voxel Hardware ray queries, voxel column rendering

The CPU writes a sprite attribute and the next scanline shows it. No driver, no DMA-and-flush, no abstraction wall. More about FireStorm »

Memory System

Bus Width Purpose
DDR3 (external) 64-bit (Ant64/C), 32-bit (Ant64S) Main code/data — up to 2GB depending on model
Wide-mode SRAM 36-bit Hot-path code for FireStorm wide mode — up to 1M × 36-bit (~4.5MB)
On-chip BSRAM varies Sprite line buffers, palette, copper lists, scratchpad
QSPI slave (×3) Pulse, DeMon, accelerator — chip register windows
MIPI RX (×2, from ESP P4 supervisors) 2-lane + clock each, 1.5 Gbps/lane = 3 Gbps each DeMon AntOS UI feed + Pulse sequencer UI feed (composited as display layers)

The wide-mode SRAM is Ant64 / Ant64C only. Ant64S runs FireStorm entirely from DDR3 in narrow mode (32-bit fetch). All FireStorm extensions except the wide-mode-only ones (Xcond predication, wider immediates, indexed loads via 0x7F escape) work in narrow mode.


DeMon — System Supervisor (ESP32-P4 + ESP32-C5)

DeMon is the glue — it boots, watches, bridges, displays the boot UI, and provides connectivity.

DeMon is now built around an ESP32-P4 — a single 400 MHz HP RISC-V core with 32MB PSRAM, PIE (AI/DSP) extensions, MIPI display engine, USB OTG — paired with an ESP32-C5 (Wi-Fi 6, Bluetooth 5.3, Thread, Zigbee). AntOS runs on DeMon's HP core, not on FireStorm, so the OS keeps running even when the FPGA bitstream is reloaded (a personality cartridge swap, for example).

  • JTAG → FireStorm FPGA (bitstream, flash, debug)
  • QSPI → FireStorm (register window)
  • MIPI display TX → FireStorm (AntOS UI + sprite layer · 2D-PPA blitter with rotation · recovery screens)
  • Triple SID audio engine (L/C/R, 9 SID voices, PIE-accelerated) and SAM speech synthesizer (PIE-accelerated formant TTS) — system sounds, FX, SID file playback, voice prompts, accessibility, dialogue; both streamed to FireStorm via the same MIPI link
  • SPI master → Pulse, cartridge, touch TFT
  • WiFi / BT / Thread / Zigbee via ESP32-C5 · optional LoRa via SX1262
  • Watchdog · debug proxy · USB host (keyboard, mouse)
  • 32MB PSRAM available to the supervisor — enough room for boot UI, recovery shells, and OTA staging
  • RTC — MCP74910 with CR2450 backup
  • 256GB internal micro SD (default, replaceable)

The ESP32-P4's MIPI display engine drives a feed into the FPGA, so DeMon can display a boot UI before FireStorm is even loaded — recovery screens, splash images, error messages — composited with FireStorm output once it's running.

More about DeMon »


Pulse — Music, Sequencer & Performance MCU (ESP32-P4 + 32MB PSRAM)

Pulse is the hands-on musical brain — every knob, dial, MIDI socket, and the sequencer UI itself live here.

Pulse is now built on the same ESP32-P4 SoC as DeMon, with 32MB of embedded PSRAM and a MIPI display engine that feeds its own UI directly into the FireStorm display compositor. Where DeMon owns boot, recovery, network, and the supervisor overlay, Pulse owns everything performance-related — MIDI, jog dials, sample storage, sequencer logic, software synth emulators, and the sequencer / mixer / sample-browser UI.

  • MIDI — DIN In/Out/Thru (Ant64C, via UART optoisolators) + USB MIDI host + USB MIDI device + MPE support
  • 8× RGB jog dials with integrated push buttons + RGB LEDs
  • Joypads via Sticky controller (SPI master)
  • MIPI display TX → FireStorm (sequencer UI + sprite layer · 2D-PPA blitter with rotation)
  • QSPI → FireStorm (chipset register window)
  • SPI ↔ DeMon (bidirectional command/data link — master + slave channels each side)
  • 32MB PSRAM for sample libraries, AMY patch banks, sequencer state, software synth working memory
  • AMY synthesis library (github.com/shorepine/amy) running natively on the ESP32-P4 — additive / FM / PCM / partials / filters / envelopes; audio streamed to FireStorm for mixing with the chipset's hardware voices
  • Classic synth emulators in firmware (speech synthesis lives on DeMon — see SAM)
  • Round TFT display (separate SPI) for jog dial labels and per-knob state
  • 4× 3.5mm trigger / CV inputs (Kick · Snare · Sync · Foot)

More about Pulse »


Sticky — 5V Input Protection (AVR128DB64)

Cheap, replaceable, electrically isolated.

The Sticky MCU handles 5V joystick / paddle / 9-pin-mouse inputs without exposing the FPGA to surges or back-EMF:

  • 4 joypad ports — Atari/C64 compatible · Sega 3-/6-button · paddles · 9-pin mice
  • Per-port I2C or serial TX/RX modes
  • Talks only to Pulse over SPI
  • Replaceable as a socketed part — sacrificial protection layer

Pi Zero 2W — Future Accelerator (optional)

A Raspberry Pi Zero 2W attaches to the FPGA via its expansion interface — not a main CPU, but an opt-in accelerator slot for compute-heavy workloads that don't need real-time guarantees:

  • 1 GHz quad-core ARM Cortex-A53, 512MB RAM
  • Built-in WiFi/Bluetooth (alternative path to ESP32-C5)
  • High-speed bus to FPGA via the Pi's expansion header
  • Use cases: heavy emulation cores, codec work, software audio plugins, Linux services, community accelerators

(The Pi Zero 2W has no AI / TPU hardware. Small AI / DSP work happens on the supervisors via ESP32-P4 PIE extensions.)

The Pi runs an unmodified Raspberry Pi OS or a custom minimal image, and exchanges data with FireStorm via the FPGA bus. It's not required for the system to function — Ant64 boots and runs without it.


Outputs

Audio

Output Notes
2× stereo speakers Internal
Phono line out Standard RCA
HDMI audio Via video output
Optical S/PDIF Ant64C only
Headphone 3.5mm

Video

Output Notes
HDMI All models — 4K@60 via Parade PS176 DP→HDMI bridge fed by FPGA SerDes
VGA + 3.5mm audio All models — DE-15 + 3.5mm jack via AG6201 HDMI→VGA bridge fed by FPGA fabric HDMI TX
Light synth Generative visual output
ESP32-P4 MIPI feeds (×2) DeMon's AntOS UI + Pulse's sequencer UI, composited as layers on the main display
Keyboard touchscreen DeMon-driven, SPI, always active regardless of FPGA state
Circular display on case Pulse-driven, SPI, always active regardless of FPGA state — far left of case, above keyboard

Network & Connectivity

Interface Notes
WiFi 2.4GHz All models (via ESP32-C5)
WiFi 5GHz / 6 All models (via ESP32-C5)
Gigabit Ethernet Ant64C only
BT 5.3 · Thread · Zigbee Via ESP32-C5
Gossip P2P mesh AntOS built-in
TCP/IP debug server AntOS built-in
LoRa Optional (SX1262)
Pi Zero 2W WiFi/BT Optional second wireless path

Storage & I/O

  • 256GB internal SD (via DeMon)
  • Cartridge port (30-pin)
  • USB keyboard / mouse
  • 4× 3.5mm trigger / CV inputs

Interconnects

Bus Used For
QSPI FireStorm ↔ Pulse · FireStorm ↔ DeMon · FireStorm ↔ accelerator — register access
MIPI 2-lane (×2) ESP32-P4 (DeMon) → FireStorm · ESP32-P4 (Pulse) → FireStorm — UI overlays + bulk data
JTAG Debug / programming — DeMon → FireStorm FPGA (bitstream + flash)
SPI bidirectional DeMon ↔ Pulse (master + slave each side — peer command/data) · DeMon ↔ cart
Pi expansion bus Pi Zero 2W ↔ FireStorm (accelerator data path, future)
Hi-speed UART DeMon ↔ Pulse

Software Stack

+--------------------------------------------------+
|  User app  (C++ / Luau / Dear ImGui)             |
|  Music workstation · games · demos · tools       |
+--------------------------------------------------+
|  AntOS (on DeMon)  ·  FreeRTOS  ·  Luau  ·  DBFS |
|  TCP/IP debug server · Gossip P2P                |
+--------------------------------------------------+
|  FireStorm EE (RV64GC + 7 extensions, in FPGA)  |
|  Runs the user app; AntOS UI composited as layer |
+--------------------------------------------------+
|  Chipset in same FPGA: Display · Audio · Blitter |
|  Copper · Raster · Raycaster                     |
+--------------------------------------------------+
|  DeMon (ESP32-P4 + ESP32-C5)  ·  Pulse (ESP32-P4)|
|  Optional: Pi Zero 2W accelerator                |
+--------------------------------------------------+

AntOS runs on DeMon (the ESP32-P4 supervisor), providing OS-level services — filesystem, network, scripting, debug server, UI — independently of the FPGA. User applications, games, and demos run on FireStorm in the FPGA, with direct access to the chipset (sprites, blitter, copper, audio engine). The two communicate via QSPI register windows and the MIPI display link. Because AntOS lives outside the FPGA, FPGA reconfigures (personality cartridges, development iteration, recovery) do not require an OS reboot — just a brief main-display blackout while the FPGA loads its new state. On power-on or reset the FPGA auto-loads its native Ant64 chipset from its own flash in a fraction of a second; a personality cartridge load takes up to ~1 second. The keyboard touchscreen (driven by DeMon) and the circular display above the keyboard (driven by Pulse) remain visible throughout, so the user always has feedback.


Model Comparison

Feature Ant64S Ant64 Ant64C
FPGA GoWin GW5AT-60 GoWin GW5AT-138 GoWin GW5AT-138
FireStorm EE RV64GC + extensions RV64GC + extensions + 32-bit-pair dual-issue RV64GC + extensions + 32-bit-pair dual-issue
FPGA hard RISC-V coprocessor 800 MHz, 32-bit (debug / monitor) 800 MHz, 32-bit (debug / monitor)
DDR3 512MB, 32-bit (3.2 GB/s) 1GB, 64-bit (6.4 GB/s) 2GB, 64-bit (6.4 GB/s)
Wide-mode SRAM 1M × 36-bit (~4.5MB) 1M × 36-bit (~4.5MB)
Supervisor DeMon (ESP32-P4 + ESP32-C5) DeMon (ESP32-P4 + ESP32-C5) DeMon (ESP32-P4 + ESP32-C5)
Music/control Pulse (ESP32-P4 + 32MB PSRAM) Pulse (ESP32-P4 + 32MB PSRAM) Pulse (ESP32-P4 + 32MB PSRAM)
Accelerator Pi Zero 2W (optional) Pi Zero 2W (included)
WiFi 2.4GHz 2.4 + 5/6GHz 2.4 + 5/6GHz
Ethernet No No Gigabit
DIN MIDI No No In / Out / Thru
Optical audio No No S/PDIF
Video out Main HDMI + retro VGA/audio Main HDMI + retro VGA/audio Main HDMI + retro VGA/audio

Important: The Ant64 family of home computers are at early design/prototype stage, everything you see here is subject to change.