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 codesigna 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
others 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 prototypea 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,
its still the most common methodology used in
designing embedded systems. Part of the problem lies
in the fact that until recently, design-tool technologies
havent 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 vendors
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 theyre 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
todays 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.