La spécification au niveau système est un aspect important de l’évolution des méthodes et
des outils de conception des systèmes. Elle concerne les langages de spécification qui
Conclusion 33
lisent les concepteurs et les formes internes qui sont utilisées par les outils.
Une grande quantité de langages existe pour spécifier les systèmes. Ils proviennent de
do-maines industriels et de recherche différents : conception VLSI, protocoles, systèmes réactifs,
programmation (parallèle ou non), notations algébriques, etc... Chacun de ces langages est très
approprié dans un domaine d’application restreint. Evidemment, les langages sont aussi choisis
pour leur qualité de modélisation, de puissance d’expression, de convivialité, etc.. Les
expé-riences ont montré que dans le domaine des langages de spécification, il n’y a pas de langage
unique et universel qui pourrait supporter la modélisation de tous les types d’applications. La
conception des systèmes hétérogènes peut recourir à l’utilisation de plusieurs langages de
spé-cification au vue d’une conception des différentes parties d’un système. Le point clé dans ce
cas est la validation multilangage, la cosimulation et l’interfaçage des modules entre eux. Tout
porte à croire que dans le futur, la conception multilangage va se développer et couvrir de
mul-tiples langages de spécification des systèmes. Elle permettra peut être d’allier l’utilisation de
différents langages et la coopération d’équipes spécialisées pour obtenir plus facilement et plus
rapidement la conception de très grands systèmes hétérogènes. En parallèle à ces
méthodolo-gies de conception, les outils de validation multilangage permettront de vérifier la cohérence
des différentes modélisations à chaque étape du flot de conception.
Chapitre 2
L
A COSIMULATION
La cosimulation est née de l’émergence des outils de co-conception. Sa toute première
fonc-tion était de réaliser la simulafonc-tion mixte des systèmes logiciels et matériels. En effet, la
cosimu-lation permet la validation fonctionnelle du système complet avant son implémentation. Cette
étape de validation peut intervenir à différents moments lors du raffinement du système ou du
processus de co-conception. Ce chapitre présente la cosimulation et insiste plus
particulière-ment sur ses intérêts, les techniques utilisées, les outils existants et les difficultés qui lui sont
inhérentes.
2.1 Introduction à la Cosimulation
Les méthodologies modernes de conception de systèmes peuvent induire l’utilisation de
plu-sieurs langages dans la spécification des différentes parties du système. Au cours d’un processus
de co-conception, une partie du système spécifié ou son ensemble sont raffinés à l’aide d’outils
spécifiques. A certaines étapes du processus, il est nécessaire de vérifier la conformité
fonction-nelle du système obtenu. Pour cela, le concepteur doit avoir recours à des outils de validation
tels que la cosimulation qui permet de vérifier l’exécution parallèle des sous-systèmes
commu-nicants. Elle constitue ainsi, une approche incontournable pour la vérification des résultats de
sortie des outils de co-conception à tous les niveaux d’abstraction.
2.1.1 Définition de la Cosimulation
La cosimulation d’un système réside en la simulation conjointe de l’ensemble de ses
sous-systèmes. Chaque sous-système est décrit dans un langage qui lui est propre. Ces sous-systèmes
peuvent être décrits par des équipes de conception séparées et à des niveaux d’abstraction
dif-férents. Ainsi, de par la cosimulation, il est possible de simuler l’ensemble du système en
co-ordonnant et en échangeant les données calculées et interprétées par chaque sous-système. Elle
doit faire face aux problèmes de coordination et de synchronisation et doit permettre d’obtenir
un résultat qui ne doit pas changer la fonctionnalité de la future implémentation du système.
2.1.2 Motivations de l’Utilisation de la Cosimulation
L’introduction sur le marché des outils de co-conception a engendré les premières
motiva-tions de l’utilisation des outils de cosimulation. Traditionnellement, dans le flot de conception
La Cosimulation dans le Flot de Conception 35
d’un système hétérogène, la validation est bien souvent réalisée de manière tardive. Elle est, la
plupart du temps, accomplie une fois que le prototype est disponible, via l’utilisation des
émula-teurs ou d’autres techniques [KKR94][Cha96]. Néanmoins, il est observé que plus la validation
d’un système intervient tôt dans le flot de conception, plus vite l’erreur sera corrigée [CHP95].
De plus, la complexité des systèmes s’est accrue, entraînant un risque d’erreurs de conception
grandissant. C’est pourquoi, pour une nécessité de coût de validation, la cosimulation a pris son
importance.
La validation d’un système complet peut nécessiter une validation conjointe ou partielle des
modules qui le constituent. Un concepteur peut avoir besoin de valider une partie d’un système
sans se soucier du reste de l’application. Ceci peut notamment être intéressant si le système est
conçu par des équipes de développement distinctes. Les parties interdépendantes nécessitant
un développement rapide peuvent être très tôt validées conjointement. Simultanément, un autre
groupe peut développer les parties plus complexes, qui seront validées ultérieurement.
D’autre part, afin de minimiser le coût de conception d’un système, les phases de
proto-typage doivent être évitées le plus possible. Il est vrai que l’émulation est une alternative qui
permet d’enrayer les coûts liés au prototypage. Cependant, elle impose de prendre le même
support d’implémentation (processeur identique, carte modèle de base) et sa mise en oeuvre est
parfois trop longue.
La simulation est de loin la solution la moins coûteuse en dépit d’un temps de simulation
conséquent.
En conséquence, des solutions comme la cosimulation présentent des avantages à condition
que leur mise en oIJeuvre soit relativement aisée.
Dans le document
Cosimulation multiniveaux dans un flot de conception multilangage
(Page 34-37)