What are virtual platforms?
Virtual Platforms 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 Platforms 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 Platforms 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 Platform should not see any difference when running virtual than when running in the real embedded system.
The speed of Software Virtual Platforms 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 Platform 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 Platforms 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 platfoms available as Extendable Platform Kits (EPKs). EPKs are virtual platforms (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.
Downloading the Virtual Platforms
All of the platforms and models listed on this site are available for download and are available with the full source (some are fully open source, some of the advanced CPU models require a specific license agreement) – please browse to the individual virtual platform you are interested in and follow the links for downloading listed specifically for each model. (A full list is available here.)
Professional tools that use these models are available. The Imperas tools provide multi-core Debug, Verification, Analysis and Profiling of software running on bare metal platforms or full operating systems like Linux. Please visit Imperas Software for more information.
Currently available Imperas / OVP Virtual Platforms / Virtual Prototypes for Embedded Software Development and Test Automation.