CIRCUITS LOGIQUES PROGRAMMABLES CPLD FPGA CIRCUITS LOGIQUES PROGRAMMABLES PAL EPLD FPGA 28/09/2000
Les familles de circuits logiques programmables CPLD FPGA Les familles de circuits logiques programmables PLD Circuits logiques programmables PAL Bipolaires non effaçables EPLD Circuits logiques effaçables FPGA Réseaux de portes programmables De type RAM EPLD Complexes ou CPLD PAL CMOS et GAL UVPROM E²CMOS Isp PAL ICE GAL AMD VATTICE EP XXX MAX 5000 } ALTERA TPC TEXAS XC XILINX FLEX ALTERA FPGA A Anti-fusibles MACH 3 et 4 pLSI MAX 7000 MAX 9000 MAX 9000 ispLSI MACH 3 et 4 ALTERA VATTICE AMD 28/09/2000
CPLD FPGA Les PAL INVENTE IL Y A PLUS DE 20 ANS PAR LA SOCIETE MMI PIONNIERS DE LA TECHNOLOGIE DES MEMOIRE PROM IDEE : Utiliser la technologie des fusibles que l’on fait fondre de l’extérieur du composant pour réaliser des circuits logiques => pas de câblage fastidieux de circuits logiques sur circuits imprimés STRUCTURE INTERNE : Fusibles permettant de rompre le contact électrique et de générer une fonction logique 28/09/2000
EXEMPLE DE PROGRAMMATION : CPLD FPGA EXEMPLE DE PROGRAMMATION : LA FONCTION OU EXCLUSIF : Suivant les fusibles « grillés » une fonction logique est définie sans câblage spécifique 28/09/2000
CPLD FPGA LA LOGIQUE : COMPOSANT PROGRAMMABLE POSSEDANT UNE STRUCTURE DE BASE PROGRAMMATEUR SPECIFIQUE (OU système à µP) GENERATION DE FONCTIONS LOGIQUES COMPLEXES BESOIN DEFINITION D’UNE STRUCTURE LOGIQUE SYSTEME ELECTRONIQUE (COMPLEXE) FONCTIONNEL EST UTILISEE POUR PERMETTRE DE GENERER DES SYSTEMES ELECTRONIQUES COMPLEXES 28/09/2000
Différentes structures possibles CPLD FPGA Différentes structures possibles TROIS TYPES DE STRUCTURES ONT ETE ELABOREES AU SEIN DES PALS (et FPLA) 28/09/2000
ORGANISATION INTERNE : CPLD FPGA L’aspect séquentiel CELLULE DE BASE : BASCULE D ORGANISATION INTERNE : REGISTRE 28/09/2000
CPLD FPGA Exemple Cet exemple permet de comprendre comment l’on peut réaliser un décodeur par programmation de fonctions logiques au sein d’un PAL DECODEUR BCD HEXADECIMAL POUR AFFICHEUR 7 SEGMENTS : 28/09/2000
La programmation CPLD FPGA 28/09/2000 PALASM VERION 1.5 PAL16L8 PAT07 HEX /RBI D0 D1 D2 D3 IC LT NC NC GND NC G /RB0 F E D C B A VCC IF (/IC)/A =/RB0*/D0/D2+RB0*/D0*D3+/RB0*D2+/RB0*D1*D2*/D3+/RB0*D0*D2*/D3+/RBO*/D1*/D2*D3+LT IF (/IC)/B =/RB0*/D2*/D3+/RB0*/D0*/D2+/RB0*/D0*/D1*/D3+/RB0*D0*D1*/D3+/RB0*D0*/D1*/D3+LT IF (/IC)/C =/RB0*D0*/D1+/RB0*D0*/D2+/RB0*/D1*/D2+/RB0*D2*D3+/RB0*/D2*D3+LT IF (/IC)/D =/RB0*/D1*D3+/RB0*/D0*/D2*/D3+/RB0*D0*D1*/D2+/RB0*/D0*D1*D2+/RBO*D0*/D1*D2+LT IF (/IC)/E =/RB0*/D0*/D2+/RB0*D2*D3+/RB0*/D0*D1+/RB0*D1*/D3+LT IF (/IC)/F =/RB0*/D0*/D1+/RB0*/D2*D3+/RB0*D1*D3+/RB0*/D0*/D2+/RB0*/D1*D2*/D3+LT IF (/IC)/RB0 =/D0*/D1*/D2*/D3*/RBI IF(/IC)/G = /RB0*D1*D2+RB0*D0*D3+/RB0*/D2*D3+/RB0*/D0*D1+/RB0*/D1*D2*/D3+LT DESCRIPTION 28/09/2000
Câblage effectué en grillant les fusibles par programmation CPLD FPGA Résultat Câblage effectué en grillant les fusibles par programmation Sortie Décodée Entrée codée 28/09/2000
CPLD FPGA Exemple de paquetages LES PAL bipolaires : PAL, PAL bipolaires, PAL versatiles, VPAL AFFECTATION DES PINS : APPARENCE DES PAQUETAGES : 28/09/2000
CPLD FPGA Les GAL (~ PAL CMOS) DIFFERENCE AVEC LES PAL : PLUS GRANDE SOUPLESSE DE CONFIGURATION DES ENTREES SORTIES QUE LES PALS CONSOMMATION BEAUCOUP PLUS FAIBLE QUE LES PAL DE MEME COMPLEXITE EFFACABLES ELECTRIQUEMENT (permet des reprogrammations en phase de développement) LA STRUCTURE DE BASE EST UNE MACROCELLULE PLUS COMPLEXE EN FAIT CES COMPOSANTS PREFIGURENT LES CIRCUITS LOGIQUES PLUS EVOLUES UTILISES DE NOS JOURS POUR LA CONCEPTION D ’ASICS (circuits électroniques dédiés) 28/09/2000
Architecture des GAL CPLD FPGA ARCHITECTURE D ’UN GAL MACROCELLULE DU GAL 28/09/2000
Configuration des Macro cellules CPLD FPGA Configuration des Macro cellules 28/09/2000
Une Macro cellule Synchrone Multiplexée CPLD FPGA Une Macro cellule Synchrone Multiplexée VERS UNE COMPLEXITE CROISSANTE DE LA MACROCELLULE Adjonction d ’un multiplexeur 4 vers 1 Adjonction d ’un multiplexeur 2 vers 1 VERS UNE POLYVALENCE CROISSANTE DES FONCTIONS LOGIQUES ELABOREES 28/09/2000
L ’interface homme-composant (le LOGICIEL) CPLD FPGA L ’interface homme-composant (le LOGICIEL) PRINCIPE DE PROGRAMMATION D’UN GAL 28/09/2000
CPLD FPGA Les EPLD SIGNAUX GROUPES EN TROIS BLOCS DISTINCTS (entrées, entrées/sorties, macro cellules) POSSIBILITES D’INTERCONNECTIONS + NOMBREUSES BASCULES CONFIGURABLES LA STRUCTURE D’UN EPLD RESTE SIMILAIRE A UN GAL : 28/09/2000
CPLD FPGA La cellule de base 28/09/2000
CABLAGE DU RESEAU D’INTERCONNECTION ET DES MACROCELLULES D’UN EPLD CPLD FPGA Les EPLD CABLAGE DU RESEAU D’INTERCONNECTION ET DES MACROCELLULES D’UN EPLD 28/09/2000
Les FPGA (ce qu’apporte la RAM) CPLD FPGA Les FPGA (ce qu’apporte la RAM) 28/09/2000
Structure d ’un FLEX 10 K (altera) CPLD FPGA Structure d ’un FLEX 10 K (altera) 28/09/2000
Structure d ’un FLEX 10 K (altera) CPLD FPGA Structure d ’un FLEX 10 K (altera) ZOOMONS SUR UN BLOC LOGIQUE 28/09/2000
La Macro cellule d ’un FLEX 10 K CPLD FPGA La Macro cellule d ’un FLEX 10 K ZOOMONS SUR UN ELEMENT LOGIQUE DE BASE 28/09/2000
Un exemple de carte de développement CPLD FPGA Un exemple de carte de développement 28/09/2000
Quelques questions légitimes CPLD FPGA Quelques questions légitimes QUEL EST L’INTERET DE CES COMPOSANTS PROGRAMMABLES EN ELECTRONIQUE ? QU ’APPORTENT-ILS DE PLUS QUE LES SYSTEMES DE PORTES LOGIQUES CÂBLES SUR CIRCUITS IMPRIMES? QU ’EST CE QUE LA SIMULATION LOGIQUE ET EN QUOI A-T-ELLLE UN RAPPORT AVEC CES COMPOSANTS? QU ’EST CE QUE LA SYNTHESE LOGIQUE ET EN QUOI CES COMPOSANTS NOUS PERMETTENT-ILS DE DEFINIR DE NOUVEAUX COMPOSANTS DEDIES? AVEZ-VOUS ENTENDU PARLER DE LANGUAGES DE MODELISATION (VHDL, VERILOG, TNSS) ? NOUS ALLONS ESSAYER DE REPONDRE A CES QUESTIONS AU TRAVERS D ’UN EXEMPLE CONCRET ET LIBERATEUR …… LA MACHINE A LAVER ! 28/09/2000
Un exemple concret CPLD FPGA VOYONS COMMENT L’ ON PEUT DEFINIR UN PROGRAMMATEUR DE MACHINE A LAVER ET L’ INTEGRER DANS UN ASIC EN PASSANT PAR LA PROGRAMMATION DE FPGA DEFINISSONS TOUT D ’ABORD LA NOTION DE MACHINE A ETAT ET SON IMPLANTATION ELECTRONIQUE Machine à état d ’une machine à laver : Arrêt Lavage Rinçage Essorage Prélavage 28/09/2000
Le codage des états CPLD FPGA 28/09/2000 Prélavage : 10 minutes Rinçage : 10 minutes Essorage : 5minutes Arrêt XYZ=000 Lavage XYZ=111 Rinçage XYZ=100 Essorage XYZ=101 Prélavage XYZ=110 C<10 C>=10 C<30 C>=30 C<5 C>=5 M M.P M : variable booléenne de Marche P: Variable booléenne indiquant si choix de prélavage C : Valeur en minute du chronomètre 28/09/2000
La machine à état synchrone CPLD FPGA La machine à état synchrone P1,P2 : RESEAU COMBINATOIRES RE : REGISTRES ETAT FUTUR SORTIES P1 P2 RE HORLOGE MOORE MEALY ENTREES ETAT COURANT 28/09/2000
Mise en œuvre en électronique CPLD FPGA Mise en œuvre en électronique Arrêt XYZ=000 Lavage XYZ=111 Rinçage XYZ=100 Essorage XYZ=101 Prélavage XYZ=110 C10 C30 C5 M M.P Codage « one hot » 28/09/2000
La définition des combinaisons logiques CPLD FPGA La définition des combinaisons logiques DEFINITION DES TABLEAUX DE KARNAUGH SIMPLIFICATION DE L’EXPRESSION LOGIQUE DEFINITION DU CABLAGE DES PORTES LOGIQUES RECHERCHE D’UNE SOLUTION ADAPTEE EN ELECTRONIQUE AU COURS DE CETTE DEMARCHE NOUS VERRONS COMMENT L’ON PEUT UTILISER LES PAL, GAL, EPLD, ET FPGA POUR MODELISER CETTE MACHINE A ETAT 28/09/2000
Les parties combinatoires P1 et P2 CPLD FPGA Les parties combinatoires P1 et P2 28/09/2000
DEUX CHOIX S’IMPOSENT ALORS : CPLD FPGA DEUX CHOIX S’IMPOSENT ALORS : REALISER UN CIRCUIT IMPRIME SUR LEQUEL SERAIENT CABLES DES CIRCUITS CONTENANT DES FONCTIONS ELEMENTAIRES 74LSXX (UN PEU DE SERIEUX) UTILISER DES RESSOURCES DE L’ELECTRONIQUE NUMERIQUE MODERNE POUR ABOUTIR A UN COMPOSANT DE PETITE TAILLE GERANT PARFAITEMENT LE CYCLE DE LAVAGE D’UNE MACHINE A LAVER PROGRAMMATION D’EPLD et d’FPGA SYNTHETISER COMMERCIALISER UN ASIC DEDIE A CETTE APPLICATION 28/09/2000
CPLD FPGA La « Programmation » 28/09/2000
PROGRAMMATION A L’AIDE DES FONCTIONS PREDEFINIES CPLD FPGA UTILISATION D ’UN PAL : PAL + REGISTRE ENTREES SORTIES PROGRAMMATION A L’AIDE DES FONCTIONS PREDEFINIES SI UNE PHASE DE DEVELOPPEMENT EST NECESSAIRE POUR UN SYSTEME ELETRONIQUE PLUS COMPLEXE, LE GAL NE PEUT PAS ETRE REPROGRAMME : L ’ERREUR N ’EST PAS AUTORISEE 28/09/2000
PROGRAMMATION A L ’AIDE DES FONCTIONS PREDEFINIES CPLD FPGA UTILISATION D ’UN GAL : GAL + REGISTRE ENTREES SORTIES PROGRAMMATION A L ’AIDE DES FONCTIONS PREDEFINIES SI UNE PHASE DE DEVELOPPEMENT EST NECESSAIRE POUR UN SYSTEME ELETRONIQUE PLUS COMPLEXE, LE GAL EST REPROGRAMMABLE ET PLUS INTERESSANT QU ’UN PAL 28/09/2000
Le VHDL (dédié aux FPGA) CPLD FPGA Le VHDL (dédié aux FPGA) 28/09/2000
CPLD FPGA La simulation VHDL NOUS NOUS ARRETERONS A CE NIVEAU DE LA CONCEPTION D’UN ASIC UN VHDL SIMULABLE (AU NIVEAU RTL) PEUT DANS CERTAINES CONDITIONS ETRE IMPLANTE DANS UN FPGA POUR OBTENIR LA FONCTION VOULU DES OUTILS DE PROGRAMMATION DE HAUT NIVEAU PERMETTENT DE SIMULER AVANT D’IMPLANTER UN VHDL RTL DANS UN FPGA LE FPGA PERMET DE CONNAÎTRE LA COMPLEXITE DU COMPOSANT OBTENU APRES CODAGE VHDL (ou VERILOG) DES OUTILS D’OPTIMISATION ET DE SYNTHESE PERMETTENT ALORS D’OBTENIR UNE NETLIST CETTE NETLIST ENVOYEE CHEZ UN FONDEUR POURRA ETRE A L’ORIGINE D’UN ASIC (Microprocesseur, codeurs divers …) 28/09/2000
CPLD FPGA Conclusion REGARDEZ BIEN CET ECRAN C’EST UN FLOT DE CONCEPTION SIMILLAIRE QUI A PERMIS DE CRÉER TOUS LES COMPOSANTS (ou presque) QUI VOUS PERMETTENT DE SUIVRE CET EXPOSE. ET CECI GRACE A UNE MACHINE NUMERIQUE SI COMPLEXE QU’IL EST IMPOSSIBLE DE CONNAÎTRE SON NOMBRE D’ETAT POSSIBLE ET LE NOMBRE EXACTE DE TRANSISTORS QUI SE COMMUTTENT ACTUELLEMENT POUR VOUS AFFICHER DE BEAUX PIXELS. 28/09/2000
CPLD FPGA Bibliographie CIRCUITS LOGIQUES PROGRAMMABLES aux éditions DUNOD par CHRISTIAN TAVERNIER ELECTRONIQUE NUMERIQUE INTEGREE dominante COMELEC ENST TECHNOLOGIES ET PERFORMANCE DES SYSTEMES INTEGRES dominante COMELEC ENST VHDL INTRODUCTION A LA SYNTHESE LOGIQUE aux éditions EYROLLES par PHILIPPE LARCHER SYNTHESE, du VHDL au CIRCUIT option EST ENST 28/09/2000
CPLD FPGA QUESTIONS 28/09/2000