Chapter 7 Codesign experiences based on a virtual platform
One of the key elements of the electronic system level (ESL)
methodology [BIB - Bailey07] is the concept of platform-based
design. Platform-based design (PBD) allows extensive reuse of
components, which reduces the time-to-market for the first release
of a product, maintenance and subsequent releases. When the platform
is modeled at a high level of abstraction, we often call the model
a "virtual platform" [REF chapters 5 and 8]. By recreating - in
a simulation model - the full architectural environment of a system
as well as the algorithms that it implements, virtual platform-based
design enables quick design space exploration through experimentation
with different design possibilities, without having to first invest
time and effort in the design of a physical prototype. The final,
optimal, solution might be one that was not usually explored using
past methods.
Design teams usually perform a full functional verification of
their specifications by creating executable C/C++ or Java models
of their specifications instead of directly working with the final
target platform. Working at this higher level of abstraction both
enables and speeds up the verification and validation of the specifications
[REF chapter 4 section 4.1.2], as developers do not need to worry
about micro-architectural details such as clock rates, exact pin-outs,
line signals, or bus protocol designs. ESL design promotes the
use of virtual platforms, by mixing the executable application
model with a model of the architecture, resulting in a full simulation
of the architecture executing the application. There is a tradeoff
between the simulation speed of these applications and architecture
models and their timing accuracy. Therefore, several levels of
abstraction are used to first perform quick, but less accurate,
simulation as typified by [REF] chapter 5 and later in the design
process as typified by [REF] chapter 8, to perform slower but
more accurate simulations.
This chapter presents a hardware/software codesign approach based
on a virtual platform, named Space Codesign [BIB - Space] and
applied to a joint photographic experts group (JPEG) decoder application.
First, we define the concept of a virtual platform and describe,
from the experience of the developers, what the requirements are
for a virtual platform that will enable hardware/software codesign.
We also propose a classification of virtual platforms that allows
one to compare this platform with other ones. Then, we present
the methodology based on four main steps: system specification,
exploration, analysis and integration. All these features are
illustrated through the JPEG decoding application by refining
its specification from reference code to an implementation.
7.1 Introduction
7.2 Virtual Platforms
7.2.1 Introduction
7.2.2 Evolution of platform complexity
7.2.3 Methodologies
7.2.4 Commercial technologies for virtual
platform development
7.2.5 Models of computation
7.3 Platform and application description
7.3.1 System specification and functional
verification
7.3.2 Architectural exploration
7.3.3 Analysis
7.3.4 Integration
7.4 Experiments
7.4.1 Pipelined vs. non-pipelined models
7.4.2 Architectural exploration of the
JPEG decoder
7.5 Conclusion
7.6 References
|