I have always wanted to build a retro PC from basic parts. Now I have started with a 68k project in several phases.
The PC will have a basic north-bridge, south-bridge architecture with high speed interfaces, CPU, memory and graphics in the north-bridge part and slower interfaces like keybord, mouse, mass storage, network, joysticks, etc on the south-bridge part, that may be on the same, on a separate FPGA, or a supporting ARM-processor.
The end goal is to use a 68030 (I have a stash of about 140 NOS ‘030s) and add as much DDR2 memory as possible, and have as large graphics resolution and color depth as memory bandwidth can support, along with hardware accelerated graphics drawing. By dividing the project in several phases I can keep testing concepts as long as I like 😀
In phase one, I’ll wire up a 8MHz 68000 with 128k SRAM, SPI flash and an FPGA (Lattice Mach XO3), in phase 1a. The problems to solve is the 68k memory handshake, byte access to word-wide SRAM, and mirroring of flash in RAM. To get some sort of indication of success, I’ll also add a UART to the FPGA and write a message…
Phase 1b involves adding a VGA text mode over HDMI, and display text on it. The demo will be reading text from the UART and displaying on screen, and a challenge to keep up and scroll smoothly with the highest baudrates.
Phase 1c will replace the measly 128k SRAM with 16M EDO DRAM (maximum adressable memory for a plain 68000), witch requires an advanced EDO memory controller and a cache to take advantage of the EDO-ness.
At this point, it will be useful to write a boot monitor that can load user programs over the UART and execute to skip re-flasing the chip with a bus-pirate each time I want to test a new demo.
Phase 2 should probably focus on graphics and what that subsystem should look like. Plain framebuffer? Hardware sprites?
When I can display basic graphics, I should look into peripheral connectivity. I have this idea of adding an ESP32 module, wich would give WiFi Ethernet, and bluetooth hardware, and communicate with the rest of the PC over one or more SPI.
Audio is also important. There are plenty of classic audio chips implemented in FPGAs already, so why not have a couple of SID, an YM2149 and raw audio samples? Maybe throw in a classic Sound Blaster as well. Audio out should go both to HDMI and as analog out as well.
I’ll be back with some progress soon…