Chapitre III
Conception matériel
Chapitre III conception matériel
III.1. Introduction :
La conception de systèmes à base de composants
apparaît bien établie dans le monde de l'électronique
où les ingénieurs ont toujours travaillé ainsi. Dans les
années 1980, une architecture matérielle est vue comme
l'interconnexion sur une carte (PCB pour Printed Circuit Board) de composants
sur étagère vendus dans des boîtiers séparés.
Ces composants sont vus comme des boîtes noires auxquelles les
constructeurs associent des documents (datasheets, notes d'application) pour en
préciser les fonctionnalités, les interfaces et les contraintes
d'utilisation. Une même carte regroupe généralement un
processeur, de la mémoire, des périphériques de taille
modeste et des circuits logiques. Ces derniers sont combinés soit pour
construire des circuits plus complexes, soit sous forme de «glu» pour
adapter les interfaces entre composants.
Dans les années 1990, les microcontrôleurs
intègrent dans un même boîtier un coeur de processeur, ses
périphériques et de la mémoire. La capacité
croissante des ASICs (Application Specific Integrated Circuits) autorise
l'implantation directement en matériel de fonctions complexes tandis que
les circuits logiques programmables (PLD) permettent de regrouper la
«glu» sur une même puce pour en réduire
l'encombrement.
A partir de 2000, un simple ASIC ou FPGA (Field-Programmable
Gate Array) peut contenir l'équivalent de plusieurs millions de portes
logiques, ce qui permet d'intégrer dans le même boîtier un
ou plusieurs coeurs de processeurs, des bus, de la mémoire et des
périphériques. L'ordre de complexité de ces
périphériques va d'un simple timer à un décodeur
vidéo complet.
Aussi, un effort important est fourni pour la
vérification des SoC en utilisant des représentations abstraites
du système et de ses composants. Compte tenu de la complexité en
nombre de portes des composants, cette vérification ne peut être
exhaustive et s'avère à son tour très coûteuse en
temps de développement. Les concepteurs de circuits combinent plusieurs
approches :
- l'optimisation et la génération automatique de
matériel à partir d'une modélisation de haut niveau du
système,
- la réutilisation de composants pour éviter de la
redondance dans la conception,
- l'utilisation de techniques de simulation et de
vérification formelle afin de s'assurer que les modèles sont
consistants par rapport aux spécifications.
III.2 Modéliser et synthétiser à
un haut niveau d'abstraction :
Un flot typique de conception de matériel suit une
progression descendante faite d'une succession d'étapes qui enrichissent
la vision abstraite du système. Le diagramme en Y, proposé par
Gajski et Kuhn, donne une vision synthétique des domaines de conception
et des niveaux d'abstraction sous lesquels un circuit peut se présenter
au cours de son développement. Les trois domaines proposés sont
le domaine comportemental, dans lequel on s'intéresse aux
propriétés dynamiques du fonctionnement d'un système ; le
domaine structurel dans lequel un système est vu comme une
interconnexion de composants ; le domaine géométrique, ou
physique dans lequel on s'intéresse aux relations spatiales entre ces
composants sur le support cible (carte ou circuit intégré). Les
différents niveaux d'abstraction identifiés dans chacun de ces
domaines sont :
- le niveau architectural décrit les
fonctionnalités d'un système au niveau spécifications,
donne sa décomposition en sous-systèmes ainsi que ses contraintes
d'implantation physique ;
- le niveau algorithmique exprime des comportements de type
flot de données et/ou de contrôle en utilisant des modèles
hauts niveaux. La structure représente l'affectation des fonctions aux
ressources. Des informations géométriques sont exprimées
en terme de partitionnement en blocs sur un circuit intégré ou
une carte ;
- le niveau transfert de registres (RTL) exprime
l'ordonnancement au cycle d'horloge près des opérations et des
transferts de données. Pour l'aspect structurel, ces opérations
sont projetées sur des ressources matérielles
élémentaires (registres, opérateurs arithmétiques,
etc.) ;
- le niveau logique décrit le comportement sous forme
d'équations booléennes, qui peuvent elles mêmes se traduire
sous la forme d'une interconnexion de portes logiques d'une part, et d'autre
part de cellules élémentaires placées et routées
d'une bibliothèque technologique de type ASIC ;
- le niveau circuit modélise le comportement
électrique sous forme d'équations différentielles ou de
fonctions de transfert ; une représentation structurelle
décompose le circuit en une interconnexion de transistors et une
représentation géométrique détaille le placement et
le routage de ces transistors sur le substrat de silicium.
Cette décomposition en domaines et niveaux
d'abstraction conduit à une représentation commune des formes
sous lesquelles un système peut se présenter et des
transformations réalisables pour passer d'une représentation
à une autre. Les langages de description de matériel comme VHDL
ou Verilog autorisent des représentations combinant différents
niveaux et domaines, représentations sur lesquelles des outils
automatiques peuvent travailler à des fins d'analyse et de
synthèse. Les outils de synthèse matérielle
réalisent en fait l'équivalent de la «compilation», au
sens logiciel, en automatisant le raffinement d'une description de «haut
niveau» (par exemple une description comportementale au niveau RTL) en une
description de plus bas niveau (par exemple une description structurelle au
niveau logique).
Trois étapes de synthèse sont aujourd'hui
couramment utilisées dans l'industrie : synthèse RTL (du niveau
RTL comportemental vers le niveau logique structurel) ; synthèse logique
(optimisation au niveau logique structurel) et synthèse physique, ou
placement/routage (du niveau logique structurel vers le niveau logique ou
circuit dans le domaine géométrique). Ces étapes
s'enchaînent et les interventions du concepteur se limitent à
l'écriture de scripts qui précisent notamment les contraintes
à respecter. En amont de ces trois étapes, la synthèse de
haut niveau promet la génération automatique d'une description
RTL à partir d'une description du comportement au niveau algorithmique :
ces nouveaux outils qui émergent depuis quelques années sur le
marché de la CAO reposent sur l'ordonnancement automatique des
opérations et la synthèse d'un contrôleur adapté aux
performances souhaitées pour l'architecture matérielle de
sortie.
Chapitre III conception
matériel
|