The Growing Importance of Software
Software development has traditionally trailed the hardware development as part of a sequential design flow. However, today most chips simply will not reach volume production without the availability of the associated software. Therefore, it has become imperative that design teams start software development as early as possible in the design flow, ideally in parallel to hardware development.
Synopsys Solution
Synopsys’ Innovator provides an integrated development environment for embedded system developers to efficiently develop, execute and debug virtual prototypes. In addition to the ability to integrate transaction-level models from various sources, Innovator eases the authoring of SystemC TLM-2.0 compatible models. Once a virtual prototype is assembled and verified with Innovator, it can be delivered to programmers as a standalone, run-time executable with open interfaces for software debuggers and software development tool chains, seamlessly fitting into software developers’ work flows.
In combination with the Synopsys DesignWare® System-Level Library of tool-independent, transaction-level models, Synopsys’ Innovator delivers a complete, high productivity environment for developing virtual prototypes.
Virtual Prototypes
Virtual prototypes are an effective method of advancing software design to an early stage of the development project. Virtual prototypes are fully-functional, transaction-level software representations of a hardware design. Virtual prototypes include single- or multi-processor SoCs, peripheral devices, I/O, board components and user interfaces. They execute unmodified production code, including drivers, the OS and applications at close-to-real-time speed. Recent industry standardization around OSCI’s SystemC TLM-2.0 API provides the industry an interoperable infrastructure in which virtual prototypes can be efficiently assembled.
Developers and Users
With an average of 60% of blocks in a SoC being reused, virtual prototype developers face challenges similar to engineers doing physical implementation, including how to integrate abstract models of the blocks that come from multiple sources (e.g., prior virtual prototypes, 3rd-party providers, etc.) and how to quickly create new ones when the models don’t pre-exist.
Software programmers are the primary beneficiaries of virtual prototypes, as they use the hardware representations to begin the development of their embedded software up to 9 months before silicon is available. Innovator enables the delivery of virtual prototypes that fit seamlessly into customers’ software development flows, flexibly interfacing to existing software debuggers and development tool chains of compilers and linkers. Virtual prototypes also benefit verification engineers, who reuse them to in their testbench environment.
Synopsys has a rich set of pre-assembled virtual prototypes that are the result of successful customer deployments.
Virtual Prototypes for Embedded Software Development
The primary use model for virtual prototypes is to advance embedded software development to an earlier stage of the development project.

For a layered software architecture as depicted above, virtual prototypes are ideal development vehicles for software drivers, OS and middleware, all the way up to end applications.
As a solution to support decision making at the embedded system level, Innovator offers users the ability to instrument SystemC™ TLM-2.0 based virtual prototypes with power-related information to enable software-driven power optimization.
When instrumented with power data, virtual prototypes can be used for two main purposes. First, the development of power management software can be started early, even before RTL is available. Second, given that virtual prototypes are available early in the design flow, power analysis results can be used as feedback into the architecture phase and guide changes in partitioning the architecture of voltage islands, etc.
Within Innovator’s graphical user interface, parameters for power models (e.g., average power consumption for different states) can be entered. The appended power information can be sourced from experience in previous projects, using RTL simulation or using early estimates. Synopsys VCS® RTL simulation can be used to determine power consumption at the RTL level. The resulting characterized power data can be fed back into the virtual prototypes model in Innovator.
As the SoC design cycle progresses, virtual prototypes evolve to meet different needs beyond pre-silicon software development, including functional verification. There are three main use models of “software driven verification”, which utilize the integration of virtual prototypes with signal level simulation at the register transfer level.
First, before an RTL block becomes available, it can be substituted for its transaction-level model in the virtual prototype. Software can then be verified on this version of the prototype as a way to validate both hardware and software.
Second, the virtual prototype can provide a head start towards testbench development and post silicon validation tests by acting as a testbench component running actual system software. The virtual prototypes can be used to generate system stimuli to test RTL, and then verify that the abstracted models and RTL function in the same way.
Additionally, as portions of the virtual prototype are verified as equivalent to their corresponding RTL, the virtual prototype can become a golden or reference executable specification.