Rebuilding the Commodore 64 using a Cologne Chip GateMate™ FPGA development board by Olimex.
Just like my C64 emulation project on the RP2040 chip used on the Olimex Neo6502 retro computer, this project is for fun. I always wanted to do some chip design myself like the ancestors did for the Commodore 64 or the Commodore Amiga. Now that FPGA development boards and the design software came down from several hundred thousand to about fifty Euros, this goal is now in reach. It is also no longer necessary to use breadboards and kilometres of wire for this. For me it is both fun and education because I did not work on a bigger FPGA based project before nor did I had the chance to work using FPGAs in my current job.
The project has just started. The next steps are as follows:
- Setting up the IDE and directory structure
- Makefiles and scripts to compile and test each module individually
- Creation and upload of the bitstream to FPGA
- System wide monostable multivibrator type reset module
- Basic video output
- LY68S3200 PSRAM (4Mx8) BUS controller
- 6502 loading/storing/executing code from PSRAM
- Video module accessing PSRAM
- ... much, much more...
Software I am using:
- Yosys Open Synthesis Suite
- Icarus Verilog
- openFPGALoader
- GTKWave Wave Viewer
- Cologne Chip's GateMate™ SDK
- 6502 Verilog HDL model by Arlet Ottens
- Microsoft Visual Studio Code
- Gnu Make
- Ubuntu Linux
- GateMate™ FPGA from Cologne Chip CCGM1A1 on the Olimex development board.
- A cheap (~€16) video capture USB stick to display the VGA output of the FPGA onto my HDMI monitor in an overlapping window using Gucview or simply use the camera app.
(My IDE with some FPGA's video test output in Gucview)
- RIGOL DS1202Z-E Oscilloscope
Thanks to Steven Hugg's excellent ide website.
In the meantime you may want to check out my C64 emulation on the Olimex RP2040 based Neo6502 retro computer. It is a software emulation of the C64 written in C++ which was a kind of finger excercise / blueprint to follow for this project as well.