While I’ve been working on some different expansion card designs, some previously tested but all have been redesigned using KiCAD, so will post updates on them appropriately. One I have been working on and is now in a state I’m happy with is the VGA card.
The card is an FPGA based board. I’ve got a couple of boards in development that use some of the old (and fun) video chips, but I also wanted something that can be used with more modern displays.
I needed to find a suitable FPGA to use. BGA packages are common, but I’ve never designed for one of those, and when it comes to hand soldering QFP is much easier. For the design I picked the Spartan XC6SLX9 which is available in a QFP part. A few extra pins on the device would have been nicer but was a trade-off between using a BGA or something I could ed by hand.
The plan is to have a VDP that works in a similar manner to how some of the old Video chips worked. Most of the control of the video will be done through control registers and will allow setting of the screen mode, palette data and some hardware accelerated drawing functions. The board will 00also allow direct access to the Video RAM by the CPU so that data in RAM to give a bit of access on read-modify-write cycles.
- The board has 2 Megabytes of SRAM available which will be used as the Video RAM.
- The VGA output has 4-bits per colour available giving a total of 4096 colours.
- The video resolution is planned to be a “high-res” 640x480 mode and a “game” resolution of 320x240 which will still be output as 640x480.
- 80x30 text mode
- Hardware acceleration
- Line drawing
- Filled rectangles
- Bitmap mode with text overlay
These are still early days for the VGA card and there are more features planned. I’m also looking at a new version of the card using a Spartan-3 part which has a higher pin count. This will allow me to work around some of the limitations I encountered with the Sparten-6 and offer a higher colour depth as well.
I created a small demonstration video for the current capabilities of the card.