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
Far too often, design schedules go awry due to the difficulty of coordinating hardware and software design teams. Richard brings us up to date on codesign tools and how they promice a smother, faster development cycle in the future.

As pressures increase to bring products to market more quickly, design engineers are looking for ways to speed up design cycles and decrease the time required for debugging prototypes and fixing problems.

Of course, to accomplish their goals, they must find ways to do this without suffering the penalties associated with learning curves that result from using new design tools.

One promising solution is codesign—a synchronized collaboration between software- and hardware-development teams.

The most common approach for embedded-system design positions hardware and software teams on unconnected paths that are only reunited after the creation of the hardware prototype.

These individual design groups make presumptions about each other’s contribution to the overall system, which are magnified and later surface as significant errors that can take a big toll on budgets and schedules.

In addition, time-to-market urgency typically mandates that fixes be carried out via software workarounds rather than hardware redesign. This approach can result in significant compromises to the performance of the finished system.

In a perfect world, hardware and software teams would work in harmony from initial design concept all the way through to benchmarking the finished system, staying in constant communication as the design reaches critical integration and test phases. The two groups would work together, and the interface between their designs would be constantly validated to identify problems early in the design cycle.

Employing the precepts of codesign, simulation and verification would be performed on hardware and software synergistically, resulting in robust designs with added functionality and shaving time off development cycles.

This next-generation system-level design formula embodies the creation of a virtual prototype—a speed-optimized combination of software simulation and hardware emulation that precisely mimics the target system, albeit at a slower speed in most cases.

This environment would feature a new generation of interoperable co-design tools for simulation and verification that identify and resolve errors during the specification and partitioning phases. The result: clearly defined parameters for hardware and software implementation.

Even though most concede that the isolation of hardware and software implementation paths is less than optimal, it’s still the most common methodology used in designing embedded systems. Part of the problem lies in the fact that until recently, design-tool technologies haven’t been available to orchestrate cooperative design efforts between hardware and software development.

However, the design-tool community has made great strides with this problem, and a number of significant new tool technologies have emerged over the past year.

But, sometimes even the best-laid plans suffer in implementation, and most codesign solutions are far from perfect. In truth, none of the codesign solutions available today are an optimal fit for every application since they are often largely based on the particular vendor’s core competency, whether it be software or hardware emulation.

Each approach is more suited for a specific set of requirements. Even those showing the most promise are likely to endure slow adoption since they’re regarded with skepticism until proven.

Significant barriers also lie in the organizations targeted by codesign-tool vendors. Even if robust codesign tools and environments were available, the infrastructure in place at most system OEMs could seriously hamper the tools’ acceptance.

Problems such as a lack of communication between design teams, different management systems for hardware and software, and deep-seated biases in engineering managers contribute to an unfavorable climate for the implementation of codesign methodologies.

Although the potential benefits of implementing a codesign methodology outweigh the obstacles to its adoption, this is only true if the codesign is planned well in advance of the design project. For instance, the value of coverification is extremely high early in the design process.

With today’s time-to-market demands, attaining design closure as soon in the process as possible is critical. If the coverification process can be carried out with a high degree of certainty, any later problems associated with integration and testing will be minimized.