by Lindsey Vereen
A contract manufacturing company that was building the old Osborne computer (remember that
one?) almost couldnt ship the product because of the difficulty of developing test vectors. The company had a warehouse full of CPU boards that didnt work and no reliable way to diagnose the faults. They eventually solved the problem by bringing in equipment that tested the functionality of each component on the assembly rather than testing the assembly as a unit. You know what has happened to ICs since then. Goodbye NAND gates, flip-flops, and shift registers. Hello ASICs, ASSPs, and complex
functionality buried on a single die.
As design complexity has increased, testing the design has become as significant an issue as testing the silicon. And now as were poised on the threshold of the system-on-a-chip era, with design complexity increasing at the same rate as Moores Law, how do we keep flawed designs from reaching silicon?
The electronics industry vacillates between simulation and prototyping as possible solutions to the problem of getting a design through the process and out the
door. Increasing silicon complexity made prototyping expensive and less than optimal. On the other hand, simulation was slow and sometimes did not reflect real-world behavior. Both alternatives require test vectors, the same problem that existed for the Osborne computer.
With the attention that hardware-software co-verification has been getting recently, you may have noticed that its the EDA companies and the chip manufacturers who have been the primary cheerleaders. The solutions that have come
forthsimulation, emulation, and prototyping toolshave all originated with these proponents. Embedded software tool companies havent been taking the lead on this one. Although this methodology offers the possibility of proving out software earlier in the cycle, that isnt its primary purpose. It is, rather, a tool to help validate hardware designs before going to silicon.
It has been suggested that the reason EDA and silicon folks have been promoting this idea is that it represents a
solution to the age-old problem of getting vectors to test a design. And software engineers hold the key. Running software on prototyping platforms or simulated hardware helps to prove out the design before it gets committed to silicon. It results in fewer silicon spins and lower nonrecurring engineering costs. But to achieve this goal, you need working software early in the design cycle.
Hardware designers arent promoting co-verification out of an altruistic desire to ease the software engineers
burden. No matter how difficult systems on chip are to develop, there is no turning back the clock: they represent the future of electronic design. Billion-transistor chips are looming just over the horizon, and you wont be able to repair them as you can an assembly with a bad chip or a solder bridge.
While manufacturing a system in silicon that works is no mean feat, developing bug-free software for such a target is even more challenging. Even though the main intent of co-verification may be to
benefit hardware engineers today, ultimately software engineers will have as much or more to gain.
Return to
Table of Contents