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