Accidental Virtues -

Accidental Virtues



by Lindsey Vereen

A contract manufacturing company that was building the old Osborne computer (remember that one?) almost couldn't ship the product because of the difficulty of developing test vectors. The company had a warehouse full of CPU boards that didn't 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 we're poised on the threshold of the system-on-a-chip era, with design complexity increasing at the same rate as Moore's 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 it's the EDA companies and the chip manufacturers who have been the primary cheerleaders. The solutions that have come forth–simulation, emulation, and prototyping tools–have all originated with these proponents. Embedded software tool companies haven't been taking the lead on this one. Although this methodology offers the possibility of proving out software earlier in the cycle, that isn't 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 aren't promoting co-verification out of an altruistic desire to ease the software engineer's 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 won't 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

1 thought on “Accidental Virtues

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.