• Aucun résultat trouvé

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.