Chapitre 2 : LES ARCHITECTURES MULTIPROCESSEUR MONOPUCE : DE LA
4. Les outils de conception utilisés dans le flot de conception des SoCs
4.2 Environnement Simulink
Simulink est basé sur l’environnement Matlab. C’est l’un des outils le plus
populaire utilisé pour la modélisation et la simulation des systèmes. La première version
était réalisée en 1989 pour la conception et l’analyse des systèmes de contrôle.
Aujourd’hui, cet outil est utilisé pour modéliser et simuler des applications appartenant à
différents domaines (traitement de signal, système mécanique, électronique) dans un
environnement temps réel. Simulink fourni une interface graphique pour la modélisation
des systèmes dynamiques sous forme de schémas blocs, ainsi qu’une machine
d’exécution permettant la simulation de ces modèles.
Ce logiciel offre de nombreuses fonctionnalités :
- une approche reposant sur les signaux,
- un grand nombre de modèles prédéfinis, sous forme de composants intégrés
dans des boites à outils,
- un langage de programmation spécifique qui permet de définir de nouveaux
composants,
- enfin, la possibilité d’encapsuler des modèles les uns dans les autres
4.2.1 La communication entre les blocs de Simulink
Les communications entre les blocs d’un système décrit sous Simulink sont modélisées
par des arcs orientés. Un arc assure la connexion entre un bloc émetteur et plusieurs blocs
récepteurs. Cet arc réalise une fonction de transmission des données qui peuvent être une
valeur ou un vecteur de taille défini. Un système Simulink peut utiliser l’environnement
Matlab dans sa modélisation. Il peut alors communiquer des données à l’espace de travail
de Matlab. L’échange de données entre Simulink et l’espace de travail Matlab peut se
faire à l’aide de variables communes ou par l’intermédiaire des fichiers Matlab.
4.2.2 Moteur de simulation du modèle fonctionnel
L’environnement d’exécution dépend de la nature du solutionneur utilisé dans
Simulink. Cet environnement permet l’échange des différentes valeurs de sorties entre les
différents blocs. Deux phases d’exécution sont nécessaires pour réaliser cet échange : la
phase d’initialisation et la phase d’exécution. La phase d’initialisation est faite pour tous
les blocs en même temps et leur exécution suit un algorithme dépendant du solutionneur
utilisé. Elle comprend les actions suivantes:
- Evaluation des expressions des paramètres des blocs.
- Mise à plat de la hiérarchie des modèles.
- Détermination de l’ordre de la mise à jour des blocs (phase de tri).
- Détermination des attributs des signaux et vérification de la concordance entre
signaux.
- Détermination du temps d’échantillonnage pour les blocs n’ayant pas cette
spécification.
- Allocation et initialisation de la mémoire utilisée pour sauvegarder les états et
les sorties de chaque bloc.
La phase d’exécution comprend les actions suivantes :
- Le calcul successif des états et des sorties du système à des intervalles, du
début de la simulation à sa fin.
Phase d’initialisation
Phase d’initialisation
Calcul du temps des bloques ayant un temps d’échantillonnage variable
Calcul du temps des bloques ayant un temps d’échantillonnage variable
Calcul des sorties
Calcul des sorties
Mise à jour des états discrets
Mise à jour des états discrets
Calcul des derivées
Calcul des derivées
Calcul des sorties
Calcul des sorties
Calcul des dérivativées
Calcul des dérivativées
Localisation « Zero crossing »
Localisation « Zero crossing »
Remise à zéro: Etape finale Intégration (temps mineur) E ta p e d e S im u la ti o n Phase d’initialisation Phase d’initialisation
Calcul du temps des bloques ayant un temps d’échantillonnage variable
Calcul du temps des bloques ayant un temps d’échantillonnage variable
Mise à jour des états discrets
Mise à jour des états discrets
Calcul des sorties
Calcul des sorties
E ta p e d e S im u la ti o n Remise à zéro: Etape finale Phase d’initialisation Phase d’initialisation
Calcul du temps des bloques ayant un temps d’échantillonnage variable
Calcul du temps des bloques ayant un temps d’échantillonnage variable
Calcul des sorties
Calcul des sorties
Mise à jour des états discrets
Mise à jour des états discrets
Calcul des derivées
Calcul des derivées
Calcul des sorties
Calcul des sorties
Calcul des dérivativées
Calcul des dérivativées
Localisation « Zero crossing »
Localisation « Zero crossing »
Remise à zéro: Etape finale Intégration (temps mineur) E ta p e d e S im u la ti o n Phase d’initialisation Phase d’initialisation
Calcul du temps des bloques ayant un temps d’échantillonnage variable
Calcul du temps des bloques ayant un temps d’échantillonnage variable
Mise à jour des états discrets
Mise à jour des états discrets
Calcul des sorties
Calcul des sorties
E ta p e d e S im u la ti o n Remise à zéro: Etape finale