Sipeed's Tang Nano 9K is one of the cheapest ways into FPGA work, and it is usually bought as a place to blink LEDs and drive a test pattern out of its HDMI connector. A project called m9b, written up by The Parts Bin and covered by Hackaday on 1 November 2026, pushes it a long way further. It is a complete retro-style computer built only from the board's FPGA fabric: a RISC-V CPU with caches, 8 MB of RAM, 720x480 HDMI video with 48 kHz stereo sound, two USB ports and an SD card. It runs ports of Doom, Descent, Tyrian, System Shock and Ultima VII.

The write-up is labelled part 1 of 6. Here is what the build does, and what the Tang Nano 9K hardware underneath it provides.

The rules of the build

According to The Parts Bin's project page, the author set four constraints. Everything runs in the FPGA, and the board's BL702 companion microcontroller is not reflashed. The result has to be a generic computer, not a fixed-function game machine. I/O has to be real HDMI, USB and SD. The software has to be ported from existing C/C++ source rather than rewritten for the hardware.

The first rule is the important one. The Tang Nano 9K has no hard CPU on the FPGA side. Sipeed's 4K sibling carries a Cortex-M3, but the 9K does not, so every instruction m9b executes runs on a soft core built from lookup tables.

What is on the board

Sipeed's own wiki page for the board (dated 2026-10-13) gives the FPGA as the Gowin GW1NR-LV9QN88PC6/I5. Hackaday calls the chip the GW1NR-9C, and the project page uses GW1NR-LV9QN88P. These all refer to the same GW1NR-9 device. Sipeed lists the FPGA resources as:

  • 8,640 LUT4 and 6,480 registers
  • 17,280 bits of shadow SRAM
  • 468K bits of block SRAM in 26 blocks
  • 608K bits of user flash
  • 64M bits of PSRAM
  • 20 18x18 multipliers
  • 2 PLLs, with an onboard 27 MHz clock

On the board itself, Sipeed lists HDMI, RGB-screen and SPI-screen interfaces, 32 Mbit of SPI flash, six LEDs and a TF card slot. The onboard BL702 provides USB-JTAG and USB-UART. Sipeed describes the 9K as the fifth product in its Tang series and points users who need more features to the 20K.

The project page explains the PSRAM in more detail. The 9K's chip is three dies in one package: the FPGA plus two 32 Mbit PSRAMs. Each PSRAM sits on its own 8-bit DDR bus rated up to 166 MHz. m9b runs both at 144 MHz in lockstep, and the author gives a theoretical peak of 664 MB/s. That 8 MB is what serves as the computer's main memory.

The Tang Nano family, side by side

The project page compares the four Tang Nano boards. The comparison is useful in its own right, because the boards differ more than the shared name suggests:

  • Tang Nano 1K: GW1NZ-1, 1,152 LUT4
  • Tang Nano 4K: GW1NSR-4C, 4,608 LUT4, with a hard Cortex-M3
  • Tang Nano 9K: GW1NR-9, 8,640 LUT4, 52 KB block RAM, 8 MB PSRAM in two dies
  • Tang Nano 20K: GW2AR-18, 20,736 LUT4

Of the four, the 9K combines 8,640 LUT4 with 8 MB of in-package RAM and no hard CPU. The author's choice to build the processor from the same 8,640 cells as everything else is what makes m9b the challenge it is.

Inside m9b

The CPU is vexiiRiscv, running at 36 MHz. It uses 24 KB of the 52 KB block RAM as cache, which the author counts against the chip's total. The author reports that the CPU closes timing at 37.8 MHz in the latest build, so 36 MHz leaves only a small margin.

Every clock comes from the single 27 MHz crystal through the chip's two PLLs. The project page lists the domains as:

  • 135 MHz for the HDMI TMDS serialiser
  • 27 MHz pixel clock
  • 144 MHz, 72 MHz and 36 MHz internal clocks (the 144 MHz domain drives the PSRAM; 36 MHz is the CPU clock)
  • 12 MHz for USB

The video output is 720x480 at 60 Hz over HDMI, with 48 kHz stereo audio.

USB took the most work. The Tang Nano 9K has no USB host port; the board's USB-C connector belongs to the BL702 for programming and serial. m9b wires its two USB sockets directly to FPGA I/O pins and implements the USB host as microcode running in logic.

The design nearly fills the chip. After place-and-route, the author reports 7,560 of 8,640 logic cells used (88%), 25 of 26 block RAMs, and 97% of slice pairs occupied. In practice, very little room remains for more logic.

The games

The project page lists ports of Doom, Descent, Tyrian, System Shock and Ultima VII. Hackaday's coverage names Doom, Tyrian, System Shock and Ultima VII and says they run at a playable speed at 720 x 480. It does not mention Descent. Neither source gives a frame-rate figure, so "playable" is Hackaday's description and not a measured number.

Hackaday is open about the limits of the project. It calls m9b neither the fastest nor the cheapest way to play retro games, but a good learning exercise for getting to know a new FPGA board.

What It Means for Makers

The project suits people who want to understand FPGA-based computer design from the bottom up: students and educators teaching computer architecture, hobbyists going from "HDMI test pattern" to "real system", and embedded engineers curious about how far a small Gowin part can be pushed. As a gaming platform it replaces nothing. A Raspberry Pi or any old PC runs these titles more easily, and Hackaday makes a similar point, suggesting you could emulate the games on the machine you are reading about them on. Its value is as a fully documented reference: a soft RISC-V core, a dual-PSRAM memory controller, an HDMI pipeline with audio, a USB host in logic and an SD interface, all fitted into a budget-class chip.

It also shows what the 9K's in-package PSRAM is good for. The 1K has no in-package RAM, the 4K has about half the logic (4,608 LUT4), and the 20K has more than twice the logic (20,736 LUT4). If your next project needs a soft CPU with real memory but you do not want to pay for a larger part, m9b's resource figures (88% of logic cells, 25 of 26 block RAMs) tell you roughly where the 9K's limit is.

Price and availability: the Tang Nano 9K is an existing product sold by Sipeed. Sipeed's wiki page, as of its 2026-10-13 revision, does not list a price. The "$15" figure comes from the project author, and Hackaday describes the board as "usually acquired for around $15 or so" (November 2026). Treat it as an approximate street price, not an official list price. m9b is a hobby project write-up, not a product: there is nothing to pre-order or buy. The project page is part 1 of a six-part series.

Sources