lecture 17 – technologies d’implémentationdemay.iut.lr.free.fr/doc/1a/informatique/i2-1 -...
TRANSCRIPT
CEG3555 – Rami Abielmona © 2008
Lecture 17 – Technologies d’Implémentation
Rami AbielmonaUniversité d’Ottawa10 Novembre, 2008
CEG 3555Systèmes Numériques II
CEG3555 – Rami Abielmona © 2008
Concepts de Leçon
Série 7400Intégration NumériquePLDPLAPALSPLDCPLDFPGAASICPaquetsCommutateurs des PLAs/PALsCommutateurs des FPGAsAltera et Xilinx CPLD/FPGAMots Clés
CEG3555 – Rami Abielmona © 2008
Série 7400
Dans les 1980s, on utilisait des puces de la série 7400 àpaquet DIP ensemble pour créer les circuits numériquesDIP – Dual Inline Packagef = x1x2 + x2*x3
CEG3555 – Rami Abielmona © 2008
Intégration Numérique
SSI – Small Scale Integration– Puces DIP– Contient un petit nombre de portes logiquesMSI – Medium Scale Integration
– Circuits logiques + contrôle– Contient une 10s ou 100s de portes logiquesLSI – Large Scale Integration
– 1985-1990– Contient un 1000s de portes logiquesVLSI – Very Large Scale Integration
– Plus populaire aujourd’hui– Contient plus que 10000 portes logiques
CEG3555 – Rami Abielmona © 2008
Les puces 7400 sont fixe en logique et ne peuvent pas être changéIl est devenu possible de fabriquer des puces qui ont
– Un grand nombre de portes logiques– Une structure flexible, qui peut être modifiéUn PLD (programmable logic device) est un puce qui peut êtreprogrammé pour réaliser un circuit logique en connectant des porteslogiques avec eux-mêmes par des commutateurs programmables
Dispositif Logique Programmable (PLD)
CEG3555 – Rami Abielmona © 2008
Le premier PLD était le PLA (programmable logic array)Utilise le concept qu’un circuit peut êtreréalisé en forme SOP
– Une rangée ET pour les termes de produit– Une rangée OU pour les fonctions SOPToutes les entrées sont fournies en formenormale et inversé en utilisant des tamponsOn peut réaliser n’importe quelle fonctionSOP des entrées du PLAPLAs sont efficaces en capacité logiquedans un circuit intégré, et pour cela sontinclus dans des puces plus larges, commeles microprocesseurs
Logique Rangée Programmable (PLA) (1)
CEG3555 – Rami Abielmona © 2008
f1 = x1x2 + x1x3* + x1*x2*x3
f2 = x1x2 + x1*x2*x3 + x1x3
Logique Rangée Programmable (PLA) (2)
CEG3555 – Rami Abielmona © 2008
Les commutateursprogrammables des PLAs étaient
– Difficile à fabriquer– Réduisents la vitesse des circuitsUn PAL utilise une rangée ET programmable, mais une rangéeOU fixeUn PAL est moins flexible qu’unPLA (moins de termes de produitpour chaque porte OU)Un PAL est aussi moins cher et plus facile à fabriquer, alors estplus populaire qu’un PLAf1 = x1x2x3* + x1*x2x3
f2 = x1*x2* + x1x2x3
Rangée Logique Programmable (PAL)
CEG3555 – Rami Abielmona © 2008
Les sorties des portes logiques OU peut être enregistrés ou non
– Circuits combinationnels– Circuits séquentielsOn appelle le circuit à la droite un macrocell du SPLD (PLA ou PAL)Les macrocells peuvent être utiliséscomme des entrées ou des sorties en utilisant des tampons à trois-étatsUn SPLD peut être programmée en utilisant un programmeur, un fichierde programmation et un socketLe fichier de programmation désigneles interconnections entre les porteslogiques
Dispositif Logique Programmable Simple (SPLD)
CEG3555 – Rami Abielmona © 2008
Les SPLDs sont efficaces pour réaliser des circuits avec un petit nombre d’entrées et sortiesSi ce nombre augmente, on peututiliser multiples PLA ou PALs, oudes CPLDsUn CPLD contient des blocs logiquessemblables à des PALs, des blocs de I/O et les fils d’interconnection
Dispositif Logique Programmable Complexe (CPLD) (1)
CEG3555 – Rami Abielmona © 2008
Chaque bloc de logique contienthabituellement 16 macrocellsChaque macrocell contient
– 5-20 entrées à chaque porte OU– Une porte EX-OR– Une bascule D– Un multiplexeur– Un tampon à trois-étatsLes fils d’interconnection attachentles blocs PALs ensemble pour avoirdes circuits plus complexesHabituellement, on a de 2-100 blocs PAL dans un CPLD
Dispositif Logique Programmable Complexe (CPLD) (2)
CEG3555 – Rami Abielmona © 2008
ISP – In-System Programming– En utilisant le port JTAG, on peut programmer le CPLD sans l’enlever du
systèmeJTAG – Joint Test Action GroupOn utilise quatre fils pour la programmationOn peut programmer plusieurs CPLDs au même temps
Programmation non-volatile– Une fois programmé, le CPLD garde son structure interne, même si la
puissance est coupée
Dispositif Logique Programmable Complexe (CPLD) (3)
CEG3555 – Rami Abielmona © 2008
Mêmes les CPLDs ne sont pas aussi flexibleset/ou largesIl y a plusieurs mesures pour la capacitélogique d’un puce
– Portes logiques– Macrocells– Tranche logiques– Etc…Une mesure commune est la porte équivalente(PE)
– Porte non-et à deux entréesUn PAL contient à peu près 160 PEsUn CPLD contient à peu près 10000 PEsOn voudrait réaliser des circuits à plus que10000 PEs!
– Les FPGAs sont des dispositifs programmablesqui supportent des circuits relativement large
Résau Prédiffusé Programmable par l’Utilisateur (FPGA) (1)
CEG3555 – Rami Abielmona © 2008
Un FPGA contient trois types de resources– Blocs I/O– Blocs logiques– Fils d’interconnectionPas de rangée ET et/ou OULe plus populaire FPGA est basé sur des tables de recherches (LUT) composé de cellules de SRAMHabituellement, on trouve des LUTs à 4-5 entrées
Résau Prédiffusé Programmable par l’Utilisateur (FPGA) (2)
CEG3555 – Rami Abielmona © 2008
Puisque les FPGAs sont volatils, on utilise un ROM pour programmer le FPGA au démarrage
– ROM– PROM– EPROM– EEPROMf = f1 + f2 = x1x2 + x2*x3
Résau Prédiffusé Programmable par l’Utilisateur (FPGA) (3)
CEG3555 – Rami Abielmona © 2008
Quand les FPGAs ne sont pas– Assez grands– Assez rapides– Assez bas en puissanceOn utilise des puces coutumes, des cellules standards ou des réseauxprédiffusés de portes (sea-of-gates)Chaque carré bleu représente un via qui connecte un fil d’une couche àun fil d’une autre couche
Circuit Intégré pour une Application Spécifique (ASIC) (1)
CEG3555 – Rami Abielmona © 2008
Circuit Intégré pour une Application Spécifique (ASIC) (2)
f = x2x3* + x1x3Réseau prédiffusé à mer-de-portes
CEG3555 – Rami Abielmona © 2008
Paquets
DIP – Dual-Inline PackageSOIC – Small-Outline Integrated Circuit
– Semblable mais plus petit qu’un DIPPLCC – Plastic-Leaded Chip Carrier
– Les goupilles enveloppent autour des bords du puceQFP – Quad Flat Pack
– Semblable au PLCC mais les goupilles se prolongent à l’extérieur du paquet– Les goupilles sont plus minces, alors on peut avoir des puces QFP avec plus
que 200 goupilles (PLCC: 100)PGA – Pin Grid Array
– Une 100s de goupilles qui prolongent à l’extérieur et au dessous du paquetBGA – Ball Grid Array
– Semblable au PGA mais les goupilles sont des petites boules!
CEG3555 – Rami Abielmona © 2008
Un PLA NON-OU/NON-OUS1 = (x2 + x3*)*S2 = (x1 + x3)*S3 = (x1 + x2* + x3)*f1 = (S1 + S2)* = S1*S2*f2 = (S1 + S3)* = S1*S3*D’autres formes de PLA existe, mais puisque la porte NON-OU estla plus efficace des portes CMOS, c’est la forme la plus populaire
Commutateurs des PLAs/PALs
CEG3555 – Rami Abielmona © 2008
L’information de programmation dansun FPGA est gardé dans les cellules de SRAMMême les interconnections de fil sontprogrammés par ces cellulesLes commutateurs à passage-de-transisteur NMOS peuvent seulementpartiellement passer une valeur de logique élevéeOn peut utiliser un circuit de restaurateur de niveau élevé, maiscela
– Augmente la capacité sur les filsd’interconnection, et
– Augmente les délais de propagation et la puissance
Commutateurs des FPGAs
CEG3555 – Rami Abielmona © 2008
Altera – MAX 7000 CPLD (1)
MAX 7000 CPLDCourtoisie d’Altera
CEG3555 – Rami Abielmona © 2008
Altera – MAX 7000 CPLD (2)
MAX 7000 macrocellCourtoisie d’Altera
CEG3555 – Rami Abielmona © 2008
Xilinx – XC9500 CPLD (1)
XC9500 CPLDCourtoisie de Xilinx
CEG3555 – Rami Abielmona © 2008
Xilinx – XC9500 CPLD (2)
XC9500 FBCourtoisie de Xilinx
CEG3555 – Rami Abielmona © 2008
Xilinx – XC9500 CPLD (3)
XC9500 macrocellCourtoisie de Xilinx
CEG3555 – Rami Abielmona © 2008
Altera – FLEX 10K FPGA (1)
FLEX 10K FPGACourtoisie d’Altera
CEG3555 – Rami Abielmona © 2008
Altera – FLEX 10K FPGA (2)
FLEX 10K LABCourtoisie d’Altera
FLEX 10K LECourtoisie d’Altera
CEG3555 – Rami Abielmona © 2008
Altera – FLEX 10K FPGA (3)
FLEX 10K EABCourtoisie d’Altera
CEG3555 – Rami Abielmona © 2008
Xilinx – Virtex FPGA (1)
Virtex FPGACourtoisie de Xilinx
Virtex IOBCourtoisie de Xilinx
CEG3555 – Rami Abielmona © 2008
Xilinx – Virtex FPGA (2)
Virtex CLBCourtoisie de Xilinx
CEG3555 – Rami Abielmona © 2008
Xilinx – Virtex FPGA (3)
Virtex TrancheCourtoisie de Xilinx
CEG3555 – Rami Abielmona © 2008
Mots Clés et Points de Revue
Altera FLEX 10K FPGAAltera MAX 7000 CPLDBall Grid ArrayCircuit Intégré pour une Application Spécifique (ASIC)Commutateurs ProgrammablesDispositif Logique Programmable (PLD)Dispositif Logique Programmable Complexe (CPLD)Dispositif Logique Programmable Simple (SPLD)Dual-Inline PackageLarge Scale IntegrationLogique Rangée Programmable (PLA)Medium Scale IntegrationPin Grid ArrayPlastic-Leaded Chip CarrierQuad Flat PackRangée Logique Programmable (PAL)Résau Prédiffusé Programmable par l’Utilisateur (FPGA)Small-Outline Integrated CircuitSmall Scale IntegrationVery Large Scale IntegrationXilinx Virtex FPGAXilinx XC9500 CPLD