Modular SystemC

Transcrição

Modular SystemC
Version: m7_CE
Modular SystemC
Inhouse Trainingsoptionen
TM
Bei Modular SystemC handelt es sich um eine Reihe von Modulen zu SystemC, die auf die
Anforderungen teambasierter Schulungen für Entwickler unterschiedlicher technischer Bereiche (d. h.
Hardware- und Softwareentwickler sowie Systemarchitekten) zugeschnitten sind. Der Kurs umfasst
zwei Grundlagenmodule und drei SystemC-Module, die je nach Bedarf der einzelnen Teams
kombiniert werden können.
Doulos engagiert sich seit 2000 im Bereich SystemC-basierte Methoden und nimmt damit eine
weltweit führende Rolle im toolübergreifenden Know-how für SystemC ein. Wir haben in über
170 Unternehmen weltweit Trainingskurse für SystemC abgehalten und Entwickler bei ihrer
Projektarbeit unterstützt – bis hin zur aktiven Beteiligung an der Methoden- und Toolentwicklung in
Unternehmen wie ARM, Cadence, CoWare, Mentor Graphics und Synopsys.
Für den effektiven Einsatz von SystemC für Modellierung ist ein dreistufiger Lernpfad sinnvoll, um die
nötigen Fähigkeiten zu erlangen. Für Ingenieure, die SystemC für die Verifikation einsetzen möchten,
ist zusätzlich ein viertes Modul verfügbar.
Effective SystemC Usage
Transaction level
skills
SystemC skills
C++ skills
SystemC Modeling
Using TLM-2.0
Fundamentals of
SystemC
Expert
SystemC
Verification
Essential C++
STEP 1
STEP 2
Verification
skills
STEP 3
•
Essential C++ for SystemC (2 Tage) vermittelt Ingenieuren mit Grundkenntnissen in der
Programmiersprache C in einer Schnelleinführung eine fundierte Grundlage in C++ sowie die
erforderlichen Grundkenntnisse zum Erlernen von SystemC.
•
Fundamentals of SystemC (3 Tage) baut auf den Grundlagen von Essential C++ auf und
bereitet die Kursteilnehmer auf die praktische Anwendung von SystemC für die Transaction-LevelModellierung vor. Dieses Kursmodul beschreibt den Einsatz der SystemC v2.2 Klassenbibliothek
für Systemmodellierung, Kommunikation, Hardware und Software auf Transaction Level sowie die
Verfeinerung zur Hardware-Software-Implementierung.
•
SystemC Modeling using TLM-2.0 (3 Tage) Aufbauend auf dem Doulos Kurs Comprehensive
SystemC werden Entwickler in diesem Training auf Praxisprojekte mit Transaction-Level
Modelling mit SystemC und TLM-2.0 vorbereitet. Expert SystemC Verification (2 Tage)
Tel: +49 (0)511 277 1340
Email: [email protected]
Web: www.doulos.com
Version: m7_CE
Modular SystemC
Inhouse Trainingsoptionen
•
Expert SystemC Verification ( 2 Tage) Expert SystemC Verification (2 Tage) Expert SystemC
lehrt die Verwendung von SystemC für Testbench-Automatisierung auf Basis einer ConstrainedRandom-Verifikationsmethode. Das Training, das auf der Version 1.0p2 von SCV basiert, zeigt
den Kursteilnehmern das Debuggen und Validieren von Modellen sowie die optimale Nutzung der
SystemC Verification Library (SCV).
Basierend auf diesen Modulen kann das Inhouse- und teambasierte Training ideal den jeweiligen
Trainingsbefürfnissen in Bezug auf Inhalt, Umfang und Dauer des Trainings angepasst werden. Die
nachfolgend aufgeführten SystemC-Themen können auf Wunsch besonders berücksichtigt werden:
• Hardwaresynthese mit SystemC, einschließlich RTL und Verhaltenssynthese
• Ausführliche Vorstellung der Mechanismen der SystemC Klassenbibliotheken. Dieser Aspekt
richtet sich an Spezialisten, die eigene Modelle entwickeln und die SystemC-Klassen in andere
Simulationsumgebungen integrieren möchten.
• Einsatz der SystemC Verification Library (SCV)
• Erstellen eines Transaction-Level-Modelles einer typischen busbasierten Plattform mit mehreren
Masters auf verschiedenen Abstraktionsebenen (PV, PVT, CA, etc.)
Die Workshops basieren auf sorgfältig durchdachten Übungen mit dem Ziel, das Erlernte anzuwenden
und zu festigen. Dieser Praxisteil nimmt etwa 50% der Unterrichtszeit ein. In den Workshops wird die
freie Tool-Wahl der Kursteilnehmer berücksichtigt, und bei Bedarf kann auch zusätzliches ToolTraining in Zusammenarbeit mit dem Toolhersteller arrangiert werden.
Wenden Sie sich bitte an Doulos, wenn Sie spezielle Tools benötigen.
Zielgruppe
•
•
•
•
Hardware-Design-Ingenieure, die den praktischen Umgang mit SystemC für digitales HardwareDesign und Verifikation erlernen möchten.
Systemingenieure und –architekten, die den praktischen Umgang mit SystemC für System-LevelModellierung erlernen möchten.
Software-Ingenieure, die bereits fundierte Kenntnisse in C/C++ besitzen und zusätzlich praktische
Erfahrungen mit den SystemC Klassenbibliotheken sammeln möchten.
Hardware-, Software- und Systemingenieure, die mit der SystemC Klassenbibliothek vertraut sind
und den effektiveren Umgang mit SystemC für Transaction-Level Modellierung erlernen möchten.
Voraussetzungen
•
Essential C++ for SystemC: Die Kursteilnehmer sollten über Grundkenntnisse in der
Programmiersprache C verfügen, insbesondere Vertrautheit mit Funktionen, Variablen,
Datentypen, Operatoren und Anweisungen in C. Praktische Erfahrungen mit einer ähnlichen
Programmiersprache wie z.B. Java oder Behavioural-Style HDLs sind außerdem von Vorteil.
Dieses Modul eignet sich für Teilnehmer ohne Vorkenntnisse in C++ oder als Auffrischungskurs
für diejenigen, die geringe Vorkenntnisse in C haben.
•
Fundamentals of SystemC: Praktische Erfahrungen mit C++ und objektorientierten
Programmierkonzepten sind erforderlich; Grundkenntnisse in Hardwaredesign werden empfohlen.
Die vorhergehende Teilnahme an dem Doulos ‘Essential C++’ Kurs (oder einem vergleichbaren
Tel: +49 (0)511 277 1340
Email: [email protected]
Web: www.doulos.com
Version: m7_CE
Modular SystemC
Inhouse Trainingsoptionen
Training) ist erforderlich. Teilnehmer, die bereits Erfahrungen in C++ haben, sollten vorher ihr
Wissen mit den ‘SystemC C++ Voraussetzungen’ vergleichen, die bei Doulos erhältlich sind.
Dieser Kurs eignet sich für Hardware-, Software- oder System-Ingenieure im Elektronikbereich.
Um den maximalen Nutzen aus diesem Training zu ziehen, sollten die Kursteilnehmer aktive
Nutzer
einer
Softwareprogrammierhochsprache
(idealerweise
C++)
oder
einer
Hardwarebeschreibungssprache (VHDL oder Verilog) sein.
•
SystemC Modeling Using TLM-2.0: Die Kursteilnehmer sollten fundiertes Grundwissen in C++
und der SystemC Klassenbibliothek haben. Die Teilnahme am Doulos Comprehensive SystemC
Kurs (oder vergleichbarem Training) wird vorausgesetzt. Die Kursteilnehmer sollten fundiertes
Grundwissen in C++ und der SystemC Klassenbibliothek haben. Die Teilnahme am Doulos
Comprehensive SystemC Kurs (oder vergleichbarem Training) wird vorausgesetzt. Entwickler
von Hardware oder embedded Software, die bislang eher mit Verilog, VHDL oder C gearbeitet
haben, müssen in der Regel innerhalb einiger Wochen oder Monate sowohl den Kurs
Comprehensive SystemC (mit Essential C++ und Fundamentals of SystemC) als auch den Kurs
SystemC Modeling using TLM-2.0 belegen.
•
Expert SystemC Verification: Die Kursteilnehmer sollten fundiertes Grundwissen in C++ und
SystemC haben. Die Teilnahme am Doulos Comprehensive SystemC Kurs (oder
vergleichbarem Training) wird vorausgesetzt. Vorkenntnisse in der Constrained-RandomVerifikation sind nicht notwendig, da diese Methodik im Training erläutert wird.
Kursunterlagen
Die Doulos Kursunterlagen sind für ihren umfassenden Informationsgehalt und die sehr
benutzerfreundliche Präsentation allgemein bekannt. In ihrem Aufbau, Inhalt und ihrer
Themenbehandlung sind sie einzigartig im HDL-Schulungsbereich, was sie zu begehrten
Nachschlagewerken hat werden lassen. In den Kursgebühren sind enthalten:
•
•
•
Kursskripte mit vollständigem Stichwortverzeichnis, die ein umfassendes Referenzhandbuch
darstellen
Ein Arbeitsbuch mit vielen praktischen Beispielen und Lösungen als Unterstützung bei der
Wissensanwendung
Doulos SystemC Golden Reference Guide für Sprache, Syntax, Semantik und Tipps.
Struktur und Inhalt
Step 1 - Essential C++ for SystemC (2 days)
DAY 1
Learn about the differences between C and C++
From C to C++
The features added to C by C++ and the ANSI C-1999 standard • const • bool • Header files •
Namespaces • The global and standard namespaces • Stream I/O
Functions and Pointers
Learn how functions and dynamic memory allocation have changed in C++ • Pass-by-reference •
Tel: +49 (0)511 277 1340
Email: [email protected]
Web: www.doulos.com
Version: m7_CE
Modular SystemC
Inhouse Trainingsoptionen
Function prototypes • Default arguments • Function overloading • Operator overloading • Static,
automatic and dynamic storage • new • delete
The C++ Standard Library
Learn to make the most of the built-in standard classes • Container classes • Examples of using the
standard vector class • Examples of using the standard string and stringstream classes
Classes and Objects
Learn the principles of object-based design • Information hiding • Abstract data types • Classes and
objects • Public and private class members • Member functions • Scope resolution
DAY 2
Master the subtleties of object-oriented programming in C++
Class Members
Master the C++ mechanisms associated with classes • Constructors • Destructors • Copy
constructors • Pointers versus objects • Friends • this • Overloading operators as members • Static
members • Constant objects and members
Inheritance
Learn to exploit the power of object-oriented programming • Class relationships • Initializing subobjects • The default constructor • Derived classes • Inheritance • Protected members • Up- and
down-casting • Order of initialization
Virtual Functions
Delve deeper into object-oriented programming techniques • Overriding methods • Virtual functions •
Polymorphism • Run-time type identification • Abstract base classes • Multiple inheritance
Further C++ Features
Advanced C++ features used in the SystemC class libraries • Function templates • Class templates •
Implicit conversions • User-defined conversions • Exceptions
Additional and more detailed topic coverage is available in Comprehensive C++. Please ask for a
syllabus.
Step 2 - Fundamentals of SystemC (3 days)
DAY 1
Become proficient in using the features of SystemC
Introduction to SystemC
Learn the background to SystemC and how SystemC fits into the system-level design flow • The
architecture of the SystemC release • The benefits and risks of adopting SystemC • The objectives of
transaction-level modelling
Getting Started
Learn how SystemC source code is structured and how to organise files • SystemC header files and
Tel: +49 (0)511 277 1340
Email: [email protected]
Web: www.doulos.com
Version: m7_CE
Modular SystemC
Inhouse Trainingsoptionen
namespaces • Compiling and executing a SystemC model
Modules and Hierarchy
How to describe the structural connections between modules • Modules • Ports • Processes • Signals
• Methods • Primitive channels • Module instantiation • Port binding
Processes and Time
Describing concurrency and the passage of time • SC_METHOD • SC_THREAD • Event finders •
Static and dynamic sensitivity • Time • Events • Clocks • Dynamic processes
The Scheduler
Gain an insight into how SystemC manages the scheduling of processes and events • Starting and
stopping simulation • Elaboration and simulation callbacks • The phases of simulation • Event
notification • Event queues • wait and next_trigger
DAY 2
Learn to apply SystemC to modelling data, communication and busses.
Debugging and Tracing
Learn about the facilities provided by SystemC to ease debugging and diagnostics • Debugging
techniques • The standard reporting mechanism • Error handling • Writing trace (vcd) files • Tracing
buried signals and local variables • Using waveform display tools
SystemC Data Types
Data types for bit-accurate and hardware modelling • Signed and unsigned integers • Limited and
finite precision integers • Assignment and truncation • Type conversion • Bit and part selects •
Concatenation • Bit and logic vectors • Hexadecimal numbers • Avoiding common pitfalls • Bus
resolution • Fixed point types
Interfaces and Channels
Learn how channels are used to abstract communication and create fast simulation models •
Hierarchical, primitive and minimal channels • Interface method calls • SystemC interfaces • Port-less
channel access • The SystemC object hierarchy • The class sc_port • Registering ports • How to
make the most of ports, channels and interfaces
DAY 3
Exploration of the application of Transaction-Level Modelling
Bus Modelling
Learn the techniques required to write and use bus models in SystemC • Master and slave interfaces
• The execution context of interface method calls • Blocking and non-blocking methods • Using events
and dynamic sensitivity within channels • Multi-ports • Port binding policies • sc_export
Refinement
An example of refinement from a C algorithm through untimed and timed SystemC models down to a
mixed hardware-software implementation • SystemC wrappers • Timing annotation • Using
Tel: +49 (0)511 277 1340
Email: [email protected]
Web: www.doulos.com
Version: m7_CE
Modular SystemC
Inhouse Trainingsoptionen
sc_buffer • Structural refinement, communication refinement, and data refinement
Adapters
Channel refinement using adapters • Events versus event finders • Instantiating and binding adapters
Transaction-Level Modeling
The transaction-level modeling space • The functional, architecture, programmers and verification
views • TLM principles • Transactions versus transfers • Passing request and response objects • The
OSCI TLM standard • The standard blocking, non-blocking and transport interfaces • Implementing
the transport and protocol layers
Supplementary Subjects
Fixed Point Types
Fixed point word length and integer word length • Quantization modes • Overflow modes • Fixed point
context • The type cast switch • Utility methods
Overview of SystemC Synthesis
RTL versus behavioural synthesis technology • The work of the OSCI synthesis working group •
Synthesizable data types • Clocked threads and resets • Restrictions
Overview of the SystemC Verification Library
Introduction to and aims of SCV • Constrained random verification methodology • Extended data
types to support introspection • Randomization • Transaction Recording
Step 3 - SystemC Modeling Using TLM-2.0
DAY 1
Introduction
Role of SystemC and TLM • Evolution of TLM within OSCI • TLM requirements and use cases •
Coding styles • TLM-2.0 structure and architecture • Interoperability layer • Utilities • The OSCI TLM2.0 release kit and documentation
TLM-1.0
Modeling principles • Blocking versus non-blocking interfaces • Unidirectional interfaces • Bidirectional
interfaces • Request and response objects • Convenience ports • TLM FIFO interfaces • Requestresponse channel
TLM-2.0 Architecture
Initiators, targets, and interconnect • Initiator and target sockets • Pass-by-reference • Forward and
backward paths • TLM-2 core interfaces • Blocking versus non-blocking transport • Standard socket
classes • Socket binding • Introduction to the generic payload and base protocol
Blocking Transport Interface
Blocking transport interface • Timing annotation • Temporal decoupling • Quantum keeper • Global
quantum • Synchronization-on-demand • Loosely-timed coding style
Tel: +49 (0)511 277 1340
Email: [email protected]
Web: www.doulos.com
Version: m7_CE
Modular SystemC
Inhouse Trainingsoptionen
DAY 2
Generic Payload
Generic payload attributes • Mutability • Command, address and data attributes • Byte enables •
Streaming • Response status • Generic payload memory management
Non-blocking Transport Interface
Non-blocking transport interfaces • tlm_sync_enum • Forward, backward and return paths • Phases •
AT timing model • Base protocol rules • Early completion • Pre-emption • AT timing annotation •
Payload event queues • Approximately-timed coding style • Request and response exclusion rules •
Back-pressure • AT interconnect
Convenience Sockets
Simple sockets • b/nb conversion • Tagged sockets • Multi-sockets • Coding interconnects and
address translation • Hierarchical binding • Passthrough sockets
Direct Memory and Debug Transport Interface
Direct memory versus debug interfaces • Direct memory interface • DMI transaction type • DMI
descriptor • Rules for granting and denying DMI • Generic payload DMI hint • Address translation for
DMI transactions • Debug transport interface • Debug transport transaction type
DAY 3
Extensions
Kinds of extension • The extension mechanism • Generic payload extension methods • Extension
base class • Low-level extension programming • deep_copy_from • update_extensions_from •
Extension memory management • Auto extensions • Sticky extensions • Memory-manager-agnostic
extensions • Instance-specific extensions
Endianness
TLM-2 endianness principles • Organisation of the data array • Mixed-endian systems • Address
alignment issues • Part-word transfers • Width conversions • Endianness helper functions •
Endianness conversion functions • Arithmetic mode • Byte order mode • Tuning for simulation speed
Protocol types
tlm_phase • Extended phases • Ignorable phases • Protocol types • tlm_base_protocol_types •
Defining new traits classes • Guidelines for protocol creation • Bridges • Bus snooping using DMI
extensions
Analysis ports
Analysis interface • Analysis port • Subscribers • When to deep-copy transaction objects
Other examples
Source code examples to use in your own projects • AT initiator types • AT target types •
Permutations of the forward, backward and return paths • Full AT interconnect implementation •
Implementing exclusion rules and transaction queuing • Mixed AT/LT components • Base protocol
checker • Atomic operations and transaction locking using extensions.
Tel: +49 (0)511 277 1340
Email: [email protected]
Web: www.doulos.com