Digital Electronics 2 Conception hiérarchique et Logique programmable Dr. T.J.H. Kluter March 7, 22
Contents Conception hiérarchique. Latechniquedediviserpourrégner......................2 Communication................................ 2.3 Tousmettreensemble............................. 3 2 Logique programmable 5 2. Réseaulogiqueprogrammable........................ 5 2.2 Réseaulogiquedeportes........................... 8 2.3 CircuitLogiqueProgrammable........................ 2.4 CircuitLogiqueProgrammableComplexes................. 3 2.5 Réseaudeportesprogrammablesin situ................... 3
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.. 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.). 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 Root P P2 P3 Phase : Phase 2: Top Down Bottom Up L L2 L3 L4 L5 Leaves Figure.: 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.
Conception hiérarchique muniquer entre elles. Ce communication doit être identifiée durant la premire phase de l approche. 2.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:. 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 pourraitdirequelemaître kickstheslave. Leplussimplemotifdecommunication master-slave est un signal d enable (activation). L enable est auniveauhautquandl esclavedoitfairesonactionetauniveaubasquand il nedoitrienfaire. 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).
Tous mettre ensemble.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, lafréquencedel opérationserade5hz. LalampedoitdoncclignoteraHz, donc s eteindre chaque.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. 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 Sommed unproduit,e.g.,y = A B+A B. L architecturedespal 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.. 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. 2V-2V) 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.. 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++. 5
Logique programmable A B C D Programmable fuses AND Array OR Array To other macro cells Macro cell Inputs X Y Output Output Figure 2.: 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 A B C D To other macro cells Inputs X Y Output Output 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,...) pourn importequellesortie(x,y,...) est fixet io. Le tableau 2. liste les avantages et les inconvénient des PALs. Avantages Inconvénients Consommation d énergie basse One-Time-Programmable(OTP) Délaisd entrée-sortiefixe(t io ) Seulementfonctionscombinatoires Toute fonction combinatoire possible Limité au nombre de macro-cells Non-volatile Table 2.: 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 deportes). LaprincipaledifférenceentreleGALetlePAL,c estquelesfusibles sont remplacés par Floating Gate Transistors (FGMOS), montré dans le graphique 2.3. Le FGMOS, en haut du graphique2.4, est un composant capable de stocker une charge sur sa porte flottante et isolée. Cette charge est sauvegardée pour approximativement -2 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 Source Control Gate Drain Isolation n+ p bulk n+ Bulk Floating Gate + Programming: Electrons are tunneled from floating gate Normal Operation: The charged floating gate creates a n channel between Source and Drain hence a "short circuit" 2V n+ p bulk n+ SET: n+ p bulk n+ Electrons are tunneled toward floating gate There is no charge on any of the gates; therefore, there is an isolation between Source and Drain + 2V n+ p bulk n+ ERASE: n+ p bulk n+ 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 détermine la fonction du FGMOS. Si la porte flottante est chargée, une n-channel est formée entrelasourceetladraindufgmos,cequipermetaucourantdepasserdudrain à 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 modesde fonctionnementssont montrésen bas à droite du graphique 2.4. A cause d effet physiques, le FGMOS ne peut tre programmé et/ou effacé que approximativement 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ésavec de la logique ISP. Un GAL complet est affiché sur le graphique 2.5. A B C D In System Programming Logic To other macro cells Inputs X Y Output Output 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.
Circuit Logique Programmable Avantages Inconvénients Consommation d énergie basse Retention de données approx. -2 ans Délaisd entrée-sortiefixe(t io ) Seulementfonctionscombinatoires Toute fonction combinatoire possible Limité du nombre de macro-cells Non-volatile Seulement approx.. cycles In-System-Programmable(ISP) 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 Inconvénients Consommation d énergie basse Retention de données approx. -2 ans Délaisd entrée-sortiefixe(t io ) Nombrelimitédemacro-cells Toute fonction logique possible Seulement approx.. cycles Non-volatile de programmations In-System-Programmable(ISP) Table 2.3: La liste des avantages et inconénients des PLDs.
Logique programmable A B In System Programming Logic To other macro cells Inputs X Y D Q Output D Q Output C Figure2.6: LesPLDajouteunélement demémoiredetype basculedsurlesmacro cell. Ce qui permet de faire de la logique combinatoire et séquentielle. 2
Circuit Logique Programmable Complexes 2.4 Circuit Logique Programmable Complexes 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. Inputs 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. Lenombre de FGMOSsrequis est leproduit duentrées par lessorties. 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 3
Logique programmable Macro Cell In System Programming Logic Macro Cell Macro Cell Macro Cell Macro Cell Macro Cell D Q Macro Cell Macro Cell Macro Cell Macro Cell Macro Cell Macro Cell 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). 4
Réseau de portes programmables in situ Avantages Inconvénients Consommation d énergie basse Retention des données Délaisd entrée-sortiefixe(t io ) d approx. -2ans N importe quel fonction logique possible Seulement approx.. cycles Non-volatile de programmations In-System-Programmable(ISP) 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(s). 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 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() Le nombre de s utilisé pour la fonction logique et (2) le nombre de réseau de connections utilisé. Le graphique 2. montre l implémentattion d une fonction XOR surunfpga. 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.. 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.. Un élément de mémoire contenant un represente une connection et contenant un force une isolation. Un FPGA as deux cotés, () Le programmeur voit ce que contient tous les éléments de mémoires en determinant sa fonction, montré sur la gauche du graphique 2., et (2) le coté fonctionnel représentant les fonction logique implémentées lors de la fabrication, graphique 2. et sur la droite du graphique 2.. Similairement a un réseau de connections, un un coté programmation 5
Logique programmable Avantages Inconvénients Reprogrammablelorsdel éxécution Tempsdedémarragedifférentde zérot conf Toute fonction logique possible Consommation d énergie respectable Architecture extensible Table 2.5: La liste des avantages inconvénients des FPGAs. et un coté fonctionnel, graphe 2.2. Le graphe 2.2 montre aussi la principale différence entre la macro-cell du CPLD et le du FPGA. La macro-cell est basée sur l implémentation d une Somme de produits. Le 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.3. En utilisantunmultiplexeurde6entrées,leoulesentréesdelatabledevéritésont sélectionées et mis sur la sortie. De plus, les s 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 T conf. Durant ce temps, le FPGA ne peut pasfonctionner. Aprèsétape, le FPGA est pret pour faire les fonctions logiques. Ce tableau 2.5 liste les avantages et inconvénients des FPGAs. 6
Réseau de portes programmables in situ Field Programmable Gate Array (FPGA) Figure 2.9: Diagramme block simplifié d un FPGA. Le FPGA est basé sur un ensemble de réseau de connection combiné avec un, le tout répliqué de multiple fois. Field Programmable Gate Array (FPGA) Figure 2.: Une fonction XOR implémentée sur un FPGA. Le délais d entrée-sortie dépend de () Le nombre de s utilisé pour la fonction logique et (2) le nombre de réseau de connections utilisé. 7
Logique programmable Configuration Logic (volatile) (cross bar) TDI TCK A TDO V B W C X D Y Figure 2.: Diagramme simplifié d un réseau de connections (routing array). le réseau de connections as 2 cotés, () 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. 8
Réseau de portes programmables in situ Configuration Logic (volatile) Look Up Table () TDI TCK TDO D Q Y X A B C D clock Figure 2.2: Diagramme block simplifié d un. Le a deux cotés, () le coté programmation (sur la gauche) qui est configuré avant qu il fasse ses opérations normal, et(2) le coté logique (surla droite) qui est utilisélors des opérations normales. Configuration Logic (volatile) Look Up Table () A B C D Y TDI TCK TDO A B C D Q Y X D clock Figure 2.3: Dans un 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? 9