virtual prototyping - institute of computer …what is virtual prototyping? a virtual prototype is...

24
Virtual Prototyping Alexander Fasching Vienna University of Technology Matr. Nr.: 1225900 Email: [email protected] HW/SW Codesign WS 2016/17 1

Upload: others

Post on 24-Mar-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Virtual Prototyping

Alexander Fasching

Vienna University of TechnologyMatr. Nr.: 1225900

Email: [email protected]

HW/SW Codesign WS 2016/17

1

Page 2: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Overview

What is Virtual Prototyping?

Why are they used?

Advantages compared to physical prototypes

Abstraction levels

Determinism and system state

Tools, limits and requirements

2

Page 3: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

What is virtual prototyping?

A virtual prototype is an executable software model of ahardware system that runs on a host computer.

Possible constraints on the definition:

Binary compatible to physical hardware (instruction set,memory map, registers)

Runs the full software stack, from boot-code to operatingsystem and application

Provides the same debugging utilities as the physical hardware(debugger, profiler, . . . )

Ideally, testcases for functional verification can be executed onthe virtual and the physical prototype.

3

Page 4: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Why the effort?

Usual development cycle:

12-15 months hardware development

9-12 months software development

6-9 months system integration, verification and validation

Grand total of 36 months

4

Page 5: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Why the effort?

Usual development cycle:

12-15 months hardware development

9-12 months software development

6-9 months system integration, verification and validation

Grand total of 36 months

Desired product window usually 24 months or less

4

Page 6: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

The solution

Develop HW and SWin parallel

Verified softwarereduces integrationtime

5

Page 7: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Advantages to physical prototypes

Shifts the start of software development ”left”: Developmentcan start well before a physical prototype is available, evenbefore RTL design is finished.

Deterministic (e.g. simulate user input)

Additional debugging and monitoring capabilities (faultinjection, tracing, profiling)

Verified firmware available before physical prototype reduceshardware bringup time

Test special conditions without damaging hardware(short/open connections, memory corruption)

6

Page 8: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Abstraction

Tradeoff between accurracy and simulation speed

Consistency between VP and hardware

Using formal specification as golden reference

Proving equivalency of specification, VP and hardware

7

Page 9: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

RTL Simulation

Cycle-accurate

Bit-exact

Speed: 1/100000 realtime

Interactive debugging possible, but very slow and not widelysupported

8

Page 10: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

TLM - Instruction set of target

Firmware executed through instruction-set-simulator (ISS)

Bit-exact

Cycle-approximate

Speed: 1/100 realtime

9

Page 11: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Source-level/host-compiled simulation

Firmware and processor modelexecuted as native binary onhost

Timing approximation throughstatic analysis of source codeand binary

Original source code annotatedwith delays

Speed: ≈ realtime

10

Page 12: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Source-level simulation stack

11

Page 13: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

(Non)Determinism and system state

Clock A and Basynchronous

Timing betweencommands on Debug Aand B unknown

12

Page 14: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

(Non)Determinism and system state

Subsystem B can’t bestopped (might beanalog)

Timeouts might occur

13

Page 15: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

(Non)Determinism and system state

Full control over clocks

Synchronous debugcommands to allsubsystems

Global time

Global event ordering

14

Page 16: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Generic test-environment

Same testsuite for physicaland virtual prototype

Abstraction layer fordebugging tools andtestsuite

Interface to signalgenerators, digital I/O andmeasurement equipment,both physical and virtual

15

Page 17: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Drawbacks and limits

Changes in development flow

Additional costs

ToolsDevelopersComputational resources

Incompatible interfaces between different tools

High effort to integrate models of different vendors

16

Page 18: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

Available tools

Free

SystemCQemu (allows the creation of virtual devices)Android SDK

Commercial

Matlab/Simulink for high level modelsSynopsys: Virtualizer (ARM, Automotive and ARC HS38)Mentor: Vista Virtual Prototyping (ARM)Cadence: Virtual System Platform

17

Page 19: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

R. Avinun.Concurrent Hardware/Software Development Platforms SpeedSystem Integration and Bring-Up.https://www.cadence.com/content/dam/cadence-www/

global/en_US/documents/Archive/system_dev_wp.pdf,2011.

O. Bringmann, W. Ecker, A. Gerstlauer, A. Goyal,D. Mueller-Gritschneder, P. Sasidharan, and S. Singh.The next generation of virtual prototyping: ultra-fast yetaccurate simulation of HW/SW systems.In W. Nebel and D. Atienza, editors, DATE, pages 1698–1707.ACM, 2015.

18

Page 20: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

T. De Schutter.Better Software. Faster!Synopsys, 2014.

W. Ecker, S. Heinen, and M. Velten.Using a dataflow abstracted virtual prototype for HdS-design.In K. Wakabayashi, editor, ASP-DAC, pages 293–300. IEEE,2009.

A. Garg.Fast Virtual Prototyping for early software design andverification.http://www.design-reuse.com/articles/15326/

fast-virtual-prototyping-for-early-software-design-and-verification.

html, 2009.

19

Page 23: Virtual Prototyping - Institute of Computer …What is virtual prototyping? A virtual prototype is an executable software model of a hardware system that runs on a host computer. Possible

E. Lumpkin and C. Alford.How to make virtual prototyping better than designing withhardware: Part 2.http://www.embedded.com/design/

real-time-and-performance/4200574/

How-to-make-virtual-prototyping-better-than-designing-with-hardware-Part-2,2010.

S. Matalon.Vista Virtual Prototyping.http://s3.mentor.com/public_documents/whitepaper/

resources/mentorpaper_77272.pdf, 2015.

22