|
Electronic System Level Design, or ESL Design, is generally understood as the set
of tools, methodologies and design techniques applied to modern electronic systems
design, from high-end chips and systems, to embedded devices, to integrated
hardware and software systems. Given the complexity of current systems, advanced
tools and methodologies have become absolutely essential to achieve the necessary
productivity, quality, cost and performance expected in a design process. One of
the important tenets in ESL Design is the need for early design analysis. This is
done mainly through high-level modeling and simulation, performance and power
analysis and functional verification, before committing the design to lower-levels of
abstraction aimed at synthesis and optimization. This is especially true for complex
systems involving different types of components such as processors, custom blocks
and software. In fact, it may be totally impractical to simulate such systems at a lowlevel
of representation such as register-transfer level, due to extremely long simulation
times. High-level models are simpler to write, understand, optimize and debug
than lower-level models, and they can simulate significantly faster. The more the design
can be refined, optimized and verified at a high-level of abstraction, the higher
the overall design productivity, the better the quality and consequently the lower the
cost of the final result. However, high-level models and development environments
are not without their own difficulties. It is not simple to write a high-level model
at the appropriate abstraction level which will result in the best trade-off between
architectural details and simulation speed. For this end, researchers have formalized
different abstraction levels at different levels of architectural and timing accuracy.
Depending on what types of design analysis need to be done, one abstraction level
may be more suitable than another. This adds to the modeling complexity, and in the
worst case, if multiple models need to be developed, it may start reducing the productivity
advantage of a high-level modeling methodology. A high-level modeling
and simulation framework is a complex software engineering challenge. Different
types of models, such as a processor model, custom blocks and application software,
need to be compiled, linked, executed and debugged together. This goes far beyond
the correct individual modeling of a block using a high-level language. |