Resume Cours Circuits Programmables

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 100

Génie Mécanique et Systèmes Automatisés 2

Circuits Programmables

Pr. Malika ALAMI MARKTANI


Organisation du module

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

Les éléments de référence


Systèmes sur puces

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

L'échelle d'intégration défini le nombre de portes par boîtier :


• SSI (small scale integration) petite : inférieur à 12
• MSI (medium) moyenne : 12 à 99
• LSI (large) grande : 100 à 9999
• VLSI (very large) très grande : 10 000 à 99 999
• ULSI (ultra large) ultra grande : 100 000 et plus

AU 2021/2022 4
Introduction
Pour tirer avantage des nouvelles structures VLSI et ULSI, les fabricants
développèrent 4 nouvelles familles :

1. Les microprocesseurs et les mémoires RAM et ROM : les microprocesseurs


et les circuits mémoires sont attrayants pour les fabricants. Composants de base
pour les systèmes informatiques, ils sont produits en très grandes séries.
2. Les ASSP (Application Specific Standard Product) : ce sont des produits sur
catalogue qui sont fabriqués en grande série. La fonction réalisée est figée par le
constructeur, mais le domaine d’utilisation est spécifique à une application.
Exemple : un contrôleur Ethernet, un encodeur MPEG-4, …

AU 2021/2022 5
Introduction
Les fabricants développèrent 4 nouvelles familles :

3. Les circuits programmables sur site: n'importe quelle fonction logique,


combinatoire ou séquentielle, avec un nombre fixe d'entrées et de sorties, peut
être implantée dans ces circuits. A partir de cette simple idée, plusieurs variantes
d'architecture ont été développées (PAL, EPLD, FPGA,…).
4. Les ASIC (Application Specific Integrated Circuit) réalisés chez le fondeur:
le circuit est conçu par l'utilisateur avec des outils de CAO, puis il est réalisé par
le fondeur.

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).

VHDL: Very high speed integrated circuits Hardware Description Language

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:

PLD : Programmable Logic Device = CLP : Circuits logiques programmables


PAL : Programmable Array Logic GAL : Generic Array Logic
EPLD : Erasable PLD CPLD : Complexe PLD
FPGA : Field Programmable Gate Array
AU 2021/2022 9
2. Technologies de programmables
Principes du PLD
programmation Entrées / Sorties
ou configuration
Plan de programmation :
interconnexion

Entrées / Sorties Entrées / Sorties

Plan actif : cellules logiques

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

Le choix de la technologie de programmation affecte


plusieurs caractéristiques du circuit programmable
* Densité
* Délais de propagation
❖ Cellules
❖ Routage
* La consommation
* Re-programmation du circuit

AU 2021/2022 13
2. Technologies de programmation

Deux types de circuits programmables


* Circuits programmables une seule fois
❖ OTP pour « One Time Programmable »
* Circuits programmables plusieurs fois

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.

L’élimination de la connexion est obtenue par claquage du fusible (tension à ses


bornes de 12 à 25V) dans le programmateur. Lorsque le fusible est maintenu il y a
formation d’un « et » câblé entre la ligne et la colonne du réseau.

AU 2021/2022 16
1.a. Les OTPs: Cellules à fusible

2. Technologies de programmation

Fusible intact Fusible claqué

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

Technologie introduite par Actel


Circuit programmable une fois
La programmation anti-fuse permet de créer une connexion
électrique directe entre deux métaux
*Fabrication avec un process CMOS avec 3 masques supplémentaires
La programmation est réalisée en appliquant une grande
tension (21V)
*Le courant élevé fait fondre l’isolant ONO « Oxide-Nitride-Oxide » qui
devient conducteur

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

Ce sont des circuits utilisant des cellules à transistors MOS.

Les qualités de faible consommation, de grande intégration et l’évolution en


rapidité les circuits CMOS (Complementary Metal Oxyde Semiconductor) justifient
leur suprématie sur les circuits bipolaires. D’autre part, les meilleures technologies
d’interconnexion seront celles qui modifieront le moins possible le process de
fabrication CMOS. Celles qui seront présentées ici auront toutes la caractéristique
d’être reprogrammables et d’utiliser cette technologie.

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.

la création d’un ET câblé à partir de


cellules EPROM est la suivante:

Le produit est initialement tiré à ‘1’ par


une résistance de pull-up, mais dès
qu’un des transistors conduit (état
logique de la grille à ‘1’), le produit
tombe à ‘0’.

AU 2021/2022 22
2.a. Les circuits programmables et
reprogrammables: cellule UVPROM

2. Technologies de programmation

La fonction réalisée est donc, en réalité


une fonction NOR, mais comme de
chaque entrée d’un circuit logique
programmable on construit le
complément, on peut réaliser des ET
câblés :

/(a + b) = /a . /b (De Morgan) et donc :


/(/a + /b) = a . b

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.

La fonction ‘ET’ câblée à partir de cellules Flash EEPROM :

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é:

Fonctionnement de la technologie EEPROM


* Même méthode de programmation que pour EPROM
* Pour la dé-programmation :
❖ Utilisation de champs électriques

Avantages de la technologie EEPROM


* Dé-programmation plus rapide que pour EPROM
* Pas besoin d’utiliser un boîtier spécial (avec du verre)
* Dé-programmation sur site

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) !!

L’inconvénient de ce type de circuit est le fait que la mémorisation de la configuration


est perdue à chaque arrêt de l’alimentation. Il faut donc :
- Soit une pile sur la carte de manière à maintenir l’alimentation du circuit SRAM
pendant l’arrêt du système.
- Soit une reprogrammation à chaque mise sous tension à partir d’une mémoire ou
d’un microcontrôleur présent sur la plaque.
AU 2021/2022 29
2.c. Les circuits programmables et
reprogrammables: cellule SRAM

2. Technologies de programmation
Résumé:
Technologie utilisant de la mémoire statique SRAM est introduite
par Xilinx
Programmation volatile

Les SRAM sont utilisés pour :


Implémenter les tables de vérité LUT « Look Up Table » des
fonctions logiques (La fonction de la LUT est de stocker la table de
vérité de la fonction combinatoire à implémenter dans la cellule)
*Contrôler les interconnexions programmables avec
❖ Mux
❖ Portes ou transistors de transmission

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:

La tension de 12V nécessaire à la programmation,


si une telle tension n’est pas présente sur le circuit
imprimé, elle doit être créée à partir d’un
convertisseur DC/DC (5V / 12V). Les avantages
sont nombreux : pas de nécessité d’un
programmateur onéreux, pas de support pour les
circuits (meilleure connexion et possibilité de
reprogrammation des circuits sans support), …

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

SRAM in-circuit oui 5 fois

Anti-fuse non non 1 fois

EPROM hors circuit non 1 fois

EEPROM in-circuit non 2 fois

Comparaison des technologies de programmation

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 :

Comparaison des technologies de programmation

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.

Rassemblés sous le terme générique PLD, les circuits programmables par


l'utilisateur se décomposent en deux familles :
1. les PROM, les PLA, les PAL, les GAL, les EPLD et les CPLD,
2. les FPGA.

AU 2021/2022 36
3. Architecture des PLD

Les PLDs les plus utilisés sont :


* PLA
* CPLD
* FPGA

AU 2021/2022 37
3. Architecture des PLD

Généralités et conventions:

L’idée de base des circuits programmables était de construire dans un circuit, un


ensemble de portes logiques complètement interconnectées par des fusibles, et
de pouvoir faire fondre certains de ceux-ci lors de la programmation
(personnalisation du circuit) de manière à ce qu’il ne reste que les connexions
souhaitées.

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

exemple : S = A2A1A0 + A2A1A0 + A2A1A0 + A2A1A0

Ai Matrice ET
produits des entrées

Matrice OU
Sj
somme des produits

= Réseau logique programmable

AU 2021/2022 40
3.1 Architecture des PLD

AU 2021/2022 41
3.1 Architecture des PLD

Exemple : Soit un circuit avec 4 entrées x1,x2,x3,x4 et 2


sorties s1 et s2 définies par :

Les matrices A et O de ce circuit sont :

AU 2021/2022 42
a. PROM

3.1 Architecture des PLD


Nous allons voir dans ce paragraphe la PROM sous l’angle de la réalisation d’une
fonction logique. Même si elle n’est plus utilisée pour cela aujourd’hui, elle est à
la base de la famille de PLA, des PAL et des EPLD.
Un exemple de notation est donné sur la figure ci-dessous. La fonction réalisée
est S = (a . c) + (b . d). Une croix, à une intersection, indique la présence d'une
connexion à fusible non claqué. L'absence de croix signifie que le fusible est
claqué. La liaison entre la ligne horizontale et verticale est rompue. La sortie S
réalise une fonction OU des 2 termes produits (a.c) et (b.d).

Fusibleintact
Fusible intact

Fusible
Fusibledétruit
détruit
AU 2021/2022 43
a. PROM

3.1 Architecture des PLD


Nous allons voir dans ce paragraphe la PROM sous l’angle de la réalisation d’une
fonction logique. Même si elle n’est plus utilisée pour cela aujourd’hui, elle est à
la base de la famille de PLA, des PAL et des EPLD.
Un exemple de notation est donné sur la figure ci-dessous. La fonction réalisée
est S = (a . c) + (b . d). Une croix, à une intersection, indique la présence d'une
connexion à fusible non claqué. L'absence de croix signifie que le fusible est
claqué. La liaison entre la ligne horizontale et verticale est rompue. La sortie S
réalise une fonction OU des 2 termes produits (a.c) et (b.d).

Fusibleintact
Fusible intact

Fusible
Fusibledétruit
détruit
AU 2021/2022 44
a. PROM

3.1 Architecture des PLD

AU 2021/2022 45
a. PROM

3.1 Architecture des PLD

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

3.1 Architecture des PLD

Chaque sortie Oi peut réaliser une fonction


OU de 16 termes produits de certaines

Diagramme conceptuel d’une PROM


combinaisons des 4 variables A, B, C et D.
Avec les PROM, les fonctions logiques
programmées sont spécifiées par les Matrice
Matricede
de
tables de vérités. Il suffit de mettre les programmation
programmation
variables d’entrées sur les adresses et de
récupérer la fonction logique sur le bit de
donnée correspondant. Le temps de
propagation est indépendant de la fonction
implantée (c’est le temps d’accès de la
mémoire).

AU 2021/2022 47
a. PROM

3.1 Architecture des PLD

Les PROM « Programmable Read Only Memory » sont des cas


particuliers de PLA avec un seul niveau programmable
* La matrice des ANDs est fixe
❖ Le nombre de ligne produit « product lines » est 2n avec n= le
nombre d’entrées de la matrices des ANDs

* La matrice des ORs est programmable

AU 2021/2022 48
a. PROM

3.1 Architecture des PLD

Exemple de programmation d’une PROM

AU 2021/2022 49
a. PROM

3.1 Architecture des PLD

f1 = …?…..

f2 = …?…..

f3 = …?…..

AU 2021/2022 50
a. PROM

3.1 Architecture des PLD

AU 2021/2022 51
b. PLA

3.1 Architecture des PLD


Le concept du PLA a été développé, il y a
plus de 20 ans. Il reprend la technique des
fusibles des PROM bipolaires. La
programmation consiste à faire sauter les
fusibles pour réaliser la fonction logique de
son choix. La structure des PLA est une
évolution des PROM bipolaires.
Elle est constituée d'un réseau de ET
programmable et d'un réseau de OU
programmable. Sa structure logique est la
suivante :

AU 2021/2022 52
b. PLA

3.1 Architecture des PLD

Chaque sortie Oi peut réaliser une fonction OU de 16 termes produits des 4


variables A, B, C et D. Avec cette structure, on peut implémenter n'importe quelle
fonction logique combinatoire. Cette structure permet donc de produire une
équation logique de type SOMME DE PRODUITS. Ces circuits sont évidemment
très souples d'emploi, mais ils sont plus difficiles à utiliser que les PROM.
Statistiquement, il s'avère inutile d'avoir autant de possibilité de programmation,
d'autant que les fusibles prennent beaucoup de place sur le silicium. Ce type de
circuit n'a pas réussi à pénétrer le marché des circuits programmables. La
demande s'est plutôt orientée vers les circuits PAL.

AU 2021/2022 53
b. PLA

3.1 Architecture des PLD

Exemple de programmation d’un PLA

AU 2021/2022 54
b. PLA

3.1 Architecture des PLD

p1 = …?…..
p2 = …?…..
p3 = …?…..

f1 = …?…..
f2 = …?…..
f3 = …?…..

AU 2021/2022 55
c. PAL: Généralités et conventions

3.1 Architecture des PLD

L'architecture du PAL a été conçue à partir d'observations indiquant qu'une grande


partie des fonctions logiques ne requiert que quelques termes produits par sortie.
L'avantage de cette architecture est l'augmentation de la vitesse par rapport aux
PLA. En effet, comme le nombre de connexions programmables est diminué, la
longueur des lignes d'interconnexion est réduite. Le temps de propagation entre
une entrée et une sortie est par conséquent plus faible.
En revanche, il arrive qu'une fonction logique ne puisse être implantée, car une
sortie particulière n'a pas assez de termes produits. Prendre un boîtier plus gros,
peut être préjudiciable en terme de prix et de rapidité, le temps de propagation
étant proportionnel à la longueur des lignes d'interconnexion du réseau de ET et
donc au nombre d’entrées. Pour remédier à cette limitation, il a fallu modifier les
entrées/sorties du circuit.
AU 2021/2022 56
c. PAL: Généralités et conventions

3.1 Architecture des PLD


La structure schématique complète et non
programmée d’une PAL combinatoire est la
suivante:
Il s’agit d’une zone logique ‘ET’ programmable
et d’une zone logique ‘OU’ fixe en sortie.
L’exemple donné représente une PAL capable
de générer, en direct, des fonctions logiques
somme de quatre produits maximum.
La quantité de termes produit nécessaires à
coder n’importe quelle fonction de N variables
(entrées) est de 2N
o 2 entrées : 4 lignes produit et un ‘OU’ à
quatre entrées.
o10 entrées : 1024 lignes produit et un
‘OU’ à 1024 entrées (par sortie)!!
La réalisation d’un tel circuit n’est pas
envisageable. En pratique, le nombre de
termes produit en entrée des portes ‘OU’ est
limité.
AU 2021/2022 57
c. PAL: Généralités et conventions

3.1 Architecture des PLD


Exemple: Représentation d’un ou exclusif ( )

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

3.1 Architecture des PLD

Exemple de programmation d’un PAL

AU 2021/2022 59
c. PAL : résumé

3.1 Architecture des PLD


 Les PAL « Programmable Array Logic » sont aussi des
cas particulier de PLA avec un seul niveau
programmable
* La matrice des ANDs est programmable
* La matrice des ORs est fixe
 Avantages
* Faible coût
* Grande densité
 Inconvénient
* Limitation dans les fonctions qu’on peut implémenter

AU 2021/2022 60
d. GAL

3.1 Architecture des PLD


L’inconvénient majeur des PALs est qu’ils ne sont programmables qu’une seule fois.
Ceci impose un gaspillage important de ces circuits lorsqu’on veut développer un
nouveau produit. La firme LATTICE a donc pensé, à remplacer les fusibles
irréversibles des PALs par des transistors MOS FET pouvant être régénérés.

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.

Depuis d’autres constructeurs fabriquent ce type de produit en les appelant « PAL


CMOS ».

AU 2021/2022 61
d. GAL

3.1 Architecture des PLD


 Utilisation de cellules programmables pour I/O Rebouclage des sorties

AU 2021/2022 62
d. GAL

3.1 Architecture des PLD


Protection contre la duplication:

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.

Il est aussi constitué d’un ensemble de huit octets, appelé


signature électronique, pouvant contenir des informations diverses
sur le produit.

AU 2021/2022 63
e. EPLD

3.1 Architecture des PLD


Les EPLD (Erasable Programmable logic Device) sont des circuits programmables
électriquement et effaçables, soit par exposition aux UV pour les plus anciens, soit
électriquement. Ces circuits, développés en premier par la firme ALTERA, sont
arrivés sur le marché en 1985. Les EPLD sont une évolution importante des PAL
CMOS. Ils sont basés sur le même principe pour la réalisation des fonctions
logiques de base. Les procédés physiques d'intégration permis par les EPLD sont
nettement plus importants que ceux autorisés par les PAL CMOS. En effet, les plus
gros EPLD actuellement commercialisés intègrent plusieurs dizaines de milliers de
portes utilisables par l'utilisateur. On peut ainsi loger dans un seul boîtier,
l'équivalent d'un schéma logique utilisant jusqu'à 50 à 100 PAL classiques.

AU 2021/2022 64
e. EPLD

3.1 Architecture des PLD

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

3.1 Architecture des PLD

AU 2021/2022 66
e. EPLD

3.1 Architecture des PLD


Il existe plusieurs types d'EPLD en technologie CMOS :
 Les circuits programmables électriquement et non effaçables. Ce sont les
EPLD de type OTP (One Time Programmable).
 Les circuits programmables électriquement et effaçables aux UV (obsolètes).
 Les circuits programmables électriquement et effaçables électriquement
dans un Programmateur.
Les circuits programmables électriquement et effaçables électriquement sur
la carte (ISP : In Situ Programmable), utilisant une tension unique.

AU 2021/2022 67
Limitations

3.1 Architecture des PLD

Les circuits qu’on peux implémenter dans un PLD sont


limités par
*Nombre d’entrées/sorties
*Nombre de portes équivalentes
En plus de la limitation du nombre d’entrées/sorties du
circuit, le type de fonctions qu’on peux implémenter dans
un PLD est limité par
*Le nombre de termes produit dans la somme

AU 2021/2022 68
3.1 Architecture des PLD

AU 2021/2022 69
Programmation

AU 2021/2022 70
Architecture des CPLD
Limitations des PLD

3.2 Architecture des CPLD


• Impossibilité d’implémenter des fonctions à multi-niveaux, de partager des
produits entre fonctions

• Avec les CPLDs, on peut non-seulement programmer la fonctionnalité des


cellules mais aussi les interconnexions entre cellules

• 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

3.2 Architecture des CPLD


L’architecture schématique du plus imposant composant de cette famille est la
suivante:

AU 2021/2022 76
Exemple : la structure des CY7C37xi

3.2 Architecture des CPLD


Chaque bloc logique reçoit 36 entrées (et leur complément) de la PIM
(Programmable Interconnect Matrix). Cela autorise des opérations 32 bits en une
seule passe dans le bloc logique. Il n’existe pas de délai supplémentaire (par
rapport aux spécifications) pour le passage des signaux par la PIM. On dit que ce
composant prédictible (en terme de délai).

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

3.3 Architecture des FPGA


Le concept du FPGA est basé sur l'utilisation d'une LUT (LookUp Table) comme
élément combinatoire de la cellule de base. En première approximation, cette LUT
peut être vue comme une mémoire (16 bits en général) qui permet de créer
n’importe quelle fonction logique combinatoire de 4 variables d’entrées. Chez Xilinx,
on appelle cela un générateur de fonction ou Function Generator. La figure suivante
représente la cellule type de base d'un FPGA.

AU 2021/2022 82
Cellule logique de base

3.3 Architecture des FPGA


Elle comprend une LUT 4 entrées et une bascule D (D Flip-Flop). La bascule D
permet la réalisation de fonctions logiques séquentielles. La configuration du
multiplexeur 2 vers 1 de sortie autorise la sélection des deux types de fonction,
combinatoire ou séquentielle.

AU 2021/2022 83
Cellule logique de base

3.3 Architecture des FPGA


Les cellules de base d'un FPGA sont disposées en lignes et en colonnes. Des lignes
d'interconnexions programmables traversent le circuit, horizontalement et
verticalement, entre les diverses cellules. Ces lignes d'interconnexions permettent
de relier les cellules entre elles, et avec les plots d'entrées/sorties. Les connexions
programmables sur ces lignes sont réalisées par des transistors MOS dont l'état est
contrôlé par des cellules mémoires SRAM. Ainsi, toute la configuration d'un FPGA
est contenue dans des cellules SRAM.

AU 2021/2022 84
LUT

3.3 Architecture des FPGA


Les Look-Up Table sont un cas particulier des cellules à multiplexeur, avec de 2 à 9
entrées et dont la technologie du point mémoire est une technologie SRAM.
Une LUT de N entrées est une mémoire qui peut implémenter n'importe quelle
fonction booléenne de N variables.
Les N entrées sont utilisées comme adresse d'une mémoire de 2n bits qui code la
fonction booléenne à réaliser. On peut donc réaliser 2n fonctions différentes avec
une LUT à N entrées.
Les Look-Up Tables sont des blocs logiques de très petite granularité dans un CLB.
Comme les LUT possèdent une bascule de sortie, les architectures à base de LUT
sont beaucoup plus riches en bascules que les architectures à macro-cellules.

AU 2021/2022 85
LUT

3.3 Architecture des FPGA

a
Entrées
b

Point
mémoires

c
AU 2021/2022 86
Les macro cellules

3.3 Architecture des FPGA


On retrouve dans certaines macro- cellules Macro
E/S cellule
toute la complexité d'un PAL.
Il y a en général un nombre réduit de macro-
cellules dans un EPLD, car ces cellules
occupent une grande surface.
la macro-cellule présente plusieurs intérêts :
-grand nombre de variables d'entrées
possibles
-grand nombre de termes de produits
possibles

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:

*Bloc logique : Appelé CLE « Configurable Logic Element », CLB « Configurable


Logic Bloc », LE et LB
❖ Permet de réaliser les fonctions de base
❖ En général, un CLE est composé de : 4 à 6 entrées, Une sortie, Une
bascule
*Module de routage: Appelé SM « Switch Matrix » et RM « Routing Matrix »
❖ Permet de connecter les blocs logiques
*Blocs d’entrée/sortie « IOB »

AU 2021/2022 89
Blocs logiques

3.3 Architecture des FPGA

Blocs logiques
Le choix de l’architecture des blocs logiques et des modules
d’interconnexion influence directement :
❖ La rapidité
❖ La surface

L’architecture la plus utilisé pour les blocs logiques est :


Table de vérité LUT « Look-up Table »

AU 2021/2022 90
Modules de routage

3.3 Architecture des FPGA


Dans cette architecture, il existe plusieurs
chemins pour relier 2 blocs logiques entre-eux:
La figure montre l’interconnexion de 2 fois 2
blocs logiques :
o La liaison A – B utilise une multitude de
segments courts, les points d’interconnexion
sont nombreux et le délai important.
oLa liaison C – D utilise des segments longs
avec seulement 2 points d’interconnexion. Le
délai est alors optimisé.

AU 2021/2022 91
Modules de routage

3.3 Architecture des FPGA


Chaque interconnexion réalisée crée, sur la « route » du signal une résistance série
supplémentaire non négligeable qui, associée aux capacités diverses (système de
connexion, ligne, connexion aux modules) engendre un délai limitant la vitesse de
fonctionnement.

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

3.3 Architecture des FPGA


Contrairement aux CPLDs, les FPGA sont dits « imprédictibles » en terme de délai.
En effet, les chemins utilisés peuvent être très différents pour une même fonction, et
ce sera donc le rôle de l’outil de placement et de routage de minimiser ces délais.

Selon les architectures de routage, les FPGA peuvent être classés en 4


groupes

* Island/Symmetrical array FPGA


* Row based FPGA
* Sea of gates FPGA
* Hierarchical PLD FPGA

AU 2021/2022 93
Modules de routage

3.3 Architecture des FPGA

Différentes famille de routage pour FPGA

AU 2021/2022 94
FPGA de type SRAM

3.3 Architecture des FPGA


Dans les FPGA à type d’interconnexion SRAM, la structure d’un bloc est complexe.
Les fonctions logiques sont réalisées à partir de LUT : ce sont des blocs de mémoire
SRAM 16x1 dans lesquels on peut stocker une table de transposition. La capacité
d’un bloc logique est donc conditionnée par le nombre d’entrées et non par la
complexité.

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

3.3 Architecture des FPGA


Les blocs logiques d’un FPGA de type antifuse sont moins complexes que pour les
SRAM. On en trouvera donc plus sur une même surface de silicium. Cela est dû au
fait que le mode d’interconnexion est programmable une seule fois (les fonctions
sont figées). Pour une fonction logique donnée, le nombre de blocs logiques d’un
FPGA de type antifuse nécessaire est plus grand que pour un FPGA de type SRAM.
On aura donc plus de connexions que pour la même fonction en SRAM. Mais la
technologie de connexion à base d’antifusibles prend moins de place et chaque
connexion n’engendre qu’une résistance de l’ordre de la cinquantaine d’Ohms
(contre 800Ω pour les SRAMs). La structure d’un FPGA de type antifuse est donc
intimement liée à sa technologie d’interconnexon. Plus de blocs logiques moins
complexes. Les fonctions logiques sont ici réalisées à base de multiplexeurs.

AU 2021/2022 96
3.4 Autres PLD

FPSLIC « Field Prog. System Level IC » de Atmel


❖ Combine FPGA, mémoire et -contrôleur
FPSC « Field Programmable System Chip » de Lattice
❖400 K programmable FPGA
❖Jusqu’à 8 canaux de transmission de 1.0 à 3.7 Gbits/s

PSoC de Cypress « Programmable System-on-Chip »


❖ Combine -contrôleur 8 bits, mémoire, blocs analogiques et numériques configurables

AU 2021/2022 97
Complément du cours
Vocabulaire (1)

a. PAL, GAL ( Programmable Array Logic, Généric Array Logic).

b. EPLD-CPLD (Erasable PLD ou Complex PLD)


Les EPLD sont programmables électriquement et effaçables aux UV ;
Les EEPLD sont effaçables électriquement
Principe similaire aux PAL mais avec interconnexions réalisées en
techno UVPROM
On trouve également les pLSI et ispLSI (in situ programmable)

c. FPGA (Field Programmable Gate Array)


C ’est un ensemble de blocs logiques élémentaires que l ’utilisateur
peut interconnecter pour réaliser les fonctions logiques de son choix
La densité des portes est importante et sans cesse en évolution
FPGA à SRAM ou LCA Logic Cell Array (1985 par Xilinx)
FPGA à antifusibles (1990 Actel) non effaçables

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

Vous aimerez peut-être aussi