To start, designing at the electronic system level requires tools that help to create the system-level design by integrating the various components""both hardware and software""to create a Virtual System Platform (VSP). This includes the need to be able to include existing intellectual property blocks from various sources. It also covers everything from graphical-based system design tools to text editors used to manually create the code modeling the integration.
A wide variety of languages are also used to create models including Verilog, SystemVerilog, VHDL, SystemC, C/C++ and others, and these all need to be supported. Finally, a VSP by itself is not useful and system-level testbenches and test environments need to be integrated to model the rest of the "real world" with which the system will interact.
In addition to various types of models written in different languages, models also come at different levels of abstraction. While the use of gate-level models as a design entry point is rare today, models for a system can come in anything from a behavioral level down to the register transfer level (RTL).
Part of the challenge in creating a VSP will be to integrate all of these different levels of abstraction as well. Mixing cycle-level and RTL models is easiest since, at the bus interface level, their behavior is typically defined on the cycle boundaries. Higher level models are increasingly integrated through the use of bus transactors that will translate a single transaction into a series of bus cycles.
In addition to ease of integration, performance of the integration is a concern and some models support the use of specialized high-performance application programming interfaces (APIs) as well as the standard, but often slower, APIs. These can be particularly useful when integrating the software component of the system into the VSP.
Existing IP will typically come in the form of RTL code. While higher-level versions are sometimes created by hand for performance reasons, it is difficult to ensure that they will accurately match the behavior of the actual design, adding risk to the project. For existing "golden RTL" models, many developers have turned to tools that automatically compile their RTL models into higher level models, typically cycle-level, resulting in higher performance without the risk of hand-coding a new model.
The effective use of ESL methodologies depends on tools to perform system-level modeling and integration. Modeling strategies and tools need to provide the IP in a form useful for system-level design and analysis.
Moving to higher levels of abstraction for design and verification, and applying these methodologies to the development of the entire system is becoming a requirement, not a research project. The EDA industry needs to help the designer in this quest and try to avoid confusion about what really is an ESL tool and what isn't.
To start with, let's find Sylvester and his "ESL-bellied" machine and shut it down!
John Willoughby (firstname.lastname@example.org) is director of marketing at Carbon Design Systems.