Vous êtes sur la page 1sur 58

Conception & Modlisation des CI

numriques par le langage VHDL


Vhsic Hardware Description Language
Vhsic : Very High Speed Integrated Circuit
Langage de description de systmes matriels
FSDM Fs MME
Pr. Rachid El Alami
rachid.elalami@usmba.ac.ma
Objectifs
1. Introduire les concepts de modlisation et le
flot de conception des CI
2. Prsentation des lments de langage VHDL
3. Machine tat fini (FSM)
4. VHDL & Synthse
5. Implmentation FPGA
21/10/2014 11:04 R. EL ALAMI 2
1. Introduction
En analysant lvolution de la production industrielle dASICS
(Application Specific IntegratedCircuit = circuit la demande ou
circuit spcifique) ou de FPGA ( Field Programmable Gate Array), on
constate que ceux-ci, bnficiant des progrs technologiques, sont
de plus en plus complexes.
On sait intgrer lheure actuelle sur silicium des millions de portes
pouvant fonctionner des frquences suprieures 1 GHz .
On parle beaucoup de SOC (System On a Chip) . En effet, plus de
80% des ASICS comporteront un ou plusieurs microprocesseurs,
21/10/2014 11:04 R. EL ALAMI 3
1. Introduction
si on considre quun ingnieur confirm valide 100 portes par jour, il
lui faudrait 500 ans pour un projet de 12 millions de portes et ceci
pour un cot de dizaines de millions de dollars,
Ceci parait totalement absurde et si cest pourtant ralisable cela est
uniquement d lvolution des mthodes de CAO (quipes
travaillent en parallle) intgrant en particulier la rutilisation efficace
dun savoir antrieur.
21/10/2014 11:04 R. EL ALAMI 4
1. Introduction
1.1. Les systmes numriques
Utilisation dans diffrents secteurs industriels
Tlcoms
Aronautique
Automobile
Construction lectrique
Transport ferroviaire
Cartes puce ( et RFID)
Les CI numriques remplacent plusieurs circuits analogiques
Audio recording: fromtape to music CD to MP3 player
Image processing: fromsilver-halide film to digital camera
Avantages des systmes numriques
Reproduction de linformation
Flexibilit et fonctionnalit : stockage facile, transmission et
manipulation de linformation.
21/10/2014 11:04 R. EL ALAMI 5
Rduire le temps de prototypage --> time-to-market
Rduire le cot de production
Faible consommation de puissance
Taille rduite du systme
Fiabilit
1. Introduction
1.2. Motivations
21/10/2014 11:04 R. EL ALAMI 6
Un HDL, quest ce que c'est ?
moyen de dcrire un systme matriel :
Quest quun systme matriel ?
en gnral, il sagit dun schma mettant en uvre :
un certain nombre de composants
des connexions entre composants
1. Introduction
1.3. Introduction la modlisation hardware
21/10/2014 11:04 R. EL ALAMI 7
Rpondre une spcification par une structure ralisable
sur un circuit lectronique.
Les niveaux de description peuvent tre variables:
Niveau logique
Niveau transfert de registre RTL
Niveau systme : comportement du circuit
1. Introduction
1.3. Introduction la modlisation hardware
21/10/2014 11:04 R. EL ALAMI 8
Un HDL, doit :
permettre la modlisation du systme :
formalisation du problme
partir de briques de base
viter les descriptions ambigu
la validation du systme :
prouver le fonctionnement du systme dcrit
simulation
suivre la conception du systme :
si possible pas de changement de langage chaque tape de conception
1. Introduction
1.3. Introduction la modlisation hardware
21/10/2014 11:04 R. EL ALAMI 9
VHDL :
ne vise pas une excution, il est utilis pour :
la simulation
la synthse
la spcification
1. Introduction
1.3. Introduction la modlisation hardware
21/10/2014 11:04 R. EL ALAMI 10
la brique de base est le composant ou l'entit :
tout systme est bti partir de cette brique.
dans les langages de programmation les briques de base sont les
procdures et les fonctions :
la procdure est appele puis oublie :
activation explicite
le composant existe en soi :
activation implicite par vnements sur ses entres
1. Introduction
1.3. Introduction la modlisation hardware
21/10/2014 11:04 R. EL ALAMI 11
main()
{
...
resultat = Factorielle(x)

}
Factorielle
X resultat
fonctionnement concurrent des composants :
si a et b voluent en mme temps, alors les composants c1 et c2 ont
un fonctionnement parallle (concurrent)
notion de signal :
connexion des composants entre eux
la notion de temps est gre :
prise en compte des contraintes rel du matriel :
temps de traverse,
de calcul,
etc.
1. Introduction
1.3. Introduction la modlisation hardware
21/10/2014 11:04 R. EL ALAMI 12
C1
a s1
C2
b s2
C3
s3
C4
Les avantages de VHDL :
indpendant du constructeur
indpendant de la technologie
indpendant de la dmarche
indpendant du niveau de conception
Standard IEEE :
reconnu par les vendeurs doutils CAO
grand nombres de bibliothques :
doprateurs
de composants
de fonctions
nombreux outils :
compilateur, simulateur
mais aussi des outils de synthse et de spcification
1. Introduction
1.3. Introduction la modlisation hardware
21/10/2014 11:04 R. EL ALAMI 13
Portabilit
VHDL :
Langage moderne, puissant, gnral :
jeu dinstructions complet et trs riche
fort typage des donnes
compilation spare des entits
Dveloppement parallle facilit :
travail dquipe :
dcoupage en units de conception
dveloppement et validation parallle
ncessite de bien identifier les interfaces entre les blocs fonctionnels
Simulation du systme :
tous les niveaux :
cahier des charges !!!
modles
ralisation
1. Introduction
1.3. Introduction la modlisation hardware
21/10/2014 11:04 R. EL ALAMI 14
1. Introduction
1.3. Introduction la modlisation hardware
21/10/2014 11:04 R. EL ALAMI 15
VHDL
Equation
Synthse
C/C++/pascal
compilation
assembleur
mov al,a
Mov bl,b
Xor al,bl
Not al
Diffrence entre le langage C et VHDL :
La conception dun circuit intgr consiste rechercher
un modle vrifiant un ensemble de spcifications
gnralement exprimes en terme de fonction, de
performance, de consommation et de cot.
Conception : 4 phases importantes
Spcification : dfinitions du problme
Traduction logique : Modlisation et synthse
Implantation : Layout ou ralisation physique
Fabrication : physique du semi-conducteur
Deux dmarches de Conception
Ascendante
descendante
1. Introduction
1.4. Conception des systmes numriques
21/10/2014 11:04 R. EL ALAMI 16
1. Introduction
1.5. Dmarches et flot de conception
Spcification
Traduction logique
Implantation
Fabrication
Bottom-up Top-down
Dmarche
ascendante
Dmarche
descendante
Flot de conception des CI
21/10/2014 11:04 R. EL ALAMI 17
La mthode ascendante se base sur lexistence de modules (primitives
ou fonctions plus complexes) caractriss, cest--dire dont les fonctions
et les performances sont connues.
Une ralisation possible est alors construite par assemblage laide dun
processus de slection de modules.
La ralisation de circuits analogiques est rgie par la mthode
ascendante.
1.5.1. Dmarches de conception
1.5.1. 1. Dmarche ascendante
21/10/2014 11:04 R. EL ALAMI 18
Tous les circuits analogiques ont leurs performances dpendantes de
larchitecture dveloppe au niveau transistor.
Le comparateur, lamplificateur oprationnel, le multiplicateur sont par
exemple des composants dont les primitives sont disponibles dans les
bibliothques standards.
1.5.1. Dmarches de conception
1.5.1. 1. Dmarche ascendante
21/10/2014 11:04 R. EL ALAMI 19
Avantages
Utilisation optimale des fonctions existantes
Utilisation de cette dmarche lorsque le niveau est proche de celui du
silicium
Inconvnient
Dmarche indispensable mais insuffisante lorsque le systme concevoir
devient complexe (quelques millions de transistors)
Lorsque la diffrence entre le niveau de silicium et le niveau systme croit:
Lespace de conception croit
Nombre de paramtres augmente
1.5.1. Dmarches de conception
1.5.1. 1. Dmarche ascendante
21/10/2014 11:04 R. EL ALAMI 20
La mthode descendante est base sur une suite de raffinements
successifs partant dun cahier des charges, o sont dfinies les
spcifications du circuit, pour aboutir une description dtaille de la
ralisation.
Le cahier des charges dfinit le quoi , cest--dire principalement les
fonctions raliser et les conditions dans lesquelles ces fonctions
devront sexcuter.
A lautre bout du processus, la ralisation dcrit le comment , cest
dire la manire qui a t retenue pour fabriquer un circuit satisfaisant les
contraintes imposes par le cahier des charges.
Les mthodes descendantes sont bien adaptes la ralisation de
circuits dont la structure peut-tre optimise de manire trs flexible
partir dun ensemble de cellules standard ou de matrices de portes.
1.5.1. Dmarches de conception
1.5.1. 2. Dmarche descendante
21/10/2014 11:04 R. EL ALAMI 21
Cette dmarche est adapte pour le dveloppement de nouveaux
systmes sur les 3 niveaux :
Niveau systme
Description fonctionnelle du systme
Vues externes
comportements
Niveau transfert de registres
Fonctions et traitements raliser
Niveau logique
Prise en compte de contraintes complmentaires
Contraintes de temps
Fiabilit
Testabilit
1.5.1. Dmarches de conception
1.5.1. 2. Dmarche descendante
21/10/2014 11:04 R. EL ALAMI 22
Avantages
Possibilit de prendre en compte au fur et mesure les difficults tout en
sapprochant de plus en plus du silicium Rsolution progressive des
difficults
Dcomposition en sous-systmes tout en ayant dfinis prcdemment les
liaisons entre les systmes
Etude de sous-systmes en parallle par des quipes spcialises
Recherche dune indpendance vis--vis de la technologie vu ses
volutions
1.5.1. Dmarches de conception
1.5.1. 2. Dmarche descendante
21/10/2014 11:04 R. EL ALAMI 23
Intrt de VHDL dans la conception descendante
1.5.1. Dmarches de conception
1.5.1. 2. Dmarche descendante
21/10/2014 11:04 R. EL ALAMI 24
Dcoupage en units de conception :
Ces units peuvent tre compiles sparment
si la compilation est correcte alors les units sont places dans la
bibliothque de travail
Possibilit de partager les bibliothques de ressources
1.5.1. Dmarches de conception
1.5.1. 3. Organisation de la conception
21/10/2014 11:04 R. EL ALAMI 25
Bibliothques et librairies
A un instant donn, on travail avec la bibliothque de travail :
Le choix de cette bibliothque fait en dehors du langage VHDL
par une commande lie au systme de dveloppement
Il est possible dutiliser dautres bibliothques qui sont alors des
bibliothques de ressources,
les bibliothques WORK et STD sont inclues :
elles permettent la manipulation des "objets" standards
1.5.1. Dmarches de conception
1.5.1. 3. Organisation de la conception
21/10/2014 11:04 R. EL ALAMI 26
La recherche de modle vrifiant un ensemble de spcifications est
ralise squentiellement dans une hirarchie dabstractions :
Dans un premier temps, le concepteur traduit la description trs haut
niveau (gnralement formule en langage naturel) du circuit en un
langage de description matriel de haut niveau.
A ce niveau dabstraction (appel RTL pour Register Transfert
Level), le circuit est constitu de blocs combinatoires et dlments
de mmorisation.
Le concepteur raffine ensuite ce modle laide doutils de synthse
logique pour obtenir une description niveau portes du circuit, lequel
est alors considr comme une interconnexion de portes ralisant
des fonctions logiques lmentaires (comme des ET, des OU, des XOR,
etc...).
1. Introduction
1.5.2. Flot de conception
21/10/2014 11:04 R. EL ALAMI 27
En substituant ces portes par leur description niveau transistor
(pralablement conues dans les circuits cellules pr-
caractrises), le concepteur obtient la description niveau transistor
du circuit.
La dernire tape consiste positionner sur le silicium ces transistors
lors de la phase de placement-routage pour obtenir le modle
physique du composant.
La deuxime tape de conception consiste fabriquer le circuit.
Comme le processus de fabrication peut introduire des diffrences
entre le fonctionnement du circuit rel et son modle, le concepteur
doit vrifier pendant cette dernire tape, appele tape de
caractrisation, que le circuit vrifie bien les spcifications.
1. Introduction
1.5.2. Flot de conception
21/10/2014 11:04 R. EL ALAMI 28
1. Introduction
1.5.2. Flot de conception
21/10/2014 11:04 R. EL ALAMI 29
On observe le rle fdrateur du VHDL car il intervient au moins sur 3
niveaux:
celui de la description comportementale traduisant les spcifications :
synthse architecturale
celui du code RTL (Register Transfert Level) : synthse logique
et enfin au niveau technologique post-Layout cens reprsenter le
circuit vrai : simulation post-Layout
Ces trois types de description seront valides par une mme famille
de fichiers de test eux-mmes crits en VHDL.
1. Introduction
1.5.2. Flot de conception
21/10/2014 11:04 R. EL ALAMI 30
La description comportementale dfinit la fonction du
circuit sans dfinir les structures, ni les connexions entre
les lments.
Description au niveau RTL : dcrit larchitecture du circuit
sous forme de blocs logiques des milliers de lignes de
code pour un circuit complet.
1.5.2. Flot de conception
1.5.2.1. Synthse architecturale
21/10/2014 11:04 R. EL ALAMI 31
Synthse logique : 2 tapes
Optimisationdes quations logiques
Assignation technologique (TechnologyMapping) vers une cible
(par exemple, une bibliothque de cellules pr-caractriss.
Objectif : minimiser une fonction de cot lie la technologie
(surface, vitesse, puissance)
1.5.2. Flot de conception
1.5.2.2. Synthse logique
21/10/2014 11:04 R. EL ALAMI 32
A chaque niveau (RTL, porte, Layout) le circuit doit tre
vrifi :
Ralise-t-il la bonne fonction?
Fonctionne-t-il la bonne vitesse?
Deux type de vrification:
Dynamique : crer un prototype logiciel du circuit et le simuler,
Statique :
Niveau fonctionnel : prouver la bonne fonctionnalit du circuit
Niveau temporel : calculer la vitesse du circuit (timing analysis)
1.5.2. Flot de conception
1.5.2.3. Vrification
21/10/2014 11:04 R. EL ALAMI 33
La simulation permet de vrifier la conception : on modlise
le problme, on simule, on ne ralise pas de prototype,
La simulation peut tre longue : plusieurs jours de CPU,
Le circuit complet peut tre simul uniquement aux niveaux
de description les plus levs (simulateur Verilog/VHDL),
Dans certains cas les temps de simulation peuvent tre trop
long.
Les sous-composants (blocs) sont simuls au niveau porte
ou au niveau transistor.
1.5.2. Flot de conception
1.5.2.4. Simulation
21/10/2014 11:04 R. EL ALAMI 34
Synthse physique : 3 tapes
Synthse lectrique : niveau porte niveau transistor
Synthse topologique : niveau transistor niveau layout
Placement / routage : assemblage optimis des cellules (niveau
layout) layout complet du circuit
1.5.2. Flot de conception
1.5.2.5. Synthse physique
21/10/2014 11:04 R. EL ALAMI 35
Elles sont toujours constitues de 2 parties
Vu externe vue interne
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 36
Exemples
Composant vu externe vue interne
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 37
5 units de conception disponible en VHDL :
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 38
Spcification dentit :
Dfinit la vue externe :
Description des entres et des
sorties de la structure en
explicitant pour chacune
d'entre elles le nom,
la direction (IN, OUT et INOUT) et le type.
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 39
Spcification darchitecture :
1. Introduction
1.6. Units de conception
*
21/10/2014 11:04 R. EL ALAMI 40
L'entit donne les informations concernant les signaux
d'entres et de sorties de la structure ainsi que leurs noms
et leurs types.
L'architecture dcrit le comportement de l'entit.
Il est possible de crer plusieurs architectures pour une
mme entit. Chacune de ces architectures dcrira l'entit
de faon diffrente.
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 41
Modle comportemental :
Description du fonctionnement du systme :
Algorithmes, machine dtats
Algorithme proche de ceux des langages de programmation
Le temps peut intervenir :
Permet de coller la ralit par le respect des temps de traverse
Une description haut niveau est dabord comportementale :
Elle sert de rfrence pour la suite de la conception
le comportement de la structure est directement inscrit dans
l'architecture l'aide d'instructions squentielles
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 42
Modle comportemental : Exemple additionneur
algorithmes, quations logique, ...
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 43
Modle comportemental : Exemple additionneur
Code VHDL
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 44
Modle structurel
Dans ce type de description, on relie entre eux des composants
pralablement dcrits en VHDL.
Description par la structure :
liste dlments
interconnexions
ne fait pas intervenir le temps :
connexions permanentes
Dcrit la structure de la fonction ralise
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 45
Modle structurel : Exemple additionneur
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 46
Modle structurel : Exemple additionneur Code VHDL
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 47
Modle structurel : hirarchisation
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 48
Code VHDL avec Demi Add
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 49
21/10/2014 11:04 R. EL ALAMI 50
1. Introduction
Modles de description VHDL
Modle flot de donnes
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 51
Spcification de configuration :
Admettons que plusieurs architectures aient t cres pour l'entit A
utilise au sein de l'architecture arch_princ de l'entit princ. Lors de
la synthse ou de la simulation de l'entit princ, il va tre ncessaire
de spcifier quelles sont les architectures utiliser. Cette spcification
peut tre faite grce l'utilisation d'une configuration.
La configuration permet, comme son nom l'indique, de configurer
l'entit laquelle elle est associe. On peut, par exemple, spcifier les
architectures utiliser pour tous les composants dclars au sein
d'une description.
Pour qu'une description soit portable, c'est--dire synthtisable ou
simulable sur des outils diffrents et pour des composants cibles
diffrents, il est prfrable de n'avoir qu'une seule architecture par
entit. Les configurations deviennent alors inutiles.
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 52
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 53
Spcification de package :
Dans le langage VHDL, il est possible de crer des package et
package body dont les rles sont de permettre le
regroupement de donnes, variables, fonctions, procdures, etc.,
que l'on souhaite pouvoir utiliser ou appeler partir
d'architectures.
Il est ainsi possible de se crer une sorte de bibliothque d'objets
(constantes, variables particulires, fonctions ou procdures
spcifiques, etc.) que l'on pourra appeler partir de plusieurs
descriptions.
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 54
Spcification de package :
Cette possibilit est particulirement intressante lorsque l'on
utilise, au sein d'un projet contenant plusieurs entits, des
ressources (constantes, variables particulires, fonctions...)
identiques.
Imaginons, par exemple, qu'un projet contenant deux entits A
et B aux architectures respectives arch_A et arch_B utilise la
constante de temps tps_propa = 27ns. L'utilisation d'un package
nomm pack_proj et d'un package body nomm pack_bod
donnerait :
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 55
R. EL ALAMI
1. Introduction
1.6. Units de conception
21/10/2014 11:04 56
Dclaration dun package :
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 57
Dclaration du corps de package :
1. Introduction
1.6. Units de conception
21/10/2014 11:04 R. EL ALAMI 58