Simulating Embedded Hardware for Software Development Class 410 - - PowerPoint PPT Presentation

simulating embedded hardware for software development
SMART_READER_LITE
LIVE PREVIEW

Simulating Embedded Hardware for Software Development Class 410 - - PowerPoint PPT Presentation

Simulating Embedded Hardware for Software Development Class 410 Jakob Engblom, PhD Virtutech jakob@virtutech.com 1 Scope & Context of This Talk Supporting embedded software development Using simulation of computer systems On


slide-1
SLIDE 1

1

Simulating Embedded Hardware for Software Development

Class 410 Jakob Engblom, PhD Virtutech jakob@virtutech.com

slide-2
SLIDE 2

2

Scope & Context of This Talk

Supporting embedded software development Using simulation of computer systems

– On computers (obviously)

It is not about

– Simulating computer hardware to design it (primarily) – Chip design – Mechanical system simulation and design

slide-3
SLIDE 3

3

Why?

slide-4
SLIDE 4

4

Because Hardware Is...

Not yet available Flaky prototype stage Not available anymore

?

Photo: Computer History Museum Photo: Freescale

slide-5
SLIDE 5

5

Because Hardware Is...

Inconvenient Dangerous Inaccessible

Photo: ESA Photo: www.mil.se, Bromma Conquip

slide-6
SLIDE 6

6

Because Hardware Is...

Impractical in scale Limited Inflexible

slide-7
SLIDE 7

7

Simulation Advantages

“Just software” Availability

– Easy to copy & distribute – Requires no special lab – Good for global reach – Available before hardware is completed

Flexibility

– Engineering computer can be “any” system – Fewer fixed lab setups

Inspectability

– Any variable or property can be observed, even if hidden in the real world

Controllability

– Any variable or property can be changed – Controlled experiments, not real-world random

Configurability

– Easy to change configuration and create new configurations

Easy to vary parameters

slide-8
SLIDE 8

8

Example: Early Hardware

Hardware/Software Integration and Test Hardware-dependent software development Hardware design and production Simulator development Hardware-dependent software development Hardware/Software Integration and Test

First successful power-on and boot First successful power-on and boot Reduced project time-to-ship using simulated hardware Reduced project time-to-ship using simulated hardware

Hardware design and production

slide-9
SLIDE 9

9

Example: Late Hardware

Host hardware Yesterday: 32-bit PC Host operating system Windows Simics Sim for Win/x86 PPC 750fx Card Target OS Applications Host hardware Today: 64-bit PC Host operating system Linux Simics Sim for Linux/x86-64 PPC 750fx Card Target OS Applications Host hardware Future: X Hardware Host operating system Y OS Simics Sim for X/Y PPC 750fx Card Target OS Applications

Time

...but the simulated target hardware stays the same ...but the simulated target hardware stays the same The host machines available change over time... The host machines available change over time... Allowing continuous use and evolution of the same software stack Allowing continuous use and evolution of the same software stack

slide-10
SLIDE 10

10

Example: Loading Flash Convenient

Simics Simulator FLASH bin Simics Flash Programmer bin

Much shorter turn-around time for changing target software setup No risk of “bricking” a target

slide-11
SLIDE 11

11

Technology

slide-12
SLIDE 12

12

Software stack Networks Controlled Environment Human user interface

Embedded Computer System

BootROM, drivers, HAL Operating system Middleware, libraries Applications

slide-13
SLIDE 13

13

Software stack Networks Controlled Environment Human user interface

Embedded Computer System

BootROM, drivers, HAL Operating system Middleware, libraries Applications Simulating the board(s) and running their software is the focus of this presentation Simulating the board(s) and running their software is the focus of this presentation

slide-14
SLIDE 14

14

User Interface Simulation

Short overview

slide-15
SLIDE 15

15

User Interface Simulation

A category of tools of its own Part of many other simulation tools Many different levels:

– Virtual screen & mouse – Clickable touch screens – Clickable button panels – Graphics displays – Serial console – Real panels connected to PC

Target software representation:

– Simulated by scripts – Special code for special API – Actual target code in some form of other simulator

slide-16
SLIDE 16

16

Environment Simulation

Short overview

slide-17
SLIDE 17

17

Environment Simulation

Large field for powerful commercial tools

– MatLab/Simulink – LabView/Matrixx – MSC software – .. and many more ...

In-house models common Everybody is using it, CAD has been doing mechanical simulations for 50 years Commonly used for control algorithm development Key part of the model-driven architecture/model-driven design paradigm Interface to board simulation:

– AD, DA converters – Digital inputs & outputs

slide-18
SLIDE 18

18

Network Simulation

In a little more depth

slide-19
SLIDE 19

19

Network Simulation Variants

Connections between abstracted nodes, to study communication patterns

– Contains models of node behavior, no actual code

“Rest of network simulation” to provide the environment for a single node

– Generates “real” traffic – Implements actual protocols – Bidirectional reactive traffic

Dumb traffic generation

– Generate traffic from rules – Unidirectional

Virtual packet-level network links between simulated nodes

– No protocol understanding – Nodes run network stacks

Connect physical and simulated nodes

– Virtual machines visible on physical network

Network types:

– Ethernet, AFDX, CAN, LIN, FlexRay, MOST, PCIe, I2C, LonWorks, ARINC 429, MIL- STD-1553, Serial, RapidIO, VME, SpaceWire, USB, FireWire, ...

slide-20
SLIDE 20

20

Network Simulation Levels

Physical signaling Bit stream Packet transmission Network protocol Application protocol High-level application actions

Analog signals, bit errors, radio modeling Clocked zeros and ones, CAN with contention, Ethernet with CSMA model Ethernet packets with MAC address, CAN packets, serial characters, VME data read/write TCP/IP etc. FTP, DHCP, SS7, CANopen Load software, configure node, restart

Hardware/software boundary Hardware/software boundary

slide-21
SLIDE 21

21

Network Simulation Levels

Physical signaling Bit stream Packet transmission Network protocol Application protocol High-level application actions

Analog signals, bit errors, radio modeling Clocked zeros and ones, CAN with contention, Ethernet with CSMA model Ethernet packets with MAC address, CAN packets, serial characters, VME data read/write TCP/IP etc. FTP, DHCP, SS7, CANopen Load software, configure node, restart

Hardware/software boundary Hardware/software boundary Levels of main interest for embedded software work

  • n simulators

Levels of main interest for embedded software work

  • n simulators
slide-22
SLIDE 22

22

Example: Rest-of-Network

Rest-of-network simulation solution for telecom networks. UMTS, GSM, POTS. All protocols and all nodes types. 400 employees to develop and maintain.

Source: Nethawk Marketing Materials

slide-23
SLIDE 23

23

Simulating a Board

Something you can actually run code on Part I: Technology background

slide-24
SLIDE 24

24

Cardinal Rule of Simulation

Scope of modeled system Quarks Atom Galaxy Galaxies Reasonable to simulate: scope proportional to abstraction Reasonable to simulate: scope proportional to abstraction Universe Planets Units of the simulation

slide-25
SLIDE 25

25

Computer Simulation Use Cases

System-on-Chip Design

– Hardware designer needs – Architecture exploration – Sizing, performance, optimization

  • f hardware

Fidelity to target is primary driver for models

– Bus structure – Bus protocols and arbitration – Timing – Bandwidth – Latency – Cycles

All components are equals Software Development

– Execute large workloads – Debug code – Get the system to work – (Optimize the software)

Speed of execution is the primary driver for model

– Abstract as far as possible – Approximate timing

The system processor or processors key driver

– Clear difference between processors and other devices

Our focus today

slide-26
SLIDE 26

26

Simulation/Virtualization Tech

Desktop/Server Virtualization Para- virtualization Emulation ISS API-Level Simulation Full-system simulation

Scope of exec System System Application Processor Application System CPU A on A Yes Yes Yes Yes Yes Yes CPU B on A No No Yes Yes No Yes Run full OS Yes Yes No No No Yes OS A on A Yes Yes Yes N/A Yes Yes OS B on A Yes Yes No N/A Yes Yes Run unmodified software stack Yes No No No No Yes Custom devices & drivers No No No No No Yes Deterministic No No No Yes No Yes Complexity Medium Low High Medium Low High Example VmWare, LPAR, kvm Xen Rosetta gdb ISS VxSim Simics

For embedded software work, FSS and API-level sim are really the best

  • ptions

For embedded software work, FSS and API-level sim are really the best

  • ptions
slide-27
SLIDE 27

27

Full System vs API-Level

Operating system User program Middleware DB Java VM

Drivers Boot firmware Hardware abstraction layer “Java is java”: simulate using some common middleware/API set “Java is java”: simulate using some common middleware/API set Classic OS API simulation: compile to PC host, use special implementation of OS API Classic OS API simulation: compile to PC host, use special implementation of OS API Low-level API-level simulation: special device drivers and HAL for PC simulation, compile to host including the kernel Low-level API-level simulation: special device drivers and HAL for PC simulation, compile to host including the kernel “Full-system simulation”: simulate the hardware/software interface, unmodified software stack from target compilation “Full-system simulation”: simulate the hardware/software interface, unmodified software stack from target compilation

slide-28
SLIDE 28

28

Nota Bene: Workload Sizes

Workload Size in number of instructions Booting Linux 2.4 on a simple StrongARM machine 50 M Booting a real-time operating system on a PPC440GP 100 M Booting Linux 2.6 on a single-core MPC8548 SoC 1000 M Booting Linux 2.6 on a dual-core MPC8641D SoC 3600 M Running 10 million Dhrystone iterations on an UltraSPARC core 4000 M One second in a 10-processor 1GHz rack system 10000 M

slide-29
SLIDE 29

29

Building a Board Model

slide-30
SLIDE 30

30

Building a Model

Essentially, what you want to do is to replace development hardware with a simulator The road there is building the system model

Backplane CPU RAM Device FLASH Device DSP Device CPU RAM Device FLASH Device Enet Device Enet

Development Hardware Virtual Development Platform System Model

slide-31
SLIDE 31

31

Starting the Modeling Process

Board documentation Board block diagram

– Chips – Connections – Memory map

Chip documentation Chip block diagram

– Devices – Connections – Memory map

slide-32
SLIDE 32

32

Board Documentation

Common names:

– ”Technical Reference” – ”User’s Guide” – ”Programmer’s Manual”

The document a programmer needs to write code for the board Typically contains a block diagram

slide-33
SLIDE 33

33

Board Block Diagram

Good initial overview Shows all the chips and their connections

– Double-check with other documentation, though

Determine what you need to model, and their relative priority

– Usually, you do not actually need all the pieces

Source: Freescale 8572DS Board Manual

slide-34
SLIDE 34

34

Chip Documentation

With modern SoCs, each chip is like a small board in its own right Internal block diagrams

slide-35
SLIDE 35

35

Chip Block Diagram

Components of an SoC

– Processor cores – On-chip interconnects – ”System utilities”

Interrupts Timers DMA controllers

– Accelerators – Bus controllers – IO device

Source: Freescale 8572E Reference Manual

slide-36
SLIDE 36

36

Units of Simulation

Processor Cores Devices

The CPUs running code Special case to gain performance, simulated using ISS, JIT, API, etc. – buy or borrow! Comparatively limited in variants, compared to devices Anything that the system contains that does things and that is not a user-programmable CPU Examples: Timers, interrupt controllers, ADC, DAC, network interfaces, I2C controllers, serial ports, LEDs, displays, media accelerators, pattern matches, table lookup engines, memory controllers, ...

Memories Interconnects

RAM, ROM, FLASH, EEPROM, ... Store code and data Usually special simulation case for performance reasons, closely integrated with processor core simulators Connecting devices, chips, boards, cabinets, systems together I2C, Serial, Ethernet, PCI, PCIe, RapidIO, ATM, CAN, FireWire, USB, MIL-STD-1553, MII, VME, HyperTransport, memory bus, ...

slide-37
SLIDE 37

37

Units of Simulation: In Practice

Processor Cores Devices

The CPUs running code Special case to gain performance, simulated using ISS, JIT, API, etc. – buy or borrow! Comparatively limited in variants, compared to devices Anything that the system contains that does things and that is not a user-programmable CPU Examples: Timers, interrupt controllers, ADC, DAC, network interfaces, I2C controllers, serial ports, LEDs, displays, media accelerators, pattern matches, table lookup engines, memory controllers, ...

Memories Interconnects

RAM, ROM, FLASH, EEPROM, ... Store code and data Usually special simulation case for performance reasons, closely integrated with processor core simulators Connecting devices, chips, boards, cabinets, systems together I2C, Serial, Ethernet, PCI, PCIe, RapidIO, ATM, CAN, FireWire, USB, MIL-STD-1553, MII, VME, HyperTransport, memory bus, ... For most purposes, very generic and reusable. You should not need to model this. Complex: reuse existing simulators and the efforts of experts Most of the modeling work is in this category. Where possible, reuse existing models, but they are usually not complete. Comparatively few and standardized, often possible to reuse existing simulators.

slide-38
SLIDE 38

38

Memory Map

In simulation for the benefit of software, we work from the processor outwards The most important information initially is the basic memory map of the system

– This is what the software and drivers see

Static or flexible

– Depends on chips in use, interconnects, etc. – Simplest case, all things are in fixed and documented positions

slide-39
SLIDE 39

39

Simple Memory Map

Microcontrollers tend to have fixed memory maps Some flexibility:

– External memory amounts – Related product variants with different amounts of memory – Related product variants with slightly different peripheral devices

Source: Texas Instruments MSP430x1xxx Family User’s Guide

Note on terminology: “device” in this presentation is a single functional peripheral device, typically part of a microcontroller or SoC. “Device” is also used as the term for variants of microcontrollers.

slide-40
SLIDE 40

40

Complex Memory Map

High-end devices can be very complex

– Different memory size & types – Configurable mappings – Negotiated mappings for PCI – Open to custom boards, multiprocessor combos, etc.

Note that for any particular board + OS combination, it is mostly fixed

– Model does not need to be as flexible as the real world

Source: Freescale 8572E Reference Manual

slide-41
SLIDE 41

41

Virtual MPC8572E Board Virtual MPC8572E Board MPC8572E

Example Decomposition

DDR SDRAM Core0 EBC eTSEC PCIe DUART OS Apps BSP I2C PHY PHY PHY ECM PHY PHY eTSEC eTSEC eTSEC RapidIO FEC SEC DDR MC L2$ / SRAM Core1 OS Apps BSP TLU Deflate PME PIC DMA DDR MC Flash Device Memory Processor Ethernet link Serial link Interconnect RapidIO link PCIe link I2C link

slide-42
SLIDE 42

42 Simulation

Simulated machine

Connecting to the Environment

Environment Simulation

Simulated machine

RTOS Application

CPU RAM Net Timer Digital ROM A/D D/A

RTOS Application

CPU RAM Net Timer Digital ROM A/D D/A network The computer systems connect to the environment using devices that expose a programming interface to the processors and connect to the environment simulation at the other end.

slide-43
SLIDE 43

43

Device Modeling Methodology

How to create a device model

slide-44
SLIDE 44

44

Follow the Hardware

Structure your simulation like the hardware

– With appropriate abstraction where possible

Most blocks in block diagrams should have a representative in the simulation

– Model devices, connections, memories, processors

slide-45
SLIDE 45

45

Follow the Software

Only model the devices used by the software

– Rare to find all devices on a complex chip used – Assumes some idea of the software stack being used

If nothing else, follow a deployment roadmap

Only model the modes used by the software

– Polled vs interrupt-driven serial ports – Transparent vs non-transparent PCIe modes

Put in warnings for anything not implemented!

– You can always come back later and add functions

slide-46
SLIDE 46

46

Follow the Boot Order

Especially important for complex systems

– Multiple boards, network boots, multiprocessors, ...

Implement system component models in the

  • rder the system boot uses them

– Start with the core board/processor/devices – Get the initial boot code to run – Build outwards as the boot progresses

slide-47
SLIDE 47

47

Reuse and Adapt Existing Models

The best way to get a model is to use something that already exists

– Check the device library of your modeling system! – Vendors often reuse components across SoCs

Exact same device (or chip) Similar device (or chip)

– Other generation of same family – Superset/subset of devices in an SoC

slide-48
SLIDE 48

48

Skip Unnecessary Details

Details cost development time and execution speed Implement the what and not the how

– Remember our use case: simulation for software dev, not for hardware design and validation – Improves model reusability

Do work in largest possible units

– Send entire Ethernet packets – Move a DMA block in a single step – Also called ”transaction-level modeling”

Simplify system timing

– Bus contention, bandwidth limits, caches, cache coherency, and

  • ther functionally invisible effects can (usually) be ignored
slide-49
SLIDE 49

49

Abstraction and Optimization

Getting fast, really fast

slide-50
SLIDE 50

50

Full-System Simulation

Detail level determines speed

– The more detail, the slower the simulation

Abstraction: timing precision, implementation details Functionality must always be correct!

Simulation detail level Typical slowdown Approximate speed in MIPS Time to simulate one real-world minute Gate-level simulation 1000000 0.002 2 years Computer architecture 10000 0.2 7 days Cycle-approximate simulation 500 4 8 hours Fast full-system simulation 5 400 5 minutes

slide-51
SLIDE 51

51

Skip Unnecessary Details

”Know when to bluff”

– You are in a poker game against the software ☺

It is an art to implement just enough to fool the software, but not more

slide-52
SLIDE 52

52

Endianness – Has to be Modeled

Correct endianness Incorrect endianness

slide-53
SLIDE 53

53

System being simulated

Temporal Decoupling

Context-switch overhead is a killer! Do not call all components each cycle/step

– (which is the correct solution for HW design)

– Give each an uninterrupted time slice

Normally imperceptible by software

Step-by-step synchronized simulation Temporally decoupled simulation Time saved from not switching contexts as often Simulation execution time for four steps

slide-54
SLIDE 54

54

Temporal Decoupling

Experimental data

– 4 virtual PPC440 boards – Booting Linux – Aggregate MIPS – Execution quanta of 1, 10, 100, ... 1M cycles

Notable points:

– 10x performance increase from 10 to 1000 quantum – +30% from 1000 to 1M quantum

Quantum of 1000-10000 considered normal

Simulation speed vs Time quantum length

20 40 60 80 100 120 140 160 1 10 100 1000 10000 100000 1000000

slide-55
SLIDE 55

55

Memory Map: Full Bus Hierarchy

DDR SDRAM Core0 UART Coherency module DDR MC L1 cache Core1 DDR MC Core2 L1 cache L1 cache Shared L2 cache DDR SDRAM Fast interconnect for high-bandwidth devices Bridge Slower interconnect for

  • ther devices

Flash MC Flash memory Timer I2C Ethernet Accelerator RapidIO

slide-56
SLIDE 56

56

Memory Map: Streamlined

DDR SDRAM UART Coherency module DDR MC L1 cache DDR MC L1 cache L1 cache Shared L2 cache DDR SDRAM Fast interconnect for high-bandwidth devices Bridge Slower interconnect for

  • ther devices

Flash MC Flash memory Timer I2C Ethernet Accelerator RapidIO Coherency module L1 cache L1 cache L1 cache Shared L2 cache Coherency module L1 cache L1 cache L1 cache Fast interconnect for high-bandwidth devices Shared L2 cache Coherency module L1 cache L1 cache L1 cache Bridge Fast interconnect for high-bandwidth devices Shared L2 cache Coherency module L1 cache L1 cache L1 cache Slower interconnect for

  • ther devices

Bridge Fast interconnect for high-bandwidth devices Shared L2 cache Coherency module L1 cache L1 cache L1 cache

Memory map

Core0 Core1 Core2

This is an extreme case of transaction-

  • riented modeling of

memory buses.

slide-57
SLIDE 57

57

Bus Hierarchy or Streamlined?

Depends on the application and use case

– For large-scale software development, use streamlined (provides speed and simplicity) – For tight hardware/software performance analysis and hardware validation, full bus hierarchy

Mostly the domain of SoC designers, not embedded SW

Simulation runs faster with streamlined model

– Fewer active parts – Fewer intermediaries in each memory operation

slide-58
SLIDE 58

58

Dummy Devices

Many devices lack interesting behavior

– From the perspective of the software for a particular system

Only affect low-level system timing Not used by current software setup No interesting effects from using them

– Replace with dummies that do nothing

But do not give “access out of memory” errors

Examples: memory timing setup, performance counters, error detection registers, ...

– Note that you can add them later if effects are needed

slide-59
SLIDE 59

59

Stubs

Not all parts of a system need to be modeled Replace by stubs

– Find an appropriate (narrow) interface to cut at – Replace complete model with its behavior

slide-60
SLIDE 60

60

Stubs Example

Control card Control card Main processor SoC Line card Line card Interface processor

Rack back-plane

DSP DSP DSP DSP DSP DSP Control card Control card Main processor SoC Line card Line card Interface processor

Rack back-plane

DSP DSP DSP DSP DSP DSP

For simulation of rack management, stub out the DSPs on the line cards For simulation of rack management, stub out the DSPs on the line cards For testing control-plane algorithms, stub out the entire line card For testing control-plane algorithms, stub out the entire line card

slide-61
SLIDE 61

61

Methodology Flowchart

slide-62
SLIDE 62

62

Methodology

Collect documents Map out system Existing devices Similar devices New devices Reuse Adapt Create basic register map Test with target software Implement missing features in devices and add missing devices Dummy devices Create dummy Setup machine model Fully functioning machine model

slide-63
SLIDE 63

63

Getting to Code

How does this look, actually?

slide-64
SLIDE 64

64

Framework Rules

You need to learn your framework

– What is the API for devices? – How do you setup the memory map of a system? – How can you add a new device to a system?

slide-65
SLIDE 65

65

Memory Map Setup

In device code

– The device knows its own set of addresses – Looks at all accesses to determine which to handle

Makes devices hard to move between systems Outside device

– Some memory map mechanism – Declare start & length – Give device (preferably) a zero-based address

Best for reuse and multiple instances of device models

slide-66
SLIDE 66

66

Memory Map Outside

Processor Memory map Device 0x100000 0x000000 0xFFFFFF

(0x1000EE) (0xEE)

0x00 0x1000FF 0xFF Processor Memory map 0xC0FF00 0x000000 0xFFFFFF

(0xC0FFEE)

0xC0FFFF Device

(0xEE)

0x00 0xFF Different address from the processor, but the same offset into the device from the memory map.

slide-67
SLIDE 67

67

Handling a Memory Access

  • C/C++/SystemC: “the big switch”

if(op is read) { switch(addr) { case 0x00: // Read at 0x00: do sth break; case 0x04: ... default: error “unknown offset” break; } } else { // op is write switch(addr) { case 0x00: // Write at 0x00: do sth ...

  • Domain-specific tools:

bank { register A size 4 @ 0x00 { write(value) { // do write } read ()->(value) { // do read } } register B size 4 @ 0x04 { ... } }

  • Or graphical views
  • Or table views
slide-68
SLIDE 68

68

Solution Examples

slide-69
SLIDE 69

69

CC SimTech

For vehicle systems

– Control & User Interface – Handful of compute nodes

API-level simulation

– Special middleware API hides details of RTOS – Compiles all program code for the host – No target timing

Connects to physical CAN and real-world control panels

Pictures: CC-Systems, www.cc-systems.se

slide-70
SLIDE 70

70

Google Android Emulator

Full-system simulator

– Qemu-based, ARM9 ISS – Single-processor – Touch screen & keyboard

Not a model of a real board, rather an idealized mobile phone

– Simpler device programming interfaces – Faked mobile connection

Special BSP for emulator

slide-71
SLIDE 71

71

Virtutech Simics Telecom Rack

Full-system simulator

– PowerPC & TI DSPs – 2-70 boards – 20-500 processors – Rack backplane – Multiple board types

Some boards stubbed Some boards simplified with partial stubs User interface

– Serial consoles – Ethernet to physical world

O&M, traffic, SCTP, ...

slide-72
SLIDE 72

72

Where Next?

slide-73
SLIDE 73

73

How can you start simulating?

  • Use C/C++ and build system simulations from scratch
  • You might already have something to start with

– API-level simulator for your RTOS – ISS built into most embedded tool chains

  • Commercial mechanical, network, user interface

simulation tools

– Plenty on the ESC show floor

  • Heavy-duty commercial computer simulation tools

– Virtutech, VaST, Synopsys, CoWare, ARM, ...

  • Open-source system simulators

– Qemu, Bochs, SystemC TLM2, ...

slide-74
SLIDE 74

74

A New Category of Tools?

slide-75
SLIDE 75

75

Innovating on Tools IS Allowed

Source: http://xkcd.com/378/

slide-76
SLIDE 76

76

This is nothing new, really

Ad in Embedded Systems Programming, Issue 1, Volume 1, January 1988 The reason to simulate has stayed the same The power and scope of simulation and target systems has increased tremendously!

– Single 1MHz 8-bit... – ...to 100 1GHz 32-bit – In 20 years

Scan: Jack Ganssle, www.ganssle.com

slide-77
SLIDE 77

77

This seriously is nothing new

Their solution basically used a system simulator to run target instructions one at a time under debugger control. Took some 32 target instructions to implement!

slide-78
SLIDE 78

78

Misconceptions

slide-79
SLIDE 79

79

Questions?

slide-80
SLIDE 80

80

Thank You!

Please remember to fill in the course evaluation forms completely!

slide-81
SLIDE 81

81

Spares

slide-82
SLIDE 82

82

Transaction-Level Modeling (TLM)

Concept from chip design/EDA field Gain efficiency by abstracting from bus details

– Necessary for anything resembling fast simulation

Target Initiator Interconnect

Pins, bits, clock cycles Pins, bits, clock cycles Traditional low-level hardware modeling

Target Initiator Interconnect

Single function call Transaction-oriented modeling