Part 10 – Multiple Boards
Now my A/V and power boards are built and working, I want to run the TG68 MiniSOC project on the Ebay-sourced Cyclone III board. Rather than just port the project to the new board and then neglect the DE1, what I’ve done this time around is to make a single source tree usable with both the DE1 and C3 boards.
In order to keep things straight, I’ve adopted the following directory structure:
- RTL – modules belonging to the project itself, and which can be used on either board
- C3BoardRTL – toplevel and support modules specific to the Cyclone III board
- C3BoardRTL/Generated – Megafunctions specific to the Cyclone III board, such as the PLL module, BootROM and Character RAM.
- C3BoardProject – The Quartus project file and the generated .sof / .pof files end up here.
- DE1RTL – toplevel and support modules specific to the DE1 board.
- DE1RTL/Generated – PLL, BootROM, CharRAM, etc.
- DE1Project – The Quartus project file, etc.
At some stage I shall add port the project to the Turbo Chameleon 64, too, and have a third platform buildable from the same source tree.
There are three other noteworthy developments since last time:
Firstly, I finally received the Max3232 chip I was waiting for, so the power board now sports an RS232 serial port, tested and working.
Secondly, as well as receiving an S-record over the serial port, the boot firmware can now load a program (again in S-record format) directly from an SD card. If you want to try it out, just copy the file CFirmware/out.srec to the root of the SD card, and rename it to “boot.sre”. As before, you’ll want test.img on the SD card too.
Finally, since my A/V board supports 6-bit per gun video output and the DE1 only supports 4, I’ve moved the dithering out of the vga controller and into a generic module which is instantiated by the board-specific toplevels. A generic parameter sets the number of available bits per pixel and adjusts the dithering accordingly.
Full source is available, as always, for anyone who might be interested: TG68MiniSOC_Part10_MultiBoard.zip
I also promised in my last post to release the Eagle files for the VGA board once I’d tested the PS/2 sockets, so again, for anyone who might be interested: C3_VGABoard.zip