Embedded Software Development and Simulation of Virtual Platforms and Virtual Prototypes

If you are developing software for a processor where you do not have access to the hardware or you need a better embedded software development environment – then you probably need to have a look at using a simulator to develop your software on.

A virtual platform or virtual prototype is a model of a hardware platform that runs on a simulator and provides the same behavior as the hardware platform – with the embedded software running.

This site provides information on a comprehensive library of extremely fast and efficient virtual platforms and virtual prototypes of embedded systems. The platforms include CPU models of advanced processor cores and can run production embedded software binaries without modification. The whole focus of these models is to enable you to develop embedded software in a more efficient way, with less bugs, and in less time.

Built using the Largest CPU Model Library in the Industry

The library of platforms listed on this site is built using the largest CPU model library available. Each platform model includes full documentation and details of the component models it uses. A key component is the Imperas OVP Fast Processor Models. More information is available on these models here.

Faster Virtual Platforms and Virtual Prototypes means BUGS ARE FOUND SOONER

The CPU models run fast, hundreds of millions of instructions per second (MIPS):

OVP Fast CPU Models run fast

If you need maximum available simulation speed from the Virtual Platforms and Virtual Prototypes, then you need to find our more about QuantumLeap from Imperas. This uses the parallel resources of the host PC to accelerate your simulations.

QuantumLeap from Imperas uses host resources to accelerate simulation throughput

For more information on QuantumLeap parallel simulation acceleration using host resources and to find out how to develop your embedded software at the fastest speeds in the industry, browse the Imperas information.

Fastest Simulation of ARM and MIPS cores

If you want to see a video – click here for the fastest ARM model simulation, or for the Imagination MIPS use of QuantumLeap click here.

Industry Standard Debug and IDE

Each model supports standard debugging interfaces and can be connected using RSP to GDB, either standalone or within an Eclipse IDE environment. The models also connect to the advanced multi-core debugger available as part of the Imperas Advanced Multicore Software Development Kit product.

Eclipse GDB Debug

Easy to use – watch the video

To see a short video of a Fast CPU Model running in a simple platform – and see it booting to the Linux prompt in under 10 seconds, click the image:

Nios booting Linux Video

If you want to see other videos, OVP has a collection to view here.

More Information

At the top of this page are several menu picks that list the different families and enable access to the model specific information. The listed items on the right provide news related information.

Getting Started

To explore how easy it is to use these Virtual Platform and Virtual Prototype models, look at the OVP starting page.

If you are looking for products to use to develop embedded software visit the Imperas Software website.

Thank you for your interest. To contact us please visit Imperas or OVP.


Currently available Imperas / OVP Virtual Platforms / Virtual Prototypes.

FamilyVirtual Platform / Virtual Prototype
ARM Based Platforms    BareMetalArm7Single BareMetalArmCortexADual BareMetalArmCortexASingle BareMetalArmCortexASingleAngelTrap BareMetalArmCortexMSingle HeteroArmIntegratorCPLinuxwithMicroBlaze HeteroArmVersatileExpressLinuxwithMicroBlaze AlteraCycloneV_HPS ArmIntegratorCP ArmVersatileExpress ArmVersatileExpress-CA15 ArmVersatileExpress-CA9 AtmelAT91SAM7 ArmCortexMFreeRTOS ArmCortexMuCOS-II HeteroArmNucleusMIPSLinux QuadArmVersatileExpress AlteraCycloneV_HPS_TLM2 ArmIntegratorCP_TLM2.0 ARMv8_A_FMv1_TLM2 ArmVersatileExpress_CA9_TLM2 BareMetalArm7Single_TLM2.0 BareMetalArmAArch64Single_TLM2.0 BareMetalArmCortexASingle_TLM2.0 BareMetalArmCortexMSingle_TLM2.0 BareMetalArm7Dual_TLM2.0 FreescaleKinetis60 FreescaleKinetis64 FreescaleVybridVFxx ARMv8-A-FMv1 ArmuKernel
MIPS Based Platforms    BareMetalM14KSingle BareMetalMips32Dual BareMetalMips32Single BareMetalMips64Single BareMetalMipsDual BareMetalMipsSingle HeteroArmNucleusMIPSLinux MipsMalta BareMetalMips32Multicore2_TLM2.0 BareMetalM14KSingle_TLM2.0 BareMetalMips32Single_TLM2.0 BareMetalMips64Single_TLM2.0 BareMetalMipsSingle_TLM2.0 MipsMaltaLinux_TLM2.0
Vendor Platforms    BareMetalNios_IISingle AlteraCycloneIII_3c120 AlteraCycloneV_HPS AlteraCycloneV_HPS_TLM2 BareMetalNios_IISingle_TLM2.0 BareMetalArcSingle BareMetalArcSingle_TLM2.0 BareMetalArm7Single BareMetalArmCortexADual BareMetalArmCortexASingle BareMetalArmCortexASingleAngelTrap BareMetalArmCortexMSingle ArmIntegratorCP ArmVersatileExpress ArmVersatileExpress-CA15 ArmVersatileExpress-CA9 ArmIntegratorCP_TLM2.0 ARMv8_A_FMv1_TLM2 ArmVersatileExpress_CA9_TLM2 BareMetalArm7Single_TLM2.0 BareMetalArmAArch64Single_TLM2.0 BareMetalArmCortexASingle_TLM2.0 BareMetalArmCortexMSingle_TLM2.0 ARMv8-A-FMv1 AtmelAT91SAM7 FreescaleKinetis60 FreescaleKinetis64 FreescaleVybridVFxx HeteroArmIntegratorCPLinuxwithMicroBlaze HeteroArmVersatileExpressLinuxwithMicroBlaze Or1kUclinux ArmCortexMFreeRTOS ArmCortexMuCOS-II HeteroArmNucleusMIPSLinux QuadArmVersatileExpress BareMetalArcManycore24_TLM2.0 BareMetalArm7Dual_TLM2.0 BareMetalMips32Multicore2_TLM2.0 Or1kUclinux_TLM2.0 ArmuKernel ArmuKernelDual BareMetalM14KSingle BareMetalMips32Dual BareMetalMips32Single BareMetalMips64Single BareMetalMipsDual BareMetalMipsSingle MipsMalta BareMetalM14KSingle_TLM2.0 BareMetalMips32Single_TLM2.0 BareMetalMips64Single_TLM2.0 BareMetalMipsSingle_TLM2.0 MipsMaltaLinux_TLM2.0 BareMetalOr1kSingle BareMetalOr1kSingle_TLM2.0 BareMetalM16cSingle BareMetalPowerPc32Single BareMetalPowerPc32Single_TLM2.0 BareMetalV850Single ghs-multi RenesasUPD70F3441 BareMetalV850Single_TLM2.0 XilinxML505 BareMetalMicroBlazeSingle_TLM2.0