OpenOpen VirtualVirtual PlatformsPlatforms (OVP)(OVP) AnAn IntroductionIntroduction andand OverviewOverview

[email protected]

Dec 2011

Page 1 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 AgendaAgenda

ƒ Embedded software is The Big Problem with SoC products

ƒ Existing embedded software solutions

ƒ OVP

Page 2 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 TheThe growinggrowing challengechallenge

ƒ SW content of electronic products grows dramatically ƒ Millions and millions lines code ƒ In 2007 SW dev costs exceeds HW design costs for SoC ICs

Examining the economics of building next-generation mobile handsets with By: Bill Weinber, Jun. 14, 2005 11:00 AM, linux.sys-con.com

ƒ and the software needs to run faster and faster to provide more and more functionality

Source:

Page 3 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 TheThe realreal solutionsolution isis MultiMulti--CoreCore

“Von Neumann is a poor use of scaling – all the energy is going on the communication between the and the memory. Its much better to use 20 running at 100MHz than one at 2GHz” Hugo de Man, IMEC

ƒ Early movers have been building multi-core standard processors

ƒ And more and more System on Chips (SoCs) and Platform chips are becoming multicore

Page 4 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ProcessorProcessor countcount predictedpredicted toto increaseincrease dramaticallydramatically Source: ITRS 2006 Update 2006 ITRS Source: Engine DPE: Data Processing

Page 5 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 EmbeddedEmbedded SoftwareSoftware forfor MPSoCsMPSoCs:: AnAn extremeextreme challenge!challenge!

“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

“Some say we are at a crisis stage with the software side overwhelming the hardware side. Driving some of this is the proliferation of cores in system-on-chip (SoC) devices.” Steve Roddy, SW problems delay SoC revenues, impacting IP developer royalties

Page 6 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ProductizingProductizing MPSoCsMPSoCs

• So what does the future hold for software that is to run on these multi-core chips? • Understanding what the future could look like, how can we make that better?

Page 7 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 CurrentCurrent SoCSoC (Software(Software onon Chip!)Chip!) developmentdevelopment methodologymethodology

ƒ Start developing in parallel with hardware ƒ But cannot test software ƒ Get chip or FPGA on prototype board ƒ The hardware is always far too late in the product development cycle ƒ Also it is a limited, unreliable and not up to date prototype / platform ƒ Connect up to port ƒ Then there is a real challenge in verifying and MP software ƒ Lack of controllability, visibility, precision ƒ And poor MP support ƒ More and more teams scrabbling about in looking for a better solution

Ö Moving to Virtual Platforms for earlier testing of software Ö If initial testing of software is done on Virtual Platform, could reduce SoC schedule by months, and reduce initial development and maintenance costs significantly for SoC embedded software

Page 8 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 Observation:Observation: NewNew EmbeddedEmbedded SoftwareSoftware DevelopmentDevelopment ToolsTools neededneeded (especially(especially forfor multicore)multicore)

Phase 4: better programming

l, paradigms and tools to address e d n parallel programming and multicore o io M t platform issues g a in m to m u Phase 3: manage/deliver application m A a r , g ls software for heterogeneous o o The current r o platforms P T ch market is en kb Phase 2: next generation functionality or

Abstraction and Efficiency here W built on base – verification solutions for software development , ation erific - new products from new companies V g Debu lysis & Ana Phase 1: simulate platforms at speed for OS porting, driver and application development Virtual platform: multicore simulation, - virtual platforms user modeling, model library

The Four Steps to the MP Epiphany™ Adoption over time

Page 9 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 VirtualVirtual PlatformsPlatforms MarketMarket GrowsGrows FastFast

ƒ “Virtual Platform and simulation tools are the fastest growing segment of the electronic system level tools market …” ƒ “28 percent of respondents are using virtual prototyping today, and 44 percent expect to use it within the next two years.” ƒ “The challenge of designing and testing software earlier in the design is becoming an increasingly significant factor, especially in cases where the hardware environment may be extremely complex or not yet available.”

ƒ Matt Volckmann, Senior Analyst with VDC's embedded software practice,

Ö Big demand currently and near future Ö But for what virtual platform technology?

Page 10 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 VirtualVirtual PlatformsPlatforms TypesTypes

ƒ Hardware Virtual Platforms ƒ Timing / Cycle accurate ƒ Used for architecture performance analysis, drivers, ƒ Models are very complex, slow, time consuming to build ƒ SystemC etc ƒ Main value is same performance as RTL, no license cost…

ƒ Software Virtual Platforms ƒ Instruction accurate ƒ Used for OS, applications ƒ Can be very fast, programmers views ƒ Model only what is needed in peripherals ƒ Complete system environment

Page 11 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 VirtualVirtual PlatformsPlatforms marketmarket todaytoday isis fragmented,fragmented, andand divergingdiverging

ƒ Approaches ƒ Roll your own – from scratch in /C++/SystemC ƒ Contract product provider as service to build models of IP and platform ƒ Use commercial solution to write your own models ƒ Existing ƒ Today’s alternatives: pro ƒ Get a virtual platform ƒ Today’s alternatives: con ƒ Takes too long to develop ƒ High risk ƒ Lack of control for service model ƒ Proprietary solutions ƒ No interoperability ƒ Cost of deploying simulation environment ƒ Different solutions for different models/IP architectures ƒ Designed for single cpu model not embedded MP platform

Ö This fragmentation is not a good situation if virtual platforms are the enabler for MPSoCs

Page 12 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 WhatWhat isis needed?needed?

ƒ Open way of modeling needed for Virtual Platforms ƒ Targeted at Instruction Accurate Software Virtual Platform need ƒ Easy to use, high level, 100s of MIPS ƒ Covers complexity of current designs easily ƒ Built-in interoperability for models from different developers ƒ Proven and in use technology ƒ Methodology that leads to an ecosystem ƒ Ability to enable model builders to protect IP ƒ Interfaces that enable the growth of tool chains ƒ Tools that provide verification, debug, analysis of embedded sw ƒ Backwards compatible with legacy solutions

Page 13 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 WindWind RiverRiver ViewView

ƒ Tomas Evensen, CTO, said he's noticed a shift during the past couple of years both within his company and among Wind River customers towards an increasing use of various types of simulation, including virtual platform systems. Previously, he noted, software developers wanted real hardware, but now "they have to start using simulation because there's no chip available.“ ƒ Simulators are especially valuable for multicore platforms, Evensen noted, because real multicore hardware tends to be non-deterministic and exhibit race conditions. ƒ SCDSource.com

Page 14 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 IntroducingIntroducing OPENOPEN VIRTUALVIRTUAL PLATFORMSPLATFORMS

ƒ “Imperas believes that software virtual platform infrastructure should be open and be freely available. ƒ To that end, we are sharing, making public, and making open our simulation infrastructure technologies with the intention of establishing a common, platform for software virtual platforms for software developers. ƒ We are also placing many complex processor and peripheral models in open source. ƒ Imperas will support and manage the OVP site, and will contribute much of our innovation to keep this infrastructure evolving. ƒ However, it is not solely through our efforts that these technologies become successful. Participation of organizations and individuals around the world is critical to the success of OVP.

ƒ We offer our thanks to all those that are participating in this community.”

Simon Davidmann, CEO Imperas and OVP Founder

Page 15 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 VirtualVirtual PlatformsPlatforms (OVP)(OVP) areare thethe foundationfoundation forfor thethe nextnext generationgeneration ofof [embedded][embedded] softwaresoftware developmentdevelopment environmentsenvironments –– especiallyespecially forfor multicoremulticore

Phase 4: better programming

l, paradigms and tools to address e d n parallel programming and multicore o io M t platform issues g a in m to m u Phase 3: manage/deliver application m A a r , g ls software for heterogeneous o o r o platforms OVP fulfils P T ch en this need kb Phase 2: next generation functionality or

Abstraction and Efficiency W built on simulation base – verification solutions for software development , ation erific - new products from new companies V g Debu lysis & Ana Phase 1: simulate platforms at speed for OS porting, driver and application development Virtual platform: multicore simulation, - Open Virtual Platforms user modeling, model library

The Four Steps to the MP Epiphany™ Adoption over time

Page 16 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 RequirementsRequirements onon OVPOVP SoftwareSoftware VirtualVirtual PlatformsPlatforms

ƒ Easy to create virtual platforms of MANY peripherals and MANY processors ƒ Easy to create your own processors, peripherals, platforms ƒ Library of processor and peripheral models ƒ Full programmers views, registers, addressing, interrupts ƒ Model only what is needed in peripherals ƒ are Instruction Accurate, very fast ƒ Used for application, OS, embedded software development ƒ Connect to 3rd party , e.g. GDB ƒ Efficient, Complete system environment for developing embedded software

Page 17 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 WhatWhat isis inin OVP?OVP? ƒ Modeling ƒ Publishing of C OVP APIs for Processor, Peripheral, and Platform modeling ƒ Documentation & header files ƒ Open Source library of models ƒ C source of models written to C OVP APIs ƒ Processor models of ARM, ARC, MIPS, PowerPC, Renesas , M16c, Xilinx MicroBlaze, OpenRisc, SPARC, , … ƒ 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, Micrium uC/OS-II, FreeRTOS ƒ OVP reference simulator, free for non-commercial use ƒ Runs processor models fast, 500 MIPS typical ƒ Interfaces to GDB via RSP/socket ƒ MP Capable, scalable and very efficient ƒ Can encapsulate existing processor models (ISS) ƒ Callable with C/C++/SystemC/TLM2.0

Page 18 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPOVP CommunityCommunity

ƒ Founded March 2008 by Imperas ƒ Website community/portal ƒ Nearly 5,500 people registered on the website ƒ OVP ecosystem ƒ Users ƒ Tool developers needing integration/interoperability, e.g. ƒ SystemC simulators ƒ Cadence, Carbon, CoWare, Mentor, OSCI, ƒ Emulation/FPGA prototyping ƒ , EVE, Hitachi, Mentor ƒ Engineering services companies available to provide model building services to users ƒ Universities for both research and courses

Page 19 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ComponentsComponents ofof OVPOVP ProcessorProcessor ModelsModels

Model (MMC)

L1/L2 Cache Decode instruction from memory

Decode Instruction Behavior and Disassembly Behavior

source L1 Cache Standard interface to Debugger (RSP) e Disassemble Debug IF Exceptions Exception Modeling TLB Processor State Shared R Asynchronous Events High Performance Model TLB / MMU

Asynchronous External Events Extension / SemiHosting / Instrumentation Libraries

Create and manage resources (eg Registers) Add processor independent I/O support shared between multiple processor instances Add instrumentation into application (no overhead)

=> complete, proven technology and methodology – use our models, or write your own…

Page 20 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPOVP includesincludes NativeNative SystemCSystemC TLMTLM 2.02.0 interfaceinterface

Platform

Sub-system 1 Sub-system 2

mips32 mips32 icmCpu icmCpu

OVPOVP OVPOVP CPU CPU CPU DecodeBusLTDecodeBusLT CPU cpu_1 (m_bus_sh)(m_bus_sh) cpu_2 DMI (m_bus_1) (m_bus_2) (m_bus_1) (m_bus_2) DecodeBusLT DecodeBusLT DecodeBusLT DecodeBusLT

Direct Memory Interface Direct Memory Interface MemoryMemory (shared)(shared) MemoryMemory MemoryMemory (stack1)(stack1) (stack2)(stack2)

Example showing TLM2.0 platform encapsulating OVP fast CPU models with shared memory ƒ Local memory for heap and stack ƒ Shared memory for program and data ƒ Very simple to use and runs very fast

Page 21 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 LibraryLibrary ofof OVPOVP FastFast ProcessorProcessor ModelsModels ƒ Verification, Licensing, and Distribution Partnership with MIPS ƒ MIPS Processor cores verified by MIPS Technologies under the MIPS-Verified™ program ƒ Current verified models: ƒ Single core MIPS32 4KEm/Ec/Ep ƒ Single core MIPS32 24KEc/Ef/Kc/KF ƒ Single core MIPS32 74Kc/Kf ƒ microMIPS single core M14KcTLB/KcFMM ƒ Dual core MIPS32 34Kc/Kf ƒ Quad core MIPS32 1004Kc/Kf, 1074Kc/Kf

ƒ Verification performed by ARC ƒ Imperas developed models of ARC processors verified by ARC ƒ e.g. single core ARC605 ƒ ARC6xx, ARC7xx families available

ƒ Models of ARM cores ƒ ARMv4, ARMv5, ARMv6, ARMv7 architectures including MMU, MPU, TCM, VFP, Neon ƒ Processor core models include Cortex-A9, Cortex-A9MP, Cortex-A8, Cortex-A5, Cortex-M3, Cortex-M4 ƒ Models of Classic cores - ARM1136, 1156, 920, 922, 926, 940, 946, 966, 968, 7EJ-S, 720T, 7TDMI

ƒ Renesas (NEC) Electronics models of v850, v850ES, v850E1, v850E2, M16C

ƒ Models of Xilinx MicroBlaze, verified with Xilinx verification suites

ƒ Licensing, Distribution Partnership with Tensilica ƒ Models of Tensilica Xtensa® and Diamond Cores run in OVP platforms ƒ OVP Tensilica model is instanced and used in the same way as native OVP processor models

ƒ Other CPU families (not certified) available: PowerPC, openCores, x86, proprietary Page 22 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 Modeling Processors using OVP - some performance numbers for OVP CPUs Required Speed

1 GIPS OVP CPU Application Software Development Models 100 MIPS Firmware Development 10 MIPS Driver Development OVPsim solution: 1 MIPS Transaction Level Verification (SystemC) 100 KHz Ready for next generation Hardware / Software Co-Verification 10 KHz application software development! RTL Hardware Verification 1 KHz

Page 23 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 AndAnd OVPOVP TLM2.0TLM2.0 isis fastfast tootoo

ƒ Using DMI ensures fastest possible speeds ƒ OVP CPU models in TLM2.0 platforms provide 200-500 MIPS performance ƒ Use un-modified cross compiled binaries ƒ Memory can be in OVP model or SystemC platform

Page 24 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 AgendaAgenda

ƒ Embedded software is The Big Problem with SoC products

ƒ Existing embedded software solutions

ƒ OVP ƒ Demonstrations available for easy download from www.OVPworld.org/download.php

Page 25 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim ExampleExample SingleSingle ProcessorProcessor PlatformPlatform

CPU1 RSP Interface GDB Debug ƒ Provide socket to attach debugger ƒ Attach GDB to single instance in platform Heap Code Data Stack

Several pre-compiled examples Fibonacci Dhrystone ƒ Easy to run Linpack Peakspeed1 ƒ C:\> platform.exe application.elf ƒ Loads application into memory and runs it ƒ On 3GHz PC runs up to 2000 MIPS

Page 26 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsim Demo Single Processor – Fibonacci series

Application Source (C cross-compiled for target processor)

Platform Source (C compiled on OVPsim run log X86 Windows) (runs easily and very fast on normal Windows PC)

Page 27 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsim Demo Single Processor - Peakspeed

Example of peakspeed - Simple contrived example application - Demonstrates maximum speed

Shows maximum speed –depends on application and platform – 1,000 MIPS possible on desktop…

Page 28 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim multicore2multicore2 22 ProcessorProcessor PlatformPlatform ƒ Application is Fibonacci Processor Shared Data series generated on one

Program and read by second Local Memory processor from shared memory

Local Memory ƒ Local memory ƒ heap and stack Processor ƒ Shared memory ƒ program and data ƒ Easy to create platform and use ƒ C:\> platform .exe application .elf ƒ Loads application into shared memory and runs it ƒ On 3GHz PC runs up to 500 MIPS

Page 29 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsim Demo multicore2 – 2 X MIPS32

2 processors in platform

add buses one processor is writer & connect

Easy to see instructions per processor and add memory cumulative - No slow down with sharing resources!

other processor is reader

connect memories to buses

Page 30 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim manycore24manycore24 demodemo 2424 ProcessorProcessor PlatformPlatform

CPU1 CPU12

Local Memory Local Memory ƒ Any number of processors can be instantiated in platform ƒ No penalty on system Local Memory Local Memory simulation performance

CPU13 CPU24

ƒ Easy to create platform and use ƒ C:\> platform .exe application .elf ƒ Loads application into local memory and runs it ƒ On 3GHz PC runs up to 500 MIPS

Page 31 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsim Demo manycore24 – 24 X ARM

Easy to create platforms of many processors

Easy to see instructions per processor and cumulative Easy to load software - no slow down with onto many processors more processors! - simulate easily 2048 processors, and more…

Page 32 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 Hetero multicore4 4 Processor Platform (3x ARM7, 1x MIPS32)

ARM7 ARM7

Shared Data Local Memory Local Memory

Local Memory Local Memory

ARM7 MIPS32

Producer1 ARM7 (LE)

Shared Memory Producer2 Lock FIFO Consumer ARM7 (LE) MIPS32 (LE) …

Producer3 ARM7 (LE)

ƒ Easy to run: C:\> platform .exe application .elf

Page 33 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 TensilicaTensilica IntegrationIntegration

OVPsim

ISS model Wrapper from from OVP Tensilica DC_570T DC_570T

FIFO

Local Memory Local Memory

Platform ƒ Tensilica ISS Encapsulated in OVPsim In OVP ƒ OVP instances just like native processors ƒ In this example FIFOs used for communication ƒ Easy to run: C:\> platform .exe application .elf Page 34 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsim Demo Tensilica Integration 2X Diamond Cores

Encapsulated Models Software on processor 1 are instanced easily like is reader native OVP models

Simulation runs easily

OVP includes processor to processor communication using FIFOs

Software on processor 2 is writer

Page 35 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPOVP enablesenables debuggingdebugging withwith GDBGDB attachedattached toto oneone processorprocessor

OVPsim platform waits for GDB debugger connection on standard network socket

Port for GDB connection is specified in icmInit() -zero means use any free port

GDB target remote command connects GDB to OVPsim processor

Processor to debug in OVPsim platform is nominated as part of icmNewProcessor()

Once connected GDB enables full source level debugging of simulated application

Page 36 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 DebuggingDebugging withwith EclipseEclipse isis easyeasy usingusing CDTCDT encapsulationencapsulation

Eclipse enables graphical source-level Low-level processor state debug of OVPsim simulated application can also be inspected and – Platform and debugger launched controlled with two mouse clicks

Eclipse connects to OVPsim through GDB using GDB’s remote serial protocol

Page 37 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim BootingBooting uClinuxuClinux (OR1K)(OR1K)

0xFFFFFFF OR1K Memory1 Memory2 (RAM) (RAM) Memory2

0xa0000000 Interrupt

0x93000000 Controller UART Memory (16450) Controller 0x90000000 UART

Memory1

0x00000000 Terminal Keyboard Platform Memory Map ƒ Easy to run ƒ C:\> platform .exe uClinux.elf ƒ Loads application into memory and runs it ƒ In telnet console can interact with uClinux

Page 38 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsim Demo running simple OS - uClinux

OVPsim console starts up - and then awaits a telnet session - When session finished it Use hyperTerminal to exits with information connect to UART in platform - When type in terminal – interact with OS running on simulated processor

Page 39 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim bootingbooting uClinuxuClinux onon ARMARM AtmelAtmel AT91sam7AT91sam7

ARM7TDMI

SRAM s upt r r te in

ASB

16-Mbit AIC

USART

USART Terminal Power Saving Timer Chip Id

Keyboard Watchdog

Parallel IO Controller Boot uClinux

Page 40 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim bootingbooting NucleusNucleus onon ARMARM IntegratorIntegrator // ARM920ARM920

ARM920T

config regs SSRAM LED SDRAM RTC

PIC MMC Interface

UART

PIC AHB GPIO Decoder

UART

Easy to run LCD Controller

Keyboard Keyboard/Mouse Flash telnet localhost 9999

Page 41 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim bootingbooting LinuxLinux onon ARMARM IntegratorIntegrator // ARM926ARM926

ARM920T

config regs SSRAM LED SDRAM RTC

PIC MMC Interface

UART

PIC AHB GPIO Decoder

Keyboard UART / Mouse LCD Controller

Boot Linux Keyboard/Mouse Flash

Page 42 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim MIPSMIPS LinuxLinux platformplatform

ƒ Boot Linux on Windows PC… ƒ Easy to run: platform .exe vmlinux

Page 43 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsim Demo running Linux 2.6 on MIPS32

VGA peripheral in platform displays information OVPsim console starts up - User types into display -and then runs Linux booting window and interacts with - User types into VGA screen Linux running on simulated - When session finished it exits with processor information

Booting linux takes only a few seconds -Platform runs at several times real time -In this example platform is 100MHz chip, and simulation runs approx. 4X faster… - your mileage may differ…

Page 44 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim MIPSMIPS platformplatform MIPSMIPS MaltaMalta // MIPSMIPS 24K24K // AndroidAndroid

Keyboard Mouse

MIPS32 Memory UART (TTY2) 24KEc (16450) (RAM)

LOCAL ion ct

KbControl Malta SysControl UART (TTY1) VGA s Conne

u (SuperIO) FPGA (GT64120) (SuperIO) c B

i UART (TTY0)

m (SuperIO) na Dy PCI BUS

IntControl PIIX4 USB PM RTC Timer IDE (PIIX4) (Base) (PIIX4) (PIIX4) (PIIX4) (PIIX4)

PCI IACK

PCI Config

Page 45 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 AndAnd OVPOVP worksworks forfor MPMP usersusers

ƒ VSMP Linux in MIPS Malta 34K platform ƒ 2 processors ƒ Easy to run

Page 46 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsimOVPsim HeterogeneousHeterogeneous PlatformPlatform ARMARM NucleusNucleus // MIPSMIPS LinuxLinux

MIPS32 UART Memory ARM920T 34Kc (TTY2) (RAM) (16450) config regs SSRAM LED SDRAM LOCAL BUS RTC

PIC MMC onnection UART UART KbControl Malta SysControl Interface (TTY1) (TTY0) VGA (SuperIO) FPGA (GT64120) Keyboard Bus C (SuperIO) (SuperIO) c UART i nam Dy

PIC br PCI BUS AHB GPIO Decoder Mouse

UART IntControl PIIX4 USB PM RTC Timer br IDE (PIIX4) (Base) (PIIX4) (PIIX4) (PIIX4) (PIIX4) LCD Controller

PCI IACK Keyboard/Mouse Flash PCI Config

Memory (RAM)

Page 47 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsim Homogeneous Platform, Dual ARM Cortex-A9 Heterogeneous OS: ARM Linux / ARM Nucleus

ARM Cortex-A9 ARM Cortex-A9 config regs SSRAM LED SDRAM RTC

PIC MMC Interface UART

PIC AHB GPIO Decoder Keyboard UART / Mouse LCD Controller

Keyboard/Mouse Flash ƒ Two cores ƒ One running Linux Kernel (Output using LCD peripheral) ƒ One running Nucleus Demo (Output using UART)

Page 48 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPsim Heterogeneous Platform ARM Cortex-A9MPx2 running Linux and Xilinx MicroBlaze

UART

Xilinx Memory MicroBlaze Peripheral

Bridge ARM Cortex-A9 ARM Cortex-A9 config regs SSRAM LED SDRAM RTC

PIC MMC Interface UART

PIC AHB GPIO Keyboard Decoder / Mouse UART LCD Controller

Keyboard/Mouse Flash

Page 49 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ARMARM VersatileVersatile ExpressExpress CortexCortex--A9MPx2A9MPx2 // SMPSMP LinuxLinux

ARM CortexA9MPx2 config regs SSRAM LED SDRAM RTC

PIC MMC Interface

UART

PIC AHB GPIO Decoder

Keyboard UART / Mouse LCD Controller

Keyboard/Mouse Flash

Page 50 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ARMARM VersatileVersatile ExpressExpress CortexCortex--A9MPx1A9MPx1 // AndroidAndroid

ARM CortexA9MPx1 config regs SSRAM LED SDRAM RTC

PIC MMC

UART

PIC AHB GPIO Decoder AAC Keyboard UART / Mouse WDT LCD Controller

Keyboard/Mouse Flash

Page 51 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 PagePage 4252 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 What products does Imperas sell: Verification is key in SW Development

ƒ “Debugging is the most time-consuming aspect of the embedded software development process, and multicore debugging challenges are especially acute, according to 354 developers who responded to a survey conducted at the April Embedded Systems Conference” ƒ “56 percent of survey respondents said that debugging is the most time- consuming aspect of their work. In contrast, 24 percent pointed to writing original code.” ƒ “35 percent of respondents said they spend over half of their total development time debugging.” ƒ “59 percent said the debugging tool they use does not support multicore or multiprocessor development. It's an important question, because 68 percent said they spend at least some of their time working on multicore or multiprocessor systems. 20 percent, in fact, spend over half their time on such systems.”

ƒ EETimes, Richard Goering

Ö Imperas products are focused on verification, debug and analysis of embedded software for all SoCs– please visit www.imperas.com

Page 53 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 OVPOVP SummarySummary

ƒ The key to efficiency for future software development environments is the use of simulation and Virtual Platforms ƒ The availability of high performance, high quality models is critical ƒ The Open Virtual Platforms solution is increasingly important – especially with the move to MP ƒ The Imperas technology donation and formation of OVP kick starts a new phase in embedded software development ƒ OVP provides a fantastic OpenSource modeling solution to be the foundation of the next generation of software development environments ƒ Committed collection of partners developing the ecosystem Ö The most important opening & donation since SystemVerilog

Page 54 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 VisitVisit www.OVPworld.orgwww.OVPworld.org

ƒ Open Source models in Wikki based library, User Forums, Downloads, Presentations, Documentation…

Page 55 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ƒ Thank you for watching.

ƒ Please have a look at what the ecosystem is saying at: http://www.ovpworld.org/presentation.php?slide=OVPPARTNERS2

Page 56 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 FASTFAST SIMULATION,SIMULATION, FREEFREE MODELS,MODELS, EASYEASY TOTO USEUSE http://www.ovpworld.org

Enabling the next generation of embedded [MultiCore] Software Development

Page 57 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ƒ Thanks

Page 58 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ƒ Thanks

Page 59 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ƒ Thanks

Page 60 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211 ƒ Thanks

Page 61 © 2011 Imperas, Open Virtual Platforms, www.OVPworld.org, v1211