Resume Cours Circuits Programmables
Resume Cours Circuits Programmables
Resume Cours Circuits Programmables
Circuits Programmables
Introduction
Circuits spécialisés
- Architecture des PLDs
- Architecture des CPLDs contrôles
- Architecture des FPGAs
- Flot de conception
- Différents constructeurs et
type de marché
- Analyse des resultats logico-
temporels
- Adaptation du projet aux
contraintes de place et de
performance
Présence Assiduité
AU 2021/2022 2
Plan
Circuits logiques programmables (PLD)
1. Définitions
2. Avantages et inconvénients des circuits programmables
3. ASICs vs. Circuits programmables
Technologies de programmation
1. Technologie EPROM et EEPROM
2. Technologie fuse et anti-fuse
3. Technologie SRAM
Architectures des circuits programmables
1. Circuits programmables simples PLD « Programmable Logic Device »
2. Circuits programmables complexes CPLD « Complex Programmable Logic Device »
3. FPGA « Filed Programmable Gate Array »
4. comparaison
5. Autres circuits programmables
Flot de conception sur PLD
AU 2021/2022 3
Introduction
AU 2021/2022 4
Introduction
Pour tirer avantage des nouvelles structures VLSI et ULSI, les fabricants
développèrent 4 nouvelles familles :
AU 2021/2022 5
Introduction
Les fabricants développèrent 4 nouvelles familles :
A l'heure actuelle, la majorité des circuits numériques est issue de ces 4 familles.
AU 2021/2022 6
Introduction
La figure suivante représente une classification des circuits intégrés numériques:
AU 2021/2022 7
Introduction
Dans le cadre de ce cours intitulé « Circuits programmables», nous nous proposons
de nous limiter à l’étude des composants semi-spécifiques que sont les réseaux
programmables et aux méthodes de conception d’une application sur circuit
programmable qui reposeront sur le VHDL, le langage de description hardware
incontournable.
Nous étudierons en détails les architectures internes des composants
programmables PLDs (Programmable Logic Devices), CPLDs (Complex
Programmable Logic Devices) et FPGAs (Field Programmable Gate Array).
AU 2021/2022 8
1. Circuits logiques programmables (PLD)
Ce sont des circuits logiques dont les fonctions peuvent être programmées pour
une application particulière, après leur fabrication. La classification des différentes
familles de PLDs est reprise dans l’organigramme suivant:
Entrées/Sorties
technologies architectures du plan actif :
de programmation : - PAL hiérarchique (EPLD)
- EEPROM - gate-array (FPGA)
- SRAM - mixtes (CPLD ALTERAs)
- antifusible
AU 2021/2022 10
2. Technologies de programmation
Les cellules standards implantées dans les circuits "Semi-custom" vont de la
simple porte jusqu'à une structure complexe utilisant un grand nombre de
transistors. Il existe plusieurs méthodes servant à interconnecter ces cellules :
par masque (fondeur),
par fusible,
par anti-fusible,
par cellule mémoire : EPROM, EEPROM, flash EPROM et SRAM.
Dans la méthode dite « interconnexion par masque », le fondeur réalise les
interconnexions par métallisation en créant les derniers masques de fabrication (2
masques par couches de métallisation). Cette méthode n'est utilisée que pour les
circuits prédiffusés.
AU 2021/2022 11
2. Technologies de programmation
Les autres méthodes sont utilisées dans les PLD. Dans ces circuits, les fils de
liaison existent déjà (organisée en lignes et en colonnes), mais ils ne sont reliés ni
entre eux, ni avec les éléments logiques du circuit. Il faut donc arriver à créer une
interconnexion entre deux fils.
Deux possibilités existent : les interconnexions directes ou les interconnexions par
cellule mémoire.
AU 2021/2022 12
2. Technologies de programmation
AU 2021/2022 13
2. Technologies de programmation
Méthodes de programmations
* EPROM « Erasable Programmable ROM »
* EEPROM « Electrical Erasable Programmable ROM »
* Anti-fuse
* SRAM « Static RAM »
AU 2021/2022 14
1.a. Les OTPs: Cellules à fusible
2. Technologies de programmation
Interconnexion directe
C'est la technique des PROM bipolaires à fusibles (Programmable Read Only
Memory). On insère, entre chaque intersection, une diode en série avec un fusible.
Pour supprimer la connexion entre deux lignes, il suffit d'appliquer une tension
élevée pour claquer le fusible. Le boîtier n'est donc programmable qu'une seule
fois par l'utilisateur. Cette méthode n’est plus utilisée aujourd’hui.
AU 2021/2022 15
1.a. Les OTPs: Cellules à fusible
2. Technologies de programmation
Interconnexion directe
C’est la plus ancienne des technologies. Le circuit non programmé contient, par
défaut, toutes les connexions possibles. Ces connexions sont réalisées par des
fusibles.
AU 2021/2022 16
1.a. Les OTPs: Cellules à fusible
2. Technologies de programmation
AU 2021/2022 17
1.b. Les OTPs: Cellules à antifusible
2. Technologies de programmation
Interconnexion directe
Depuis le milieu des années 80, la technique des antifusibles est utilisée. Il s’agit
du contraire du fusible, c’est-à-dire que, par défaut, les connexions n’existent pas
dans le composant non programmé. L'anti-fusible isole deux lignes métalliques
placées sur deux niveaux différents grâce à une fine couche d'oxyde de silicium.
Si on applique une impulsion élevée (>>21V) calibrée en temps (moins de 5 ms),
la couche d'oxyde est trouée et les deux lignes se retrouvent en contact. La
résistance entre les deux lignes passe alors de 100 MΩ à 100Ω.. La géométrie
d’une telle cellule (fusible vertical) est la suivante:
AU 2021/2022 18
1.b. Les OTPs: Cellules à antifusible
2. Technologies de programmation
Interconnexion directe
AU 2021/2022 19
1.b. Les OTPs: Cellules à antifusible
2. Technologies de programmation
Interconnexion directe
Avantages
*Faible surface du circuit
*Faible délai de routage
❖ Faible résistance
❖ Faible capacité
Inconvénients
*Circuits programmables une seule fois
*Modification du procédé CMOS de base pour la
fabrication
AU 2021/2022 20
2. Les circuits programmables et
reprogrammables
2. Technologies de programmation
Interconnexion par cellule mémoire
AU 2021/2022 21
2.a. Les circuits programmables et
reprogrammables: cellule UVPROM
2. Technologies de programmation
Ce sont des cellules programmables électriquement et effaçables par ultraviolet.
AU 2021/2022 22
2.a. Les circuits programmables et
reprogrammables: cellule UVPROM
2. Technologies de programmation
AU 2021/2022 23
2.a. Les circuits programmables et
reprogrammables: cellule UVPROM
2. Technologies de programmation
Résumé:
Fonctionnement
*Utilisation d’une grille flottante pour programmer les transistors de
transmission
Avantages
*Circuits programmables plusieurs fois
*Programmation sur site
Inconvénients
*Consommation statique
*Nécessite une grande surface
*Plusieurs tensions d’alimentation
*Dé-programmation lente et « off site »
*Boîtier d’encapsulation spécial (avec du verre)
AU 2021/2022 24
2.b. Les circuits programmables et
reprogrammables: cellule Flash EEPROM
2. Technologies de programmation
Cellules programmables et effaçables électriquement.
AU 2021/2022 25
2.b. Les circuits programmables et
reprogrammables: cellule Flash EEPROM
2. Technologies de programmation
Le principe de base est le même que pour les cellules EPROM si ce n’est que le
transistor FAMOS est ici remplacé par un MOS de sélection et un transistor FLOTOX
(FLOating gate Tunnel OXyde transistor) de programmation. La structure d’un
FLOTOX est la suivante:
AU 2021/2022 26
2.b. Les circuits programmables et
reprogrammables: cellule Flash EEPROM
2. Technologies de programmation
Résumé:
AU 2021/2022 27
2.c. Les circuits programmables et
reprogrammables: cellule SRAM
2. Technologies de programmation
La cellule SRAM (Static Random Access Memory) consiste en deux inverseurs CMOS
connectés en boucle pour former un bistable. L'état de cette cellule peut être modifié
par un signal électrique externe (ligne B). La cellule RAM est une structure de
stockage volatile. La figure suivante représente la cellule d'une SRAM à 5 transistors
(a) et une cellule à 6 transistors (b). Malgré son coût, C’est la méthode utilisée dans
les FPGA les plus performants à ce jour.
AU 2021/2022 28
2.c. Les circuits programmables et
reprogrammables: cellule SRAM
2. Technologies de programmation
Les intérêts de cette technique sont nombreux :
- Technologie CMOS classique (que des transistors MOS) bénéficie des progrès en
terme d’intégration (surface de 50 μm² par cellule) et de rapidité.
- Consommation nulle en mode de non utilisation.
- Chargement partiel ou total de configuration EN FONCTIONNEMENT (rapidité de
programmation d’une cellule de l’ordre d’une dizaine de nS) !!
2. Technologies de programmation
Résumé:
Technologie utilisant de la mémoire statique SRAM est introduite
par Xilinx
Programmation volatile
AU 2021/2022 30
3. Circuits EEPROM programmables in
situ (ISP : In Situ Programming)
2. Technologies de programmation
Certains composants intégrant une technologie de programmation EEPROM sont
reprogrammables sur le PCB (sans recours au passage par un appareil
programmateur). Ce sont les composants ISP. Les données de configuration
proviennent directement d’un PC sous forme série:
AU 2021/2022 31
3. Circuits EEPROM programmables in
situ (ISP : In Situ Programming)
2. Technologies de programmation
AU 2021/2022 32
4. Comparaison et choix des
différentes technologies
2. Technologies de programmation
Différents critères peuvent guider le choix d’une technologie de programmation.
Le tableau suivant présente les différentes technologies suivant divers critères :
Re-
Technologie programmable Volatile Surface
AU 2021/2022 33
4. Comparaison et choix des
différentes technologies
2. Technologies de programmation
Différents critères peuvent guider le choix d’une technologie de programmation.
Le tableau suivant présente les différentes technologies suivant divers critères :
AU 2021/2022 34
5. Fusible de sécurité
2. Technologies de programmation
Lorsque l’on place un circuit programmable sur un programmateur, il est possible,
évidemment, de le programmer mais aussi d’en relire le contenu. Les fabricants
ont donc prévu un fusible de sécurité qui, une fois détruit, rend impossible la
relecture de la configuration de programmation.
Ceci dans le but évident d’éviter le recopiage illicite du travail d’un programmeur.
Ce fusible de sécurité peut être présent aussi bien sur les PALs bipolaires que sur
les circuits CMOS reprogrammables et effaçables !! Dans ce dernier cas, le
fusible de sécurité est effaçable électriquement mais uniquement en compagnie
de la totalité de la configuration.
AU 2021/2022 35
3. Architecture des PLD
La majorité des circuits spécifiques ont un point commun ; il est nécessaire de
passer par un fondeur pour réaliser les circuits, ce qui introduit un délai de
quelques mois dans le processus de conception. Cet inconvénient a conduit les
fabricants à proposer des circuits programmables par l'utilisateur (sans passage
par le fondeur) qui sont devenus au fil des années, de plus en plus évolués.
AU 2021/2022 36
3. Architecture des PLD
AU 2021/2022 37
3. Architecture des PLD
Généralités et conventions:
AU 2021/2022 38
3. Architecture des PLD
Convention de notation
Afin de présenter des schémas clairs et précis, il est utile d'adopter une
convention de notation concernant les connexions à fusibles. Les deux figures
suivantes représentent la fonction ET à 8 entrées. La figure b) n'est qu'une
version simplifiée du schéma de la figure a).
a) b)
AU 2021/2022 39
3.1 Architecture des PLD
Fonction logique simple : Réseau logique
Toute fonction logique booléenne peut s'exprimer sous forme canonique
Ai Matrice ET
produits des entrées
Matrice OU
Sj
somme des produits
AU 2021/2022 40
3.1 Architecture des PLD
AU 2021/2022 41
3.1 Architecture des PLD
AU 2021/2022 42
a. PROM
Fusibleintact
Fusible intact
Fusible
Fusibledétruit
détruit
AU 2021/2022 43
a. PROM
Fusibleintact
Fusible intact
Fusible
Fusibledétruit
détruit
AU 2021/2022 44
a. PROM
AU 2021/2022 45
a. PROM
Les premiers circuits programmables apparus sur le marché sont les PROM
bipolaires à fusibles. Cette mémoire est l'association d'un réseau de ET fixes,
réalisant le décodage d'adresse, et d'un réseau de OU programmables, réalisant
le plan mémoire proprement dit. On peut facilement comprendre que, outre le
stockage de données qui est sa fonction première, cette mémoire peut être
utilisée en tant que circuit logique. La figure suivante représente la structure
logique d'une PROM bipolaire à fusibles.
AU 2021/2022 46
a. PROM
AU 2021/2022 47
a. PROM
AU 2021/2022 48
a. PROM
AU 2021/2022 49
a. PROM
f1 = …?…..
f2 = …?…..
f3 = …?…..
AU 2021/2022 50
a. PROM
AU 2021/2022 51
b. PLA
AU 2021/2022 52
b. PLA
AU 2021/2022 53
b. PLA
AU 2021/2022 54
b. PLA
p1 = …?…..
p2 = …?…..
p3 = …?…..
f1 = …?…..
f2 = …?…..
f3 = …?…..
AU 2021/2022 55
c. PAL: Généralités et conventions
I1 I2 = Ī 1 . I 2 + I1 . Ī 2
La fonction OU EXCLUSIF implantée sur une PAL donnera donc la cellule de base
dans laquelle 4 fusibles ont étés détruits.
AU 2021/2022 58
c. PAL: Généralités et conventions
AU 2021/2022 59
c. PAL : résumé
AU 2021/2022 60
d. GAL
Ceci a donc donné naissance aux GALs que l’on pourrait traduire par « Réseau
logique Générique ». Ces circuits peuvent être reprogrammés à volonté sans pour
autant avoir une durée de vie restreinte. On peut aussi noter que dans leur
structure interne les GALs sont constitués de transistor MOS alors que les PALs
classiques sont constitués de transistors bipolaires. La consommation des GALs est
par conséquent beaucoup plus faible.
AU 2021/2022 61
d. GAL
AU 2021/2022 62
d. GAL
Les GAL sont dotés d’un bit de sécurité qui peut être activé lors de
la programmation empêchant ainsi toute lecture du contenu du
circuit. Ce bit est remis à zéro seulement en effaçant
complètement le GAL.
AU 2021/2022 63
e. EPLD
AU 2021/2022 64
e. EPLD
Comme les PAL CMOS, les EPLD font appel à la notion de macro-cellule qui
permet, par programmation, de réaliser de nombreuses fonctions logiques
combinatoires ou séquentielles.
Un exemple de schéma d’une macro-cellule de base d'un EPLD est présenté ci-
après.
AU 2021/2022 65
e. EPLD
AU 2021/2022 66
e. EPLD
AU 2021/2022 67
Limitations
AU 2021/2022 68
3.1 Architecture des PLD
AU 2021/2022 69
Programmation
AU 2021/2022 70
Architecture des CPLD
Limitations des PLD
• Contrairement aux FPGAs, il n’y a qu’un seul chemin entre deux points
AU 2021/2022 72
3.2 Architecture des CPLD
Les CPLDs sont des PLDs complexes (Complex Programmable Logic Devices).
Par ce concept, on peut arriver à un plus grand niveau d’intégration. Plutôt que
d’agrandir les PLDs classiques en les dotant de plus de cellules de sortie, de lignes
de produit et de macrocellules, les CPLDs se présentent comme un ensemble de
fonctions de type PAL. Ces différents blocs logiques communiquent entre-eux en
utilisant des signaux internes pouvant être « routés » à l’aide d’une matrice
programmable. La complexité, le nombre de macrocellules dans un bloc ainsi que
le nombre de blocs varient d’un composant à l’autre.
Grâce à ce concept, on utilise plus efficacement le volume de silicium, ce qui
conduit à de meilleures performances et à un coût réduit.
AU 2021/2022 73
3.2 Architecture des CPLD
AU 2021/2022 74
3.2 Architecture des CPLD
Définition
*UN CPLD est un ensemble de PLDs simples connectés entre eux avec une
matrice d’interconnexion
Un CPLD est composé de :
*CLB
❖ Bloc logique complexe « Complexe Logic Bloc »
❖ Équivalent à un PLD
❖ Dans un CPLD on a plusieurs CLB
*SM
❖ Matrice d’interconnexion « Switch Matrix »
❖ Dans un CPLD on a une ou plusieurs matrices
*IOB
❖ Blocs d’entrée/sortie « Input/Output Bloc »
AU 2021/2022 75
Exemple : la structure des CY7C37xi
AU 2021/2022 76
Exemple : la structure des CY7C37xi
AU 2021/2022 77
Architecture des FPGA
3.3 Architecture des FPGA
Dans la hiérarchie des parties précédentes, l’ordre utilisé était celui de la densité
d’intégration croissante . Les « Field Programmable Gate Array » constituent en ce
sens les composants programmables par l’utilisateur contenant le plus grand
nombre de portes logiques. Lancé sur le marché en 1984 par la firme XILINX, le
FPGA est un circuit prédiffusé programmable.
On peut classer les FPGAs en 2 catégories suivant la technologie d’interconnexion
utilisée : les FPGAs de type SRAM (exemple : la plupart des composants de chez
Xilinx) et les FPGAs de type antifuse (exemple : la plupart des composants de
chez Actel). Nous verrons dans cette partie que la technologie d’interconnexion
utilisée conditionne le type d’architecture des FPGAs.
AU 2021/2022 79
3.3 Architecture des FPGA
Par rapport aux CPLDs, les FPGAs utilisent des modules logiques plus réduits mais
beaucoup plus nombreux parsemant le centre du circuit . Des blocs logiques
spécifiques d’entrée/sortie sont alignés sur le périmètre du circuit et la matrice
d’interconnexion peut être vue comme une multitude de segments métalliques
courant horizontalement et verticalement entre ces blocs logiques et ces blocs
l’entrée/sortie. Cette matrice permet donc de relier, par programmation, soit 2
segments entre-eux, soit 2 blocs logiques, soit un bloc logique et un bloc
d’entrée/sortie, …
AU 2021/2022 80
3.3 Architecture des FPGA
L’ architecture générale d’un FPGA de type XC4000 – Xilinx:
AU 2021/2022 81
Cellule logique de base
AU 2021/2022 82
Cellule logique de base
AU 2021/2022 83
Cellule logique de base
AU 2021/2022 84
LUT
AU 2021/2022 85
LUT
a
Entrées
b
Point
mémoires
c
AU 2021/2022 86
Les macro cellules
Plan d’interconnexion
AU 2021/2022 87
3.3 Architecture des FPGA
Contrairement aux EPLD, on ne peut pas prédire la fréquence de travail maximale
d'une fonction logique, avant son implémentation. En effet, cela dépend fortement
du résultat de l'étape de placement-routage. Tous les FPGA sont fabriqués en
technologie CMOS, les plus gros d'entre eux intègrent jusqu'à 10.000.000 portes
logiques utilisables.
Par rapport aux prédiffusés classiques, les interconnexions programmables
introduisent des délais plus grands que la métallisation (environ 3 fois plus lents).
Par contre, les cellules logiques fonctionnent à la même vitesse. Pour minimiser les
délais de propagation dans un FPGA, il faut donc réduire le nombre de cellules
logiques utilisées pour réaliser une fonction. Par conséquent, les cellules logiques
d’un FPGA sont plus complexes que celles d’un prédiffusé.
AU 2021/2022 88
3.3 Architecture des FPGA
Un FPGA est une matrice de blocs élémentaires configurables organisés en lignes
et en colonnes et connectés entre eux avec des interconnexions programmables, il
est composé de:
AU 2021/2022 89
Blocs logiques
Blocs logiques
Le choix de l’architecture des blocs logiques et des modules
d’interconnexion influence directement :
❖ La rapidité
❖ La surface
AU 2021/2022 90
Modules de routage
AU 2021/2022 91
Modules de routage
C’est donc bien le nombre de connexions (de 50 à 800Ω par connexion) et non la
longueur du tracé entre 2 blocs logiques qui dégrade les délais de propagation.
Ainsi, plusieurs sortes de réseaux existent au milieu du circuit (ex. : des réseaux
spécifiques globaux, composés uniquement de segments métalliques longs sont
dédiés aux horloges de manière à limiter les délais et à permettre la réalisation de
systèmes synchrones).
AU 2021/2022 92
Modules de routage
AU 2021/2022 93
Modules de routage
AU 2021/2022 94
FPGA de type SRAM
D’autre part, chaque bloc logique de ce type peut aussi être configuré comme une
RAM double ports. Le caractère volatil de la configuration oblige à la reconfiguration
à chaque mise sous tension du circuit (PROM, μprocesseur, ou maintien par pile).
Mais cet inconvénient apparent autorise aussi la reconfiguration en mode opération
(suivant le mode de fonctionnement du système, un même FPGA peut faire
plusieurs choses différentes suivant sa reconfiguration).
AU 2021/2022 95
FPGA de type antifuse
AU 2021/2022 96
3.4 Autres PLD
AU 2021/2022 97
Complément du cours
Vocabulaire (1)
AU 2021/2022 99
Principales abréviations
ASIC Application Specific Integrated Circuit - Circuit intégré conçu à la demande
CPLD Complex Programmable Logic Device - Réseau logique programmable complexe
DRAM Dynamic Random Access Memory - Mémoire dynamique à accès aléatoire
DSP Digital Signal Processor - Processeur orienté vers le traitement du signal
EDIF Electronic Design Interchange Format
EEPLD Electrically Erasable Programmable Logic Device - PLD effaçable électriquement
FPGA Field Programmable Gate Array - Réseau de portes programmables
GAL Generic Array Logic - PAL générique
ISP In-System (In Situ) Programmable - Composant programmable sur carte
JEDEC Joint Electronic Device Engineering Council - Organisme de normalisation
JTAG Joint Test Action Group - Bus de test des composants
LCA Logic Cell Array (Xilinx) - Réseau de cellules logiques
LUT Look-Up Table
MAX Multiple Array Matrix - Megapals d'Altera
NOVRAM ou NVRAM Non Volatile Random Access Memory - RAM non volatile
OTP One Time Programmable - Programmable une seule fois
PAL Programmable Array Logic - Réseau logique programmable
PGA Programmable Gate Array - Réseau de portes programmable
PLA Programmable Logic Array - Réseau logique programmable
PLD Programmable Logic Device - Dispositif logique programmable, EPLD : Erasable PLD : PLD Effacable
ROM Read Only Memory, Mémoire à lecture seule, PROM : Programmable ROM,. EPROM: Erasable : Effacable
EEPROM : Electricaly EPROM : Mémoire à lecture seule, électriquement effaçable.
RAM Random Access Memory - Mémoire à accès aléatoire
SDF Standard Delay File
SOG Sea-of-Gates - Mer de portes : réseau actif logique prédiffusé
SRAM Static Random Access Memory - Mémoire statique à accès aléatoire
TTL Transistor Transistor Logic - Logique transistor-transistor
VHDL VHSIC Hardware Description Language - Langage de description matérielle VHSIC
AU 2021/2022 100