What Tools do you need to build and use Virtual Prototypes
Execution of the virtual prototype – Simulation
If you are using an existing Imperas / OVP virtual prototype, then all you need is an Imperas or OVP simulator.
The simulator utilizes Just-In-Time code morphing to enable particularly high-performance execution speed on standard x86 desktop computers. By generating execution code on the fly, and combining this with other Imperas proprietary optimization schemes, the simulation performance that is achieved allows embedded code to be executed, often, faster than real time. Very large numbers of tests may be executed on embedded code within reasonable timescales, allowing product quality to be increased.
Building or extending virtual prototypes
To build virtual platforms for use with the Imperas or OVP simulators you can write the models in C using the appropriate OVP API. Alternatively you can use the Imperas iGen product.
iGen is a productivity tool from Imperas that is a model framework generation system. iGen takes the laborious and error-prone task of constructing the various hardware model and software element files required for a typical model or platform, and automates this process.
iGen takes as input a simple TCL specification that includes device internals such as registers and memories, port information, component descriptors, and other elements.
iGen builds three sets of model items, C code model files, user editable templates, and XML descriptions. These include model frameworks with registers, function calls, memory map, and other items, including matching XML information. It ensures that all component parts of the model are well-structured using best practices, and are consistent throughout the files, thus eliminating a common source of errors.
iGen presents to the developer a set of function calls and model elements that simply need to be filled in with required behavior, thereby reducing the set up overhead of a new model significantly. iGen also creates code in the model to provide very efficient run time tracing and diagnostics.
Embedded Software Development and Debugging
The Imperas simulators can operate with GNU’s GDB debugger, with or without the Eclipse IDE. The Imperas Multicore Software Development Kit (M*SDK) may be used which allows an extensive range of options for the verification, analysis and profiling of designs. The M*SDK also contains a powerful, three-dimensional debugger (temporal, spatial and abstract) that is CPU- and OS-aware and which adds to GDB-like functionality a series of options to target complex homogeneous/heterogeneous multicore platform debug.
Advanced tools – parallel simulation
While OVPsim and the Imperas simulator products are very fast, running at 100s of millions of instructions per second, additional speed can be achieved for virtual prototypes which include multiple processor instances, multicore processors and processors that support hardware multithreading. The Imperas QuantumLeap parallel simulation accelerator is an add-on to the Imperas simulator products. Its MultiProcessor target on MultiProcessor host technology enables the simulator to take advantage of the multiple x86 cores in the host machine. This can result, for example, in an increase in performance of 2.25x for a 4-core virtual prototype with SMP architecture running on a 4-core host PC.
Currently available Imperas / OVP Virtual Platforms / Virtual Prototypes.