I love the Embedded Micro Mojo V3 FPGA development board. It's affordable, easy to use, and no frills. Combined with the book FPGA Prototyping by Verilog Examples by Pong P. Chu, the Mojo V3 provided me the perfected learning tool to jump into the world of FPGAs.
Embedded Micro does have a few expansion shields for sale, such as a SDRAM Shield, an IO Shield, and a Proto Shield. However, there is no video output shield available. Although an HDMI Shield is in prototype from Embedded Micro, I wanted to take a shot at building my own expansion shield. I feel VGA is tried and true with FPGAs, so I decided to take a crack at designing an NTSC video shield. Although NTSC video is a legacy video standard, it is far from gone!
This was a big project. Not only am I not an expert at FPGAs, but I knew nothing about the NTSC specification. There was a lot of learning along the way and I'm not even done yet. The specifications I came up with are:
- Composite and S-video output
- 8-bit color input
- 1 MB onboard SRAM
- Deconfliction with SDRAM Shield
For the first specification, the video output, I ultimately settled on the Analog Devices AD723. It has both composite and S-video outputs, load detect to power down unused outputs, and is 3.3 volt compatible (for the prototype, I used the AD725, however it is not 3.3 volt compatible). For the 8-bit color input, I settled on a 3-3-2 256-color RGB palette. This is consistent with how the Diligent NEXYS 2/3 and BASYS 2 boards output VGA. The 1 MB SRAM is based on the ability to store at least two 640-by-480 8-bit images. Finally, I wanted to deconflict with the SDRAM shield in case I wanted to add more system RAM to whatever I built in the future.
This shield is a great addition to my FPGA toolkit and has already proven itself!