The Zx Spectrum Ula How To Design A Microcomputer Zx Design Retro Computer Portable [better] Jun 2026
The Sinclair ZX Spectrum remains a masterpiece of minimalist engineering. Launched in 1982, it brought affordable computing to millions. At its core sat a single custom chip: the Uncommitted Logic Array (ULA).
The ULA sits at the very center of the ZX Spectrum architecture, handling four critical system functions simultaneously:
The ultimate DIY "ZX Design" isn't just about preserving the original desktop computer—it is about shrinking it down to fit in your pocket.
without a dedicated video chip. Where to find schematics for a simplified Z80 design. The Sinclair ZX Spectrum remains a masterpiece of
+-------------------------------------------------------+ | PORTABLE MICROCOMPUTER | | | | +-------------------+ +---------------------+ | | | Z80 CPU | | FPGA / CPLD (ULA) | | | | (Physical/Core) |<=====>| - Video Generation | | | +-------------------+ | - Keyboard Matrix | | | | - Contention Logic | | | +-------------------+ +----------+----------+ | | | SRAM / ROM | | | | | (System RAM) |<-----------------+ | | +-------------------+ v | | +---------------------+ | | +-------------------+ | TFT/LCD DISPLAY | | | | Li-ion Battery & | | (RGB/SPI Drive) | | | | Power Management | +---------------------+ | | +-------------------+ | +-------------------------------------------------------+ Step 1: Choosing Your Core Processing Unit You have two primary routes for the CPU:
Use a TP4056 or IP5306 charging IC to safely handle USB-C charging, over-discharge protection, and battery status LEDs.
To achieve his goal of a mass-market, sub-£100 computer, Clive Sinclair turned to Ferranti’s technology [1]. A ULA is a precursor to the modern FPGA (Field Programmable Gate Array). It consisted of a pre-fabricated silicon wafer with a grid of uncommitted transistors. Designers only had to customize the final metal layer to interconnect the transistors into specific logic gates. The ULA sits at the very center of
| Function | Description | |----------|-------------| | | Produces 15.625 kHz horizontal and 50 Hz vertical sync (PAL). Outputs 256×192 pixels, 1-bit per pixel, with attribute clash. | | Memory Arbitration | Interleaves Z80 access and video fetch during the 6.5 MHz clock. CPU runs at ~3.5 MHz but is halted during video display (contended memory). | | I/O Decoding | Decodes port 0xFE for keyboard reading, sound (beeper), and cassette mic/ear. | | DRAM Refresh | Provides RAS/CAS timing for 4116-style DRAMs. | | Clock Generation | Divides a 14.21818 MHz master clock down to 3.5469 MHz (Z80) and pixel clock. |
(CMOS version). It still runs at 3.5MHz and is widely available.
+-------------------------------------------------------------+ | FERRANTI ULA | | | | +------------------+ +----------------+ +-----------+ | | | Video Timing |-->| Memory Control |-->| Audio/I/O | | | | (NTSC/PAL Sync) | | (Contended RAM)| | (Ear/Mic) | | | +------------------+ +----------------+ +-----------+ | +-------------------------------------------------------------+ What is a ULA? runs original software (via .tap/.z80 files)
The Z80 must see RAM access times <200ns. The RP2040 can do this via tight PIO + DMA.
Whether you are building a full-sized replica or a portable, handheld unit, the ULA design philosophy proves that sometimes, less is truly more. Resources for Further Exploration:
The result isn't a "clone" – it's a that fits in your pocket, boots instantly, runs original software (via .tap/.z80 files), and respects the spirit of the original: clever hardware design that punches above its weight.
Replace this setup with a modern .