The Evolution of FPGA Prototype Based Verification of Hardware and Software

FPGA Prototype based verification can be used to solve several distinct problems in system development. 

  1. Verification that the hardware matches the specification .  
  2. Providing a platform for software development and testing. 
  3. Validation of the platform specification– does the specification actually satisfy the market requirements?

In the first problem, the idea is to make the hardware platform as close to the final hardware as possible. Sometimes this is done in emulators with gate level mapping. Sometimes there is a requirement to speed match live data that can be much easier in a prototype. A new trend is to use a combination of the two approaches. Historically emulators have had a debugging visibility advantage over prototypes, but this is changing with new technology like the TotalRecall™ technology (http://www.synplicity.com/totalrecall/) which allows the capture of live  scenarios leading up to a failure for repeatable debugging in a simulation tool.

Another way to think about the second problem is that you are building a platform to develop almost all your software in parallel with the process of building a chip. In this case the behavior of the prototype needs to match at a system level as opposed to a gate level. One example is that components attached to a system bus are allowed to operate at different relative rates. This means that a component may have more relaxed timing constraints if its external interfaces can be satisfied. In some cases one can increase parallelism in the prototype to speed match with a high speed interface and then fold the same computation over time in the final implementation to save area and power in the ASIC/ASSP. This can be easily done for DSP algorithms which are often specified at a behavioral level. Tools like the Synplify® DSP product can easily implement parallel or serial implementations from the same algorithm specification.

Software content is rising in ASICs and ASSPs (and FPGA based systems as well). Waiting for a complete hardware system to finish development and testing of software will delay delivery of your product and have a huge negative impact on the profitability and market share of your product and company.

Since ASSPs are intended to provide software customizable implementations of applications supporting multiple products, there is an even larger software development burden. In many cases software must be developed by partners in advance of delivery of a final chip. FPGA based prototypes provide a cost effective way to distribute software development platforms to partners or other groups in your own company. When the software development teams are separated from the hardware development teams, instrumentation of the hardware becomes far more important. With the new TotalRecall technology, assertions can compile to hardware in an IP to enforce correct use of the hardware/software interface. Carefully planned software access to IP state and memory can also help the software teams be self sufficient. You can also add performance monitors, event counters, and traffic generators to monitor and stress the design under load.

The conclusion is that rapid improvements in FPGAs, off the shelf FPGA boards coupled with prototyping tools like the Certify® ASIC prototyping solution, and debugging advances like TotalRecall technology have dramatically enhanced the value of prototypes in system level verification and software development.

 

From The Syndicated Q2, 2007, published quarterly by Synplicity, Inc., www.synplicity.com.
Copyright © 2007 Synplicity, Inc. All rights reserved.