V3 SystemC

Conception et Simulation de systèmes en SystemC

Objectifs
  • Comprendre les avantage de la simulation système avec SystemC
  • Maitriser les différents niveaux de modélisation
    • Modèles transactionnels
    • Modèles du logiciel
    • Modèles du matériel
    • Modèles synthétisables
  • Modélisation du système:
    • UTF (UnTimed Functional model)
    • TF (Timed Functional model)
  • Modélisation du matériel:
    • BCA (Bus Cycle Accurate model)
    • PCA (Pin Cycle Accurate model)
Ce cours est accompagné de nombreux exercices réalisés en binômes et décrit la version 2.2 de SystemC
  • Un PC par binôme avec
    • Visual Studio 2005
    • SystemC-2.2
  • Connaissance de base du langage C++ (voir par exemple le cours L3 - C++)
  • Cours théorique
    • Support de cours au format PDF (en anglais) et une version imprimée lors des sessions en présentiel
    • Cours dispensé via le système de visioconférence Teams (si à distance)
    • Le formateur répond aux questions des stagiaires en direct pendant la formation et fournit une assistance technique et pédagogique
  • Au début de chaque demi-journée une période est réservée à une interaction avec les stagiaires pour s'assurer que le cours répond à leurs attentes et l'adapter si nécessaire
  • Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus.
  • Les prérequis indiqués ci-dessus sont évalués avant la formation par l'encadrement technique du stagiaire dans son entreprise, ou par le stagiaire lui-même dans le cas exceptionnel d'un stagiaire individuel.
  • Les progrès des stagiaires sont évalués par des quizz proposés en fin des sections pour vérifier que les stagiaires ont assimilé les points présentés
  • En fin de formation, une attestation et un certificat attestant que le stagiaire a suivi le cours avec succès.
    • En cas de problème dû à un manque de prérequis de la part du stagiaire, constaté lors de la formation, une formation différente ou complémentaire lui est proposée, en général pour conforter ses prérequis, en accord avec son responsable en entreprise le cas échéant.

Plan du cours

  • La programmation objet
    • Classes et objets
    • Attributs
  • Méthodes et opérateurs
    • Surcharge
    • Constructeurs et Destructeurs
    • Méthodes virtuelles
    • Références
    • Paramètres par défaut
  • Gestion de la mémoire
    • Les opérateurs new et delete
  • Les espaces de nommage
  • Les entrées/sorties standard
  • Templates de classes et de fonctions
    • Définition de templates
    • Contraintes
    • Instanciation automatique
    • Instanciation manuelle
  • Conversions entre types
    • Conversions implicites
    • Conversions définies par l'utilisateur
    • Opérateurs de copie et initialisations
    • Conversions montantes et descendantes (up cast/down cast)
  • Exceptions
  • Les bases de SystemC
    • Objectifs du langage
    • Historique
    • Avantages et inconvénients de SystemC
  • La modélisation au niveau des transactions (TLM)
  • Le flot de coception avec SystemC
    • Modèle algorithmique
    • Modèle TLM
    • Partitionnement matériel/logiciel
    • Synthèse directr ou traduction en HDL
    • Simulation des différents modèles
  • L'architecture de SystemC
    • Canaux de communication
    • Eléments de structure
    • Types de données
    • Moteur de simulation
  • Éléments de structure
    • Modules, Ports et Signaux
    • Canaux primitifs
  • Création de la structure
    • Instanciation des modules
    • Connexion des ports
  • Processus et gestion du temps
    • Méthodes et Threads
    • Evènements
    • Sensibilité statique ou dynamique
    • Temps et horloges
    • Processus dynamiques
  • Démarrage et arrêt de la simulation
  • Élaboration du modèle
    • Phases d'élaboration statique
    • Phases d'élaboration dynamique
    • Notion de chercheur d'évènement (event finder)
    • Callbacks d'élaboration
  • Les phases de simulation
    • Notifications d'évènements
    • Attentes sur évènement et triggers
    • Files d'évènements
  • Techniques de debug
    • Affichages et traces
    • Gestion d'erreurs
    • Trace de signaux cachés et de variables
  • Modèles Bus Cycle Accurate et Pin Cycle Accurate
  • Modélisation des bus
    • Interfaces et canaux de communication
    • Interfaces maîtres et esclaves
    • Méthodes d'interface (bloquantes et non-bloquantes)
    • Utilisation d'évènements dans les canaux
    • Sensibilité dynamique pour un canal
  • Modélisation de bus multi-ports
    • Politiques de conexion de ports
  • Modèles précis au niveau bit
    • Types de données totalement spécifiés
    • Affectation et troncature
  • Types logiques et vecteurs
    • Sélection de bits et de tranches
    • Concaténation de types
    • Résolution de types
  • Types entiers et virgule fixe
  • Raffinement d'algorithmes
    • Utilisation de modèles UTF puis TF avant partitionnement matériel/logiciel
    • Annotations de timings
  • Différentes méthodes de raffinement
    • Raffiner la structure
    • Raffiner les données
    • Raffiner les communications
  • Raffinement des canaux
    • Le concept d'adaptateur
    • Réalisation d'un adaptateur
    • Création d'un event finder spécialisé