greenbus extensions for system-on-chip exploration
TRANSCRIPT
GreenBus Extensionsfor 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
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
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 4
DUST Overview
Analysis backend,SQL database
SystemCsimulation
Visualization, Monitoring, Debugging
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
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
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
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 8
Service Manager
DataBaseDUST Backend Server
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>
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 10
DUST Frontend JAVA-based integrated analysis environment
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 11
DUST Frontend Design structure visualization
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 12
DUST Frontend Design structure visualization
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 13
DUST Frontend Design structure visualization
„
ƒ
‚
…
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 14
DUST Frontend Design structure visualization
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 15
DUST Frontend Transaction Monitoring
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 16
DUST Frontend Transaction Monitoring
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 17
DUST Frontend Transaction Monitoring
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 18
DUST Frontend Transaction Monitoring
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");
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)
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
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() {}
};
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>
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 24
Port Control Service
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 25
Port Control Service
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 26
Port Control Service
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 27
Port Control Service
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
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
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 31
GreenBench
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
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 33
GreenSocs Configuration Framework
GS_PARAM wrapper makes module parameters configurable
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 34
GreenSocs Configuration Framework
Configure parameters from within your model…
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 35
GreenSocs Configuration Framework
…or by using a configuration file
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 36
GreenSocs Configuration Framework
Also create communication architecture by config file
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 37
GreenSocs Configuration Framework
Also create communication architecture by config file
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
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!
GreenBus Extensions for SoC Exploration Wolfgang Klingauf, TU Braunschweig, E.I.S. 40
EmViD – Embedded Video Detection
Example EmViD system (face detection)
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
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
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
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
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
+49 (531) 391 3105