CIRCUITS NUMERIQUES PROGRAMMABLES (PROGRAMMABLE LOGIC DEVICES) Circuits numériques (re)-configurables par l utilisateur, réalisant des fonctions logiques (combinatoires + séquentielles) de façon matérielle
Contenu de la présentation 1) Introduction des différentes familles 2) SPLD (Simple Programmable Logic Device) 3) EPLD / CPLD (Erasable / Complex Programmable Logic Device) 4) FPGA (Field Programmable Gate Array)
1 - Différentes approches en électronique numérique: circuits discrets (TTL, CMOS,...) circuits numériques programmables ASICs contrainte logique discrète circuits numériques programmables ASIC vitesse - ++ ++ densité - ++ ++ coût - + ++ (pour très grosses quantités) temps de développement + ++ - - temps de simulation et de prototypage - ++ - - temps de fabrication - ++ - - facilité de mise en œuvre + + - - modification ultérieure + ++ - - risque d approvisionnement ++ ++ - - - ++ ++ support de l outil de développement consommation + - ++
Différentes familles de circuits numériques programmables PAL (Programmable Array Logic) ou SPLD (Simple Programmable Logic Device) famille la plus ancienne (introduite par AMD) technologie: fusibles (One Time Programmable) EEPROM (appelation GAL (Generic Array Logic), marque déposée par LATTICE Semiconductor, ou PAL CMOS) principaux constructeurs: ATMEL, LATTICE Semiconductor, CYPRESS... EPLD (Erasable Programmable Logic Device) ou CPLD (Complex Programmable Logic Device) technologie: EPROM (effaçable par UV) EEPROM (effaçable électriquement) principaux constructeurs: ALTERA, XILINX... FPGA (Field Programmable Gate Array) technologie: anti-fusibles (non volatile) SRAM (volatile) principaux constructeurs: ALTERA, XILINX, ACTEL...
2 - SPLD (Simple Programmable Logic Devices) circuit numérique programmable le + simple: ROM entrées: lignes d adresse sorties: lignes de données exemple: 4 mots de 4 bits I 1 I 1. I 0 I 1. I 0 I 0 I 1. I 0 ET OU I 1. I 0 exemple: O 0 = (I 1. I 0 ) + (I 1. I 0 ) décodeur (fixe) Sorties = fonctions logiques des entrées O 3 O 2 O 1 O 0 = I 1 XOR I 0 Décodeur complet pour les entrées (tous les termes produits sont générés) Mal adapté à la réalisation de fonctions logiques
PAL Structure de base: Plan de ET-OU programmable permettant de réaliser n importe quelle fonction combinatoire de N entrées I 1 sortie principe de base a b c d I 0 I 1 sortie a b c d I 0 notation utilisée I 1 sortie I 0 ex: 10 entrées ROM: 2 10 = 1024 portes ET à 10 entrées PAL: quelques portes ET à 20 entrées réalisation d un OU EXCLUSIF
Structure d un PAL I 3 I 2 I 1 I 0 réseau «OU» (fixe) 1 entrée supplémentaire 2 entrées supplémentaires par porte ET mais nombre de portes ET inchangé exemple: chaque sortie = somme de 4 termes produits fixe réseau «ET» (programmable) O 3 O 2 O 1 O 0
Structure d une PROM I 3 I 2 I 1 I 0 réseau «OU» (programmable) 1 entrée supplémentaire la taille du réseau de ET est doublée sortie = n importe quelle fonction logique des entrées réseau «ET» (fixe) O 3 O 2 O 1 O 0 problème: tous les termes produits sont générés
Structure d un PLA I 3 I 2 I 1 I 0 réseau «OU» (programmable) structure la + souple n est plus sur le marché actuellement réseau «ET» (programmable) O 3 O 2 O 1 O 0
PAL versatile (V-PAL) par programmation: sortie combinatoire pure (active haut ou active bas) ou synchronisée sur horloge (inversée ou non) référence: exemple:pal22v10 nombred entrées nombredesorties structuredesortie (V=versatile,H=combinatoirehaut,etc...)
résumé sur les PAL: - bien indiqués pour les fonctions combinatoires complexes, ne nécessitant pas ou peu de logique séquentielle (exemple: décodeurs,...) - fréquence maximale des signaux d entrée/sortie 250 MHz - nombre maximum d entrées/sorties: 22-10 - consommation 100 ma - prix faible 1 à 5 (selon la complexité et la vitesse) - gamme de composants «figée» (progressivement remplacée par EPLD, FPGA)
3 - Les EPLD Introduits dans le milieu des années 80 par ALTERA Principe de base: plusieurs PAL rassemblés sur un même circuit + interconnection programmable Limitation des PAL: structure du plan logique programmable croît trop rapidement avec le nombre d Entrées/Sorties PAL: 10 à 20 entrées sorties EPLD: jusque 272 entrées-sorties 1 seul PAL plusieurs petits PAL n entrées I n-1... I 0 I 3... I 0 exemple: 2 4 entrées I 7... I 4...... O i 2n entrées par porte ET (beaucoup non utilisées) O i... O j
Architecture typique d un EPLD (ex: ALTERA MAX) 3 types de ressources principales - PIA (Programmable Interconnect Array) - réseau de LAB (Logic Array Blocs) - réseau de IOB (Input Output Blocs) 1 LAB = 16 macrocellules PIA: connecte n importe quelle entrée ou sortie d un LAB à un autre LAB TIMING PREVISIBLE
- Programmable Interconnect Array pattes d entrées / sorties + sorties des macrocellules PIA: connecte n importe quelle entrée ou sortie d un LAB à un autre LAB TIMING PREVISIBLE (différence majeure avec les FPGA)
- Structure d une macro-cellule exemple: ALTERA MAX 7000 configurable en bascule D, T, JK ou SR à la base: 5 termes - produits par macrocellule suffisant dans la majorité des cas si besoin: + 15 autres termes - produits en provenance des macrocellules voisines meilleure utilisation des ressources et plus de flexibilité que les PALs horloge globale (commune) (logique synchrone) ou horloge locale (individuelle) (logique asynchrone)
horloge locale / horloge globale Q1 CK1 compteur CK Q X A B A - B S CK2 Q2 D registre CK Q Q3 CK1 Q1 Q2 1 er cas: CK2 <> CK1 valeur lue erronée 2 ème cas: CK2 = CK1 valeur lue correcte
- Structure d un IOB exemple: ALTERA MAX 7000E/S
Méthodologie de conception créé par le concepteur réalisé par le logiciel de développement (QUARTUS)
résumé sur les EPLD (valeurs typiques prises pour familles MAX ALTERA) - Principaux constructeurs: ALTERA, LATTICE, XILINX,... - Délais de propagation prédictibles et indépendants du routage - Fréquence d horloge max: 300 MHz pour compteur 16 bits - Nombre maximal de macro-cellules: 512 - Nombre maximal d entrées/sorties: 272 (en boîtier BGA 324-Pin) - Technologie: EEPROM (configuration sauvegardée hors alimentation) - Consommation: 50 à 300 ma (selon fréquence de fonctionnement, nombre de cellules actives, etc...) - Prix: de 4 à 100
4 - Les FPGA Introduits dans le milieu des années 80 par XILINX Structure s apparentant aux ASIC de type «Gates-array» Gate-array: réseau de transistors et de portes pré-fabriquées dont les connexions sont réalisées en fonction de l application souhaitée FPGA: réseau de blocs logiques configurables + interconnexions configurables par l utilisateur TRES FORTE CAPACITE D INTEGRATION («petits» blocs de base en grand nombre) bloc logique configurable bloc E/S configurable
Idée de départ: l approche classique des PAL, GAL, EPLD peut entraîner un gaspillage des ressources ressources perdues si inutilisées portes ET / OU remplacées par Look-Up Tables
Technologies utilisées mémoire de configuration SRAM (reprogrammable) anti-fusibles (One Time Programmable) XILINX (Virtex, Spartan,...) ACTEL ALTERA (Stratix, Cyclone,...) QUICKLOGIC......
Temps de propagation des signaux dans un FPGA: dépend du placement / routage => non prédictible (<> EPLD) élément logique de base exemple: structure STRATIX
ressources principales dans un FPGA 1 - élément logique de base 1LUT=1ROM16x1bit cellulessimples(ex:actel) (baséessurarbresdemultiplexeurs) -faiblesurfaceoccupéeparlesblocs -routageimportantnécessairepour fonctionscomplexes 1basculeD cellulescomplexes(ex:altera) (1LUT+1basculeDparcellule) -bienadaptéàlaréalisationdefonctionscomplexes
2 - bloc d entrée / sortie ex:alteracyclone + possibilité de résistance de pull-up + 2 valeurs possibles de slew-rate + niveaux TTL ou CMOS, etc... + possibilité de sortie drain ouvert interfaçagepossibleavec mémoireddr(doubledatarate) ex:alterastratix
3 - routage entrées dédiées pour les signaux globaux (clock, clear, output enable,...)
4 - ressources annexes mémoire blocs RAM - réalisation de mémoire interne de taille configurable - réalisation de fonctions logiques complexes (exemple: multiplieur 4 bits x 4 bits, résultat sur 8 bits pré-calculé et stocké dans la mémoire) famille FLEX10K
blocs DSP principales fonctions de traitement du signal (filtres FIR, filtres IIR, corrélateurs, etc...) utilisent multiplieurs + additionneurs ou accumulateurs blocs spécialisés avec fonctions pré-câblées
Résumé sur les FPGA - Principaux constructeurs: ALTERA, XILINX,... - Délais de propagation non-prédictibles et dépendants du routage - Fréquence d horloge max: ~ 500 MHz - Nombre maximal de macro-cellules: ~180 000 - Taille mémoire disponible maximale: ~ 5 Mb - Nombre maximal d entrées/sorties: ~1200 (en boîtier BGA 40 x 40) - Technologie: SRAM (configuration à charger à la mise sous tension) ou OTP - Fonctions spécifiques parfois disponibles (mémoire, DSP, PLL,...) - Consommation: qq 100 ma (selon fréquence de fonctionnement, nombre de cellules actives, etc...) - Prix: de 10 à qq 100