32
CEG3555 – Rami Abielmona © 2008 Lecture 17 – Technologies d’Implémentation Rami Abielmona Université d’Ottawa 10 Novembre, 2008 CEG 3555 Systèmes Numériques II

Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

Embed Size (px)

Citation preview

Page 1: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Lecture 17 – Technologies d’Implémentation

Rami AbielmonaUniversité d’Ottawa10 Novembre, 2008

CEG 3555Systèmes Numériques II

Page 2: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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

Page 3: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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

Page 4: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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

Page 5: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 6: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 7: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

f1 = x1x2 + x1x3* + x1*x2*x3

f2 = x1x2 + x1*x2*x3 + x1x3

Logique Rangée Programmable (PLA) (2)

Page 8: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 9: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 10: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 11: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 12: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 13: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 14: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 15: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 16: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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)

Page 17: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Circuit Intégré pour une Application Spécifique (ASIC) (2)

f = x2x3* + x1x3Réseau prédiffusé à mer-de-portes

Page 18: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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!

Page 19: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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

Page 20: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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

Page 21: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Altera – MAX 7000 CPLD (1)

MAX 7000 CPLDCourtoisie d’Altera

Page 22: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Altera – MAX 7000 CPLD (2)

MAX 7000 macrocellCourtoisie d’Altera

Page 23: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Xilinx – XC9500 CPLD (1)

XC9500 CPLDCourtoisie de Xilinx

Page 24: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Xilinx – XC9500 CPLD (2)

XC9500 FBCourtoisie de Xilinx

Page 25: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Xilinx – XC9500 CPLD (3)

XC9500 macrocellCourtoisie de Xilinx

Page 26: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Altera – FLEX 10K FPGA (1)

FLEX 10K FPGACourtoisie d’Altera

Page 27: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Altera – FLEX 10K FPGA (2)

FLEX 10K LABCourtoisie d’Altera

FLEX 10K LECourtoisie d’Altera

Page 28: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Altera – FLEX 10K FPGA (3)

FLEX 10K EABCourtoisie d’Altera

Page 29: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Xilinx – Virtex FPGA (1)

Virtex FPGACourtoisie de Xilinx

Virtex IOBCourtoisie de Xilinx

Page 30: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Xilinx – Virtex FPGA (2)

Virtex CLBCourtoisie de Xilinx

Page 31: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

CEG3555 – Rami Abielmona © 2008

Xilinx – Virtex FPGA (3)

Virtex TrancheCourtoisie de Xilinx

Page 32: Lecture 17 – Technologies d’Implémentationdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · z Un PLD (programmable logic device) est un puce qui peut être

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