teaching the principles of system design, platform development and hardware acceleration tim kranich...

13
Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Upload: clyde-logan

Post on 19-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Teaching The Principles Of System Design, Platform Development and Hardware Acceleration

Tim Kranich11.05.2010

Page 2: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Outline

• Good reasons for platform design

• Our teaching concept

• Laboratory structure “Platform Design”

• Conclusion

2

Page 3: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Advantages of Virtual Platform Design

• A Virtual Platform is an abstract hardware model that is simulated by software

Availability

Software development can start before hardware prototypes are

available.

Productivity

VPs can easily be duplicatedand packaged allowing multiple developers to work in parallel.

AccessibilityUnlike physical hardware VPs provide observability and controllability for the entiresystem.

ConsistencyVPs can be

co-simulated/emulated. Gradual refinement from high abstraction

to RTL eases verification.

3

Page 4: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Teaching Concept

• Partitioning the knowledge transfer into three different teaching forms

General ideas and concepts of system and platform design

Basic programming skills in SystemC and TLM

Virtual platform design with industrial tools based on SystemC

4

Page 5: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Lecture In Detail

• Teaching general concepts of system and platform design• System on Chip (SoC)• Multi Processors SoC (MPSoC)• Application Specific Instruction Set Processors (ASIP)• Reconfigurable ASIP (RASIP)• Bus Communication• Network on Chip (NoC)• Low Power System Design• System Test, Verification and Debugging

• Providing up-to-date literature and praxis oriented examples

5

Page 6: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Tutorials in Detail

• SystemC Crash-Course• 3 hour presentation• Concepts and techniques• Basic language elements

• Computer-based programming tasks• HDL equivalent designs (counter, adder, …)• Testbench and stimuli generator• TLM modeling (SystemC channels like FIFO and simple BUS)

6

Page 7: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Laboratory in Detail

• Electronic-system-level (ESL) design with an industrial tool called Platform Architect from Synopsys

• Pool of basic platform elements allows rapid design exploration

• Point of origin: Simplified JPEG compression written in generic C code

• Target platform: ARM processor with hardware accelerator for DCT calculation

7

Page 8: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Platform Architect from Synopsys

• For architectural analysis, Platform Architect provides views to: • Analyze cycle-accurate performance • Study throughput and bottlenecks • Look at bus switching and cache usage

• For the case of functional analysis, Platform Architect provides views to: • Look at system response and task scheduling • Analyze processor loading• Profile software

Cross-correlate different views to extract powerful information

8

Page 9: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Laboratory: Tool Handling

• First design• Assemble a sample system (timer + reset

generator + testbench)• Instantiate an OCP bus

• SystemC Explorer• Build-in hardware debugging tool

• SystemC Shell• Command line tool for platform simulation

• Component Wizard• Introduction to the component library approach• Creation of custom-designed components

• Duration: 4 Sessions9

Page 10: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Laboratory: Platform Design

• Designing a platform based on ARM9 core• Understanding the design constraints• Composing the initial acceleration platform

• Duration: 1 Session

10

Page 11: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Laboratory: Software Mapping

• Core Programming• Writing test application for virtual ARM core• In-system debugging with GDB

• Algorithm Adoption• Introduction to JPEG compression• Source code modification

• Duration: 3 Sessions

11

Page 12: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Laboratory: JPEG Acceleration

• Modification of Hardware and Software• Encapsulating the DCT• Extending virtual platform by a hardware accelerator• Implement software call routines

• Hardware Refinement• Integration of a given HDL component for DCT

calculation into the virtual platform

• Duration: 5 Sessions

12

Page 13: Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich 11.05.2010

Conclusion

• Providing wide, state of the art knowledge for system design during lecture sessions

• Tutorials are chosen to teach fundamental modeling skills with SystemC

• The laboratory combines various aspect taught during lectures with an industrial leading tool framework (Platform Architect form Synopsys) for ESV

• Challenging programming professional development environment motivates students

• Taught knowledge about systems and platforms meets industrial needs

13