View the site in Français View the site in English (USA) Site displayed in English (GB)
You are here: ac6 > ac6-formation > FPGAs & ASICs > Design with SystemC
Download Catalog
Download Catalog
Download as PDF
Download as PDF
Write us
Write us
Printable version
Printable version
 

V2 Design with SystemC

System Design and Simulation with SystemC


formateur
Objectives
bullet_jaune_1 Understand the benefits of system simulation with SystemC
bullet_jaune_1 Mastering the different levels of modeling
bullet_jaune_2 Transactional Models
bullet_jaune_2 Software models
bullet_jaune_2 Hardware models
bullet_jaune_2 Synthesizable models
bullet_jaune_1 System modeling:
bullet_jaune_2 UTF (UnTimed Functional model)
bullet_jaune_2 TF (Timed Functional model)
bullet_jaune_1 Hardware modeling:
bullet_jaune_2 BCA (Bus Cycle Accurate model)
bullet_jaune_2 PCA (Pin Cycle Accurate model)
This course is complemented by numerous exercises and describes SystemC version 2.2
Course material
bullet_jaune_2 A PC workstation per trainee group with:
bullet_jaune_3 Visual Studio 2005
bullet_jaune_3 SystemC-2.2
Prerequisites
bullet_jaune_2 Basic knowledge of C++ (see for example our L3 - C++ course)

Outline
First day
Reminders on C++
bullet_jaune_2 Object Oriented Programming
bullet_jaune_3 Classes and objects
bullet_jaune_3 Attributes
bullet_jaune_2 Methods and operators
bullet_jaune_3 Overloading
bullet_jaune_3 Constructors and Destructors
bullet_jaune_3 Virtual méthods
bullet_jaune_3 References
bullet_jaune_3 Default parameters
bullet_jaune_2 Memory management
bullet_jaune_3 The new and delete operators
bullet_jaune_2 Name spaces
bullet_jaune_2 Standard input/output (Streams)
Avanced features of C++ needed by SystemC
bullet_jaune_2 Class and function templates
bullet_jaune_3 Template definition
bullet_jaune_3 Constraints
bullet_jaune_3 Automatic instanctiation
bullet_jaune_3 Manual instantiation
bullet_jaune_2 Type conversions
bullet_jaune_3 Implicit conversions
bullet_jaune_3 User-defined conversions
bullet_jaune_3 Copy and initailisation operators
bullet_jaune_3 Up casts and down casts
bullet_jaune_2 Exceptions
Second day
Introduction to SystemC
bullet_jaune_2 The basics of SystemC
bullet_jaune_3 Language objectives
bullet_jaune_3 History
bullet_jaune_3 Advantages and disadvantages of SystemC
bullet_jaune_2 Transaction Level Modeling (TLM)
bullet_jaune_2 The SystemC design flow
bullet_jaune_3 Algorithmic model
bullet_jaune_3 TLM model
bullet_jaune_3 Hardware/software partitioning
bullet_jaune_3 Direct synthesis or HDL translation
bullet_jaune_3 Model simulation
bullet_jaune_2 The SystemC architecture
bullet_jaune_3 Communication channels
bullet_jaune_3 Structural elements
bullet_jaune_3 Data types
bullet_jaune_3 The simulation engine
Eléments de base du langage SystemC
bullet_jaune_2 Structural elements
bullet_jaune_3 Modules, Ports and Signals
bullet_jaune_3 Primitive Channels
bullet_jaune_2 Creating model structure
bullet_jaune_3 Instantiating Modules
bullet_jaune_3 Connecting ports
bullet_jaune_2 Processes and Time Management
bullet_jaune_3 Methods and Threads
bullet_jaune_3 Events
bullet_jaune_3 Static or dynamic sensitivity
bullet_jaune_3 Time and clocks
bullet_jaune_3 Dynamic processes
Third day
Simulation of a SystemC model
bullet_jaune_2 Starting and stopping the simulation
bullet_jaune_2 Model elaboration
bullet_jaune_3 Static elaboration phases
bullet_jaune_3 Dynamic elaboration phases
bullet_jaune_3 The event finder concept
bullet_jaune_3 Elaboration callbacks
bullet_jaune_2 The simulation phases
bullet_jaune_3 Event notifications
bullet_jaune_3 Waiting on events and triggers
bullet_jaune_3 Event queues
bullet_jaune_2 Debug techniques
bullet_jaune_3 Reporting and tracing
bullet_jaune_3 Error handling
bullet_jaune_3 Tracing hidden signals and local variables
Fourth day
Bus and Pin Accurate Models
bullet_jaune_2 Modeling busses
bullet_jaune_3 Interfaces and communication channels
bullet_jaune_3 Master and slave interfaces
bullet_jaune_3 Interface methods (blocking and non-blocking)
bullet_jaune_3 Using events with channels
bullet_jaune_3 Channels with dynamic sensitivity
bullet_jaune_2 Modeling multi-port busses
bullet_jaune_3 Port binding policies
bullet_jaune_2 Pin Accurate Models
bullet_jaune_3 Fully specified data types
bullet_jaune_3 Assignment and truncation
bullet_jaune_2 Logical types and vectors
bullet_jaune_3 Selecting bits and slices
bullet_jaune_3 Concatenating values
bullet_jaune_3 Resolving types
bullet_jaune_2 Integer and fixed point types
Modeling by refining models
bullet_jaune_2 Refining algorithms
bullet_jaune_3 Creating UnTimed Functional (UTF) models
bullet_jaune_3 Refining to Timed Functional (TF) models
bullet_jaune_3 Partitioning hardware and software
bullet_jaune_3 Adding timing annotations
bullet_jaune_2 Refinement policies
bullet_jaune_3 Refining structure
bullet_jaune_3 Refining data
bullet_jaune_3 Refining communications
bullet_jaune_2 Channel refinement
bullet_jaune_3 The adaptator concept
bullet_jaune_3 Building an adaptator
bullet_jaune_3 Creating a specialized event finder