top of page

This is an implementation of the Sinclair ULA chip, found in ZX Spectrum microcomputers. The project offers various implementations: both FPGA friendly (with separate input and output data buses), and CPLD ready, to be used as a replacement for the many chips that comprise the ULA found in some clones.

This project is mostly based upon the work of Chris Smith. Chris designed a ZX Spectrum clon, the "Harlequin". A PCB has been developed by Don "Superfo", which uses discrete logic to implement the ULA, as Chris did. The CPLD version of this implementation is aimed to serve as replacement for that clone.

The ULA implementation follows, where possible, the original ULA timmings, as stated in "The ZX Spectrum ULA: how to design a microcomputer", written by Chris Smith and published by ZX Design and Media, ISBN 978-0-9565071-0-5

There are implementations with some enhancements such as Timex hicolour support and ULA+ support.

Features

 

  • CPLD (XC95144/288XL) version, with shared data bus, designed for the Harlequin clone.
  • FPGA (separate input and data buses, mostly synchronous, but I cannot aassure that) version, intented for soft SoC.
    • To test the FPGA version, several clones have been built around this ULA core. See directory branches/xilinx. These clones are ready to be used in the Spartan 3 Starter Board, both 200K and 1000K gate versions.
  • All timmings according to Chris Smith's specs. Yet to be tested against a real Z80 for timming accuracy (tv80 core seems not to have exact timmings, but this could be my fault, not tv80's)
  • Digital IRGB output, PAL timmings. Same signals as found in the 128K heatsink RGB DIN connector, that is, bright component separated from main components.
  • 8 bit digital RGB output for ULA+ mode. Output signal indicate whether ULA is in normal or plus mode.
  • EAR, MIC and SPK pins
  • FPGA version adds the 8-pin row connector for keyboard matrix. See xilinx/ directory for design examples.
  • Timex Hicolor mode supported in the FPGA version of the core.
  • ULA+ implemented in the FPGA version of the core.

A schematic for the piggy-back board is also available.

ULA replacement

bottom of page