OVPsim provides infrastructure for describing platforms with one or more processors containing shared memory and busses in arbitrary topologies and peripheral models. The platforms are created using a simple C API, the ICM API (C++, SystemC and TLM2.0 wrappers are also available). Either executable or dynamic linked libraries can be created. Thus a model of a component, platform or system can be developed in OVP and then provided to others to run in external simulation environments like a C++, SystemC or TLM2.0 one.
The OVPsim simulator is available on X86 PC Windows XP Professional SP2 and Linux Fedora Core 4.
Imperas has commercial tools available that offer even faster simulation speeds and include other productivity enhancements such as a fully functional multiprocessor/multi-core debugger, software verification and advanced software analysis. Please contact Imperas at info[at]imperas.com for more information.
OVPsim was developed by Imperas from 2005-2008 and will be maintained and supported by them - please visit the OVP forums for up to date support information.
Models are available for many standard processors and peripherals and it is easy to write your own models using the OVP modeling APIs. Platforms are created using the ICM API with processors being created with VMI, and any behavioral components with BHM/PPM.
Using the ICM interface you can create a platform that matches your system, even if this has multiple processors and complex shared memory configurations.
The OVPsim simulator can simulate arbitrary multiprocessor shared memory configurations and heterogeneous multiprocessor platforms. OVPsim is a very fast simulator though for the ultimate speed please contact Imperas (info[at]imperas.com) for information about their commercial tools with accelerated heterogeneous simulation capability.
Performance of OVPsim depends on several factors (for example, the processor variants used in the platform and the exact nature of the application itself), but typically you can expect speeds of hundreds of millions of simulated instructions per second.
SystemC models cannot be encapsulated in OVPsim, but it is straightforward to encapsulate OVPsim models in SystemC. Of course, performance will be greatly restricted by the SystemC overhead. If you need to use an OVP model in a SystemC environment, then we suggest you use the OSCI SystemC TLM (TLM2.0) interface - each OVP model can be wrapped - processors and peripherals - and memories can be inside the models or outside in the SystemC. The models can use the TLM2.0 DMI to get the fastest access into external memories. OVP provides the fastest processor models that can be wrapped in SystemC TLM2.
It is possible to encapsulate existing ISS models within OVPsim, provided that they export some basic features (for example, the existing ISS model should be available as a shared object, provide an API to allow it to be run instruction-by-instruction or for a number of instructions, and provide an API allowing memory to be modeled externally). There are API functions in the VMI to enable this ISS encapsulation.
Since OVPsim platform models can be compiled as shared objects, they can be encapsulated in any simulation environment that is able to load shared objects. This of course includes C, C++, SystemC and TLM2.0 simulation environments - but also OVPsim platforms can be called from within HDL environments using e.g. the Verilog PLI etc.
OVPsim comes with the ability to hook up to any external debugger that supports the GNU GDB RSP protocol. For full multicore debugger and advanced verification and analysis offerings please contact Imperas (info[at]imperas.com).
The OVPsim simulator is available from the OVP web site and will be maintained and supported from there. A restriction in its license is that OVPsim cannot be re-distributed by its users and is only available for free for non-commercial usage. If you provide OVP models/platforms etc to your customers, then please inform them they can download and evaluate the latest version of OVPsim from the OVP website for free. You may freely share the models you have built etc, it is just the OVPsim simulator and APIs that you cannot re-distribute - those must always come from the OVPsim website or from Imperas. This ensures that all users of OVP technology have equal access to the latest versions and are registered.
OVPsim is Instruction Accurate and executes target binaries directly. If you use profiling and coverage tools that work by instrumenting the source - then these should work. If you require profiling, analysis, and coverage tools that can work on entirely unmodified application programs, for example if you only have object, then please contact Imperas (info[at]imperas.com) for information on their commercial offerings.
If you need to use OVPsim to simulate your platforms and you have an XML or SPIRIT (IP-XACT) XML netlist - then you need to convert this to a C program using ICM calls. Imperas has a commercial tool to accomplish this. Please contact Imperas (info[at]imperas.com).
If you are needing to use OVPsim commercially, then please contact Imperas (info[at]imperas.com) for a license.