circuits numeriques programmables

publicité
CIRCUITS NUMERIQUES
PROGRAMMABLES
(PROGRAMMABLE LOGIC DEVICES)
Circuits numériques (re)-configurables par l’utilisateur,
réalisant des fonctions logiques
(combinatoires + séquentielles) de façon matérielle
Contenu de la présentation
1)
Introduction des différentes familles
2)
SPLD (Simple Programmable Logic Device)
3)
EPLD / CPLD (Erasable / Complex Programmable Logic Device)
4)
FPGA (Field Programmable Gate Array)
1 - Différentes approches en électronique numérique:
• circuits discrets (TTL, CMOS, ...)
• circuits numériques programmables
• ASICs
logique
discrète
circuits
numériques
programmables
ASIC
vitesse
-
++
++
densité
-
++
++
coût
-
+
++ (pour très
contrainte
grosses quantités)
temps de développement
+
++
--
temps de simulation et de
prototypage
-
++
--
temps de fabrication
-
++
--
facilité de mise en œuvre
+
+
--
modification ultérieure
+
++
--
++
++
--
support de l’outil de développement
-
++
++
consommation
+
-
++
risque d’approvisionnement
Différentes familles de circuits numériques programmables
• PAL (Programmable Array Logic) ou SPLD (Simple Programmable Logic Device)
famille la plus ancienne (introduite par AMD)
technologie:
fusibles (One Time Programmable)
EEPROM (appelation GAL (Generic Array Logic), marque déposée par LATTICE Semiconductor, ou PAL CMOS)
principaux constructeurs: ATMEL, LATTICE Semiconductor, CYPRESS...
• EPLD (Erasable Programmable Logic Device) ou CPLD (Complex Programmable Logic Device)
technologie:
EPROM (effaçable par UV)
EEPROM (effaçable électriquement)
principaux constructeurs: ALTERA, XILINX...
• FPGA (Field Programmable Gate Array)
technologie:
anti-fusibles (non volatile)
SRAM (volatile)
principaux constructeurs: ALTERA, XILINX, ACTEL...
2 - SPLD (Simple Programmable Logic Devices)
circuit numérique programmable le + simple: ROM
entrées: lignes d’adresse
sorties: lignes de données
exemple: 4 mots de 4 bits
I1 . I 0
I1
I1 . I 0
I1 . I 0
I0
ET
I1 . I 0
OU
exemple:
O0 = (I1 . I0) + (I1 . I0)
décodeur (fixe)
O3
O2
O1
Sorties = fonctions logiques des entrées
Décodeur complet pour les entrées (tous les termes produits sont générés)
Mal adapté à la réalisation de fonctions logiques
O0
= I1 XOR I0
PAL
Structure de base: Plan de ET-OU programmable permettant de réaliser n’importe quelle fonction combinatoire de N entrées
I1
sortie
I0
principe de base
a b c d
I1
sortie
a b c d
I0
notation utilisée
I1
sortie
I0
ex: 10 entrées
ROM: 210 = 1024 portes ET à 10 entrées
PAL: quelques portes ET à 20 entrées
réalisation d’un OU EXCLUSIF
Structure d’un PAL
I3
I2
I1
I0
réseau «OU»
(fixe)
1 entrée supplémentaire
2 entrées supplémentaires
par porte ET
mais nombre de
portes ET
inchangé
exemple:
chaque sortie = somme
de 4 termes produits
fixe
réseau «ET»
(programmable)
O3
O2
O1
O0
Structure d’une PROM
I3
I2
I1
I0
réseau «OU»
(programmable)
1 entrée supplémentaire
la taille du
réseau de ET
est doublée
sortie = n’importe quelle
fonction logique des entrées
réseau «ET»
(fixe)
problème: tous les termes
produits sont générés
O3
O2
O1
O0
Structure d’un PLA
I3
I2
I1
I0
réseau «OU»
(programmable)
structure la + souple
n’est plus sur le marché actuellement
réseau «ET»
(programmable)
O3
O2
O1
O0
PAL versatile (V-PAL)
par programmation: sortie combinatoire pure (active haut ou active bas)
ou synchronisée sur horloge (inversée ou non)
référence:
exemple : PAL 22 V 10
nombre d’entrées
nombre de sorties
structure de sortie
(V = versatile, H = combinatoire haut, etc...)
résumé sur les PAL:
-
bien indiqués pour les fonctions combinatoires complexes, ne nécessitant pas ou peu de logique séquentielle
(exemple: décodeurs, ...)
-
fréquence maximale des signaux d’entrée/sortie ≈ 250 MHz
-
nombre maximum d’entrées/sorties: 22-10
-
consommation ≈ 100 mA
-
prix faible ≈ 1 à 5 € (selon la complexité et la vitesse)
-
gamme de composants «figée» (progressivement remplacée par EPLD, FPGA)
3 - Les EPLD
Introduits dans le milieu des années 80 par ALTERA
Principe de base: plusieurs PAL rassemblés sur un même circuit + interconnection programmable
Limitation des PAL: structure du plan logique programmable croît trop rapidement avec le nombre d’Entrées/Sorties
PAL: ≈ 10 à 20 entrées sorties
EPLD: jusque 272 entrées-sorties
1 seul PAL
plusieurs petits PAL
n entrées
In-1
...
I3
...
I0
exemple:
2 × 4 entrées
I0
I7
...
2n entrées par porte ET
(beaucoup non utilisées)
...
...
I4
Oi
Oi
...
Oj
Architecture typique d’un EPLD (ex: ALTERA MAX)
3 types de ressources principales
- PIA (Programmable Interconnect Array)
- réseau de LAB (Logic Array Blocs)
- réseau de IOB (Input Output Blocs)
1 LAB = 16 macrocellules
PIA: connecte n’importe quelle entrée ou sortie d’un LAB à un autre LAB
TIMING PREVISIBLE
- Programmable Interconnect Array
pattes d’entrées / sorties
+ sorties des macrocellules
PIA: connecte n’importe quelle entrée ou sortie d’un LAB à un autre LAB
TIMING PREVISIBLE (différence majeure avec les FPGA)
- Structure d’une macro-cellule
exemple: ALTERA MAX 7000
configurable en bascule
D, T, JK ou SR
à la base: 5 termes - produits par macrocellule
suffisant dans la majorité des cas
si besoin: + 15 autres termes - produits en provenance des
macrocellules voisines
meilleure utilisation des ressources et plus de flexibilité que les PALs
horloge globale (commune)
(logique synchrone)
ou
horloge locale (individuelle)
(logique asynchrone)
horloge locale / horloge globale
Q1
CK1
compteur
Q
Q2
A
CK
B
X
A-B
S
Q3
D
registre
Q
CK
CK2
CK1
Q1
Q2
1er cas:
CK2 <> CK1
2ème cas:
CK2 = CK1
valeur lue erronée
valeur lue correcte
- Structure d’un IOB
exemple: ALTERA MAX 7000E/S
Méthodologie de conception
créé par
le concepteur
réalisé par
le logiciel de
développement
(QUARTUS)
résumé sur les EPLD
(valeurs typiques prises pour familles MAX ALTERA)
-
Principaux constructeurs: ALTERA, LATTICE, XILINX,...
-
Délais de propagation prédictibles et indépendants du routage
-
Fréquence d’horloge max: 300 MHz pour compteur 16 bits
-
Nombre maximal de macro-cellules: 512
-
Nombre maximal d’entrées/sorties: 272 (en boîtier BGA 324-Pin)
-
Technologie: EEPROM (configuration sauvegardée hors alimentation)
-
Consommation: 50 à 300 mA (selon fréquence de fonctionnement, nombre de cellules actives, etc...)
-
Prix: de 4 à 100 €
4 - Les FPGA
Introduits dans le milieu des années 80 par XILINX
Structure s’apparentant aux ASIC de type «Gates-array»
Gate-array: réseau de transistors et de portes pré-fabriquées dont les connexions sont réalisées en fonction de
l’application souhaitée
FPGA: réseau de blocs logiques configurables + interconnexions configurables par l’utilisateur
TRES FORTE CAPACITE D’INTEGRATION («petits» blocs de base en grand nombre)
bloc logique
configurable
bloc E/S
configurable
Idée de départ: l’approche classique des PAL, GAL, EPLD peut entraîner un gaspillage des ressources
ressources perdues
si inutilisées
portes ET / OU
remplacées par
Look-Up Tables
Technologies utilisées
mémoire de configuration
SRAM
(reprogrammable)
anti-fusibles
(One Time Programmable)
XILINX (Virtex, Spartan, ...)
ALTERA (Stratix, Cyclone, ...)
...
ACTEL
QUICKLOGIC
...
Temps de propagation des signaux dans un FPGA:
dépend du placement / routage => non prédictible (<> EPLD)
élément logique
de base
exemple: structure STRATIX
ressources principales dans un FPGA
1 - élément logique de base
1 LUT = 1 ROM 16 x 1bit
cellules simples (ex: ACTEL)
(basées sur arbres de multiplexeurs)
- faible surface occupée par les blocs
- routage important nécessaire pour
fonctions complexes
1 bascule D
cellules complexes (ex: ALTERA)
(1 LUT + 1 bascule D par cellule)
- bien adapté à la réalisation de fonctions complexes
2 - bloc d’entrée / sortie
ex: ALTERA Cyclone
+ possibilité de résistance de pull-up
+ 2 valeurs possibles de slew-rate
+ niveaux TTL ou CMOS, etc...
+ possibilité de sortie drain ouvert
interfaçage possible avec
mémoire DDR (Double Data Rate)
ex: ALTERA Stratix
3 - routage
entrées dédiées pour
les signaux globaux
(clock, clear, output enable, ...)
4 - ressources annexes
• mémoire
blocs RAM
- réalisation de mémoire interne
de taille configurable
- réalisation de fonctions logiques
complexes
(exemple: multiplieur 4 bits x 4 bits,
résultat sur 8 bits pré-calculé
et stocké dans la mémoire)
famille FLEX10K
• blocs DSP
principales fonctions de
traitement du signal
(filtres FIR, filtres IIR,
corrélateurs, etc...)
utilisent multiplieurs +
additionneurs ou accumulateurs
blocs spécialisés avec fonctions
pré-câblées
Résumé sur les FPGA
-
Principaux constructeurs: ALTERA, XILINX,...
-
Délais de propagation non-prédictibles et dépendants du routage
-
Fréquence d’horloge max: ~ 500 MHz
-
Nombre maximal de macro-cellules: ~180 000
-
Taille mémoire disponible maximale: ~ 5 Mb
-
Nombre maximal d’entrées/sorties: ~1200 (en boîtier BGA 40 x 40)
-
Technologie: SRAM (configuration à charger à la mise sous tension) ou OTP
-
Fonctions spécifiques parfois disponibles (mémoire, DSP, PLL, ...)
-
Consommation: qq 100 mA (selon fréquence de fonctionnement, nombre de cellules actives, etc...)
-
Prix: de 10 à qq 100 €
Téléchargement