Xilinx’s PowerPC and MicroBlaze Development Kit ($895) provides a quick way to get started with FPGA processor development using either the built-in PowerPC processor in the Virtex-4 FX12 found in the ML403 (see Figure 1 and Figure 2) Development Platform ($495 if purchased seperately), or the 32-bit MicroBlaze soft processor in the Vertex-4.
The development kits comes with everything required to check out both approaches to system design. This includes a JTAG emulator (see Figure 3) that will be usable on designs that do not utilize the ML403. It is just a matter of switching cables.
Xilinx was showing off the kit at the Embedded Systems Conference, with engineers working comfortably with the kit in less than an hour. While the process obviously incorporates some canned procedures, it is just what is in the development kit. In fact, it was surprisingly easy to get started. Installation of the software (not part of the ESC time) takes longer than getting started with actual development.
Part of the reason for this time difference is the amount of software you get with the kit. It includes a copy of Xilinx’s ISE 8.1 (Intergrated Software Environment), the Embedded Development Kit (EDK), and Eclipse for application software development. There is also a collection of third party demos such as Accelerated Technologies’ evaluation version of its Nucleus RTOS. Simply installing all this can take an hour or more. ISE is available as a free download for those interesting in looking at some of Xilinx’s tools, but the EDK is not and that is what really simplifies the development startup process. The software is available for Windows and Linux. A version also runs on Sun’s Solaris.
While the software is being installed we can take a closer look at the hardware.
Virtex-4 FX12 And The ML403
First a few basics about the Virtex-4. It can run up to 500 MHz and includes one (FX12) or two 450-MHz PowerPC processors with hardware acceleration. It can have up to 200k logic cells (if there is no PowerPC), and it incorporates digital signal processing support capable of delivering 256 GMACS (billion multiply and accumulate operations/s). The Virtex-4 (not the FX12) can include up to 24 RocketIO transceivers capable of handling the latest high-speed serial interfaces such as Serial RapidIO. The FPGA can also have multiple-gigabit Ethernet MACs. The FX12 has a pair. More detailed coverage of the Virtex-4 can be found on Xilinx’s web site.
The ML403 contains a Virtex-4 FX12. It is not socketed, so you cannot swap in different Virtex-4 chips. Still, the FX12 is hefty enough to handle most experimentation and development except for RocketIO class interfaces.
The ML403 links the Virtext-4 FX12 with a range of peripherals including a USB host port, two USB client ports, PS/2 keyboard and mouse connections, a serial port, a Gigabit Ethernet port, a VGA port, audio in/out, a CompactFlash socket, a two-line 16-character LCD display, plus plenty of DIP switches and status LEDs to play with. There is a 5-button matrix in cross pattern that can be used with the LCD to implement a cursor-based menu user interface. There are also headers to easily connect the Virtex-4 FX12 to off-board devices. The board also has 64 Mbytes of DDR SDRAM, 8 Mbits ZBT SRAM, 64 Mbits Flash, and a 4-kbit I2C EEPROM.
The ML403 comes with all the cables necessary, including an inverting Ethernet cable for a direct connection between the board and a PC. The JTAG emulator comes with its USB cable and a pair of cables to connect the emulator to the board or to a custom board. An external power supply for the board is also included.
The kit also comes with a 512-Mbyte Compact Flash card that is already programmed with eight demo applications. The demos are standard applications that are converted to a single ACE file using the SystemACE CF tool included in the kit.
Ok, now that the software has been installed we can move on.
Using The System
Actually, I was able to play with the hardware before all the software was installed using the 512-Mbyte Compact Flash previously mentioned. It contains the following applications.
- Virtext-4 slide show — connect monitor to VGA output
- VxWorks Demo — VGA demo, telnet server
- Linux Demo — Linux console via serial port
- WebServer demo using PowerPC
- WebServer demo using MicroBlaze
- DCM Phase Shift using MicroBlaze
The applications are accessible via the switches, and the printed and online documentation describe the details. The first requires a monitor to be connected to the VGA port on the ML403 board. This demo is relatively simple and steps through a set of BMP files stored on the flash card.
Running the rest of the demos is as easy and impressive as the first. They show off the network and serial support along with the PowerPC and MicroBlaze processors. The 64 Mbytes of DDR RAM on the board provides plenty of room for running VxWorks and Linux. None of the demos push the limits of the system and you can use their projects as starting points for experimentation.
The demo applications do a good job of exercising the hardware and letting you get a handle on some of the capabilities of the Virtex-4 FX12. Getting more out of the kit means moving onto the rest of Xilinx’s software development tools.
The Xilinx ISE is used to design, generate, download, and test a project. It may be the only tool you use depending upon whether the application requires a processor or not. The ISE can create projects that start with an HDL (hardware description language) or schematic approach. Embedded designers may feel more comfortable with the schematic approach. Both approaches provide access to large libraries of higher level components that can be combined without a detailed understanding of the underlying definitions. Of course, you can always step down to the lowest level for fine control and design. I would not recommend doing this until you have become familiar with the system by going through the sample applications provided with the kit. Even these tend to get complex once you get into examining their implementation details.
Often the processor is the center of the system. In this case the EDK becomes the most important tool. The EDK, and the ISE, can handle the range of Xilinx FPGAs, but the version provided with the kit has plenty of sample applications that take advantage of the features in the Virtex-4 FX12. I found I spent most of my time with the EDK.
The Eclipse-based EDK includes the Xilinx Platform Studio,the SDK (software development kit) based on the Eclipse CDT, the Base System Builder Wizard, the Xilinx and GDB debuggers, and much more. It provides the basis for system design and software development for the chosen processor core or cores. The package includes the SystemACE file generator used to create the demo applications mentioned earlier. GNU C/C++ compilers and toolchain is provided for the PowerPC and MicroBlaze.
The sample applications let me get a good handle on how to use the EDK and the ML304. You can begin doing some heavy duty software development within a day or two. The amount of time to make major FPGA hardware changes to sample applications will depend upon your familiarity with hardware design and FPGA design. I don’t think someone with only software or limited system design experience will be able to jump on an FFT transform in hardware or a similar bit of complex hardware design but they should be able to take any predefined building block and integrate it with either the PowerPC or a MicroBlaze core within a week. One of Xilinx’s training sessions can significantly cut down on this time.
I was more comfortable with Altium’s Designer 6 (see “FPGA Kits Part 1: Altium NanoBoard-NB1,” ED Online 12106) schematic layout than with Xilinx’s tool at the start, but it took only a couple days of use to get comfortable with Xilinx’s tools. I am still learning some of the more interesting aspects of Xilinx’s layout tool but anyone working with it for a week should have no trouble turning out some impressive designs.
The best part of the EDK was the ability to handle system and software design, downloading, and debugging from one application. I can’t say I did much more than enhance some of the sample applications, but I think that was pretty good for only working with the system for a week. Although I barely got to touch some of the third party products, they are definitely worth looking at.
3rd-Party Bundled Software
The kit comes with BSPs for standalone (no RTOS) projects, Wind River VxWorks, and ‘MontaVista Linux. There is also a copy of Mentor Graphics/Accelerated Technologies’ Nucleus evaluation CD. Nucleus is a compact RTOS that is suitable for an FPGA without a lot of external support. Linux and VxWorks tend to like more memory and are applicable to a wide range of applications. Nucleus can do the same, but it can also scale down to a very compact implementation.
The Nucleus package is fully functional and includes a range of optional modules such as Nucleus NET, Nucleus WebServ, Nucleus FILE, and Nucleus SHELL. There is a 60-minute runtime restriction that tends to be a minor inconvenience for evaluating Nucleus. All you need to do is reboot the system if you need more time. Most developers will get a regular license once they finish doing a preliminary evaluation and find it to be a useful target platform for their application. The Nucleus tools are integrated with the EDK. That is not too difficult given that Accelerated Technologies’ EDGE is an Eclipse-based IDE.
The EDK also works with IBM’s CoreConnect Toolkit. This is a cycle-accurate, bus-functional simulation of the PowerPC. It can be handy for debugging and fine tuning algorithms for the embedded PowerPC. The software is accessible from IBM’s website.
If you have a need to learn about the Virtex-4 and systems based on either the PowerPC or MicroBlaze processors, then the PowerPC and MicroBlaze Development Kit is for you. The kit provides an excellent way to become proficient in using the development tools and the hardware is excellent as a prototyping platform. If you have already chosen Xilinx as your FPGA and you think you may need a processor in the mix, then this kit is what you need to get started.