If you open up a Sinclair ZX Spectrum, you might expect to find a motherboard sprawling with chips—CPU, RAM, ROM, video logic, and sound circuits. Instead, you are greeted by a surprisingly empty board. The magic lies in one mysterious, black chip sitting smack in the center: the ULA (Uncommitted Logic Array).
For the retro computing enthusiast, the ULA isn't just a chip; it is a masterclass in cost-reduction engineering. It represents a pivotal moment in computing history where the goal wasn't just to build a computer, but to build one cheap enough to fit in every home. The ZX Spectrum ULA: How to Design a
Today, we’re going to look at how the ULA defined the Spectrum’s design, why it matters for modern hardware hackers, and how understanding it helps you build your own portable retro machines. Memory contention timings between ULA and CPU (so
An FPGA (e.g., Lattice iCE40 UP5K or Sipeed Tang Nano) can replicate the ULA’s parallel logic exactly. cpu_wait = 0
Advantages:
Architecture:
Key VHDL/Verilog snippet – Contended memory state machine:
always @(posedge clk_14m) begin
if (hcount < 128) begin // 64 us fetch period
mem_oe = 1; // ULA reads screen
cpu_wait = 1; // Stall Z80
end else begin
mem_oe = 0;
cpu_wait = 0;
end
end