By Dr. Andrea Kroll, CoWare, Inc., U.S.A. Programmable accelerators combine the performance of custom hardware with the flexibility of software--and they are surprisingly easy to design. This article shows how to specify, profile, and debug a programmable accelerator, all in a matter of weeks.
Higher product design costs and risks have been driving the electronics industry to an increased focus on developing "product platforms." The architecture often needs to be able to support new product requirements over the lifetime of the platform without a chip re-spin.
This creates conflicting requirements for the platform. On one hand, the solution needs to be customized to achieve performance and cost close to that of an ASIC. On the other hand, there is a need for the flexibility of a programmable solution, where modifications and enhancements can be done by software changes rather then by re-spins of the hardware. But what if the performance requirements are too high for an off-the-shelf processor? What if many tasks need to be executed in parallel, but cost constraints prohibit use of separate off-the-shelf processors for each task?
In the following article we will present a language-based tools approach that enables the designer to:
- Add programmability to hardware accelerators
- Customize programmable architectures to achieve a more than 100 times performance improvement over off-the-shelf processors
- Introduce software flexibility into the design without sacrificing design productivity
We will describe the implementation flow, discuss the automated design flow, and explore multiple alternative solutions using an H.264 design as a case study. This discussion will be framed in a 3-dimensional space spanned by flexibility, performance, and cost.
Click here to read more ...