Learn about OVP
Open Virtual Platforms (OVP) provides essential building blocks and simulation technology that give you a flexible approach to create and use simulation to develop embedded software.

Explore OVP

There are many demonstration videos that introduce OVP and show how OVP is used, how to run simple examples, and how to download example platforms that boot linux on MIPS Malta with a MIPS 34K dual core or that boot SMP Linux on ARM Versatile Express with ARM Cortex-A9 MPx4 core or ARMv8 Cortex-A57MPx4.

Develop Software on OVP

Watch the video on debugging embedded software using GDB and Eclipse to see OVP models and platforms used with standard debuggers/IDE.

Download Demos

On this site there are many downloadable packages that include self contained examples that are ready to run to show the different capabilities of OVP. A good place to start are the single, dual and many core examples contained in the ARM Cortex-A download OVPsim_demo_arm or the MIPS 32 download OVPsim_demo_mips32.

Download ISS

Often you want to just run some software in a simulation and dont want to build the platform yourself. With OVP you can do this using the Instruction Set Simulator (ISS). The ISS allows you to load up your application binaries and run them on a processor and memory - without the need to build a platform. Download the basic OVPsim package and look in Demo/Processors. The ISS allows easy use of GUI based source code debugging.

Download EPKs

Extendable Platform Kits are virtual platforms already packaged up with model source and software so that you can get up and running extremely quickly. By using the platform as is, you can load your own software up and get started. EPKs come with precompiled platform and operating systems, but also include the source of the platform so that you can add in your own components if you need. There are many EPKs. Have a look at The OVP platform library.

Develop Using OVP
Using OVP to increase your efficiency in developing embedded software requires you to obtain tools to develop the platform and tools to develop the embedded software.

The OVPsim simulator

The first thing you need is the OVPsim simulator. Also read the installation document. Read about licensing and obtaining a license.

Getting a Platform running

  • You will need a model of the platform and models of the components to be simulated. OVP provides many ready to use, for example: the ARM VersatileExpress or the MIPS Malta. Read the creating platforms in C document if writing your own platforms from C, or the iGen platform creation user guide if wanting to use the iGen platform generating wizard, or see if using OVP with SystemC TLM2
  • A host compiler is required (gcc on linux, or MinGW/MSYS on Windows) to compile your C/C++ models and platforms
  • Compiling embedded software

  • A cross compiler / tool chain for the embedded processor is needed to compile and link the application software. Several are provided by OVPworld: ARM, MIPS, Renesas, POWER
  • You also need a debugger (see above) and optionally an IDE (e.g. Eclipse)
  • Advanced tools are available from Imperas and other partners
  • Also read the installation document.
  • Developing Models

    Peripheral / behavioral models can be found in the library, or can be easily written (see the modeling document).
    OVP is the de facto source of Fast Processor Models and models of most current cores are available. The OVP list is here.
    OVP provides many processor models as open source and provides a comprehesive API to allow you to build your own CPU model.

    iGen Model Generating Wizard

    The OVPsim download includes the iGen model generating wizard. This creates platforms in C and SystemC and model templates for components like peripherals and processors.

    Imperas supplies advanced tools for creating OVP platform, peripheral, and processor models.

    Docs / Support
    Want more information before you begin using OVP? Our extensive documentation will tell you how.

    Most Popular Guides

    Installing OVPsim
    Creating and using OVP C platforms
    Using iGen Wizard to create platforms
    Controlling the simulation of platforms
    Using with SystemC TLM2.0
    Using OVP models in other simulators
    Debugging with GDB
    Using Eclipse with OVP
    Creating peripherals
    Creating CPU models

    Get Support

    Register / Login and ask questions and get answers in our forums.

    If you need a commercial support arrangement for OVP please contact us.

    If the model you need is not currently listed on OVP, whether it is models of platforms, peripherals, or processors, please contact Imperas.