What is SystemC ? (2)

00:11:14
https://www.youtube.com/watch?v=GShQDSLQdus

Sintesi

TLDRThis video outlines SystemC as a C++ library designed for modeling hybrid hardware and software systems efficiently. Unlike traditional hardware description languages like VHDL and Verilog, SystemC emphasizes concurrent programming, allows for higher-level abstraction in system design, and includes its own simulation capabilities. It was standardized in 2005 by Accellera and is widely used to address the complexities of modern electronic system design, enabling various levels of representation and flexible component reuse. The discussion includes details about its hierarchical structure, time management, and the introduction of new data types that aid in building realistic hardware models.

Punti di forza

  • 💻 SystemC is a library for C++ that aids in system modeling.
  • 🔄 It facilitates simultaneous hardware and software descriptions.
  • 🛠️ Standardized by Accellera, promoting industry usage.
  • 📊 Allows high-level abstraction in design processes.
  • ⏳ Integrated time management for real system simulations.
  • 🔧 Supports flexible data types crucial for hardware.
  • 🗂️ Enables the reuse of previously designed components.
  • 🔌 Manages complex communication systems beyond simple signals.
  • 📡 Facilitates concurrent programming, essential for efficiency.
  • 🔍 Provides robust testing capabilities for verification.

Linea temporale

  • 00:00:00 - 00:05:00

    This video introduces SystemC, clarifying that it is not a standalone programming language but a C++ library designed for modeling both hardware and software systems. It is based on concurrent processes able to describe the structure and functioning of both aspects. SystemC was standardized in 2005 by the Accellera organization, which promotes industrial standards for electronic system design. Notably, SystemC includes its event-based simulator, negating the need for external simulation tools.

  • 00:05:00 - 00:11:14

    The discussion continues with the objectives of SystemC, addressing complexity in digital system design through high-level abstraction. It emphasizes the importance of reusing descriptions of pre-designed components and ensuring the verification of interactions between software and hardware. The video highlights that SystemC expands upon C++ features to accommodate hardware specifics, integrating time representation, various data types, and hierarchical structures to model complex systems more effectively.

Mappa mentale

Video Domande e Risposte

  • What is SystemC?

    SystemC is a C++ library used for modeling hardware and software systems, rather than a standalone programming language.

  • How does SystemC differ from VHDL and Verilog?

    SystemC allows for a higher level of abstraction and integrates both hardware and software modeling, while VHDL and Verilog are primarily focused on hardware.

  • What is the purpose of SystemC?

    SystemC aims to tackle the complexity of designing digital systems by providing high-level modeling and simulation capabilities.

  • Who standardizes SystemC?

    SystemC was standardized by Accellera, a non-profit organization promoting industrial standards for electronic system design.

  • Does SystemC have its own simulator?

    Yes, SystemC includes its own event-based simulator.

  • What programming paradigm does SystemC support?

    SystemC supports concurrent programming, which is essential for modeling real electronic systems.

  • What types of data does SystemC handle?

    SystemC includes specific data types for flexible integers and fixed-point representation, among others.

  • Can SystemC model complex communication systems?

    Yes, SystemC can model complex communication systems beyond simple signals.

  • What is the role of Accellera in relation to SystemC?

    Accellera is responsible for the development and promotion of the SystemC standard.

  • How does the concurrency work in SystemC?

    Concurrency in SystemC is implemented through independent processes managed by the simulation kernel.

Visualizza altre sintesi video

Ottenete l'accesso immediato ai riassunti gratuiti dei video di YouTube grazie all'intelligenza artificiale!
Sottotitoli
fr
Scorrimento automatico:
  • 00:00:00
    bonjour à tous dans cette nouvelle vidéo
  • 00:00:03
    nous allons découvrir ce qu'est système
  • 00:00:06
    c'est tout d'abord lorsqu'on évoque
  • 00:00:10
    système c on entend souvent qu'il s'agit
  • 00:00:13
    d'un langage de description matériel
  • 00:00:14
    comme le vhdl ou le verilog en réalité
  • 00:00:18
    ce n'est pas exact système c'est en fait
  • 00:00:21
    n'est pas un langage à part entière mais
  • 00:00:24
    une bibliothèque comprenant des classes
  • 00:00:26
    c++ qui permettent d'assurer
  • 00:00:28
    conjointement la modélisation de
  • 00:00:30
    systèmes logiciels et matériels systèmes
  • 00:00:33
    c est basée en fait sur des processus
  • 00:00:36
    concurrents et communiquant entre eux
  • 00:00:38
    qu'ils vont être capables de décrire la
  • 00:00:41
    structure où le fonctionnement des
  • 00:00:42
    parties matérielles et logicielles d'un
  • 00:00:44
    objet la bibliothèque système c est basé
  • 00:00:47
    sur le langage c++ et possède donc
  • 00:00:50
    exactement la même syntaxe
  • 00:00:53
    d'autre part elle conserve également
  • 00:00:54
    toutes les propriétés du c++ tout en
  • 00:00:57
    ajoutant de nouvelles fonctionnalités en
  • 00:01:01
    2005 systems ses a été standardisés
  • 00:01:03
    auprès de l'organisme mis trois heures
  • 00:01:05
    sous le nom de yf 3666 depuis 2011
  • 00:01:10
    le développement et la diffusion de ce
  • 00:01:12
    standard sont réalisés par axelera
  • 00:01:14
    axelera c'est en réalité une
  • 00:01:17
    organisation à but non lucratif dont
  • 00:01:20
    l'objectif est de développer et de
  • 00:01:21
    promouvoir des standards industriels
  • 00:01:23
    pour la conception et la modélisation de
  • 00:01:26
    systèmes électroniques
  • 00:01:27
    un autre point très important et que
  • 00:01:31
    système c'est intègre également la
  • 00:01:32
    possibilité de simuler la description
  • 00:01:35
    réaliser puisqu'il intègre en son sein
  • 00:01:37
    son propre simulateur qui est un
  • 00:01:39
    simulateur événementiel nous aurons bien
  • 00:01:43
    sûr l'occasion de revenir sur ce point
  • 00:01:44
    dans d'autres vidéos et ce qui est
  • 00:01:46
    important de retenir à présent et qu'il
  • 00:01:48
    n'y a pas besoin de recourir à d'autres
  • 00:01:50
    outils de simulation pour mettre en
  • 00:01:52
    oeuvre ce système c'est la diapositive
  • 00:01:56
    suivante montre l'utilisation de
  • 00:01:59
    différents langages ou outils permettant
  • 00:02:01
    de concevoir ou de tester des circuits
  • 00:02:04
    numériques
  • 00:02:05
    l'acce désordonnée
  • 00:02:07
    présente les différentes étapes de
  • 00:02:09
    conception d'un système qui vont de
  • 00:02:10
    l'expression des exigences à la
  • 00:02:14
    description de circuit au niveau
  • 00:02:16
    transistors si on part du bas de l'axé
  • 00:02:20
    des ordonnées et que l'on monte sur cet
  • 00:02:22
    axe nous suivons une augmentation du
  • 00:02:25
    degré d'abstraction de la modélisation
  • 00:02:26
    nous voyons par exemple qu'un langage de
  • 00:02:29
    description matériel comme le very log
  • 00:02:31
    peut être utile pour décrire et tester
  • 00:02:34
    des circuits au niveau portes logiques
  • 00:02:35
    ou rtl tout en permettant la description
  • 00:02:39
    de test ces derniers ont pour objectif
  • 00:02:41
    de valider le comportement des circuits
  • 00:02:43
    des cris et vérifier que le résultat
  • 00:02:45
    qu'ils délivrent et bien conforme aux
  • 00:02:48
    spécifications langage vhdl quant à lui
  • 00:02:52
    travaille à peu près sur les mêmes
  • 00:02:53
    niveaux d'abstraction
  • 00:02:55
    c'est à dire au niveau portent haut
  • 00:02:57
    niveau rtl et au niveau test il peut
  • 00:03:00
    également décrire une architecture au
  • 00:03:02
    niveau comportemental c'est à dire un
  • 00:03:04
    niveau plus algorithmique en ne
  • 00:03:06
    s'intéressant qu'on fonctionnement du
  • 00:03:07
    circuit et non à sa structure
  • 00:03:10
    le système verilog est lui plus récent
  • 00:03:12
    et il est basé sur une extension de
  • 00:03:14
    verilog il est notamment utilisé
  • 00:03:16
    massivement pour la vérification de
  • 00:03:19
    systèmes numériques et réponses reposent
  • 00:03:21
    sur des techniques de programmation
  • 00:03:22
    orienté objet très proche de java
  • 00:03:26
    rappelons ici que la vérification d'un
  • 00:03:27
    système peut être vue comme la
  • 00:03:29
    confirmation que les sorties d'un
  • 00:03:31
    système sont bien conformes à ce qu'on
  • 00:03:33
    attend en appliquant les données
  • 00:03:35
    précises en entrée du système system ce
  • 00:03:39
    système s'est quant à lui permet en plus
  • 00:03:41
    de pouvoir assez facilement d'écrire des
  • 00:03:44
    spécifications de systèmes tout en
  • 00:03:46
    intégrant les aspects matériels et
  • 00:03:48
    logiciels au sein d'une même description
  • 00:03:51
    finalement des outils tels que matelas
  • 00:03:54
    par exemple ne sont utilisés que pour
  • 00:03:56
    décrire à très haut niveau le système et
  • 00:03:58
    ne permettent pas ou du moins pas très
  • 00:04:00
    facilement de décrire la structure où le
  • 00:04:02
    fonctionnement d'un circuit numérique
  • 00:04:06
    alors quels sont les objectifs de
  • 00:04:08
    système c je dirais qu un des premiers
  • 00:04:11
    objectifs de systèmes sais c'est de
  • 00:04:13
    faire face à la complexité de conception
  • 00:04:15
    de systèmes numériques notamment
  • 00:04:17
    nous l'avons déjà évoqué
  • 00:04:19
    l'idée de travailler avec des modèles
  • 00:04:21
    représentée à haut niveau d'abstraction
  • 00:04:23
    si l'on considère simplement le cas des
  • 00:04:26
    développeurs logiciels nous avons vu
  • 00:04:28
    qu'au fil du temps qui s'est réalisé une
  • 00:04:30
    transition entre le développement du
  • 00:04:32
    code assembleur très proche du matériel
  • 00:04:34
    vers des langages de plus haut niveau
  • 00:04:36
    comme le fortran lada ou plus récemment
  • 00:04:38
    le c++ ces langages s'appuie aujourd'hui
  • 00:04:41
    sur des compilateurs puissant capable de
  • 00:04:44
    réaliser presque automatiquement la
  • 00:04:46
    traduction d'un modèle abstrait vers des
  • 00:04:48
    instructions en langage machine la
  • 00:04:51
    programmation modulaire la programmation
  • 00:04:53
    orientée objet la programmation
  • 00:04:54
    génériques sont autant de tentatives
  • 00:04:56
    pour pallier le problème de complexité
  • 00:04:58
    de conception en ce qui concerne les
  • 00:05:01
    développeurs matériel ceux ci sont
  • 00:05:04
    passés de la description au niveau
  • 00:05:06
    portes logiques à l'aide de schémas des
  • 00:05:08
    deux langages de description matériel
  • 00:05:10
    comme vhdl ou verilog permettant de
  • 00:05:12
    décrire le comportement spécifique d'un
  • 00:05:14
    circuit à chaque fonds montant d'horloge
  • 00:05:18
    plus récemment il est devenu nécessaire
  • 00:05:20
    de se focaliser sur le comportement du
  • 00:05:23
    système tout en s'appuyant sur des
  • 00:05:25
    outils là aussi très puissant permettant
  • 00:05:27
    de réaliser une synthèse de circuit à
  • 00:05:29
    partir d'une description très abstraite
  • 00:05:32
    un autre objectif de systèmes cc de fa
  • 00:05:35
    faut favoriser la réutilisation de
  • 00:05:37
    description c'est à dire d'exploiter la
  • 00:05:39
    description de composants préalablement
  • 00:05:41
    conçu afin de faciliter la conception de
  • 00:05:44
    nouveaux composants ceci n'est possible
  • 00:05:47
    que si l'on décrit les composants de
  • 00:05:49
    manière générique et de manière
  • 00:05:50
    suffisamment flexibles un autre point
  • 00:05:54
    important est celui de la vérification
  • 00:05:56
    celle ci consiste à vérifier
  • 00:05:59
    l'interaction entre les parties logiciel
  • 00:06:01
    d'une part et les parties matérielles
  • 00:06:02
    d'autre part
  • 00:06:05
    ces parties du circuit avant leur
  • 00:06:08
    production nous verrons que cet aspect
  • 00:06:11
    est traité dans une méthodologie appelé
  • 00:06:13
    tlm qui est associé de très près à
  • 00:06:16
    système c'est un des derniers objectifs
  • 00:06:19
    de système c est finalement qu ils
  • 00:06:21
    soient libres et qu'ils puissent être
  • 00:06:23
    facilement accessibles et distribué de
  • 00:06:25
    manière à ce que son utilisation soit la
  • 00:06:27
    plus large possible
  • 00:06:29
    de plus ce standard de l'ennemi en
  • 00:06:31
    oeuvre dans la plupart des outils de
  • 00:06:33
    conception de systèmes numériques
  • 00:06:34
    aujourd'hui nous avons eus précédemment
  • 00:06:40
    que système c était une bibliothèque de
  • 00:06:43
    c++
  • 00:06:44
    la question qu'on peut se poser alors
  • 00:06:46
    est pourquoi système sté et qu'apporte
  • 00:06:49
    système c'est par rapport aux c'est plus
  • 00:06:51
    plus en réalité c++ est un langage
  • 00:06:54
    logiciel de programmation qui n'a pas
  • 00:06:57
    été pensé pour la description matériel à
  • 00:07:00
    titre d'exemple la concurrence qui est
  • 00:07:03
    un principe essentiel pour la
  • 00:07:05
    description de systèmes matériels n'est
  • 00:07:07
    pas mise en oeuvre en c++ la concurrence
  • 00:07:10
    elle a pour objectif de décrire le
  • 00:07:12
    fonctionnement d'un système électronique
  • 00:07:13
    réel dans lequel toutes les fonctions ou
  • 00:07:16
    composants s'exécute simultanément c++
  • 00:07:21
    lui c'est un langage de programmation
  • 00:07:22
    non purement séquentielle dans lequel
  • 00:07:25
    les instructions s'exécute les unes à la
  • 00:07:27
    suite des autres et ne peut donc pas
  • 00:07:29
    décrire un fonctionnement concurrents
  • 00:07:31
    par nature d'autre part c++ ne possède
  • 00:07:35
    pas de notion de temps permettant de
  • 00:07:37
    modéliser le comportement temporel d'un
  • 00:07:40
    système matériel
  • 00:07:42
    finalement un certain nombre de
  • 00:07:44
    structures de données sont également
  • 00:07:45
    manquantes en c++ pour décrire finement
  • 00:07:48
    la réalité d'un circuit matériel il
  • 00:07:51
    n'existe pas par exemple de notation
  • 00:07:54
    pour coder des données en virgule fixe
  • 00:07:55
    ou pour travailler au niveau bits ou
  • 00:07:57
    encore pour prendre en compte l'état aux
  • 00:07:59
    tempes et danse d'un bus d'un bus
  • 00:08:01
    physique par exemple système c'est va
  • 00:08:05
    donc profiter de tous les avantages de
  • 00:08:07
    c++ qui vont être notamment utilisée
  • 00:08:09
    pour modéliser
  • 00:08:10
    les aspects logiciels mais il va en plus
  • 00:08:13
    ajouter de nouvelles fonctionnalités
  • 00:08:15
    pour prendre en compte les
  • 00:08:16
    particularités du matériel c'est en gros
  • 00:08:18
    une espèce de ses plus plus plus plus
  • 00:08:24
    si l'on résume système c'est une
  • 00:08:27
    bibliothèque donc c++ qui fournit des
  • 00:08:29
    éléments de base à la modélisation de
  • 00:08:31
    systèmes matériels
  • 00:08:32
    il possède également son propre noyau de
  • 00:08:35
    simulations basées sur des événements si
  • 00:08:38
    l'on rentre maintenant un petit peu plus
  • 00:08:40
    dans le détail je dirais que système c
  • 00:08:42
    fournit notamment des modèles pour
  • 00:08:44
    représenter le temps ce temps est
  • 00:08:47
    intégré directement dans le noyau de
  • 00:08:49
    simulation système s'est fourni alors
  • 00:08:52
    des mécanismes pour obtenir le temps
  • 00:08:54
    courant ou pour la simulation et
  • 00:08:56
    modéliser des retards ou latence
  • 00:08:58
    spécifique ce qui peut être utilisée
  • 00:09:00
    pour modéliser le temps de propagation
  • 00:09:02
    d'une information dans le matériel par
  • 00:09:05
    exemple nous verrons qu'il existe
  • 00:09:07
    notamment un type spécifique permettant
  • 00:09:10
    de gérer les horloges qui sont des
  • 00:09:12
    éléments essentiels dans les systèmes
  • 00:09:13
    numériques
  • 00:09:15
    un autre aspect essentiel concerne
  • 00:09:18
    l'ajout d'un certain nombre de types de
  • 00:09:19
    données qui sont requis pour la
  • 00:09:21
    modélisation de systèmes matériels
  • 00:09:22
    on trouvera notamment des types
  • 00:09:25
    permettant de gérer des entier avec des
  • 00:09:27
    dimensions flexible mais également des
  • 00:09:29
    classes permettant de représenter des
  • 00:09:31
    nombres réels dans un codage fixe par
  • 00:09:33
    exemple ce qui n'existe pas en c++
  • 00:09:35
    encore une fois d'autre part nous
  • 00:09:38
    trouverons des types spécifiques
  • 00:09:39
    permettant de gérer des éléments
  • 00:09:41
    logiques ou pour plus proche du matériel
  • 00:09:44
    ainsi que différentes méthodes
  • 00:09:46
    permettant de convertir les différents
  • 00:09:48
    objets dans différentes formes
  • 00:09:50
    en ce qui concerne la structure et la
  • 00:09:52
    hiérarchie système s'est fourni des
  • 00:09:54
    éléments permettant de mettre en oeuvre
  • 00:09:56
    un système de manière complètement
  • 00:09:58
    hiérarchique composée de blocs
  • 00:10:00
    interconnecté avec des fils ou des
  • 00:10:03
    canaux de communication plus
  • 00:10:04
    généralement la communication est
  • 00:10:07
    également gérée par des mécanismes mis
  • 00:10:09
    en oeuvre en système c'est qu'ils vont
  • 00:10:11
    généraliser le concept de signal qui est
  • 00:10:13
    très utilisé dans les langages de
  • 00:10:15
    description matériel il sera notamment
  • 00:10:17
    possible de modéliser des systèmes de
  • 00:10:19
    communication
  • 00:10:20
    beaucoup plus complexe qu'un simple
  • 00:10:22
    signal comme des buses des réseaux etc
  • 00:10:25
    nous verrons également que le système
  • 00:10:27
    c'est propose des mécanismes permettant
  • 00:10:30
    de synchroniser les fonctions communes
  • 00:10:32
    aux logiciels et aux matériels nous
  • 00:10:34
    étudierons notamment le concept de mutex
  • 00:10:36
    de sémaphore ou de fifo qui sont
  • 00:10:39
    directement intégrés dans la
  • 00:10:40
    bibliothèque système c'est finalement ne
  • 00:10:44
    verront que la concurrence sur un mise
  • 00:10:45
    en oeuvre en système c'est sous la forme
  • 00:10:47
    de processus indépendant et exécuté par
  • 00:10:49
    le noyau de simulation directement en
  • 00:10:52
    d'autres termes le noyau de simulation
  • 00:10:54
    utilisera un modèle multitâche
  • 00:10:57
    permettant de modéliser à la fois le
  • 00:10:59
    comportement d'un dispositif matériel
  • 00:11:01
    mais également celui d'un dispositif
  • 00:11:03
    logiciel
  • 00:11:05
    voilà j'en ai terminé pour cette vidéo
  • 00:11:08
    je vous remercie d'avoir pris le temps
  • 00:11:10
    de la regarder et je vous dis à très
  • 00:11:11
    bientôt
Tag
  • SystemC
  • C++
  • Hardware Description
  • Modeling
  • Simulation
  • Digital Systems
  • Accellera
  • Concurrency
  • Data Types
  • Design Standards