SlideShare uma empresa Scribd logo
1 de 21
Architecture etArchitecture et
programmation des circuitsprogrammation des circuits
CPLD et des FPGACPLD et des FPGA
Réalisé par : OUAGHLANI Chiheb
Année universitaire
2011/2012
Introduction
 L’évolution des systèmes électroniques dans notre vie quotidienne est due à :
1- Evolution technologique:
La miniaturisation des transistors a permis d’augmenter considérablement la capacité d’intégration
dans ces systèmes.
2- Evolution applicative:
Des applications plus complexes avec un nombre important et varié de fonctionnalités.
 On parle alors d’une grande variété de composants de calculs mais on peut les classer à 3
classes :
Les cibles matérielles, par exemple :
 ASIC -Application Specific Integrate Circuit
 Fonction complète ou coprocesseur (accélérateurs matérielle)
 FPGA -Field Programmable Gate Array
 Reconfigurable
 Accélérateur de calculs (coprocesseur)
Les cibles logicielles, comme :
 ASIP -Application Specific Instruction-set Processor
 Processeur spécialisé pour quelques applications
 Jeu d’instructions et architecture adaptée à l’application
 Meilleurs rapports MIPS/mW et MIPS/mm2 que RISC et DSP
 Mais coût de développement du compilateur
 DSP, VLIW
 Processeurs dédiés au traitement de signal, application multimédia
 Microcontrôleurs
 RISC/CISC: Superscalaires
 ARM, PowerPC, Sparc, …
Les cibles mixtes :
 Les SOCs(système sur puce) : L’intégration de plusieurs unités sur une même puce.
Comment choisir la cible à utiliser ?
Les principales raisons qui nous aident à choisir notre cible se sont :
 L’application à faire (notre projet).
 Les contraintes de conception et de réalisation : performance - cout- fiabilité - surface -
consommation, temps réel, etc.
 Les outils et les ressources disponibles à la réalisation du projet.
Dans ce document on s’intéresse surtout sur des cibles matérielles : les CPLD et Les FPGA.
Les composants HARD (les cibles matérielles)
Intérêt des cibles matérielles
 Performances : utilisation d'architectures optimales :
 Pipeline
 opérations câblées ou en mémoire (FPGA)
 optimisation bits à bits : Taille des opérandes optimale
 Protection industrielle
 Outils de conception puissants:
 Langages HDL
 Bibliothèques de macro-fonctions paramétrables
 compilation (synthèse logique + placement routage)
La figure ci-dessous représente Les différentes cibles matérielles :
Remarque :
La partie encadrée, ce sont les circuits configurables (PLD) et les autres composants matériels se sont
des circuits (ASIC) moins flexibles (que les PLD) et spécifiés pour une tache bien déterminée, même
leur configuration et composition sont plus basiques.
Les circuits configurables sont des composants standards programmables électriquement:
 Une seule fois (fusibles, anti fusibles)
Ou
 Plusieurs fois: reprogrammables
Le terme circuit configurable désigne l’ensemble de ressources logiques (portes, bascules,…etc.) qui
peuvent être interconnectées de différentes façons (cellules logiques librement assemblables). Comme
par exemple : la réalisation de fonctions booléennes sous forme d’une somme de produits (PAL, PLA)
ou un réseau de bloc logiques configurables (FPGA).
Ces ressources sont connectées de manière définitive ou réversible grâce à la reprogrammation, afin
de réaliser la ou les fonctions numériques voulues. L'intérêt est qu'un même circuit peut être utilisé
dans de nombreux systèmes électroniques différents.
Les types de programmation utilisés dans les circuits configurables
Les contraintes de conception des systèmes embarqués : (comment on choisit quelle cible on va
utiliser pour réaliser un système électronique)
 Performance: puissance de calcul MIPS (Méga Instruction par seconde), temps d’exécution
 Fiabilité: probabilité pour que le système fonctionne correctement si c’était satisfait à t =0
 Surface et encombrement: GSM…
 Consommation énergétique: lié à l’autonomie des batteries (PDA, téléphone mobile…)
 Sûreté: aucun dommage (automobile, avionique…)
 Coût et temps de développement: faible coût
 temps réel: Un système temps réel doit réagir à un stimuli dans un intervalle de temps
dépendant de l’environnement
CPLD
 CPLD: Complex Programmable Logic Device
Les CPLDs d’une conception plus ancienne regroupent plusieurs « Macrocellules » logiques
interconnectées par un réseau de connexions combinatoire de portes ET et OU programmables afin
d'implémenter des équations logiques. Des bascules sont disponibles seulement dans les blocs
d'entrée-sortie. Ce composant contient de quelques centaines à quelques milliers de macrocellules.
La technologie de programmation de ces connexions est généralement EEPROM ou Flash EPROM
(Peuvent être effacés et reprogrammés à volonté. Quelques-uns peuvent être programmés in
situ (souvent par une connexion JTAG) Technologie CMOS). Un seul point de connexion relie entre
eux les blocs logiques. Les temps de propagations des signaux sont constants et prédictibles (avant
routage) : ce n’est pas le cas des FPGA (voir plus tard).
On distingue les CPLD des autres PLD car ils contiennent l'équivalent de plusieurs composants PLD,
reliés par une matrice d'interconnexion.
Figure 1.1 Connexions de la famille 374i
Architecture des CPLD
La matrice d'interconnexion programmable (PIM) est constitué d'une matrice
de routage complète globale pour les signaux de broches d'E / S et le feedback des blocs logiques.
Elle offre une interconnexion robuste pour éviter les limitations de montage et de densité. Les
entrées de la PIM se composent de toutes les broches d'entrée I / O et dédié
et toutes les rétroactions des macrocellules à l'intérieur des blocs logiques. Les sorties de la PIM sont
des signaux acheminés vers les blocs logiques appropriés. Chaque bloc logique reçoit 36
entrées de la PIM et leurs compléments. Une caractéristique importante de la MIP est son
timing simple. Le délai de propagation à travers le PIM est représenté dans les spécifications de
temps pour chaque périphérique. Il n'ya pas d'autres délais pour parcourir à travers le PIM.
Le routage des signaux à travers le PIM est totalement invisible pour l’utilisateur. Tout routage
est réalisé par un logiciel de routage. Warp et les tiers paquets de développement
donnent automatiquement tous les parcours pour la famille Ultra37000 dans quelques minutes.
La famille des Ultra37000 ™ (CPLD de type CMOS) offre une gamme de solutions de haute
densité logique programmable avec de grandes performances du système. La famille Ultra37000 est
conçu parce qu’elle apporte la flexibilité, la facilité d'utilisation, et la performance du 22V10 à haute
densité CPLD. L'architecture est basée sur un certain nombre de blocs logiques qui sont reliés par
un programmable Interconnect Matrix (PIM). La PIM distribue les signaux des sorties de
blocs logiques et tous les broches d'entrée aux entrées du bloc logique.
Chaque bloc logique dispose de son propre Product Term Array, Product Term Allocator, et
16 macrocellules.
Chaque bloc logique possède 72 x 87 Product Term Array programmable.
Ces arrays (tableaux) acceptent 36 entrées de la PIM, qui proviennent des pins des rétroactions
des macrocellules et des périphériques. Pour chaque unes des ces entrées il y a 2 versions : activer
LOW et activer HIGH et elles sont générés pour créer le plein-champ de saisie 72. Les 87 product
terms dans le tableau peuvent être créés à partir de l'une des 72 entrées.
Sur les 87 product terms, 80 sont pour usage général pour les 16 macrocellules dans le
bloc logique. Quatre des autres sept product terms dans le bloc logique sont utilisés pour activer les
sorties (OE : Output Enable) des product terms.
La macrocellule dispose d'un registre qui peut être configuré en combinatoire, une bascule D, une
bascule T flip-flop, ou triggered latch. Le registre peut être asynchrone (1) ou asynchrone(0) au niveau
du bloc logique avec l'ensemble des produits séparés. Les sorties de tous ces macrocellules sont
envoyées directement à la PIM indépendamment de leur configuration.
La figure 2 montre un schéma d’un bloc de l’Ultra37000–3 :
Exemple des architectures des CPLD :
Structure d’une macrocellule d’Altera MAX 7000 :
Réseau ET-OU avec 8 products terms (termes produits) + Multiplexeur programmable
L’évolution des CPLD :
Les circuits CPLD basiques ne sont plus utilisés aujourd’hui car ils sont remplacés par les FPGAs, ils
étaient les prémisses des premiers FPGA.
MAX-II CPLD 2210 LE, FBGA256:
2210 LEs, Flash memory 8Kbits, 0 PLLs 44 Kgates 0 Multiplier 18x18, 80 I/O Prix: 32$ 0, 0007
$/gate.
MAX-II CPLD 240 LE, TQFP100 :
240 LEs, total Flash memory 8Kbits, 0 PLLs 4.8 Kgates 0 Multiplier 18x18, 212 I/O Prix: 6$ 0,001
$/gate. * Prix Aout 2009
Ancien CPLD : MAX 7000S
Nouveau CPLD : MAX II
FPGA
Le FPGA est inventée par Xilinx (fait partie des plus grandes entreprises spécialisées dans le
développement et la commercialisation de composants logiques programmables).
Les FPGA sont utilisés dans diverses applications nécessitant de l'électronique numérique
(télécommunications, aéronautique, transports…). Ils sont également utilisés pour le prototypage
d'ASIC.
Architecture du circuit FPGA
Le bloc logique configurable ou CLB
Un bloc logique configurable est de manière générale constitué d'une table de correspondance
(LUT ou Look-Up-Table) et d'une bascule (Flip-Flop en anglais). (il y en a des CLB basés sur des
multiplexeurs).
La LUT sert à implémenter des équations logiques ayant généralement 4 à 6 entrées et une sortie.
Elle peut toutefois être considérée comme une petite mémoire, un multiplexeur ou un registre à
décalage. Le registre permet de mémoriser un état (machine séquentielle) ou de synchroniser un signal
(pipeline).
Les blocs logiques, présents en grand nombre sur la puce (de quelques milliers à quelques millions en
2007) sont connectés entre eux par une matrice de routage configurable.
CLB à base de multiplexeurs
• Utilisée pour la technologie ANTIFUSIBLE équivaut à une LUT câblée
Cellule ACTEL ACT3
CLB à base de LUT
Choix configurable par bitstream
Comme on voit sur le schéma le CLB est constitué d’un LUT à 4 entrées, une bascule D et un
multiplexeur 2 vers 1.
Pour La LUT elle constituée comme on voit dans la figure d’une SRAM et des multiplexeurs.
Pour cet exemple, on va prendre la première ligne de la table :
C =0 > les sorties de tous les premiers multiplexeurs auront la valeur de leur première entrée
c'est-à-dire on a 1-1-1-1.
B = 0 > pareil on a sélectionné la première entrée pour, d’où on reçoit à la sortie 1-1.
Pour A =0 > notre sortie Z est égale à 1 (les 2 entrées sont à 1).
Les LUT sont de petits éléments de mémorisation, qui reflètent la table de vérité d’une fonction
logique. (Mémoriser le comportement des entrées).
Une LUT 4 = RAM 2 Octets
Après la configuration des blocs logiques CLB, on passe à la configuration des interconnexions entre
eux.
Blocs d’interconnexions programmables ou PSM
Types de connexions
 Directes: relient deux CLBs adjacents.
 Simples: relient deux PSMs (Programmable Switch Matrix) adjacentes.
 Doubles: relient deux PSMs séparées par une PSM.
 Quadruples: relient deux PSMs séparées par 3 PSMs.
 Longs: traversent la puce de part en part, soit horizontalement ou verticalement (ils peuvent
toutefois être sépares en deux moities de longueur égale et indépendantes).
Connexions directes:
Relient deux CLB adjacents.
Ne passent pas par une matrice de connexion (PSM)
Connexions Simples:
Relient deux PSM adjacentes.
Offrent une grande flexibilité de parcours.
Le passage d'une connexion simple au travers d'une PSM entraîne un délai.
Ce type de connexion se prête surtout aux liens de nature locale.
Connexions doubles:
Relient deux PSMs séparées par une PSM:
Offrent une plus grande rapidité
Que les connexions simples pour les liens de longueur intermédiaire
Maintiennent une bonne flexibilité de parcours.
De la même manière, les connexions quadruples permettent des liens rapides un peu plus longs mais
entraînent une certaine pénalité dans la flexibilité du parcours.
Les longues lignes :
De longs segments métallisés parcourant toute la longueur et la largeur du composant
Transmettre avec un minimum de retard les signaux entre les différents éléments dans le but d'assurer
un synchronisme aussi parfait que possible.
Éviter la multiplicité des points d'interconnexion.
Le passage d’un bloc logique à un autre se fera par un nombre de point de connexion (responsable des
temps de propagation) fonction de la position relative des deux blocs logique et de l’état
d’encombrement de la matrice.
Ces délais ne sont donc pas prédictibles (contrairement au CPLD) avant le placement routage
De la phase de placement des blocs logiques dépendront donc beaucoup les performances du circuit en
termes de vitesse.
Les blocs Entrées/Sorties ou I/O Blocs
Les blocs d’entrée/sortie (IOBs) contrôlent le flot de données entre les broches du FPGA et la logique
interne utilisateur; les I/O sont:
 Bidirectionnelles (entrée ou sortie)
 3 états (haute impédance)
 A retards programmables
 Multi-standards (niveaux logiques)
Problème de faire communiquer les composants entre eux : il y a plusieurs codages en tension des
niveaux 1 et 0 (tension d'alimentation VDD, type de marges):
Les buffers permettent de résoudre ce problème
Xilinx IOB (Input Output Block):
La technologie actuelle des FPGA
Jusqu’à 200 000 cellules logiques élémentaires
 Cellule = Look-up-Table + registre
Blocs mémoire configurables
 Blocs de 18kbits, au total jusqu’à 1Mo
Structures dédiées pour les traitements arithmétiques
 512 multiplieurs 18x18 bits embarqués
Processeurs embarqués
 Jusqu’à 4 PowerPC en « dur »
 Soft-Core : processeurs utilisant les cellules logiques
Liaisons séries haut débit
 Jusqu’à 10 Gbits
 MAC Ethernet intégrée
FPGA: et encore!!!
Architecture et programmation des circuits CPLD et des FPGA

Mais conteúdo relacionado

Mais procurados

Circuits-programmables.pdf
Circuits-programmables.pdfCircuits-programmables.pdf
Circuits-programmables.pdf
HouBou3
 
Digital Signal Processor ( DSP ) [French]
Digital Signal Processor ( DSP )  [French]Digital Signal Processor ( DSP )  [French]
Digital Signal Processor ( DSP ) [French]
Assia Mounir
 
Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réel
mikhailether
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdl
yassinesmz
 

Mais procurados (20)

Langage vhdl
Langage vhdlLangage vhdl
Langage vhdl
 
Présentation FPGA
Présentation FPGAPrésentation FPGA
Présentation FPGA
 
Chap1 dsp
Chap1 dspChap1 dsp
Chap1 dsp
 
Vhdl
VhdlVhdl
Vhdl
 
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésProgrammation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
 
Circuits-programmables.pdf
Circuits-programmables.pdfCircuits-programmables.pdf
Circuits-programmables.pdf
 
STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)
 
chap5 modulations
chap5 modulationschap5 modulations
chap5 modulations
 
Digital Signal Processor ( DSP ) [French]
Digital Signal Processor ( DSP )  [French]Digital Signal Processor ( DSP )  [French]
Digital Signal Processor ( DSP ) [French]
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réel
 
Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdl
 
States machines (1)
States machines (1)States machines (1)
States machines (1)
 
System embaraqué
System  embaraquéSystem  embaraqué
System embaraqué
 
CPLD (COMPLEX PROGRAMMABLE LOGIC DEVICES)
CPLD (COMPLEX PROGRAMMABLE LOGIC DEVICES)CPLD (COMPLEX PROGRAMMABLE LOGIC DEVICES)
CPLD (COMPLEX PROGRAMMABLE LOGIC DEVICES)
 
Andes RISC-V processor solutions
Andes RISC-V processor solutionsAndes RISC-V processor solutions
Andes RISC-V processor solutions
 
Coding style for good synthesis
Coding style for good synthesisCoding style for good synthesis
Coding style for good synthesis
 
Fpga Knowledge
Fpga KnowledgeFpga Knowledge
Fpga Knowledge
 

Destaque

programmable_devices_en_02_2014
programmable_devices_en_02_2014programmable_devices_en_02_2014
programmable_devices_en_02_2014
Svetozar Jovanovic
 
Design of vga based pong game using fpga
Design  of vga based pong game using fpgaDesign  of vga based pong game using fpga
Design of vga based pong game using fpga
Ramanan Rajaraman
 
Xilinx Cool Runner Architecture
Xilinx Cool Runner ArchitectureXilinx Cool Runner Architecture
Xilinx Cool Runner Architecture
dragonpradeep
 
Danone StratéGie MéDias Sociaux
Danone   StratéGie MéDias SociauxDanone   StratéGie MéDias Sociaux
Danone StratéGie MéDias Sociaux
guest2d75ad6d
 
Diktatorerna skriver historia
Diktatorerna skriver historiaDiktatorerna skriver historia
Diktatorerna skriver historia
eva13ham
 
Diktatorerna skriver historia
Diktatorerna skriver historiaDiktatorerna skriver historia
Diktatorerna skriver historia
eva13ham
 

Destaque (20)

CPLDs
CPLDsCPLDs
CPLDs
 
programmable_devices_en_02_2014
programmable_devices_en_02_2014programmable_devices_en_02_2014
programmable_devices_en_02_2014
 
Fpga
FpgaFpga
Fpga
 
FPGA
FPGAFPGA
FPGA
 
Complex Programmable Logic Device (CPLD) Architecture and Its Applications
Complex Programmable Logic Device (CPLD) Architecture and Its ApplicationsComplex Programmable Logic Device (CPLD) Architecture and Its Applications
Complex Programmable Logic Device (CPLD) Architecture and Its Applications
 
Fundamentals of FPGA
Fundamentals of FPGAFundamentals of FPGA
Fundamentals of FPGA
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Présentation Legu'Ya
Présentation Legu'YaPrésentation Legu'Ya
Présentation Legu'Ya
 
Pavel isaev. danone
Pavel isaev. danonePavel isaev. danone
Pavel isaev. danone
 
The mixed-signal modelling language VHDL-AMS and its semantics (ICNACSA 1999)
The mixed-signal modelling language VHDL-AMS and its semantics (ICNACSA 1999)The mixed-signal modelling language VHDL-AMS and its semantics (ICNACSA 1999)
The mixed-signal modelling language VHDL-AMS and its semantics (ICNACSA 1999)
 
Hybrid LUT/Multiplexer FPGA Logic Architectures
Hybrid LUT/Multiplexer FPGA Logic ArchitecturesHybrid LUT/Multiplexer FPGA Logic Architectures
Hybrid LUT/Multiplexer FPGA Logic Architectures
 
Design of vga based pong game using fpga
Design  of vga based pong game using fpgaDesign  of vga based pong game using fpga
Design of vga based pong game using fpga
 
Xilinx Cool Runner Architecture
Xilinx Cool Runner ArchitectureXilinx Cool Runner Architecture
Xilinx Cool Runner Architecture
 
Batch no.2
Batch no.2Batch no.2
Batch no.2
 
Cpld
CpldCpld
Cpld
 
Danone StratéGie MéDias Sociaux
Danone   StratéGie MéDias SociauxDanone   StratéGie MéDias Sociaux
Danone StratéGie MéDias Sociaux
 
SB
SBSB
SB
 
Milady trabajo 2
Milady  trabajo 2Milady  trabajo 2
Milady trabajo 2
 
Diktatorerna skriver historia
Diktatorerna skriver historiaDiktatorerna skriver historia
Diktatorerna skriver historia
 
Diktatorerna skriver historia
Diktatorerna skriver historiaDiktatorerna skriver historia
Diktatorerna skriver historia
 

Semelhante a Architecture et programmation des circuits CPLD et des FPGA

cours2 ARM.pptx
cours2 ARM.pptxcours2 ARM.pptx
cours2 ARM.pptx
BesmaOthmaniKrifa
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdf
HouBou3
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
mohamedsaidi212001
 

Semelhante a Architecture et programmation des circuits CPLD et des FPGA (20)

Fpga handout
Fpga handoutFpga handout
Fpga handout
 
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL   PROGRAMMATION ET _ETAPES pour comprendreCOURS VHDL   PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
 
Architecture des FPGAs.pdf
Architecture des FPGAs.pdfArchitecture des FPGAs.pdf
Architecture des FPGAs.pdf
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptx
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
cours2 ARM.pptx
cours2 ARM.pptxcours2 ARM.pptx
cours2 ARM.pptx
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasic
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdf
 
Réseaux logiques programmables.pdf
Réseaux logiques programmables.pdfRéseaux logiques programmables.pdf
Réseaux logiques programmables.pdf
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdf
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.ppt
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurs
 
Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industriels
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 

Mais de Chiheb Ouaghlani

Mais de Chiheb Ouaghlani (12)

Change management policy
Change management policyChange management policy
Change management policy
 
La documentation du système d'information
La documentation du système d'informationLa documentation du système d'information
La documentation du système d'information
 
CTT La suite Collaborative Zimbra
CTT La suite Collaborative ZimbraCTT La suite Collaborative Zimbra
CTT La suite Collaborative Zimbra
 
Etude de la WIFI sur NS2
Etude de la WIFI sur NS2Etude de la WIFI sur NS2
Etude de la WIFI sur NS2
 
La technique de transmission OFDM
La technique de transmission OFDMLa technique de transmission OFDM
La technique de transmission OFDM
 
La logique propositionnelle
La logique propositionnelleLa logique propositionnelle
La logique propositionnelle
 
Etude et mise en place d'une solution d'administration et de supervision Open...
Etude et mise en place d'une solution d'administration et de supervision Open...Etude et mise en place d'une solution d'administration et de supervision Open...
Etude et mise en place d'une solution d'administration et de supervision Open...
 
L'univers Android
L'univers AndroidL'univers Android
L'univers Android
 
Les jeux vidéos
Les jeux vidéosLes jeux vidéos
Les jeux vidéos
 
Pourquoi ne pas simplifier l'orthographe ?
Pourquoi ne pas simplifier l'orthographe ?Pourquoi ne pas simplifier l'orthographe ?
Pourquoi ne pas simplifier l'orthographe ?
 
Etude de la VoIP
Etude de la VoIPEtude de la VoIP
Etude de la VoIP
 
Automatisation de fonctionnement d’une station de traitement d’eau
Automatisation de fonctionnement d’une station de traitement d’eauAutomatisation de fonctionnement d’une station de traitement d’eau
Automatisation de fonctionnement d’une station de traitement d’eau
 

Último

conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
mansouriahlam
 

Último (7)

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 

Architecture et programmation des circuits CPLD et des FPGA

  • 1. Architecture etArchitecture et programmation des circuitsprogrammation des circuits CPLD et des FPGACPLD et des FPGA Réalisé par : OUAGHLANI Chiheb Année universitaire 2011/2012
  • 2. Introduction  L’évolution des systèmes électroniques dans notre vie quotidienne est due à : 1- Evolution technologique: La miniaturisation des transistors a permis d’augmenter considérablement la capacité d’intégration dans ces systèmes. 2- Evolution applicative: Des applications plus complexes avec un nombre important et varié de fonctionnalités.  On parle alors d’une grande variété de composants de calculs mais on peut les classer à 3 classes : Les cibles matérielles, par exemple :  ASIC -Application Specific Integrate Circuit  Fonction complète ou coprocesseur (accélérateurs matérielle)  FPGA -Field Programmable Gate Array  Reconfigurable  Accélérateur de calculs (coprocesseur) Les cibles logicielles, comme :  ASIP -Application Specific Instruction-set Processor  Processeur spécialisé pour quelques applications  Jeu d’instructions et architecture adaptée à l’application  Meilleurs rapports MIPS/mW et MIPS/mm2 que RISC et DSP  Mais coût de développement du compilateur  DSP, VLIW  Processeurs dédiés au traitement de signal, application multimédia  Microcontrôleurs  RISC/CISC: Superscalaires  ARM, PowerPC, Sparc, …
  • 3. Les cibles mixtes :  Les SOCs(système sur puce) : L’intégration de plusieurs unités sur une même puce. Comment choisir la cible à utiliser ? Les principales raisons qui nous aident à choisir notre cible se sont :  L’application à faire (notre projet).  Les contraintes de conception et de réalisation : performance - cout- fiabilité - surface - consommation, temps réel, etc.  Les outils et les ressources disponibles à la réalisation du projet. Dans ce document on s’intéresse surtout sur des cibles matérielles : les CPLD et Les FPGA. Les composants HARD (les cibles matérielles) Intérêt des cibles matérielles  Performances : utilisation d'architectures optimales :  Pipeline  opérations câblées ou en mémoire (FPGA)  optimisation bits à bits : Taille des opérandes optimale  Protection industrielle  Outils de conception puissants:  Langages HDL  Bibliothèques de macro-fonctions paramétrables  compilation (synthèse logique + placement routage)
  • 4. La figure ci-dessous représente Les différentes cibles matérielles : Remarque : La partie encadrée, ce sont les circuits configurables (PLD) et les autres composants matériels se sont des circuits (ASIC) moins flexibles (que les PLD) et spécifiés pour une tache bien déterminée, même leur configuration et composition sont plus basiques. Les circuits configurables sont des composants standards programmables électriquement:  Une seule fois (fusibles, anti fusibles) Ou  Plusieurs fois: reprogrammables Le terme circuit configurable désigne l’ensemble de ressources logiques (portes, bascules,…etc.) qui peuvent être interconnectées de différentes façons (cellules logiques librement assemblables). Comme par exemple : la réalisation de fonctions booléennes sous forme d’une somme de produits (PAL, PLA) ou un réseau de bloc logiques configurables (FPGA).
  • 5. Ces ressources sont connectées de manière définitive ou réversible grâce à la reprogrammation, afin de réaliser la ou les fonctions numériques voulues. L'intérêt est qu'un même circuit peut être utilisé dans de nombreux systèmes électroniques différents. Les types de programmation utilisés dans les circuits configurables Les contraintes de conception des systèmes embarqués : (comment on choisit quelle cible on va utiliser pour réaliser un système électronique)  Performance: puissance de calcul MIPS (Méga Instruction par seconde), temps d’exécution  Fiabilité: probabilité pour que le système fonctionne correctement si c’était satisfait à t =0  Surface et encombrement: GSM…  Consommation énergétique: lié à l’autonomie des batteries (PDA, téléphone mobile…)  Sûreté: aucun dommage (automobile, avionique…)  Coût et temps de développement: faible coût  temps réel: Un système temps réel doit réagir à un stimuli dans un intervalle de temps dépendant de l’environnement
  • 6. CPLD  CPLD: Complex Programmable Logic Device Les CPLDs d’une conception plus ancienne regroupent plusieurs « Macrocellules » logiques interconnectées par un réseau de connexions combinatoire de portes ET et OU programmables afin d'implémenter des équations logiques. Des bascules sont disponibles seulement dans les blocs d'entrée-sortie. Ce composant contient de quelques centaines à quelques milliers de macrocellules. La technologie de programmation de ces connexions est généralement EEPROM ou Flash EPROM (Peuvent être effacés et reprogrammés à volonté. Quelques-uns peuvent être programmés in situ (souvent par une connexion JTAG) Technologie CMOS). Un seul point de connexion relie entre eux les blocs logiques. Les temps de propagations des signaux sont constants et prédictibles (avant routage) : ce n’est pas le cas des FPGA (voir plus tard). On distingue les CPLD des autres PLD car ils contiennent l'équivalent de plusieurs composants PLD, reliés par une matrice d'interconnexion.
  • 7. Figure 1.1 Connexions de la famille 374i Architecture des CPLD La matrice d'interconnexion programmable (PIM) est constitué d'une matrice de routage complète globale pour les signaux de broches d'E / S et le feedback des blocs logiques. Elle offre une interconnexion robuste pour éviter les limitations de montage et de densité. Les entrées de la PIM se composent de toutes les broches d'entrée I / O et dédié et toutes les rétroactions des macrocellules à l'intérieur des blocs logiques. Les sorties de la PIM sont des signaux acheminés vers les blocs logiques appropriés. Chaque bloc logique reçoit 36 entrées de la PIM et leurs compléments. Une caractéristique importante de la MIP est son timing simple. Le délai de propagation à travers le PIM est représenté dans les spécifications de temps pour chaque périphérique. Il n'ya pas d'autres délais pour parcourir à travers le PIM. Le routage des signaux à travers le PIM est totalement invisible pour l’utilisateur. Tout routage est réalisé par un logiciel de routage. Warp et les tiers paquets de développement donnent automatiquement tous les parcours pour la famille Ultra37000 dans quelques minutes. La famille des Ultra37000 ™ (CPLD de type CMOS) offre une gamme de solutions de haute densité logique programmable avec de grandes performances du système. La famille Ultra37000 est conçu parce qu’elle apporte la flexibilité, la facilité d'utilisation, et la performance du 22V10 à haute densité CPLD. L'architecture est basée sur un certain nombre de blocs logiques qui sont reliés par un programmable Interconnect Matrix (PIM). La PIM distribue les signaux des sorties de blocs logiques et tous les broches d'entrée aux entrées du bloc logique.
  • 8. Chaque bloc logique dispose de son propre Product Term Array, Product Term Allocator, et 16 macrocellules. Chaque bloc logique possède 72 x 87 Product Term Array programmable. Ces arrays (tableaux) acceptent 36 entrées de la PIM, qui proviennent des pins des rétroactions des macrocellules et des périphériques. Pour chaque unes des ces entrées il y a 2 versions : activer LOW et activer HIGH et elles sont générés pour créer le plein-champ de saisie 72. Les 87 product terms dans le tableau peuvent être créés à partir de l'une des 72 entrées. Sur les 87 product terms, 80 sont pour usage général pour les 16 macrocellules dans le bloc logique. Quatre des autres sept product terms dans le bloc logique sont utilisés pour activer les sorties (OE : Output Enable) des product terms. La macrocellule dispose d'un registre qui peut être configuré en combinatoire, une bascule D, une bascule T flip-flop, ou triggered latch. Le registre peut être asynchrone (1) ou asynchrone(0) au niveau du bloc logique avec l'ensemble des produits séparés. Les sorties de tous ces macrocellules sont envoyées directement à la PIM indépendamment de leur configuration. La figure 2 montre un schéma d’un bloc de l’Ultra37000–3 :
  • 9. Exemple des architectures des CPLD : Structure d’une macrocellule d’Altera MAX 7000 :
  • 10. Réseau ET-OU avec 8 products terms (termes produits) + Multiplexeur programmable L’évolution des CPLD : Les circuits CPLD basiques ne sont plus utilisés aujourd’hui car ils sont remplacés par les FPGAs, ils étaient les prémisses des premiers FPGA. MAX-II CPLD 2210 LE, FBGA256: 2210 LEs, Flash memory 8Kbits, 0 PLLs 44 Kgates 0 Multiplier 18x18, 80 I/O Prix: 32$ 0, 0007 $/gate. MAX-II CPLD 240 LE, TQFP100 : 240 LEs, total Flash memory 8Kbits, 0 PLLs 4.8 Kgates 0 Multiplier 18x18, 212 I/O Prix: 6$ 0,001 $/gate. * Prix Aout 2009
  • 11. Ancien CPLD : MAX 7000S Nouveau CPLD : MAX II
  • 12. FPGA Le FPGA est inventée par Xilinx (fait partie des plus grandes entreprises spécialisées dans le développement et la commercialisation de composants logiques programmables). Les FPGA sont utilisés dans diverses applications nécessitant de l'électronique numérique (télécommunications, aéronautique, transports…). Ils sont également utilisés pour le prototypage d'ASIC. Architecture du circuit FPGA
  • 13. Le bloc logique configurable ou CLB Un bloc logique configurable est de manière générale constitué d'une table de correspondance (LUT ou Look-Up-Table) et d'une bascule (Flip-Flop en anglais). (il y en a des CLB basés sur des multiplexeurs). La LUT sert à implémenter des équations logiques ayant généralement 4 à 6 entrées et une sortie. Elle peut toutefois être considérée comme une petite mémoire, un multiplexeur ou un registre à décalage. Le registre permet de mémoriser un état (machine séquentielle) ou de synchroniser un signal (pipeline). Les blocs logiques, présents en grand nombre sur la puce (de quelques milliers à quelques millions en 2007) sont connectés entre eux par une matrice de routage configurable. CLB à base de multiplexeurs • Utilisée pour la technologie ANTIFUSIBLE équivaut à une LUT câblée Cellule ACTEL ACT3
  • 14. CLB à base de LUT Choix configurable par bitstream Comme on voit sur le schéma le CLB est constitué d’un LUT à 4 entrées, une bascule D et un multiplexeur 2 vers 1. Pour La LUT elle constituée comme on voit dans la figure d’une SRAM et des multiplexeurs. Pour cet exemple, on va prendre la première ligne de la table : C =0 > les sorties de tous les premiers multiplexeurs auront la valeur de leur première entrée c'est-à-dire on a 1-1-1-1. B = 0 > pareil on a sélectionné la première entrée pour, d’où on reçoit à la sortie 1-1. Pour A =0 > notre sortie Z est égale à 1 (les 2 entrées sont à 1).
  • 15. Les LUT sont de petits éléments de mémorisation, qui reflètent la table de vérité d’une fonction logique. (Mémoriser le comportement des entrées). Une LUT 4 = RAM 2 Octets Après la configuration des blocs logiques CLB, on passe à la configuration des interconnexions entre eux. Blocs d’interconnexions programmables ou PSM Types de connexions  Directes: relient deux CLBs adjacents.  Simples: relient deux PSMs (Programmable Switch Matrix) adjacentes.  Doubles: relient deux PSMs séparées par une PSM.  Quadruples: relient deux PSMs séparées par 3 PSMs.  Longs: traversent la puce de part en part, soit horizontalement ou verticalement (ils peuvent toutefois être sépares en deux moities de longueur égale et indépendantes).
  • 16. Connexions directes: Relient deux CLB adjacents. Ne passent pas par une matrice de connexion (PSM) Connexions Simples: Relient deux PSM adjacentes. Offrent une grande flexibilité de parcours. Le passage d'une connexion simple au travers d'une PSM entraîne un délai. Ce type de connexion se prête surtout aux liens de nature locale.
  • 17. Connexions doubles: Relient deux PSMs séparées par une PSM: Offrent une plus grande rapidité Que les connexions simples pour les liens de longueur intermédiaire Maintiennent une bonne flexibilité de parcours. De la même manière, les connexions quadruples permettent des liens rapides un peu plus longs mais entraînent une certaine pénalité dans la flexibilité du parcours. Les longues lignes : De longs segments métallisés parcourant toute la longueur et la largeur du composant Transmettre avec un minimum de retard les signaux entre les différents éléments dans le but d'assurer un synchronisme aussi parfait que possible.
  • 18. Éviter la multiplicité des points d'interconnexion. Le passage d’un bloc logique à un autre se fera par un nombre de point de connexion (responsable des temps de propagation) fonction de la position relative des deux blocs logique et de l’état d’encombrement de la matrice. Ces délais ne sont donc pas prédictibles (contrairement au CPLD) avant le placement routage De la phase de placement des blocs logiques dépendront donc beaucoup les performances du circuit en termes de vitesse. Les blocs Entrées/Sorties ou I/O Blocs Les blocs d’entrée/sortie (IOBs) contrôlent le flot de données entre les broches du FPGA et la logique interne utilisateur; les I/O sont:  Bidirectionnelles (entrée ou sortie)  3 états (haute impédance)  A retards programmables  Multi-standards (niveaux logiques)
  • 19. Problème de faire communiquer les composants entre eux : il y a plusieurs codages en tension des niveaux 1 et 0 (tension d'alimentation VDD, type de marges): Les buffers permettent de résoudre ce problème Xilinx IOB (Input Output Block):
  • 20. La technologie actuelle des FPGA Jusqu’à 200 000 cellules logiques élémentaires  Cellule = Look-up-Table + registre Blocs mémoire configurables  Blocs de 18kbits, au total jusqu’à 1Mo Structures dédiées pour les traitements arithmétiques  512 multiplieurs 18x18 bits embarqués Processeurs embarqués  Jusqu’à 4 PowerPC en « dur »  Soft-Core : processeurs utilisant les cellules logiques Liaisons séries haut débit  Jusqu’à 10 Gbits  MAC Ethernet intégrée FPGA: et encore!!!