III.3 Réutilisation de composants
matériels :
Les systèmes électroniques embarqués
actuels sont un mélange de technologies hétérogènes
(numérique /analogique, matériel/logiciel, orientation
contrôle/données) et de fonctionnalités complexes dont
certaines sont communes pour une famille de produits. La réutilisation
devient alors nécessaire pour éviter de multiples
implémentations de fonctionnalités identiques.
La réutilisation de composants matériels sur
étagère (composants en boîtiers) est une pratique courante
dans le domaine de la conception de systèmes sur cartes. Un composant
est une boîte noire conditionnée et interfacée de
manière standard. La documentation constructeur en détaille les
fonctionnalités et les conditions d'utilisation (chronogrammes des
entrées/sorties). Elle fournit également des notes d'application
avec des exemples de réalisation et des circuits de
référence.
III.3.1 Composants virtuels :
La notion de système sur circuit intégré
amène des changements majeurs sur cette définition du composant :
un composant ne recouvre plus un objet physique palpable mais se
présente sous la forme d'une unité de structuration abstraite
dont il n'est pas sûr qu'elle corresponde à une entité
physique distincte après fonderie. L'utilisation de langages de
description de matériel et d'outils de synthèse automatiques
devient ici incontournable. Rapidement, se pose le problématique de
concevoir, échanger et réutiliser de tels composants
(appelés composants virtuels ou IP cores pour Intellectual Property),
problématique nouvelle dans le monde du matériel mais
déjà rencontrée dans le monde du génie logiciel.
Comparée à la réutilisation de composants en
boîtiers, l'intégration d'un composant virtuel dans un
système introduit de nouveaux problèmes :
- Les standards d'interface (bus de communication) qui
régissaient la conception de cartes sont remis en question. Un composant
virtuel n'étant plus limité par les contraintes de packaging peut
être muni d'interfaces spécifiques, optimisées en fonction
du fonctionnement interne du composant. Pour permettre à deux composants
de collaborer le concepteur d'un système doit leur ajouter des couches
d'adaptation qui introduisent un surcoût en temps de développement
et une possible dégradation des performances.
- Les composants manipulés dans les flots de conception
sont des modèles fournis sous forme de fichiers sources (code
synthétisable écrit dans un langage de description de
matériel) ou ayant déjà subi les étapes de
synthèse logique et physique (netlists, masques prêt à
fondre). Les formats d'échange et la nature des informations
échangées entre concepteur et utilisateur d'un composant
conditionnent l'interopérabilité de leurs outils de conception
respectifs.
- La modélisation des composants à un haut
niveau d'abstraction permet une certaine flexibilité dans leur
conception. Il devient possible de les «personnaliser» à
différents niveaux (paramètres algorithmiques comme les nombres
de points d'une FFT, paramètres de performances comme le nombre
d'étages de pipeline, paramètres technologiques comme la
fréquence d'horloge). En revanche, les caractéristiques physiques
d'un composant (encombrement, consommation) sont d'autant moins
prédictibles qu'il est décrit à un haut niveau.
Chapitre III conception matériel
- Un dernier aspect des composants virtuels concerne la
protection de la propriété intellectuelle dans la mesure
où, selon le niveau d'abstraction de sa description, l'utilisateur
dispose d'une vue en boîte grise voire en boîte blanche qui
facilite la rétro-conception. A la différence des composants en
boîtiers dont il faut acheter autant d'exemplaires que de produits
à fabriquer, un composant virtuel peut être reproduit à
l'infini en toute illégalité. Une notion de licence d'utilisation
similaire à celles des produits logiciels s'applique aujourd'hui
également au matériel.
|