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