Title: GreenBus Extensions for System-On-Chip Exploration
1GreenBus Extensionsfor System-On-Chip Exploration
2Outline
- DUST analysis framework
- Design analysis services
- JAVA viewer
- SQL database support
- GreenBench
- GreenSocs Configuration framework
- Video processor example
- Cell phone example
3Outline
- DUST analysis framework
- Design analysis services
- JAVA viewer
- SQL database support
- GreenBench
- GreenSocs Configuration framework
- Video processor example
- Cell phone example
4DUST Overview
SystemCsimulation
Visualization, Monitoring, Debugging
Analysis backend,SQL database
5DUST Overview
SimulationControl
GreenBus
MonitorServices
Service Manager
InjectionServices
Design-Under-Test
StructureExtraction
SystemC Kernel
SystemC Java
Network Socket
Views
SQL Database
Structure View
Database
Transaction Analyzer
DesignStructure
Transaction Introspection
Transactions
Bus Analyzer
6DUST Overview
SimulationControl
GreenBus
MonitorServices
Service Manager
InjectionServices
DUST Backend
Design-Under-Test
StructureExtraction
SystemC Kernel
SystemC Java
Network Socket
Views
DUST Frontend
SQL Database
Structure View
Database
Transaction Analyzer
DesignStructure
Transaction Introspection
Transactions
Bus Analyzer
7DUST 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
8Service Manager
DUST Backend
DataBase
Server
9XML Communication
ltdust_controlgt ltservice_requestgtPortControlServi
celt/service_requestgt ltinitial_services_to_startgt
1lt/initial_services_to_startgt lt/dust_controlgt
10DUST Frontend
- JAVA-based integrated analysis environment
11DUST Frontend
- Design structure visualization
12DUST Frontend
- Design structure visualization
13DUST Frontend
- Design structure visualization
14DUST Frontend
- Design structure visualization
15DUST Frontend
16DUST Frontend
17DUST Frontend
18DUST Frontend
19Structure 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(th
is) SC_METHOD( MasterAccessMonitor )
sensitive ltlt target_port.default_event()
.. ..
DUST_BUS("GenericRouter")
19
20Structure 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)
21Transaction Monitoring
- gs_dust_port replaces sc_port
- Interface method calls on port (operator -gt) are
recorded with SCV - Generates XML element for each transaction phase
(atom) - XML stream is sent to JAVA frontend via network
connection
GreenBus TransactionContainer
22Port 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(stdstring xml) 0 virtual
dust_injection_if()
23Port Control Service
- Port control message example
ltxml_injection xmlns\"http//www.eis.cs.tu-bs.de/
DUST/TR\"gt ltchosen_injection_pointgtid0xbfff95e8lt
/chosen_injection_pointgt ltdelaygt
ltpercent_packetsgt25lt/percent_packetsgt
ltconsecutivegttruelt/consecutivegt
ltspecific_delaygt ltvaluegt0.003lt/valuegt
lt/specific_delaygt ltperiod_of_timegt
ltstart_timegt0.5lt/start_timegt
ltend_timegt0.75lt/end_timegt lt/period_of_timegt
lt/delaygt lt/xml_injectiongt
24Port Control Service
25Port Control Service
26Port Control Service
27Port Control Service
28Database 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
SQL Database
Database
DesignStructure
Transactions
29Database Connectivity
- SQL database is automatically created from DUST
XML schema
30DUST
- 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
31 32Outline
- DUST analysis framework
- Design analysis services
- JAVA viewer
- SQL database support
- GreenBench
- GreenSocs Configuration framework
- Video processor example
- Cell phone example
33GreenSocs Configuration Framework
- GS_PARAM wrapper makes module parameters
configurable
34GreenSocs Configuration Framework
- Configure parameters from within your model
35GreenSocs Configuration Framework
- or by using a configuration file
36GreenSocs Configuration Framework
- Also create communication architecture by config
file
37GreenSocs Configuration Framework
- Also create communication architecture by config
file
38GreenSocs 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
39GreenBench
- 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!
40EmViD Embedded Video Detection
- Example EmViD system (face detection)
41EmViD Embedded Video Detection
- EmViD models are comprised of Video Processors
(VIPs)
Channel
Component
(SC_MODULE)
Video
Processing
Video data
Video data
Input port
Output port
(sc_port)
(sc_port)
Process
(SC_THREAD)
42EmViD Embedded Video Detection
- Configuration framework is used to create
different EmViD models
43EmViD Embedded Video Detection
- Configuration framework is used to create
different EmViD models
Color-
Erosion,
Labeling
BRAM
BRAM
Matching
Dilation
GreenBus (PLB)
Video-
Video-
DDR-RAM
Input
Output
44EmViD 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
45Thank You
Wolfgang Klingauf Integrated Circuit Design Lab
(E.I.S.) Technical University of
Braunschweig ? w.klingauf_at_tu-bs.de ? 49 (531)
391 3105