In Bob Fosse’s All That Jazz, Roy Scheider plays Joe Gideon, who is a chain-smoking, workaholic choreographer and movie producer. In the movie Gideon juggles a Broadway production and edits a movie about a comedian played by Cliff Gorman. One of the minor running gags through main film is that Gideon keeps editing his movie making it better each time.
This reminded me of what I have been doing with Xilinx’s Spartan-3A DSP Video Kit from Xilinx for so long. Xilinx keeps making it better and better. The $1,595 kit comes with a Spartan-3A DSP FPGA board (Fig. 1) that has a pair of FMC sockets. One is populated by a video daughter card that can handle a pair of inputs including a small camera (Fig. 2) that is included with the kit. The kit also includes an assortment of cables but the more interesting stuff is on the DVDs.
The entire collection of Xilinx tools is included although most time out after a period. This does give you time to check them out along with The Mathworks’ Matlab and Simulink. They are all tied together with tutorials and integration that makes creating your own video work via FPGA significantly easier.
In the past, developers have used Matlab to create filters and other mathematical creations to be implemented in FPGAs so they can take advantage of the inherent parallism of an FPGA platform. Unfortunately, this was a daunting task that often required groups of people to get all the expertise and quite a bit of time to get everything to work. With this kit, you can be up and running with all the tools in a couple days.
The time it takes to get through the tutorials is actually less time than it takes to install all the software from scratch. Just of give you an idea, there is Xilinx’s ISE Foundation and ISE Simulator, System Generator Suite for DSP, Chipscope Pro and the Chipscope Pro Serail I/O Toolkit. Add in soft processor core support for a Xilinx MicroBlaze and you need to load in the Embedded Development Kit (EDK) and the Software Development Kit (SDK). Finally mix in a free download for an eval version of Mathlab and you can fill up a hard disk rather quickly. It took a couple days just to get everything installed.
The tutorials are key to the success of the package. There is possible to start from scratch with a C/C++ programming background if you are going to take advantage of a MicroBlaze, a little experience with Matlab and a general understanding of FPGAs. Don’t start with less. Luckily I have used all of these so diving into the tutorials was easy. The reason for this level of complexity is that video processing often requires all these pieces. The MicroBlaze may be used simply for interfacing to the outside world while the rest of the FPGA handles video input. Add in filtering, codecs and image recognition and you can see why things get complex fast since these services may be done in software or in FPGA hardware or a combination of both.
The tutorials start out with the basics although there are separate tutorials to get you familiar with things like ISE. The tutorials for the kit assume some basic background although not much.
Some of the basic tutorials like the DVI pass-through takes an input from the DVI port, runs it through the FPGA and sends the output to an attached display. The MicroBlaze can be used to can coefficients for the filters that can be placed in the pass-through. The Camera Frame Buffer project uses the supplied digital camera.
Things get more interesting in later labs. This is where the project definition starts out in Mathworks tools. For example, Lab 2 implements an edge detector. The Mathworks tools can be used to simulate the entire system and also be used to test the system.
Getting through the projects is relatively straight forward but straying from base may lead to unfamiliar territory unless you are already versed in the particular tools. In fact, the tutorials are most valuable when there is at least a medium level of expertise with the toolsets.
The latest crop of tutorials and labs have the advantage of highlighting the creation process and relationship between the various tools. They also provide enough of a framework to take any of the examples and extend them.
This kit and tutorial takes a bit more time to go through than the typical microcontroller kit will but it is significantly more ambitious in its intent. On the plus side, it does this very well and I am very impressed with its scope. I would allocate at least a couple weeks to get through the labs to gain a good understanding of both the hardware and the software integration. It is possible to be up and working through the tutorials in a day but that is a bit ambitious.
I actually went through three iterations of the software and tutorials. They keep getting better each time. At this point I can say that it is the fastest way to get started handling video using an FPGA with a custom design.
As Joe Gideon says, “It’s show time!”