Innovative Virtual Prototype Technologies for System and Application Bringup

24
January 29, 2013 1 Guy Moshe General Manager Design Creation BU/ESD Innovative Virtual Prototype Technologies for System and Application Bringup

description

Innovative Virtual Prototype Technologies for System and Application Bringup. Guy Moshe General Manager Design Creation BU/ESD. Market Trends. Embedded systems are scaling rapidly : Complex multi-core architectures (e.g. ARM big.LITTLE) Large software stacks - PowerPoint PPT Presentation

Transcript of Innovative Virtual Prototype Technologies for System and Application Bringup

Page 1: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 1

Guy MosheGeneral ManagerDesign Creation BU/ESD

Innovative Virtual Prototype Technologies for System and Application Bringup

Page 2: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 2

Market TrendsEmbedded systems are scaling rapidly:

– Complex multi-core architectures (e.g. ARM big.LITTLE)

– Large software stacksEmbedded Software in critical path

– Applications everywhere– User experience– Differentiates products: Mobile, Automotive,

Networking….– Higher cost and investment

Opportunity: Companies are setting software infrastructure to drive future design and verification activities

Page 3: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 3

What’s Changed in System Design?

2009 2010 2011f 2012f0

20

40

60

80

100

120

Impact of Design Technology on SOC Consumer Portable Implementation Cost

Hardware Costs

Software Costs

$ U

S M

illio

ns

Software is fastest growing component of SoC development cost

All this software requires a lot of analysis!

Page 4: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 4

HW/SW Development Evolution

HW SW

Device

HW & SW Junction

Pain Here!

Hardware Software interaction presents a significant system analysis challenge

System / SOC• CPU(s)• Coprocessors• Graphics• Audio• Network(s)• GPIOs• Custom IP

Linux / RTOS• Boot code• Security layers• System Config• Drivers• ISRs• Application Code

Page 5: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 5

Embedded System Traditional Flow“Host”

Machine

Embedded SW Device UI™

Application Stacks

Middleware, Agents

Android™ Linux® Others®

IDE & BuilderCompiler

DebuggerProfiler

SW Developer Tools

Probe

Sequential delivery lifecycle (Late HW)Limited visibility & trace capacitiesMeasurement affects behavior - Heisenberg

Effect.…Rigid Setup

Page 6: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 6

Executing on a Virtual Target

“Host” Machine

IDE & BuilderCompilerDebuggerProfiler

CodeBench Virtual Edition

GDB

Peripherals

TimerGPIO

LCDVideo

DDR3PHYPHY

SDRAMBridge DMA USB ETHERNET PCI EXPRESS

GPU

PHY

MPEG CPU

Embedded SW Device UI™

Application StacksMiddleware, Agents

Android™ Linux® Others®

Virtual “Target” Device

UART

A Virtual Prototype is a high-level simulation model of the target hardware Can execute unmodified software images (drivers, firmware, OS, applications)

Run at close to real time speedRun with standard Toolchain’s and software IDE’s

Page 7: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 7

Introducing Virtual PrototypingHigh-level simulation model of the SoC/System HW

– Instruction set simulator executes code at close to real-time speed

– Peripherals simulated with behavioral models– Host resources provide

real world I/O

Key values– Early availability of a hardware accurate model– Fast, deterministic execution of native embedded

software– Full visibility & control– Software debug connection– May have various timing fidelities

Virtual Prototype

Peripherals

TimerGPIO

LCDVideo

DDR3PHYPHY

SDRAMBridge DMA USB ETHERNET PCI e

GPU

PHY

MPEG CPU

UART

Page 8: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 8

Virtual Prototyping vs. HW Prototypes

SW IDE

IDE & BuilderCompilerDebuggerProfiler

Developer Tools

VP Plug-in

Control

Analysis

Trace

Simulation Control Load & Restart

Start/stop

Registers, Memory, IO’s CPU internals Cache logging

Functional vs. Performance mode Application-level Power/Performance

Analysis

VP Plug-in

Operating System SW

Virtual Prototype

PeripheralsTimerGPIOUART

LCDVideo

DDR3PHYPHY

SDRAMBridge DMA USB ETHERNET PCI EXPRESS

GPU

PHY

MPEG

CPU

Reference Design Board

Provides capabilities similar to HW prototype– Simulation speed close to Real Time (~100s of

MIPS) – Configuration, Management & Manipulations– Debugging, Analysis & Profiling

But provides superior capabilities on Virtual Prototype

– Better simulation control – Better visibility & tracing– Better Analysis

Page 9: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 9

• Delivers a target HW model executable to the software team – Integrate final application software with actual hardware architecture– Validate and debug software against early HW model before RTL– Tune software to meet performance and power requirements

Virtual PrototypeExecutable

Linux/WindowsCross Compile

End UserApplicationSoftware

CPUSubsystem

AMBA AXI

Bridge

AMBA APB

UART

Slave

GPIO

Slave

MemoryDMA

Master

Ethernet

Slave

PHY

LCD

Master

MPEG

Master

JPEG

SlaveMaster

Terminal

Virtual Prototype wizard dialog for Virtual Prototype creation

Virtual Prototype Creation

Developer Tools

Page 10: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 10

Deterministic System Execution

Peripherals

TimerGPIOUART

Bridge

DDR3

SDRAM

PHY

USB ETHERNET

PHY

Interrupt Controller Timers

CPU 0 CPU 1

I-Cache

D-Cache

L2 cache + SCU

I-Cache

D-Cache

Interrupt Controller Timers

CPU 0 CPU 1

I-Cache

D-Cache

L2 cache + SCU

I-Cache

D-Cache

GPU

Embedded SW Device UI™

Application Stacks

Middleware, Agents

Android™ Linux® Others®

*Board tracing and debug is usually intrusive, affecting speed, performance measurements and behavior

Consistent hardware and software behaviorWell defined system Timing

– Instantly stop all system clocks

Non-intrusive Visibility & Profiling*– No affect on behavior– Minor affect on performance

Page 11: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 11

Debugger Connection to virtual target

“Host” Machine

IDE & BuilderCompilerDebuggerProfiler

CodeBench Virtual Edition

Peripherals

TimerGPIO

LCDVideo

DDR3PHYPHY

SDRAMBridge DMA USB ETHERNET PCI EXPRESS

GPU

PHY

MPEG CPU

UART

GDB Connection to CPU (Baremetal debug)

The debugger can connect to the virtual target in Linux or Baremetal mode without any Probe. Debugging link is set instantly .

Ethernet Connection to OS (Linux Mode)

Page 12: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 12

Network & I/O Connectivity“Host”

Machine

IDE & BuilderCompilerDebuggerProfiler

SW Developer Tools

Peripherals

TimerGPIO

LCDVideo

DDR3PhyPHY

SDRAMBridge DMA USB ETHERNETPCI EXPRESS

GPU

PHY

MPEG CPU

Embedded SW Device

UI™

Application Stacks

Middleware, Agents

Android ™ Linux® Others®

UART

Standby

Reset CDSP

CDSP

I2C

Standby/ Mute

Reset

FMFront End

I2C Ampli

I2C

I2C DSP

I2C DSP

I2C TU2

I2C Ampli

MNAND16GB

DAB DECODER

ENx Pins

IPOD chip

SPI

AM/FMFront End

CANTJA1054

Tx/Rx

I2C

Standby

Reset CDSP

Control

UART

Flash DRAM

I2C Ampli

EEPROM

I2C Eeprom

I2C DSP

I2C TU2

Vehicle processorVµC

V850

Radio ProcessorDRA404HS

I2S

SPI

Analog

Audio data I2S

DABFront End

TMCFront End

To USB HUB

DATA

Control

AUX

BT I2S

Virtual Platform

GDB

Driver

DriverUSB Connect

Ethernet Connect

File I/O (gps, gyro)Virtual Drivers

The Virtual Platform can connect through the host physical I/O’s

• Eth, USB, LCD, keyboard• IP Address• Ping from terminal…

Terminal

Page 13: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 13

Instantly Configure Hardware

Peripherals

TimerGPIO

LCDVideo

DDR3PHYPHY

SDRAMBridge DMA USB ETHERNET PCI EXPRESS

GPU

PHY

MPEG CPU

UART

Configure Cache, MMU, # of cores

Configure Memory & Controller

“Disable” selected IP’s

Manipulate clocks

You can easily manipulate and configure the hardwareTest platform derivatives and run trade off analysis

Peripherals

TimerGPIO

LCDVideo

DDR3PHYPHY

SDRAMBridge DMA USB ETHERNET PCI EXPRESS

GPU

PHY

MPEG

CPU

UART

Peripherals

TimerGPIO

LCDVideo

DDR3PHYPHY

SDRAMBridge DMA USB ETHERNET PCI EXPRESS

GPU

PHY

MPEG

CPU

UART

Peripherals

TimerGPIO

LCDVideo

DDR3PHYPHY

SDRAMBridge DMA USB ETHERNET PCI EXPRESS

GPU

PHY

MPEG

CPU

UART

Run regressions on multiple alternatives

Manipulate Connectivity

Configure Memory & Controller

“Disable” selected IP’s

Manipulate clocks

Manipulate Connectivity

Page 14: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 14

Tightly Coupled Debug

View registers and

variables in the hardware

model

Break software execution on events in the hardware model

Virtual Prototype Manager

Page 15: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 15

Deep non-intrusive visibility to hardware

Peripherals

TimerGPIO

LCDVideo

DDR3PHYPHY

SDRAMBridge DMA USB ETHERNET PCI EXPRESS

GPU

PHY

MPEG CPU

UART

Trace Cache & MMU sequences

Trace All internal and I/O registers

Trace All data transfers

Trace All Memories

When execution on a Virtual Target the user get deep and constant access at all times to all hardware internals. All

tracing are collected on the host .This visibility is critical to unveil deep embedded bugs during

OS bringup, running graphic application, etc .

Page 16: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 16

Non-intrusive SW trace & profilingWith a Virtual target, Software is executed on host using JIT (Just In Time) translation. This mechanism provide backdoor access to software without affecting target execution

• Can inject test code, e.g. prints, callbacks • Controlled via scripts in real time• No recompilation is required• Software image untouched

All tracing collected on Host• Unlimited capacities• No affect on target performance

Can be used to various validation flows• Code Coverage• Software Profiling• Fault Injection

Host Machine

Virtual Platform

Target ISS

Software Source

Software Image

Host Code Execution

(JIT)

Executed on Host

A

B

C

D

A

B

C

D

A

B

C

D

X

PrintLogAssertTarget Functionality & Timing not affected

CodeInjection

TCL Scripts

X

Hardware state dependencies

Trace Point

Page 17: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 17

Fault Injection during software debug

Injecting Software Faults Register security & safety failuresRegister valuesProtocol errorsTracking failure statistics over multiple lifecycles

Injecting Hardware FaultsInterruptsMemory FailuresPower FailuresFile system and disk failuresExternal device failures

Virtual Platforms can be manipulated to inject artificial faults, internal or from external devices at runtime

Peripherals

TimerGPIO

LCDVideo

DDR3PhyPHY

SDRAMBridge DMA USB ETHERNET PCI EXPRESS

GPU

PHY

MPEG CPU

UART

Standby

Reset CDSP

CDSP

I2C

Standby/ Mute

Reset

FMFront End

I2C Ampli

I2CI2C DSP

I2C DSP

I2C TU2

I2C Ampli

MNAND16GB

DAB DECODER

ENx Pins

IPOD chip

SPI

AM/FMFront End

CANTJA1054

Tx/Rx

I2C

Standby

Reset CDSP

Control

UART

Flash DRAM

I2C Ampli

EEPROM

I2C Eeprom

I2C DSP

I2C TU2

Vehicle processorVµC

V850

Radio ProcessorDRA404HS

I2S

SPI

Analog

Audio data I2S

DABFront End

TMCFront End

To USB HUB

DATA

Control

AUX

BT I2S

Page 18: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 18

Profile Hardware / Software in synch

CPU States (active / sleep / Idle..)

SW Functions (Start - End) Gant-Chart

Power Consumption

 Trace hardware and software simultaneouslyHardware cache, powerSoftware functionsProcessor access latencyExplore DVFS and user experience senarious

Page 19: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 19

SW – Cache – Power InteractionTrack SW callsCorrelate SW to

– Stack trace– Cache activity– Power consumption

Identify functions for optimization

– Cache hit percentage decreases– Power consumption increases

Cache Hit Rate Power Consumption

Page 20: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 20

Software Profiling & Analysis

Function Call Hierarchy

CPU Utilization

•E.g. Graphic Analysis– OpenGL and Qt Tracing– Smart Agents pinpoint miss

behavior– Visibility into graphic execution

layers

OGLES Rendering

CPU Scheduling

Peripherals

TimerGPIO

LCDVideo

DDR3PhyPHY

SDRAMBridgeDMA USB ETHERNETPCI EXPRESS

GPU

PHY

MPEG CPU

Embedded SW Device

UI™

Application Stacks

Middleware, Agents

Android™ Linux® Others®

UART

Standby

Reset CDSP

CDSP

I2C

Standby/ Mute

Reset

FMFront End

I2C Ampli

I2C

I2C DSP

I2C DSP

I2C TU2

I2C Ampli

MNAND16GB

DAB DECODER

ENx Pins

IPOD chip

SPI

AM/FMFront End

CANTJA1054

Tx/Rx

I2C

Standby

Reset CDSP

Control

UART

Flash DRAM

I2C Ampli

EEPROM

I2C Eeprom

I2C DSP

I2C TU2

Vehicle processorVµC

V850

Radio ProcessorDRA404HS

I2S

SPI

Analog

Audio data I2S

DABFront End

TMCFront End

To USB HUB

DATA

Control

AUX

BT I2S

GDB

Page 21: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 21

Example - Integrate with Automotive Network Simulation

•Easy configuration & manipulation (derivative)•Network & Absent Node Simulation

•Timing, Performance & Utilization in Network context •SW Profiling in Network Context

•Safety in Network context

RTE

SWCSWCAUTOSAR AUTOSAR

SWCAUTOSAR

BSWOS

Virtual ISS/ECU

Bus

RTE

BSWOS

Virtual ISS/ECU

MatlabSimulink

HIL

AUTOSAR

Page 22: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 22

Summary: Virtual Prototype Key ValuesWhile executing software on a Virtual Target is similar to executing on a physical board, it offers several key capabilities that are unique

– Availability before silicon or hardware are committed – Instantly configure and manipulate hardware alternatives, derivatives

and subsets – Deep non-intrusive visibility to HW and SW– “Unlimited” tracing capacities with no affect on behavior– Tightly control hardware software execution– Fast, deterministic execution of native embedded software– May have various abstraction levels and timing fidelities– Host resources provide real world I/O– Its Virtual! You can share it through emails

Page 23: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 23

Thank You!

Page 24: Innovative  Virtual Prototype Technologies for System and Application  Bringup

January 29, 2013 24

Non-intrusive visibility & debug “Host”

Machine

IDE & BuilderCompilerDebuggerProfiler

SW Developer Tools

Peripherals

TimerGPIO

LCDVideo

DDR3PhyPHY

SDRAMBridge DMA USB ETHERNETPCI EXPRESS

GPU

PHY

MPEG CPU

Embedded SW Device

UI™

Application Stacks

Middleware, Agents

Android ™ Linux® Others®

UART

Standby

Reset CDSP

CDSP

I2C

Standby/ Mute

Reset

FMFront End

I2C Ampli

I2C

I2C DSP

I2C DSP

I2C TU2

I2C Ampli

MNAND16GB

DAB DECODER

ENx Pins

IPOD chip

SPI

AM/FMFront End

CANTJA1054

Tx/Rx

I2C

Standby

Reset CDSP

Control

UART

Flash DRAM

I2C Ampli

EEPROM

I2C Eeprom

I2C DSP

I2C TU2

Vehicle processorVµC

V850

Radio ProcessorDRA404HS

I2S

SPI

Analog

Audio data I2S

DABFront End

TMCFront End

To USB HUB

DATA

Control

AUX

BT I2S

Virtual Platform

GDB

Backdoor access to software execution• Trace points at any Software location• Inject piece of code at Trace point during execution• Control and manipulate software execution

Hardware Tracing• Registers, CPU State & IRQ visibility, MMU & Caching

sequences• Pipeline & Buffering• Throughput & Latencies

SW Code Coverage

Hardware TraceMemory Allocation