What are virtual prototypes?
Virtual Prototypes are really just another name for “simulation of your system”. They are basically simulations of your design. They are behavioral models that model your system and run the software that runs on the processors inside your design.
Virtual Prototypes are targeted at the software developer, are Instruction Accurate, have only the needed functionality, and can run blisteringly fast enabling true full system simulation at real time speeds. It is easy to get 100s of MIPS performance in a Multi-Core simulation on a standard desktop PC, with speeds over 1,000 MIPS being possible.
When targeting software development it is not necessary to provide all the functionality of all the components; the only essential requirement is that it is possible to run the production binaries unmodified. This means that the simulations must be fully Instruction Accurate, the processors must be modeled with all interrupts and similar commands correct, and the peripherals and behavioral models are register accurate and provide the appropriate functionality. Often models can be created from databooks and most models are very simple to create. For example, a 32 bit RISC processor should take less than 8 weeks to develop.
One great thing about Software Virtual Prototypes is that they enable the building of a simulation of the whole system – including the environment – that the embedded system interacts with, thus enabling a truly representative proxy. Software running in a Software Virtual Prototype should not see any difference when running virtual than when running in the real embedded system.
The speed of Software Virtual Prototypes allows billions upon billions of lines of code to be run on many processors – with full observability, controllability and many more analysis options than available in the real hardware. In many cases a Software Virtual Prototype will run much faster than the real hardware. And of course, in contrast to hardware, software models can be deployed around the world instantly.
Some Virtual Prototypes are available as binary for execution only and some are available as full source of all models and the platform itself.
Imperas makes makes many of its OVP (Open Virtual Platforms) based virtual prototypes available as Extendable Platform Kits (EPKs). EPKs are virtual prototypes (simulation models) of the target devices, including the processor model(s) for the target device plus enough peripheral models to boot an operating system or run bare metal applications. The platform and the peripheral models included in the EPKs are open source, so that users can easily add new models to the platform as well as modify the existing models.
Read more about Imperas EPKs for MIPS here, and for ARM here.
Currently available Imperas / OVP Virtual Platforms / Virtual Prototypes.