Open Virtual Platforms(OVP)
Presenter: Shao-Chieh Hou
OVP => Open Virtual Platforms A FREE and OPEN platform for SoC and MPSoC
develop Hardware develop
。Existing modules。Self-design modules(in C)
Software develop。Co-simulation
Like Coware(System C), but the no GUI and the syntax is different.
Can be run on Linux and Windows XP, and can run with GCC and GDB
What is OVP?
Hardware platform Written in proprietary languages and libraries Low level, cycle accurate Details of the hardware Like System C
Software platform Fast ,but not detail Focus on the instructions and code
But in embedded system develop, both of then is important.
Types of platform
The growing challenge for SoC The growth of the hardware complexity The embedded software need
more fast hardware
The solution is multi-core – MPSoC “Von Neumann is a poor use of scaling –all the energy is going on
the communication between the processor and the memory. Its much better to use 20 microprocessors running at 100MHz than one at 2GHz” - Hugo de Man, IMEC
Why OVP?
Embedded software is the big problem with MPSoC products Software co-design and co-simulation now is a important issue "30 to 50 per cent of R&D budgets are spent on software, and the
cost is rising 20 per cent a year. The software effort overtakes the hardware effort at 130nm.“ - Jack Browne, MIPS Technologies
Why OVP?(cont.)
So OVP give a platform for multi-core and the software co-simulation.
Why OVP?(cont.)
Create your own environment Like system C, you can integrate your own IP into the
environment
Contract Service Provider Like ARM, ARC, MIPS….etc. Design can use those modules to develop the MPSoC
in free and not illegal
http://www.ovpworld.org/about_partners.php
Advantage of OVP
Both of then are free, but Great for multiprocessor platforms with arbitrary shared
and local memory configurations. Simulation of processors with virtual memory with
almost no performance penalty. Peripheral Simulation Engine (PSE) Fast
。 2,000 MIPS
Different between QEMU
OVP comprises three components OVP modules OVP API OVP sim
OVP modules C source of models written to C OVP APIs Processor models of ARM, ARC, MIPS, OpenRisc,
PowerPC, Renesas, SPARC, x86, … Peripheral models of standard embedded devices Example embedded platforms in C, C++, SystemC,
TLM2.0。Including full platforms that boot operating systems like
uClinux, Linux, Nucleus, MicriumuC/OS-II, FreeRTOS
Content of OVP
OVP API has 4 API for use ICM – to create the platform VMI – to create the processor PPM and BHM – to setup the modules
OVP sim use to simulation Simple C API , ICM API can be use System C ,C++ ,TLM modules also can be use
Content of OVP(cont.)
Example
Example
Environment fie
C program
Demo file
Example
Example: Linux running on MIPS32
OVP can be use in hardware/software co simulation
Multiprocessor can be run and simulation But for us, we need to rewrite the IP into C or
System C modules, the cost here is in large Maybe can be use
Demo Simple verification
Conclusion