Collecting old CPUs and firing them up again is all the rage these days, but how do you know if they will work? For many of these ICs, which ceased production decades ago, sorting the good stuff from the defective and counterfeit is a minefield.
Testing old chips is a challenge in itself. Even if you can find the right motherboard, the slim chances of escaping the effect of time on the components (in particular, capacitor and EEPROM degradation) make a reliable test setup hard to come by.
Enter [Samuel], and the Universal Chip Analyzer (UCA). Using an FPGA to emulate the motherboard, it means the experience of testing an IC takes just a matter of seconds. Why an FPGA? Microcontrollers are simply too slow to get a full speed interface to the CPU, even one from the ’80s.
So, how does it actually test? Synthesized inside the FPGA is everything the CPU needs from the motherboard to make it tick, including ROM, RAM, bus controllers, clock generation and interrupt handling. Many testing frequencies are supported (which is helpful for spotting fakes), and if connected to a computer via USB, the UCA can check power consumption, and even benchmark the chip. We can’t begin to detail the amount of thought that’s gone into the design here, from auto-detecting data bus width to the sheer amount of models supported, but you can read more technical details here.
The Mojo v3 FPGA development board was chosen as the heart of the project, featuring an ATmega32U4 and Xilinx Spartan 6 FPGA. The wily among you will have already spotted a problem – the voltage levels used by early CPUs vary greatly (as high as 15V for an Intel 4004). [Samuel]’s ingenious solution to keep the cost down is a shield for each IC family – each with its own voltage converter.
However, due to the need to store FPGA configurations for different shields, the Mojo’s on-board EEPROM wasn’t up to the job, and needed to be upgraded from 4MB to 128MB. Luckily this component switch didn’t require any change on the PCB, though the ATmega32U4 firmware had to be modified, along with the original tool for FPGA firmware upload.
The list of compatible ICs is impressive: Intel 8085/8086/8088, Zilog Z80, RCA/COSMAC 1802, NSC800, Intel 8051 & 8048 are just a few of the currently supported series, and more are being added at an astonishing rate! Shields for RAM and BSP are also underway.
Depending on interest, [Samuel] is considering a non-profit Kickstarter or Indiegogo, so be sure to comment if you dig it!