Operating at 7MHz, it outputs 256 horizontal pixels per active line.

The gold standard. Chips like the Spartan-6 or Cyclone IV can emulate the entire ULA, the Z80 processor (as a soft core), and the memory controllers on a single chip. Projects like the ZX Uno utilize this method.

You decide that your RAM should exist at memory addresses 0xC000 to 0xFFFF and your ROM at 0x0000 to 0x3FFF . You usually use a chip like the 74LS138 (3-to-8 decoder) to look at the highest address lines ( A15 and A14 ). If A15 and A14 are 11 , you enable the RAM. If they are 00 , you enable the ROM. The rest of the lines are ignored by the decoding logic and handled by the chips themselves. This is the "glue" that the ULA was designed to replace.

The portable must run original ZX Spectrum ROMs. Use the original 48K ROM (16KB) or the 128K +2 ROM (32KB). The FPGA can bank-switch ROM for 128K models, but keep the design simple: 48K compatibility is sufficient for 95% of games.

An Uncommitted Logic Array is a primitive ancestor of the modern FPGA. Ferranti manufactured silicon wafers containing a grid of disconnected logic gates. Sinclair then provided a final masking layer to connect these gates into a specific circuit. This single chip replaced roughly 40 standard integrated circuits, radically lowering production costs. Core Functions of the Spectrum ULA

Providing the 3.5MHz clock signal to the Z80 CPU.

It takes a 14 MHz master crystal oscillator and divides it down to provide a 3.5 MHz clock to the Zilog Z80A CPU.

– Contended memory state machine:

to handle the logic usually reserved for the ULA, simplifying the build for those who want to use a real Z80 but avoid complex gate arrays. Portable Design Considerations

To design your own retro computer, you must understand the delicate, and sometimes chaotic, dance between the Z80 CPU and the ULA.

The original ULA was a custom Ferranti chip that integrated several discrete logic functions into one package to reduce costs. Key responsibilities included:

It divided a 14 MHz master clock down to 3.5 MHz for the Z80 CPU. How to Design Your Own Retro Microcomputer

The cheapest and most popular way to build a portable Spectrum today is to bypass the discrete hardware entirely and use a modern microcontroller running an emulator. The leader in this space is the , a $4 microcontroller that has more raw power than a 1980s supercomputer.

The ZX Spectrum’s secret weapon was its ULA—a single chip that turned complex "glue logic" into an affordable reality. Today, that spirit lives on. Whether you are etching your own Z80 motherboard from scratch, programming a CPLD to act as a DRAM controller, or 3D printing a case for a Pico-powered handheld, you are continuing the design tradition that Sir Clive Sinclair started. The beauty of the Spectrum is that its architecture is simple enough for one person to understand—and build—the entire machine. So grab a soldering iron, pull up a schematic, and build your own portable piece of computing history.

If the CPU tries to access the lower 16KB of RAM while the ULA is reading video data, the ULA halts the CPU by pulling the Z80's WAIT pin low.