circuitcellar.com
Magazine Support   Digital Library   Products & Services   Suppliers Directory 
 
 





 

February 1998, Issue 91

Codesign
The Evolving Relationship Between Hardware and Software


by Richard Moseley

Most aspects of the hardware and software development process can be automated, except in the cases of system definition, architectural design, and software/hardware partitioning. As well as not being well automated, these exceptions are fairly disconnected from the implementation process, which is itself divided into distinct hardware- and software-design efforts.

As a result, hardware and software engineers don’t get to test their respective subsystems together until a physical prototype exists. Unfortunately, most problems in the hardware/software interface aren’t discovered until this point, possibly forcing a redesign. And so, schedules slip. Often, the integration and testing phase may represent the critical path or as much as 50% of the development cycle.

To counteract these problems, codesign solutions are extremely attractive. Unfortunately, the pieces aren’t all in place yet. For instance, general-purpose automated tools for system definition, architectural design, and software/hardware partitioning that offer enormous leveraging over the subsequent phases of development are rare today.

In fact, most mainstream development-tool vendors focus on the implementation portion of the process (i.e., linking the software and hardware design phases of the project after partitioning). However, a lot can be gained by shortening the implementation/test phase.

Current codesign methodologies focus on two basic approaches to creating a virtual prototype. They attempt to shorten the "software waiting for hardware" gap encountered in most development efforts.

One camp, with roots deeply embedded in hardware and in-circuit emulation technologies, provides for the creation of the virtual prototype using a "black box" filled with FPGAs.

The other camp, whose technology originated from the high-level simulation and abstraction approaches of EDA, has developed unique techniques for speeding up logic simulation in order to build a virtual prototype.

Each approach has advantages and disadvantages, but one thing is clear. Both camps are on intersecting courses. Product developments will start to look quite similar as these new products continue to mature in the marketplace.