V3 | Design with SystemC |
System Design and Simulation with SystemC
Objectives
|
- Theoretical course
- PDF course material (in English) supplemented by a printed version for face-to-face courses.
- Online courses are dispensed using the Teams video-conferencing system.
- The trainer answers trainees' questions during the training and provide technical and pedagogical assistance.
- At the start of each session the trainer will interact with the trainees to ensure the course fits their expectations and correct if needed
- Basic knowledge of C++ (see for example our L3 - C++ course)
- Any embedded systems engineer or technician with the above prerequisites.
- The prerequisites indicated above are assessed before the training by the technical supervision of the traineein his company, or by the trainee himself in the exceptional case of an individual trainee.
- Trainee progress is assessed by quizzes offered at the end of various sections to verify that the trainees have assimilated the points presented
- At the end of the training, each trainee receives a certificate attesting that they have successfully completed the course.
- In the event of a problem, discovered during the course, due to a lack of prerequisites by the trainee a different or additional training is offered to them, generally to reinforce their prerequisites,in agreement with their company manager if applicable.
Course Outline
- Object Oriented Programming
- Classes and objects
- Attributes
- Methods and operators
- Overloading
- Constructors and Destructors
- Virtual methods
- References
- Default parameters
- Memory management
- The new and delete operators
- Name spaces
- Standard input/output (Streams)
- Class and function templates
- Template definition
- Constraints
- Automatic instantiation
- Manual instantiation
- Type conversions
- Implicit conversions
- User-defined conversions
- Copy and initailisation operators
- Up casts and down casts
- Exceptions
- The basics of SystemC
- Language objectives
- History
- Advantages and disadvantages of SystemC
- Transaction Level Modeling (TLM)
- The SystemC design flow
- Algorithmic model
- TLM model
- Hardware/software partitioning
- Direct synthesis or HDL translation
- Model simulation
- The SystemC architecture
- Communication channels
- Structural elements
- Data types
- The simulation engine
- Structural elements
- Modules, Ports and Signals
- Primitive Channels
- Creating model structure
- Instantiating Modules
- Connecting ports
- Processes and Time Management
- Methods and Threads
- Events
- Static or dynamic sensitivity
- Time and clocks
- Dynamic processes
- Starting and stopping the simulation
- Model elaboration
- Static elaboration phases
- Dynamic elaboration phases
- The event finder concept
- Elaboration callbacks
- The simulation phases
- Event notifications
- Waiting on events and triggers
- Event queues
- Debug techniques
- Reporting and tracing
- Error handling
- Tracing hidden signals and local variables
- Modeling busses
- Interfaces and communication channels
- Master and slave interfaces
- Interface methods (blocking and non-blocking)
- Using events with channels
- Channels with dynamic sensitivity
- Modeling multi-port busses
- Port binding policies
- Pin Accurate Models
- Fully specified data types
- Assignment and truncation
- Logical types and vectors
- Selecting bits and slices
- Concatenating values
- Resolving types
- Integer and fixed point types
- Refining algorithms
- Creating UnTimed Functional (UTF) models
- Refining to Timed Functional (TF) models
- Partitioning hardware and software
- Adding timing annotations
- Refinement policies
- Refining structure
- Refining data
- Refining communications
- Channel refinement
- The adaptator concept
- Building an adaptator
- Creating a specialized event finder