The Zx Spectrum Ula- How To Design A Microcomputer -zx Design Retro Computer- (Plus - RELEASE)
For modern retro-computing enthusiasts and engineers, the Spectrum ULA remains a fascinating case study. It teaches that good design isn't just about using the most powerful components; it is about understanding the timing and interaction between components.
The ULA allowed Clive Sinclair to deliver a color computer to the masses at an unprecedented price point. It turned the ZX Spectrum from a theoretical design into a household object. Today, modern recreations of the Spectrum often use modern FPGAs to emulate the behavior of that original Ferranti ULA, proving that the logic design conceived in the early 80s is still sound, efficient, and worthy of study.
Early microcomputers had chaotic I/O. The Spectrum uses a "partial decode" strategy. To save transistors in the ULA, the Spectrum doesn't check all 16 address lines for I/O. Usually, it checks only the lower 8. The "Strict" Timing: The ULA demands that DRAM
In 1981, a viable home computer required approximately 70-100 discrete logic chips (TTL). The Apple II used 62; the Commodore PET used over 90. Sinclair’s previous machine, the ZX81, used a single ULA to replace roughly 80% of those chips, retailing at £49.95.
For the Spectrum, Sinclair’s mandate was absolute: color graphics for the price of a monochrome machine. The traditional solution (a dedicated Video Display Controller like the Motorola 6845) was too expensive and required external character generators and RAM. The ZX Spectrum ULA was the answer: a custom gate array designed by Richard Altwasser of Ferranti, programmed to do just enough and nothing more. For modern retro-computing enthusiasts and engineers
The ULA generated a 15.625KHz horizontal sync and 50Hz vertical sync for a TV.
Unlike modern GPUs, the Spectrum had no dedicated video RAM. The display file lives in the same 16KB of DRAM as the user’s code (addresses 0x4000 to 0x7FFF). The ULA generates the screen by brute force: retailing at £49.95. For the Spectrum
The "Strict" Timing: The ULA demands that DRAM refresh and CPU access occur in specific 4MHz clock phases. The Z80 CPU (running at 3.5MHz) must be halted (via the /WAIT pin) during the ULA’s screen drawing phases. This is the famous contention.
If you’d like, I can: