Fundamentals of SystemC ONLINE
Standard Level - 5 sessions
view dates and locations
PLEASE NOTE: This is a LIVE INSTRUCTOR-LED training event delivered ONLINE.
It covers the same scope and content, and delivers similar learning outcomes, as a scheduled face-to face class.
How much SystemC training do you need? Watch the video now!
Fundamentals of SystemC prepares you for the practical use of SystemC for transaction-level modelling. The class describes the core SystemC v2.2 class library and its application for system modelling, virtual platforms, and hardware implementation.
It includes an introduction to the SystemC TLM-2.0 standard which is taught in more detail in a separate 5 session follow-on class SystemC Modeling using TLM-2.0 online.
The workshops are based around carefully designed exercises to reinforce and challenge the extent of learning, and comprise approximately 50% of class time. Delegates can use the tools and platform of their choice on all exercises and workshops.
Important: The Fundamentals of SystemC course can only be attended if your C++ knowledge is proficient. To find out whether this is suitable for you, please contact Doulos.
Doulos has a world-wide lead in independent SystemC know-how having been active in SystemC-based methods since 2000. We have delivered SystemC training and support to engineers to more than 500 companies world-wide - including direct involvement with methodology and tool developers in such companies as Arm, Cadence, CoWare, Mentor Graphics and Synopsys.
Who should attend?
- System engineers and architects who wish to become skilled in the practical use of SystemC for system level modelling
- Software engineers who already have good knowledge of C/C++, but who wish to acquire some practical experience in the use of the SystemC class libraries
What will you learn?
- How to make best use of the SystemC simulator to debug and validate your models
- How to move up from RTL modelling to transaction-level modelling
- An introduction to the SystemC TLM-2.0 standard
- An overview of high-level synthesis using SystemC (optional)
- An overview of the SystemC Verification Library SCV (optional)
- A working knowledge of C++ and of object-oriented programming concepts is essential and basic knowledge of hardware design is recommended. Prior attendance of the Doulos Essential C++ class (or equivalent) is required. Delegates with C++ experience should check their knowledge against the SystemC C++ Pre-requisites available from Doulos, before attending.
- The course is suitable for electronic hardware, software or systems engineers, but in order to gain maximum benefit from this course, delegates should be active users of either a high-level software programming language (ideally C++) or a hardware description language (VHDL or Verilog®)
Please contact Doulos direct to discuss and assess your specific experience against the pre-requisites.
Training materialsDoulos training materials are renowned for being the most comprehensive and user friendly available. Their style, content and coverage is unique in the EDA training world, and has made them sought after resources in their own right. Fees include (in electronic format):
- Fully indexed class notes creating a complete reference manual
- Workbook full of practical examples and solutions to help you apply your knowledge
- Doulos SystemC Golden Reference Guide for language, syntax, semantics and tips.
Structure and Content
Become proficient in using the features of SystemC
IntroductionLearn 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 StartedLearn how SystemC source code is structured and how to organise files • SystemC header files and namespaces • Compiling and executing a SystemC model
Modules and ChannelsHow to describe the structural connections between modules • Modules • Ports • Processes • Signals • Methods • Primitive channels • Module instantiation • Port binding
Processes and TimeDescribing concurrency and the passage of time • SC_METHOD • SC_THREAD • Event finders • Static and dynamic sensitivity • Time • Events • Clocks • Dynamic processes
The SchedulerGain 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
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
Learn to apply SystemC to modeling data, communication and busses.
SystemC Data Types
Debugging and TracingLearn about the facilities provided by SystemC to ease debugging and diagnostics • The report hander • Customizing report actions • Writing trace (vcd) files
Interfaces and ChannelsLearn 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 modelingLearn 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
Exploration of the application of Transaction-Level modeling
Additional Featuressc_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.0Transaction 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.0Software execution and simulation • The time quantum • b_transport • Timing annotation • Temporal decoupling • The quantum keeper • Base protocol rules • DMI • Simple sockets • Extensions • Interoperability
Supplementary Reference Material
Fixed point word length and integer word length • Quantization modes • Overflow modes • Fixed point context • The type cast switch • Utility methods
Fixed Point Types
Overview of SystemC SynthesisRTL 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 LibraryIntroduction to and aims of SCV • Constrained random verification methodology • Extended data types to support introspection • Randomization • Transaction Recording
IEEE 1666-2011An overview of the latest version of SystemC, that is, IEEE 1666-2011 and SystemC 2.3
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
Back to top