Reconfigurable hardware devices, such as field-programmable gate arrays (FPGAs), have been shown to achieve greater net throughput and power, energy, and cost efficiency compared to traditional microprocessors in high-performance computing and signal processing applications. The primary drawback to the use of such devices, however, is the perceived difficulty of the overall programming process, which includes the complete design and verification of the system.

In an attempt alleviate this net system design problem, the approach of direct verification was conceived and implemented on the BEE2 hardware platform. Direct verification utilizes the resources of the platform to provide variables in the hardware domain, which feature read/write access to data, runtime streaming of data to off-chip storage, and fully automated dynamic assertion checking. By regulating the design clock, the verification infrastructure can also control the execution of the design under test, both via manual interaction and same-cycle breakpoints triggered by variable assertion failures. In addition, all this functionality is accessible in the original design environment via a remote network service provided by the software layer of the verification infrastructure, which allows data to be generated and analyzed at the same level of abstraction previously only present during simulation.

The resource requirements to enable direct verification on the BEE2 platform were measured both independently and as part of two real-world design examples. The base infrastructure was found to occupy about 12% of an XCV2P70 FPGA (8% of which was purely due to the DDR2 memory controller), and the addition of a typical 16-bit variable required 75 logic slices (0.23% of the device) on average. The operating frequency of the design under test is not severely impacted unless the device utilization approaches 100%, and runtime system throughput is limited primarily by the bandwidth and latency of the attached storage medium.




Download Full History