Global training solutions for engineers creating the world's electronics

Comprehensive SystemC

Standard Level - 5 Tage

view dates and locations
In English


Wie Viel SystemC Training brauchen Sie? Bitte sehen Sie sich das Video an!

Comprehensive SystemC ist ein 5-tägiges Training zur Einführung in SystemC™, eine C++ Klassenbibliothek zur System-Level-Modellierung. SystemC wird heute typischerweise verwendet, um Systemmodelle zu beschreiben, die sowohl Hardware- als auch Softwarekomponenten enthalten.

Das Kursprogramm umfasst die Grundelemente von SystemC und ihre Anwendung für das Transaction-Level Modelling Der Kurs basiert auf Version 2.2 der SystemC Klassenbibliothek.

Der Kurs besteht aus 2 Modulen. Entwickler haben die Möglichkeit, die Module einzeln oder als kompletten 5-Tages-Kurs zu besuchen. Hardwaredesignern, die nicht auf umfassende Erfahrungen im Einsatz von C und C++ zurückgreifen können, wird die Teilnahme an beiden Modulen empfohlen.
  • Essential C++ for SystemC (1.-2. Tag) vermittelt Entwicklern mit Grundkenntnissen in der Programmiersprache C in einer Schnelleinführung eine fundierte Grundlage für C++ sowie die erforderlichen Grundkenntnisse zum Erlernen von SystemC.
  • Fundamentals of SystemC (3.-5. Tag) baut auf dieser Grundlage auf und bereitet die Entwickler auf die praktische Anwendung von SystemC für Transaction-Level Modelling vor. Der Kurs beschreibt die Klassenbibliothek v2.2 und ihre Anwendung für Systemmodellierung, Kommunikation, Hardware und Software auf dem Transaction-Level sowie Verfeinerungen in der Hardware-Software-Implementierung.
Die Einzelheiten zum OSCI TLM 2.0 Standard werden in einem separaten Folgetraining, SystemC Modeling using TLM-2.0, abgedeckt.

Die praktischen Übungen nehmen ca. 50% der Unterrichtszeit ein und basieren auf sorgfältig ausgearbeiteten Aufgaben, die die Kursteilnehmer in ihren neu erworbenen Kenntnissen herausfordern und das Erlernte untermauern.

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.Zielgruppe

Zielgruppe

  • Hardwaredesign-Ingenieure, die praktische Erfahrungen und Kenntnisse von SystemC für digitales Hardwaredesign und Simulation erwerben möchten
  • Systemingenieure und -architekten, die Kenntnisse im praktischen Einsatz von SystemC für Systemmodellierung erwerben möchten
  • Softwareentwickler, die bereits fundierte Kenntnisse in C/C++ besitzen, die jedoch Praxiserfahrungen mit den SystemC Klassenbibliotheken sammeln möchten

Kursinhalte

  • Notwendige C++ Sprachmerkmale, um SystemC zu lernen und verstehen.
  • Objektorientierte Programmiertechniken, wie sie in den SystemC Klassenbibliotheken verwendet werden.
  • Die SystemC Grundelemente, Datentypen und Kanäle (channels)
  • Wie man Systemmodelle am besten simuliert, debugged und validiert.
  • Wie man von RTL-Modellierung zur Transaction-Level-Modellierung gelangt
  • Einen Überblick zu SystemC TLM-2.0 Standard (erhalten)
  • Überblick über die Hardwaresynthese mit SystemC (optional)
  • Überblick über die SystemC Klassenbibliothek SCV (optional)

Voraussetzungen

  • Essential C++ for SystemC (Tag 1-2) Die Kursteilnehmer sollten über Grundkenntnisse in der Programmiersprache C verfügen (Funktionen, Variablen, Datentypen, Operatoren, Anweisungen). Dieses Modul eignet sich für Teilnehmer ohne Vorkenntnisse in C++, als Auffrischung für die, die wenig Vorkenntnisse in C++ haben, oder Hardwaredesigner mit Kenntnissen in VHDL oder Verilog®.
  • Fundamentals of SystemC (Tag 3-5) Praktische Erfahrungen mit C++ und objektorientierten Programmierkonzepten sind erforderlich und Grundkenntnisse des digitalen Hardwaredesigns werden empfohlen. Die vorherige Teilnahme am Doulos Essential C++ Kurs oder einem vergleichbaren Training ist erforderlich. Kursteilnehmer, die bereits Erfahrung in C++ haben, sollten Ihre Kenntnisse vor der Teilnahme mit den „Voraussetzungen SystemC C++" vergleichen. Eine Liste mit Voraussetzungen ist bei Doulos erhältlich. Der Kurs eignet sich für Hardware-, Software- und Systemingenieure aus dem Bereich der Elektronikentwicklung. Um jedoch den maximalen Nutzen aus dem Kurs zu ziehen, sollten die Teilnehmer aktive Anwender einer Softwarehochsprache (Idealerweise C++) oder einer Hardwarebeschreibungssprache (VHDL oder Verilog®.) sein.

Wenden Sie sich bitte direkt an Doulos, um Ihre Erfahrungen und Kenntnisse in Hinblick auf diese Voraussetzungen zu erörtern und zu bewerten.

Kursunterlagen

Die Doulos Kursunterlagen sind für ihren umfassenden Informationsgehalt und die sehr benutzer­freundliche Präsentation allgemein bekannt. In ihrem Aufbau, Inhalt und ihrer Themenbehandlung sind sie einzigartig im EDA-Trainingsbereich, 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

Essential C++ for SystemC (2 Tage)

Tag 1

Learn about the differences between C and C++

From C to C++

Header files • Function overloading • Operator overloading • Pass-by-reference • const reference • Default arguments • I/O streams • Namespaces • Stream manipulators • Stream operator overloading • Standard string class • Stringstreams • Static, automatic, and dynamic storage • new and delete

Classes and Objects

Learn the principles of object-based design • Classes and objects • Inline members versus separate compilation • Public and private class members • Member functions • Scope resolution

Special Member Functions

Constructors • Destructors • Copy constructors • Initialization versus assignment • Pointers versus objects • The assignment operator • this • Constant objects and members

Vectors

Learn to make the most of the built-in standard classes • The C++ standard library • Vectors versus arrays • Common vector operations • Iterators

Tag 2

Master the subtleties of object-oriented programming in C++

Subobjects

Class relationships • Subobjects versus pointers • Initializing members • Initializing const members

Inheritance

Learn to exploit the power of object-oriented programming • Derived classes • Inheritance • Protected members • Up- and down-casting

Virtual Functions

Delve deeper into object-oriented programming techniques • Overriding methods • Virtual functions • Polymorphism • Identifying types at run-time • Examples from SystemC • Abstract base classes

Templates and Conversions

Advanced C++ features used in the SystemC class libraries • Function templates • Class templates • Examples from SystemC • Implicit conversions • User-defined conversions

Extra Features

Friends • Static members • Order of initialization • Multiple inheritance • Exceptions

Fundamentals of SystemC (3 Tage)

Tag 3

Become proficient in using the features of SystemC

Introduction

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 modeling

Getting Started

Learn how SystemC source code is structured and how to organise files • SystemC header files and namespaces • Compiling and executing a SystemC model

Modules and Channels

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 • wait and next_trigger

Tag 4

Learn to apply SystemC to modeling data, communication and busses.

SystemC Data Types

Data types for bit-accurate and hardware modeling • Signed and unsigned integers • Limited and finite precision integers • Assignment and truncation • Bit and part selects • Bit and logic vectors • Hexadecimal numbers

Debugging and Tracing

Learn about the facilities provided by SystemC to ease debugging and diagnostics • The report hander • Customizing report actions • Writing trace (vcd) files

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 • How to make the most of ports, channels and interfaces • sc_export

Bus modeling

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

Tag 5

Exploration of the application of Transaction-Level modeling

Additional Features

sc_signal_resolved • register_port • sc_process_handle • Event finders • default_event • pos vs. posedge vs. posedge_event • sc_event_queue • request_update and update • Passing arguments to spawned processes • terminated_event • sc_set_stop_mode

Introduction to TLM-2.0

Transaction Level Modeling • Virtual platforms • The architecture of TLM-2.0 • TLM-2.0 coding styles • The interoperability layer • TLM-2.0 utilities • Initiator, target, and interconnect • Initiator and target sockets • Generic payload • Response status

Further TLM-2.0

Software execution and simulation • The time quantum • b_transport • Timing annotation • Temporal decoupling • The quantum keeper • Base protocol rules • DMI • Simple sockets • Extensions • Interoperability

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 • Synthesis restrictions • Clocked threads and resets

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

IEEE 1666-2011

An overview of the latest version of SystemC, that is, IEEE 1666-2011 and SystemC 2.3


Course Dates:
June 10th, 2019 Denver, CO   Enquire
June 10th, 2019 Austin, TX   Enquire
July 15th, 2019 Ringwood, UK   Enquire
August 5th, 2019 San Jose, CA   Enquire
September 9th, 2019 Munich, DE   Enquire
October 7th, 2019 San Diego, CA   Enquire
November 18th, 2019 Denver, CO   Enquire
December 9th, 2019 Austin, TX   Enquire
December 9th, 2019 San Jose, CA   Enquire
indicates CONFIRMED TO RUN courses.

Looking for team-based training, or other locations?
Complete an on-line form and a Doulos representative will get back to you »

 

Price on request

Upcoming Live Webinars

Image 1

What is an SBOM and why should I care?

Wednesday December 11 2024

1 hour session (All Time Zones)

In this webinar we are going to explain in as few words as possible what a Software Bill Of Materials (SBOM) is and why we need to know about them in embedded systems development.

Register Now

Image 1

The Keys to SystemC & TLM-2.0

Friday December 13 2024

1 hour session (All Time Zones)

This webinar is aimed at hands-on hardware or software engineers who might know Verilog or C but have no previous experience of SystemC. It will explain what you need to know to be successful with SystemC.

Register Now

Image 1

Designing with AMD Kria SOMs

Tuesday December 17 2024

1 hour session (All Time Zones)

This webinar will walk through the design process for using AMD Kria SOMs, including the use of Vivado and Vitis.

Register Now

Image 1

C/C++ Memory Management: Design and Debugging

Wednesday December 18 2024

1 hour session (All Time Zones)

This webinar explores best practices for avoiding memory issues in design and debugging memory usage issues in C and C++.

Register Now