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 AlteraCycloneV_HPS ArmIntegratorCP ArmVersatileExpress ArmVersatileExpress-CA15 ArmVersatileExpress-CA9 AtmelAT91SAM7 ArmCortexMFreeRTOS ArmCortexMuCOS-II HeteroArmNucleusMIPSLinux FreescaleKinetis60 FreescaleKinetis64 FreescaleVybridVFxx AlteraCycloneV_HPS ArmIntegratorCP ARMv8-A-FMv1 ArmVersatileExpress ArmVersatileExpress-CA15 ArmVersatileExpress-CA9 AtmelAT91SAM7 ArmCortexMFreeRTOS ArmCortexMuCOS-II ArmuKernel iMX6S Zynq_PS
MIPS Based Platforms    BareMetalM14KSingle BareMetalMips32Dual BareMetalMips32Single BareMetalMips64Single BareMetalMipsDual BareMetalMipsSingle HeteroArmNucleusMIPSLinux MipsMalta MipsMalta
Vendor Platforms    BareMetalNios_IISingle AlteraCycloneIII_3c120 AlteraCycloneV_HPS AlteraCycloneIII_3c120 AlteraCycloneV_HPS BareMetalArcSingle BareMetalArm7Single BareMetalArmCortexADual BareMetalArmCortexASingle BareMetalArmCortexASingleAngelTrap BareMetalArmCortexMSingle ArmIntegratorCP ArmVersatileExpress ArmVersatileExpress-CA15 ArmVersatileExpress-CA9 ArmIntegratorCP ARMv8-A-FMv1 ArmVersatileExpress ArmVersatileExpress-CA15 ArmVersatileExpress-CA9 AtmelAT91SAM7 AtmelAT91SAM7 FreescaleKinetis60 FreescaleKinetis64 FreescaleVybridVFxx Or1kUclinux ArmCortexMFreeRTOS ArmCortexMuCOS-II HeteroArmNucleusMIPSLinux ArmCortexMFreeRTOS ArmCortexMuCOS-II ArmuKernel ArmuKernelDual Quad_ArmVersatileExpress-CA15 RiscvRV32FreeRTOS BareMetalM14KSingle BareMetalMips32Dual BareMetalMips32Single BareMetalMips64Single BareMetalMipsDual BareMetalMipsSingle MipsMalta MipsMalta iMX6S BareMetalOr1kSingle BareMetalM16cSingle BareMetalPowerPc32Single BareMetalV850Single ghs-multi RenesasUPD70F3441 ghs-multi RenesasUPD70F3441 virtio FaultInjection Zynq_PL_DualMicroblaze Zynq_PL_NoC Zynq_PL_NoC_node Zynq_PL_NostrumNoC Zynq_PL_NostrumNoC_node Zynq_PL_RO Zynq_PL_SingleMicroblaze Zynq_PL_TTELNoC Zynq_PL_TTELNoC_node XilinxML505 XilinxML505 zc702 zc706 Zynq Zynq_PL_Default Zynq_PS