FF Xcell Journal Online -- Domain-Specific Products article - Issue 53
Support|documentation

  Xcell Journal Online
  Xcell Journal Archives
   
  Writing for Xcell
  Advertising in Xcell
  FREE Subscription
   
  Partner Yellow Pages
  Reference Pages
  Contact Us

    

Home : Documentation : Xcell Journal Online : Article
Leveraging Domain-Specific Product Platforms



by Josh Patterick, Director of Product Development, Pixel Velocity, Inc.
jpatterick@pixel-velocity.com (3/15/05)


Reduce risk and development costs by utilizing proven platforms to handle the infrastructure details of your design.
article link to PDF
Article PDF 250 KB


Look-up tables, function generators, block RAMs, and multipliers provide an ideal foundation for creating programmable hardware solutions. Combine these useful primitives with mature integrated toolsets that are capable of simulating complex systems and synthesizing FPGA hardware designs, and it is easy to think that the hard work is behind you. However, as the famous saying goes, “the devil is in the details” – the difficulty is found when you look deeper into the challenge.

Although the components necessary for many of today’s hardware systems are often reasonably refined and well understood, their integration in applicationspecific contexts is not always as straightforward.

Although programmable logic is steadily maturing, the complex systems utilizing them are evolving at a much more rapid pace. This increasing system complexity is beginning to introduce an unacceptable level of risk into product development cycles. Time to market and development costs are increasing, product reliability is more difficult to ensure, and we’re forced to focus our efforts on tasks unrelated to our core competencies.

Fortunately, although system requirements are increasingly complex, so are the tools available for building them. Decreasing FPGA costs, coupled with significant improvements in performance and capacity, are paving the way for a new breed of products that I call “domain-specific product platforms” (DSPPs). These platforms are designed to decrease time to market and costs while increasing product reliability, allowing you to refocus your efforts on developing solutions rather than infrastructure.

What are DSPPs?
You have probably used general-purpose development boards to create early prototypes of designs, thereby minimizing risk. Once a design is proven on a prototype platform, you can create a custom hardware system that is cost-engineered and optimized for that particular application. Unfortunately, in today’s complex systems much of the development risk is in creating the custom hardware solution itself.

DSPPs are an evolution of development boards. They remove the need for a custom hardware system design by providing a modular development platform that can also serve as the end product. This eliminates the need for a subsequent custom hardware implementation. Historically, the cost of providing a platform with the flexibility required for a DSPP has been prohibitively high. Fortunately, there is an emerging class of FPGA-based modular development boards targeted at specific application domains that brings this capability to the mass market.

A Hypothetical Development Project
Take image processing, for example. Xilinx® FPGAs are an ideal technology for implementing morphological image processing systems. Creating the necessary pipeline processing algorithms in an FPGA fabric can produce systems with orders-of-magnitude improvement in processing speed over even the most powerful microprocessor systems available today, without sacrificing flexibility.

This tremendous processing speed opens up numerous opportunities for real-time image processing systems such as airborne collision avoidance, three-dimensional facial recognition and verification, and real-time two-dimensional ultrasound imaging of the heart.

The image processing algorithms themselves can be implemented effectively and efficiently using little more than some Verilog/VHDL experience, Xilinx ISE™ Foundation™ software, an FPGA motherboard, and a Parallel Cable IV programming pod. In reality, however, this only begins to explore the work required for a final product.

Let’s take an in-depth look at a hypothetical image processing application: a collision avoidance system for the airline industry. Our system will use input from three cameras mounted in strategic locations on the airplane exterior. An FPGA processing stack will synthesize the data from each camera to determine the probability of a collision based on the current flight path. A control unit will provide communications to the pilots through an Ethernet connection with the processing box. A diagram of the hypothetical system is shown in Figure 1.

After analyzing the problem and creating an appropriate algorithm using software simulations, we calculate the following resource estimates:

  • 225,000 logic cells
  • 9,000 block RAM (kb)
  • 800 18 x 18 multipliers
The analysis also resulted in the following recommendations:
  • Several portions of the algorithm are much better suited for procedural code using the PowerPC™ cores embedded in Virtex™-II Pro devices
  • You could efficiently implement the floating point calculations using one of the PowerPC processors coupled with a third-party floating-point core
  • A cost-effective implementation would utilize five Virtex-II Pro P50 parts (XC2VP50), implying that the algorithm must be implemented across several FPGA chips Fortunately, Xilinx provides the SelectLink interface to simplify FPGA-to-FPGA communications. However, the system I/O is quickly beginning to look fairly complex. At a minimum, we now need:
  • Three Camera Link interfaces to feed video data into the FPGA at real-time rates
  • A SelectLink implementation to facilitate high-speed data transfer between each of the FPGAs
  • Integration of PowerPC peripherals with an Ethernet PHY for control-unit communications
  • A PowerPC-to-Flash interface for booting the microprocessor
  • A PowerPC-to-SDRAM interface for running the microprocessor
We also need to consider the implications of loading bitsreams into the FPGA from Flash memory at power up. A simplified system block diagram of the system is shown in Figure 2.

Looking at the system now, in conjunction with the project schedule, it’s easy to become frustrated. It has become painfully clear that the focus of the project will not be developing and implementing a collision avoidance algorithm, but more about developing various I/O interfaces between the FPGA, the PowerPC cores, and the outside world.

Now we need an army of engineers – or at least a few engineers with an army of skills – to bring everything together. Any hiccups along the way (schematic design, PC board layout, and fabrication, including any signal integrity issues, PowerPC programming, and FPGA design) could wreak havoc on the project schedule.

Reducing Risk
DSPPs provide a much-needed alternative to system design and are becoming a viable option for reducing project risk. One such example of a DSPP for the image processing domain is the Silver Bullet from Pixel Velocity (Figure 3). Although appropriate for many FPGA-based embedded systems, its design is focused on easing the development of high-speed, image-processingbased systems.

Returning to our hypothetical example, Silver Bullet can help solve our collision avoidance system I/O problem by providing a scalable and modular platform that relieves us from focusing on mundane system details, allowing us to turn our attention back to algorithm development.

You can configure the core platform to use anywhere from one to eight FPGA motherboards, each populated with a XC2VP30, XC2VP40, or XC2VP50 Xilinx FPGA. Daughtercards are available to add functionality as necessary for Ethernet, FireWire, Camera Link, and LVDS communications.

High-speed communication between the FPGAs is handled through the SelectLink interface, which easily provides bandwidth of more than 500 Mbps/pin and allows you to partition algorithms across multiple FPGAs. The burden of developing PowerPC-based embedded solutions is minimized by providing working reference implementations that include the use of custom general-purpose I/O FPGA fabric interfaces; peripherals such as UARTs for RS-232 and custom serial communications; an Ethernet MAC; and memory interfaces for Flash, SRAM, and SDRAM.

In the context of our example, the project requirements are starting to look much different, and much more manageable:

  • Determine required performance and which Silver Bullet modules we need
  • Use the reference implementations to get a better understanding of the inner workings of Silver Bullet
  • Modify the reference implementations to suit the needs of our project
  • Develop and integrate the FPGA hardware modules and software necessary to calculate collision probabilities
  • Test, perform Q/A, and ship
Of course there will still be plenty of work necessary to build our application, but there is no need to reinvent the wheel and introduce the many levels of risk involved in developing each of the required I/O interfaces. In this scenario we can focus on what we’re good at, which is the development and implementation of image-processing algorithms.

What’s Next
Utilizing DSPPs as an end product is a fundamental shift that is taking place in the industry. In the past, designers used evaluation boards to develop prototypes that would then be refined to into cost-effective product implementations, likely using ASICs.

But with the rapidly rising performance and capabilities of FPGAs – in conjunction with rapidly falling costs – it is becoming standard practice to include FPGAs in final products. Not only is this becoming cost-effective for products that ship in volume, but it offers a new level of flexibility by providing significant field upgrade capability as well as the ability to significantly redesign products at a very low cost. This is especially important considering that the “standards” we develop around really seem to be rapidly evolving guidelines.

With DSPP systems handling many of the details that are relevant across a range of projects, the next step in the evolution is to create the tools necessary to simplify the application-specific algorithm development process. In the case of image processing, many experts are trained in developing floating-point C++ algorithms. As we know, that is not always conducive to FPGA-based hardware development, which is more suited to integer-based algorithm implementations.

This can introduce another difficult task in the development process: converting floating-point algorithms into integer-based algorithms suitable for RTL implementation. Pixel Velocity is currently developing a tool called Liquid Gates, which automates the process of creating hardware from C++ algorithms. Developers can use this integer-based C++ development environment to create and refine algorithms that can then be programmed directly into Silver Bullet with the push of a button.

Conclusion
Domain-specific product platforms are changing the landscape of product development. Advances in FPGA technology and system complexity are not only making this new paradigm possible, but soon may make it necessary to remain competitive. By significantly reducing time to market with a relatively low-cost product platform, we can keep up with changes in the market and reduce project risk significantly.

Xilinx is paving the way for optimized DSPPs with their Advanced Silicon Modular Block Architecture (ASMBL). To learn more, visit www.xilinx.com/products/virtex4/overview/asmbl.htm.

Printable PDF version of this article with graphics. PDF logo (3/15/05) 250 KB

 
/csi/footer.htm