greenbus extensions for system-on-chip exploration

44
GreenBus Extensions for System-On-Chip Exploration

Upload: nigel-marsh

Post on 05-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensionsfor System-On-Chip Exploration

Page 2: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 2

Outline

DUST analysis framework Design analysis services

JAVA viewer

SQL database support

GreenBench GreenSocs Configuration framework

Video processor example

Cell phone example

Page 3: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 3

Outline

DUST analysis framework Design analysis services

JAVA viewer

SQL database support

GreenBench GreenSocs Configuration framework

Video processor example

Cell phone example

Page 4: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 4

DUST Overview

Analysis backend,SQL database

SystemCsimulation

Visualization, Monitoring, Debugging

Page 5: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 5

DUST Overview

SystemC

Java

MonitorServicesMonitorServices

DesignStructureDesign

Structure

TransactionsTransactions

SystemC Kernel

GreenBus

Design-Under-Test

StructureExtractionStructureExtraction

Service M

anagerS

ervice Manager

Network Socket

SQLDatabase

SQLDatabase

SimulationControl

SimulationControl

Structure View Structure View

Bus Analyzer Bus Analyzer

Transaction Analyzer Transaction Analyzer

Transaction Introspection Transaction Introspection

Views

Database

InjectionServicesInjectionServices

Page 6: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 6

DUST Overview

SystemC

Java

MonitorServicesMonitorServices

DesignStructureDesign

Structure

TransactionsTransactions

SystemC Kernel

GreenBus

Design-Under-Test

StructureExtractionStructureExtraction

Service M

anagerS

ervice Manager

Network Socket

SQLDatabase

SQLDatabase

SimulationControl

SimulationControl

Structure View Structure View

Bus Analyzer Bus Analyzer

Transaction Analyzer Transaction Analyzer

Transaction Introspection Transaction Introspection

Views

Database

InjectionServicesInjectionServices

DUST Backend

DUST Frontend

Page 7: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 7

DUST Backend

Service Manager TCP/IP server, runs concurrently to SC kernel (POSIX thread)

XML streaming (data and control)

Plug-in interface for services

Services Design Structure Service

Module hierarchy, Processes, Ports, Interfaces, Channels

"GreenBus-aware"

Transaction Monitor Service Record transactions during running simulation

Configurable introspection depth

Port Control Service Configure transaction recording for each port individually

Call control methods in a port: Fault injection

Pause / resume simulation

Page 8: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 8

Service Manager

DataBaseDUST Backend Server

Page 9: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 9

XML Communication

Handshake protocol

<dust_control> <service_request>PortControlService</service_request> <initial_services_to_start>1</initial_services_to_start></dust_control>

Page 10: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 10

DUST Frontend JAVA-based integrated analysis environment

Page 11: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 11

DUST Frontend Design structure visualization

Page 12: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 12

DUST Frontend Design structure visualization

Page 13: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 13

DUST Frontend Design structure visualization

ƒ

Page 14: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 14

DUST Frontend Design structure visualization

Page 15: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 15

DUST Frontend Transaction Monitoring

Page 16: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 16

DUST Frontend Transaction Monitoring

Page 17: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 17

DUST Frontend Transaction Monitoring

Page 18: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 18

DUST Frontend Transaction Monitoring

Page 19: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 19

Structure reflection

DUST macros add context-sensitive information to SystemC objects

class GenericRouter : public sc_module, public GenericRouter_if, ..{ GenericRouter(sc_module_name name_) : sc_module(name_), target_port("tport"), init_port("iport"), protocol_port("protocol_port") { GS_TRACE(name(), "I am a generic router.");

target_port.bind_b_if(*this); SC_METHOD( MasterAccessMonitor ); sensitive << target_port.default_event(); .. } ..}

19

DUST_BUS("GenericRouter");

Page 20: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 20

Structure reflection

DUST macros used in GreenBus

DUST_MASTER_PORT(name, protocol) DUST_SLAVE_PORT(name, protocol) DUST_PORT(name, protocol) DUST_BUS(name) DUST_MASTER_MODULE(name, protocol) DUST_SLAVE_MODULE(name, protocol) DUST_PROTOCOL(name) DUST_SCHEDULER(name) DUST_BRIDGE(name)

Page 21: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 21

Transaction Monitoring

gs_dust_port replaces sc_port

Interface method calls on port (operator ->) are recorded with SCV

Generates XML element for each transaction phase (atom)

XML stream is sent to JAVA frontend via network connection

GreenBus TransactionContainer

Page 22: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 22

Port Control Service

Send control commands to ports

Configure transaction recording

Inject communication faults drop / delay / duplicate / modify packets

Implement custom port control functions

class dust_injection_if

{

public:

virtual bool inject(std::string &xml) =0;

virtual ~dust_injection_if() {}

};

Page 23: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 23

Port Control Service

Port control message example

<xml_injection xmlns=\"http://www.eis.cs.tu-bs.de/DUST/TR\">

<chosen_injection_point>id0xbfff95e8</chosen_injection_point>

<delay>

<percent_packets>25</percent_packets>

<consecutive>true</consecutive>

<specific_delay>

<value>0.003</value>

</specific_delay>

<period_of_time>

<start_time>0.5</start_time>

<end_time>0.75</end_time>

</period_of_time>

</delay>

</xml_injection>

Page 24: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 24

Port Control Service

Page 25: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 25

Port Control Service

Page 26: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 26

Port Control Service

Page 27: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 27

Port Control Service

Page 28: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 28

Database Connectivity

Database client connects to DUST backend

Stores simulation data in SQL database MySQL / PostgreSQL

JAVA API enables easy database access Get transactions for a given time interval

Inspect transaction payload

"Live" forwarding of transaction data during running simulation

Compare results of different simulations

DesignStructureDesign

Structure

TransactionsTransactions

SQLDatabase

SQLDatabase

Database

Page 29: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 30

DUST

Summary Non-intrusive analysis and debugging of SystemC designs

Easy to use (#include "utils/dust.h")

Full GreenBus support

Growing number of visualization frontends

Extensible architecture (add your own debug services, views, …)

Download & contribute: www.greensocs.com/Dust

Ongoing work SystemC Debugger:

pause / resume simulation, run for n delta cycles, etc.

Bus protocol analyzer

Page 30: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 31

GreenBench

Page 31: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 32

Outline

DUST analysis framework Design analysis services

JAVA viewer

SQL database support

GreenBench GreenSocs Configuration framework

Video processor example

Cell phone example

Page 32: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 33

GreenSocs Configuration Framework

GS_PARAM wrapper makes module parameters configurable

Page 33: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 34

GreenSocs Configuration Framework

Configure parameters from within your model…

Page 34: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 35

GreenSocs Configuration Framework

…or by using a configuration file

Page 35: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 36

GreenSocs Configuration Framework

Also create communication architecture by config file

Page 36: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 37

GreenSocs Configuration Framework

Also create communication architecture by config file

Page 37: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 38

GreenSocs Configuration Framework

Summary Easily add configurable parameters to your model

Use configuration files

Explore different communication architectureswithout re-compiling your sources

Ongoing work System-wide address range management

Global memory configuration and introspection

Configure parameters with DUST debugger

Page 38: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 39

GreenBench

GreenBench Build benchmark suits for SystemC and GreenBus

Test new SystemC extensions (e.g., DUST)

Identify missing SystemC features (e.g., synthesis)

Re-use GreenBench components in your own models

Two models are donated by TU Braunschweig, E.I.S. Video Processor (EmViD)

Cellphone Example

Visit www.greensocs.com/GreenBench, download our models, and upload your own models!

Page 39: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 40

EmViD – Embedded Video Detection

Example EmViD system (face detection)

Page 40: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 41

EmViD – Embedded Video Detection

EmViD models are comprised of Video Processors (VIPs)

VideoProcessing

Output port(sc_port)

Channel

Input port(sc_port)

Process(SC_THREAD)

Component(SC_MODULE)

Video data Video data

Page 41: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 42

EmViD – Embedded Video Detection

Configuration framework is used to create different EmViD models

Color-Matching

Erosion,Dilation Labeling

GreenBus (PLB)

Video-Input DDR-RAM

Video-Output

Page 42: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 43

EmViD – Embedded Video Detection

Configuration framework is used to create different EmViD models

Color-Matching

Erosion,Dilation Labeling

GreenBus (PLB)

Video-Input DDR-RAM

Video-Output

BRAM BRAM

Page 43: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 44

EmViD – Embedded Video Detection

Components use different TLM APIs SHIP, TAC, OCP

Create mixed-mode designs PV BA CC

Numerous config files available

Test communication architecture exploration with GreenBus

Create new video processors

Add your own video processing cores

Page 44: GreenBus Extensions for System-On-Chip Exploration

GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 45

Thank You

Wolfgang Klingauf

Integrated Circuit Design Lab (E.I.S.)

Technical University of Braunschweig

[email protected]

+49 (531) 391 3105