Posted By azog on April 13, 2014
Somewhere, probably via Hack-A-Day, I ran into Grant’s multicomp pick and mix computer. It is basically a pick-n-choose 8-bit computer implemented in an FPGA. Select a variety of system options, from a 6502 or a Z80, memory and so forth. Build and run. I put the word “building” in quotes here, since the build is pretty basic.
What the hell, it looked interesting and easy. My first foray into programmable logic stalled and failed.
First thing was to acquire the FPGA board, a EP2C5T144C8N Cyclone II FPGA mini board for about $20. Once I had that in hand, I realized I needed a programmer, so it was back to eBay to pick up a USB Blaster clone for $10. Since this was two separate orders, each from a (different) vendor in China, it took over a month for them to arrive…
Once I finally had the hardware, I downloaded the free version of Altera Quartus, and stepped thru Grant’s document one at a time. I selected on of his suggestions: a Z80 with 4k RAM and serial interface. Copy-paste the relevant selections into the FPGA project, with the only change being for 9600 baud (the code is at 115k baud).
With little confidence in myself, I wired everything up as documented. The USB Blaster is connected to the (a?) JTAG port; the serial port is connected to a 3.3v USB serial adapter. And I also hijacked 5v VCC from the USB adapter. Connected the USB serial port to my computer and open a terminal window on the correct serial port at the selected speed, and because it was getting power from the USB port, the FPGA board started its demo project, blinky LEDs.
In Quartus, I hit “Start Compilation”, and the only error was due to a missed semi-colon during copy-paste, but once I fixed that, it said the compile was successful. Well, now comes the acid test, and I opened the programmer and off it goes. Before I could blink my eye, the term window gave me the sign on screen!
In all seriousness, I did not expect it to work the first time. Now it’s time to mess around, maybe try some of the other configurations, IO devices, or even external RAM and try CP/M. It looks also relatively easy to add VGA and keyboard. At the moment, I can’t figure out how to permanently program the FPGA. When it loses power, it goes back to the default blinky LED demo.
I tried to mess with programmable logic a couple of years ago, but it is still a mystery to me. Getting documentation is an exercise in your search skills, as I really haven’t found one “clearing house”.
I was going to bitch, but I decided not to.