In 1982, Sinclair Research released the ZX Spectrum, a machine that would define a generation of programmers and gamers. At its heart was not a standard chipset, but a single piece of custom silicon: the Uncommitted Logic Array (ULA) designated 5C112E. This paper argues that the ULA is not merely a peripheral controller but the philosophical manifesto of Sir Clive Sinclair. By analyzing the ULA’s dual role as video generator, DRAM multiplexer, and I/O traffic cop, we deconstruct the extreme cost-reduction strategies that birthed the home computing revolution. We will explore how the ULA’s infamous "contention" (the slowdown of the CPU to draw the screen) is actually a brilliant systems integration hack, and how modern FPGA recreations (like the Harlequin project) reveal the original designer’s trade-offs between component count and logical perfection.
To design your own retro computer, start with the video signal. The Spectrum’s ULA produced a signal. In 1982, Sinclair Research released the ZX Spectrum,
entity zx_ula is Port ( clk : in STD_LOGIC; cpu_addr : in STD_LOGIC_VECTOR(15 downto 0); cpu_data_in : in STD_LOGIC_VECTOR(7 downto 0); cpu_data_out : out STD_LOGIC_VECTOR(7 downto 0); video_rgb : out STD_LOGIC_VECTOR(2 downto 0); hsync, vsync : out STD_LOGIC; ram_we : out STD_LOGIC; ram_addr : out STD_LOGIC_VECTOR(14 downto 0); ram_data : inout STD_LOGIC_VECTOR(7 downto 0)); end zx_ula; By analyzing the ULA’s dual role as video
To ask "how to design a microcomputer" in 2024, you do not need a ULA. You can buy a $2 microcontroller that runs circles around the Spectrum. The Spectrum’s ULA produced a signal
The Ghost in the Gate Array
Sir Clive’s bet was that the ULA would be cheaper than programming a CPU to do video. Today, the opposite is true: CPUs are cheap, and custom silicon is expensive. But in 1982, the ULA was the only way to build a £125 color computer.