I'll start off my 3rd and final 'introductory' post with a brief run-down on the FPGA.
Since I'm only making a handful of the development boards, I thought I'd use the largest device that I could afford. To give you an idea of size, let me first note that the EP2C20 (20K LE's) is adequate to emulate the Amiga 500, including the 68K core and a 2nd soft-core processor for floppy emulation etc. And I figure that's about the same complexity as the Neo Geo...
I've gone with the 5CEA7, with roughly 150K LE's or, alternatively, enough logic to emulate seven (7!) complete Amiga 500's, or Neo Geo's. I figure there's enough headroom in there for SignalTap and any other debugging aids I may wish to add!?! In any case, with the cartridge connectors and digital video, the Neo Geo has some serious I/O requirements, and my wish list of features pretty much dictated a 480 user I/O device.
As I mentioned, the board is also being designed to be my PACE development platform for the foreseeable future, so there are a few more components not strictly required for the Neo Geo (but may come in handy for it anyway).
I've added an STM32F205 (ARM) micro-controller, primarily for JAMMA & AES controller I/O, but it's also a USB (OTG) host for HID gamepads, standard arcade trackball input, battery-backed RTC for the Neo Geo, and a high speed SD card slot. It's also responsible for configuring the FPGA from SD card. It connects to the FPGA via three (3) high speed SPI ports. For other PACE projects it'll be very useful for emulation of floppy and hard disk devices via FAT-formatted SD cards.
Aside from the FLASH and SRAM required for the Neo Geo, there's also an 8Mx16 SDRAM device which will be most useful for emulation of retro microcomputers like the Amiga. I've also connected a 2nd SD card directly to the FPGA to prototype designs that won't use an external micro-controller.
I've added a so-called 'CPU socket' which is actually a pair of high density dual inline sockets to accommodate various daughter-boards with a CPU. There's just enough I/O for a 68K CPU - for obvious reasons - and of course 6502, Z80 & 68(3)09 would also be possible. Aside from running designs with physical CPU's, the idea is to also accommodate development of a 6309 core - another project that I have undertaken recently.
Finally, some sundry I/O; as mentioned PS/2 x2 to the FPGA, one or two Dreamcast (Maple Bus) ports, one or two Nintendo Gamecube ports, some extra 3.3V & 5V I/O on the ARM (which can be configured as analogue or digital) and a few LED's for good measure.
So there you have it - a handy little board that can be plugged into a JAMMA cabinet, or powered from a 12-24V supply and connected to your 55" LCD via HDMI and played with a variety of controllers. And with plenty of expansion (via the MVS connector) for legacy keyboards, cartridges and 5-1/4" floppy drives, I'll be able to load Sockmaster's Donkey Kong port for the Coco 3 off floppy disk and play it with my wireless NGC Wavebird Controller!
In a perfect world there'd also be a bank of high-speed DDR3; it was originally part of the design but when I ran out of I/O I had to settle for vanilla SDRAM. I cannot think of anything I'd like to add to this board to be honest! I refrained from adding all manner of legacy 8-bit console controllers, and even removed a light gun connector, most of which I can add via the miscellaneous I/O connectors.
Next post I'll give a brief run-down on where the project is at, and speculate wildly as to how I think it's going to pan out. Because engineering projects never blow out...
No comments:
Post a Comment