2 Logique programmable

Transcription

2 Logique programmable
Digital Electronics 2
Conception hiérarchique
et
Logique programmable
Dr. T.J.H. Kluter
March 7, 2012
Contents
1
Conception hiérarchique
1.1 La technique de diviser pour régner . . . . . . . . . . . . . . . . . . . . .
1.2 Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Tous mettre ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Logique programmable
2.1 Réseau logique programmable . . . . . . .
2.2 Réseau logique de portes . . . . . . . . . .
2.3 Circuit Logique Programmable . . . . . . .
2.4 Circuit Logique Programmable Complexes
2.5 Réseau de portes programmables in situ . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
5
5
8
11
13
13
1
Conception hiérarchique
Ce chapitre déscris l’approche pour résoudre un problème en le divisant en sousproblèmes jusqu’a atteindre un niveau compréhensible et résolvable. Cette approche est appellée diviser pour régner Elle peut être utilisée pour résoudre
énormement de problèmes différents tel des problèmes de programmations ou
des problèmes mécaniques, etc.
1.1 La technique de diviser pour régner
Dans l’approche diviser pour régner, on essaie de divisé notre grand problème
en de plus en plus petits problèmes jusqu’au moment où nous sommes capable
de les comprendres et de les résoudrent (voir diagramme 1.1). Le problème pricipal est appelé Root (la Racine) , et les sous-problèmes résolvables, Leaves (les
Feuilles). La première phase de l’approche diviser pour régner est une approche
Top Down (descendante). Aprs l’identification des leaves (feuilles) la réalisation
de ces feuilles peut tre mit dans la deuxième phase, la phase Bottom Up (montante).
Malheureusement, la plupart du temps, les feuilles du problème doivent com-
Big Problem
P1
L1
P2
L2
L3
Root
Phase 1:
Top Down
P3
L4
L5
Phase 2:
Bottom Up
Leaves
Figure 1.1: l’approche diviser pour régner: Le problème (root) est dans la première phase
(Descendante) divisé en petits problèmes compréhensibles et résovables (leaves). Dans
la deuxième phase,(Bottom Up) toutes les réalisations des petits problèmes sont remis
ensemble pour trouver la solution du Big Problem.
1
Conception hiérarchique
muniquer entre elles. Ce communication doit être identifiée durant la premire
phase de l’approche.
1.2 Communication
La communication peut être divisée en deux grands groupes:
• Le premier groupe représente les ensembles de bits sur lesquels les opérations sont effectuées. Ces ensembles de bits peuvent être par exemple des
entiers et les opérations des additions ou des multiplications. Ce groupe de
communication est souvent appelé data-path (chemin de données).
• Le deuxime groupe représente les ensembles de bits qui controlent les
opérations. Ces ensembles disent par exemple qu’une lumière doit être
allumée, une certaine opération doit être faite, etc. Ce deuxime groupe est
souvent appelé control-path (chemin de controle).
Dans ce cours, nous allons nous concentrer sur le deuxième groupe, le controlpath. Il peut tre divisé en deux motifs de communication, respectivement:
1. Master-Slave (Maı̂tre-Esclave). Dans la communication master-slave, la
maı̂tre impose a l’esclave le moment d’effectuer une action donnée. On
pourrait dire que le maı̂tre “kicks the slave”. Le plus simple motif de communication master-slave est un signal d’enable (activation). L’enable est
au niveau haut quand l’esclave doit faire son action et au niveau bas quand
il ne doit rien faire.
2. Master-Master, Slave-Slave, or Slave-Master. Dans ce type de communication, un des partenaires demande a l’autre s’il peut effactuer l’action.
Cette requête est faite grâce a un signal de request(requête). L’autre partenaire peut accepter la requête en utilisant le signal de acknowledge (reconnaissance), ou peut refuser en activant le signal nack . Ce type de
communication est souvent appelé handshaking.
Dans les désigns fonctionnels, la communication de controle est souvent compliquée et décrite dans des protocols (protocoles).
2
Tous mettre ensemble
1.3 Tous mettre ensemble
Pour demontrer l’approche diviser pour régner avec le motif de communication
master-slave, nous allons implémenter une lumire clignotante. Pour cet exemple,
la fréquence de l’opération sera de 500 Hz. La lampe doit donc clignoter a 1 Hz,
donc s’eteindre chaque 0.5 s.
3
2
Logique programmable
Les circuits logiques programmables sont une classe des ASICs (circuit intǵrṕropre
une application) qui permettent d’implḿenter une fonction logique sans devoir
implḿenter et assembler tous les transistors requis. Fondamentallement, la famille
des circuits programmables ammène la conception digitale au niveau des fonctions logiques. On pourrait comparer par la programmation en assembleur et
coder bit par bit un programme informatique.
2.1 Réseau logique programmable
Le premier membre de la famille des circuit logiques programmables est le Programmable Array Logic (PAL) (réseau logique programmable). L’architecture
du PAL est base sur le fait que chaque fonction logique peut tre crite dans la
Somme d’un produit, e.g., Y = A · B + A · B. L’architecture des PAL consistent
en un rseau de AND (ET) - suivi par un réseau de OR (OU) . Pour être capable
d’implementer toute fonction logique, les opérations AND sont connectées avec
des fusibles sur toutes les entrées et leurs inverses. L’architecture du PAL est
affichée dans le graphique 2.1.
Pour programmer une fonction logique dans un PAL, les fusibles représentant
les connections indésirables doivent tre enlevés (“blown up”). Cette “programmation” est effectuée en mettant le PAL dans un programmer et en brulant les
fusibles grce a l’application d’un haut voltage (approx. 12V-21V) sur les fusibles
indésirables. Ce qui fait que le PAL est un composant One-Time-Programmable
(OTP) (programmable une fois) vu que les fusibles brulés ne peuvent pas êtres
restorés. Un exemple de PAL programmé est montr dans le graphique 2.2.
Il y a quelque chose de spécial dans l’architecture du PAL montré dans le
graphique 2.1. Si on veut implémenter une fonction XOR: Y = A · B + A · B.
Cette fonction requiert seulement deux AND, alors que une macro-cell en contient quatre. Certains diront que cette fonction ne peut pas tre implémentée, alors
que nous pouvons réecrir la fonction comme suit:
Y = A · B + A · B + A · A + A · A = A · B + A · B + 0 + 0.
5
Logique programmable
Programmable fuses
AND−Array
OR−Array
To other macro−cells
Macro−cell
VCC
VCC
VCC
VCC
Inputs
A
B
C
D
VCC
VCC
X
VCC
Output
Output
Y
VCC
Figure 2.1: L’architecture fondamentalle d’un PAL.Chaque sortie est génerée par une
macro-cell(macro-cellule). Une macro-cell consiste en un réseau de fusibles, d’opérations
AND et d’opérations OR.
6
Réseau logique programmable
To other macro−cells
VCC
VCC
VCC
VCC
Inputs
A
B
C
D
VCC
VCC
X
VCC
Output
Output
Y
VCC
Figure 2.2: Les fonctions logiques sont implémentées par “blowing up” (en rouge) les
fusibles représentant les connections indésirables. Question: Quelle fonction logique est
représentée dans ce PAL ?
7
Logique programmable
Un grand avantage du PAL est que le délais depuis n’importe quelle entrée
(A, B, C, D, ...) pour n’importe quelle sortie (X, Y, ...) est fixe tio .
Le tableau 2.1 liste les avantages et les inconvénient des PALs.
Avantages
Consommation d’énergie basse
Délais d’entrée-sortie fixe(tio )
Toute fonction combinatoire possible
Non-volatile
Inconvénients
One-Time-Programmable (OTP)
Seulement fonctions combinatoires
Limité au nombre de macro-cells
Table 2.1: TLa liste des avantages et inconénients des PALs.
2.2 Réseau logique de portes
Pour résoudre le principal désavantage du PAL, One-Time-Programmability (OTP),
Lattice Semiconductors a introduit le Gate Array Logic (GAL) (Réseau logique
de portes). La principale différence entre le GAL et le PAL, c’est que les fusibles
sont remplacés par Floating Gate Transistors (FGMOS), montré dans le graphique 2.3.
Le FGMOS, en haut du graphique 2.4, est un composant capable de stocker
une charge sur sa porte flottante et isolée. Cette charge est sauvegardée pour
approximativement 10-20 ans. La fonction du FGMOS peut tre expliqueée en
séparant l’étape programmation et l’étape fonctionnement.
Dans l’étape de programmation, la porte de control et “l’interface bulk” sont
utilisés pour mettre ou enlever une charge de la porte flottante, comme montré
en bas à gauche du graphique 2.4. Lors de l’étape de fonctionnement, la porte
Floating
Gate
Transistor
Figure 2.3: Dans les GALs, les fusibles sont remplacés par des portes flottantes de transistors ce qui fait des GALs GALs In-System-Programmable (ISP) (Programmable dans
le système).
8
Réseau logique de portes
Control Gate
Source
Drain
Isolation
n+
n+
p−bulk
Bulk
Floating Gate
Programming:
Normal Operation:
The charged floating gate creates a
n−channel between Source and Drain
hence a "short−circuit"
Electrons are tunneled from floating gate
+
12V
n+
n+
SET:
n+
p−bulk
−
n+
p−bulk
There is no charge on any of the
gates; therefore, there is an isolation
between Source and Drain
Electrons are tunneled toward floating gate
−
12V
n+
+
n+
p−bulk
ERASE:
n+
n+
p−bulk
Figure 2.4: Opération simplifiée de programmation et d’effacement du FGMOS.
de control est laissée flottante, donc la charge sur la porte flottante 0détermine la
fonction du FGMOS. Si la porte flottante est chargée, une “n-channel” est formée
entre la source et la drain du FGMOS, ce qui permet au courant de passer du drain
à la source. Dans ce cas, le FGMOS fonctionne comme un “court-circuit” entre
la source et la drain. Si la porte flottante ne contient pas de charge, la source est
isolée du drain. Dans ce cas, le FGMOS agit comme un “circuit ouvert” entre
la source et le drain. Ces deux modes de fonctionnements sont montrés en bas à
droite du graphique 2.4.
A cause d’effet physiques, le FGMOS ne peut tre programmé et/ou effacé
que approximativement 10’000 fois. Après cette limite, un court-cricuit peut
9
Logique programmable
apparaitre entre la porte flottante et la porte de controle.
Vu que le FGMOS peut tre reprogrammé électriquement, il permet GAL d’tre
reprogrammé dans le systeme. Cete fonction est appelée In-System-Programmability
(ISP). Pour faire cela, Les GAL sont améliorés avec de la logique ISP. Un GAL
complet est affiché sur le graphique 2.5.
VCC
In
System
Programming
Logic
To other macro−cells
VCC
Inputs
A
B
C
D
VCC
VCC
VCC
VCC
Y
VCC
Output
Output
X
VCC
Figure 2.5: Le GAL a les mêmes fonctionnalités qu’un PAL, il permet en plus de la
flexibilité grce à son In-System-Programmability (ISP).
Ce tableau 2.2 liste les avantages et inconvénients des GAL.
10
Circuit Logique Programmable
Avantages
Consommation d’énergie basse
Délais d’entrée-sortie fixe (tio )
Toute fonction combinatoire possible
Non-volatile
In-System-Programmable (ISP)
Inconvénients
Retention de données approx. 10-20 ans
Seulement fonctions combinatoires
Limité du nombre de macro-cells
Seulement approx. 10.000 cycles
de programmation
Table 2.2: La liste des avantages et inconénients des GALs.
2.3 Circuit Logique Programmable
Une des principale limitation des PAL et des GAL est qu’ils peuvent seulement
implémenter des fonctions combinatoires. Pour faire une machine d’état fini, des
composants externes doivent être ajoutés. Cette limitation a motivé la création
des Programmable Logic Device (PLD) (Circuits Logiques Programmables. Dans
les PLDs, les macro-cell sont améliorées avec un élement de mémoire de la forme
d’une bascule D. Pour être capable d’implémenter de la logique combinatoire et
séquentielle, la sortie de la macro-cell peut être connectée directement sur le
OR ou sur le D-flipflop grce à deux FGMOSs. De plus, pour implémenter une
machine d’état fini, la sortie des flip-flop peut être reconnectée sur les entrées.
L’architecture des PLDs est montrée sur le graphique 2.6.
Ce tableau 2.3liste les avantages et inconvénients des PLD.
Avantages
Consommation d’énergie basse
Délais d’entrée-sortie fixe (tio )
Toute fonction logique possible
Non-volatile
In-System-Programmable (ISP)
Inconvénients
Retention de données approx. 10-20 ans
Nombre limité de macro-cells
Seulement approx. 10.000 cycles
de programmations
Table 2.3: La liste des avantages et inconénients des PLDs.
11
Logique programmable
VCC
In
System
Programming
Logic
To other macro−cells
VCC
Inputs
A
B
VCC
VCC
D Q
VCC
Output
VCC
VCC
D Q
Output
Y
X
VCC
C
Figure 2.6: Les PLD ajoute un élement de mémoire de type bascule D sur les macro cell.
Ce qui permet de faire de la logique combinatoire et séquentielle.
12
Circuit Logique Programmable Complexes
2.4 Circuit Logique Programmable Complexes
Inputs
Vu que le complexité des circuits digital augmente, les “petits” PLDs ne sont
plus capable de contenir toutes les fonctionnalités. Ce qui as introduit les Complex Programmable Logic Device (CPLD) (Circuit Logique Programmable Complexes). Dans le CPLD, l’architecture a changée, les entrées et les sorties ont été
séparés des macro-cells (Note: Dans tous les composants précédents, les entrées
et les sorties étaient directement connectées aux macro-cells). Le CPLD crées
les connections grâce a un routing array (réseau ou tableau de connection). Les
entrées et les sorties du compostant ainsi que les macro-cells sont tous connectés
au réseau de connection. le réseau de connection consiste en cross-bar(croisillon)
qui permet de faire la connection depuis une entrée donnée jusqu’a n’importe
quel sortie du réseau. Ces connections sont faites par les FGMOSs montrés dans
le graphique 2.7.
Le graphique 2.8 montre le schéma simplifié des CPLDs, et le tableau 2.4
liste les avantages et inconvénients des CPLDs.
Outputs
Figure 2.7: Diagramme simplifié d’un réseau de connections de 4 entrée et 8 sorties.
Les FGMOSs peuvent être utilisé pour connecter n’importe quel sortie a n’importe quel
entrée. Le nombre de FGMOSs requis est le produit du entrées par les sorties.
2.5 Réseau de portes programmables in situ
L’extensibilité des CPLDs est limitée par sont réseau de connections et ses délais
de lectures. De plus, pour certaines applications le nombre limité de cycles de
13
Logique programmable
Macro Cell
VCC
In
System
Programming
Logic
Macro
Cell
Macro
Cell
Macro
Cell
Macro
Cell
Macro
Cell
VCC
D Q
Macro
Cell
Routing Array
VCC
Macro
Cell
Macro
Cell
Macro
Cell
Macro
Cell
Macro
Cell
VCC
Figure 2.8: Diagramme block simplifié du CPLD. Chaque macro-cell contient la logique
montrée à gauche. Toutes les conections sont faites dans le réseau de connctions programmable. (Voir graphique 2.7).
14
Réseau de portes programmables in situ
Avantages
Consommation d’énergie basse
Délais d’entrée-sortie fixe (tio )
N’importe quel fonction logique possible
Non-volatile
In-System-Programmable (ISP)
Inconvénients
Retention des données
d’approx. 10-20 ans
Seulement approx. 10.000 cycles
de programmations
Table 2.4: La liste des avantages et inconvénients des CPLDs.
programmation rend le CPLD inutilisable. Ceci a intitié la création d’une architecture alternative volatile appelée Field Programmable Gate Array (FPGA)
(rseau de portes programmables in situ). Le FPGA, montré sur le graphique 2.9,
a beaucoup de similitude avec le CPLD, par contre, le grand réseau de connection a été divisé en beaucoup de petits réseau. En plus, les macro-cells ont été
remplacés par des Look Up Tables (LUTs).
La division des réseaux de connections a comme avantage de rendre le FPGA
très exetensible, en effet, la combinaison du réseau et du LUT peut être répliquée
dans n’importe quel direction. Toutefois, l’inconvénient est que le délais d’entréesortie cesse d’être prédictible. Le délais d’entrée-sortie dépend de (1) Le nombre
de LUTs utilisé pour la fonction logique et (2) le nombre de réseau de connections utilisé. Le graphique 2.10 montre l’implémentattion d’une fonction XOR
sur un FPGA.
Comme dit auparavant, les connections dans un FPGA sont faites par un
réseau de connections. Ces réseau sont très similaires à ceux des CPLD. Contrairement au CPLD, les FPGA sn’utilisent pas de FGMOS pour faire les connections, ils utilisent des pass-gates (portes-passantes), montrées dans le graphique 2.11.
Dans les CPLD, les “informations de connections” sont mémorisées par une
charge dans la porte flottante des FGMOS. Les FPGA utilisent un élément de
mémoire volatile, représentés par les D-flip-flops sur la gauche du graphique 2.11.
Un élément de mémoire contenant un 0 represente une connection et contenant
un 1 force une isolation. Un FPGA as deux cotés, (1) Le programmeur voit ce
que contient tous les éléments de mémoires en determinant sa fonction, montré
sur la gauche du graphique 2.11, et (2) le coté fonctionnel représentant les fonction logique implémentées lors de la fabrication, graphique 2.10 et sur la droite
du graphique 2.11.
Similairement a un réseau de connections, un LUT un coté programmation
15
Logique programmable
Avantages
Reprogrammable lors de l’éxécution
Toute fonction logique possible
Architecture extensible
Inconvénients
Temps de démarrage différent de zéro Tconf
Consommation d’énergie respectable
Table 2.5: La liste des avantages inconvénients des FPGAs.
et un coté fonctionnel, graphe 2.12. Le graphe 2.12 montre aussi la principale
différence entre la macro-cell du CPLD et le LUT du FPGA. La macro-cell
est basée sur l’implémentation d’une Somme de produits. Le LUT est basé sur
l’implémentation d’une table de vérité. Chaque entrée sur la table correspond a
un élément de mémoire dans la mémoire de configuration, graphique 2.13. En
utilisant un multiplexeur de 16 entrées, le ou les entrées de la table de vérité sont
sélectionées et mis sur la sortie. De plus, les LUTs contiennent aussi une bascule
D pour être utilisés pour faire des fonctions séquentielles. Notez que ces bascules D peuvent-être utilisés pour des fonctions logiques, alors que celles dans la
logique de configuration sont utilisés pour stocker la fonctionnalité.
Quand on regarde le coté programmation du FPGA, on peut voir qu’il représente un grand registre a décalage. Ce registre doit être chargé avec la configuration (souvent appellé bit-file (fichier bit)), vu que le FPGA perd toutes ces informations lorsqu’il est eteint. Ce chargement de configuration requiert du temps
Tconf . Durant ce temps, le FPGA ne peut pas fonctionner. Après étape, le FPGA
est pret pour faire les fonctions logiques.
Ce tableau 2.5 liste les avantages et inconvénients des FPGAs.
16
Réseau de portes programmables in situ
Field Programmable Gate Array (FPGA)
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Figure 2.9: Diagramme block simplifié d’un FPGA. Le FPGA est basé sur un ensemble
de réseau de connection combiné avec un LUT, le tout répliqué de multiple fois.
Field Programmable Gate Array (FPGA)
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Routing Array
LUT
Figure 2.10: Une fonction XOR implémentée sur un FPGA. Le délais d’entrée-sortie
dépend de (1) Le nombre de LUTs utilisé pour la fonction logique et (2) le nombre de
réseau de connections utilisé.
17
Logique programmable
Routing Array (cross−bar)
Configuration Logic (volatile)
TDI
D
Q
D
Q
D
Q
D
Q
TCK
A
TDO
V
D
Q
D
Q
D
Q
D
Q
B
W
D
Q
D
Q
D
Q
D
Q
C
X
D
Q
D
Q
D
Q
D
Q
D
Y
Figure 2.11: Diagramme simplifié d’un réseau de connections (routing array). le réseau
de connections as 2 cotés, (1) le coté programmátion (sur la gauche) qui sert a configurer
et (2) le coté logique(sur la droite) qui est utilisé pour les opérations normales.
18
Réseau de portes programmables in situ
Configuration Logic (volatile)
TDI
D
Q
D
Q
D
Q
Look Up Table (LUT)
D
Q
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
TCK
TDO
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
Y
D
Q
X
A
B
C
D
clock
Figure 2.12: Diagramme block simplifié d’un LUT. Le LUT a deux cotés, (1) le coté
programmation (sur la gauche) qui est configuré avant qu’il fasse ses opérations normal,
et (2) le coté logique (sur la droite) qui est utilisé lors des opérations normales.
Look Up Table (LUT)
Configuration Logic (volatile)
A B C D
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
Y
0 0
0 1
0
0
1 0
1
0
1
1
0
0
1
1
0
1
0
TDI
D
1
0
1
1 0
1
1 1
0 0
1 1 0 1
1 1 1 0
1 1 1 1
0
1
0
1
0
D
0
TCK
Q
D
0
Q
D
1
Q
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
TDO
D
Q
D
1
1
0
1 1
0 0
0 1
Q
D
Q
D
Q
D
D
D
Q
D
Q
1
Q
1
D
1
Q
0
Q
0
1
Q
1
D
1
0
D
Q
Y
D
Q
X
Q
0
D
Q
A
B
0
C
D
clock
Figure 2.13: Dans un LUT on utilise une Truthtable (table de vérité) pour mapper les
fonctions logiques. Chaque entrée dans la table de vérité correspond a un bit de la logique
de configuration. Question: Comment puis-je implémenter une fonction logique a 5
entrées ?
19

Documents pareils