Implementing the 100 MHz 6502 In an FPGA
Jürgen Mülle has posted details of re-implementing the 65C02 in an FPGA, in a pin-compatible format that enables you to upgrade old computers and games to a 100 MHz clock rate! Speaking about the project, Jürgen says:
“The idea of implementing a CPU core inside an FPGA is not new, of course. In fact, the CPU core I am using is not my own, but was developed as a 6502 core by Arlet Ottens, and extended to cover the 65C02 opcodes by Ed Spittles and David Banks.”
He started by designing a circuit board that is the same size as a 40-pin dual inline package and has pins that correspond to the 65C02 pinout. This board was then fitted with a Spartan-6 FPGA and 64 kByte of on-chip RAM. He implemented logic within the FPGA that is able to interact with the external 65C02 bus in accordance with the clock signal from the host system. The CPU core within the FPGA clocks at a speed of 100 MHz. The goal is to create a single accelerator that can be used with 6502 and 65C02-based host computers, simply by plugging it into the CPU socket.
The FPGA board must be aware of the memory map of its host in order to determine where the host has memory-mapped I/O. It can store up to 16 different memory maps and switch between them using a mini DIP switch. When the 65F02 is turned on, it takes all of the RAM and ROM content from the host and stores it in its own internal RAM, excluding the I/O area. Once the CPU is running, the internal memory is accessed at 100 MHz for all bus operations, except for I/O addresses. In this case, the CPU will pause and an external bus cycle will be initiated at the external clock rate.
Supported host systems
One of the host systems the project supports are the Chess computers. Jürgen Mülle primarily concentrated on Mephisto chess computers, because they are the main focus of Roland’s collector’s desires. However, he hopes to extend the project to many other items on the wishlist. including Fidelity (Elite A/S Budapest and Glasgow, Prestige, Avantgarde), Novag (Super Constellation, Super Expert C), SciSys (Turbostar),
For microcomputers, the project supports the two 6502-based members of the classic 1977 “Trinity” of home computers – the Apple II and the Commodore PET series. Also, in the future, it will be possible and worthwhile to offer support for some slightly later machines like; The Acorn BBC Micro, Atari 400 and 800, and possibly the Commodore C64 come.
Note that this is a hobby project, and Jürgen Mülle has no plans at the moment to take it commercial. Some of the small-form-factor PCBs have been assembled, and have been successfully tested in the above-mentioned computers. For more information, visit the project page.
Join 97,426 other subscribers