SlideShare une entreprise Scribd logo
4
Plus lue
6
Plus lue
9
Plus lue
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

Contenu connexe

PPTX
Formation stm32
ODP
Les systèmes embarqués arduino
PDF
Systeme embarque
PDF
Linux : PSCI
PDF
Exercices vhdl
PPT
Bootstrap process of u boot (NDS32 RISC CPU)
PPTX
Microcontrôleur
PPTX
Généralités sur les périphériques du STM32
Formation stm32
Les systèmes embarqués arduino
Systeme embarque
Linux : PSCI
Exercices vhdl
Bootstrap process of u boot (NDS32 RISC CPU)
Microcontrôleur
Généralités sur les périphériques du STM32

Tendances (20)

PPTX
Bootloaders (U-Boot)
PDF
Conception et réalisation d'un quadricoptère pour la prise de vue aérienne
PDF
Linux et les systèmes embarqués
PDF
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
PDF
Systeme embarque td1
PDF
ch1_introduction_aux_systemes_embarques.pdf
PPTX
Les règles de passage
PPTX
Linux I2C
PDF
Cours Système Embarqué et Système d'exploitation mobile.pdf
PDF
Cours8 Introduction à la représentation d'état
PPTX
Presentaion fpga µc µp quelles est la solution
PPTX
Processeur FPGA
PDF
Anatomy of the loadable kernel module (lkm)
PPTX
Formation Bus de Terrain _Partie 3_1 _Modbus tcp
PPTX
Cours Bus de communication et réseaux industriels. Chapitre 1 : introduction.
PPTX
Langage vhdl
PDF
Programmation de systèmes embarqués : Bus et périphériques de communication
PPTX
Embedded Systems
PDF
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Bootloaders (U-Boot)
Conception et réalisation d'un quadricoptère pour la prise de vue aérienne
Linux et les systèmes embarqués
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
Systeme embarque td1
ch1_introduction_aux_systemes_embarques.pdf
Les règles de passage
Linux I2C
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours8 Introduction à la représentation d'état
Presentaion fpga µc µp quelles est la solution
Processeur FPGA
Anatomy of the loadable kernel module (lkm)
Formation Bus de Terrain _Partie 3_1 _Modbus tcp
Cours Bus de communication et réseaux industriels. Chapitre 1 : introduction.
Langage vhdl
Programmation de systèmes embarqués : Bus et périphériques de communication
Embedded Systems
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Publicité

En vedette (20)

PPT
PPTX
programmable_devices_en_02_2014
PPTX
PPT
PPTX
Complex Programmable Logic Device (CPLD) Architecture and Its Applications
PPT
Fundamentals of FPGA
PPT
Cloud Computing
PPTX
Présentation Legu'Ya
PPT
Pavel isaev. danone
PDF
The mixed-signal modelling language VHDL-AMS and its semantics (ICNACSA 1999)
DOCX
Hybrid LUT/Multiplexer FPGA Logic Architectures
PPT
Design of vga based pong game using fpga
PPTX
Xilinx Cool Runner Architecture
PPTX
Batch no.2
PPT
DOCX
Danone StratéGie MéDias Sociaux
PPTX
PPSX
Milady trabajo 2
PPTX
Diktatorerna skriver historia
PPTX
Diktatorerna skriver historia
programmable_devices_en_02_2014
Complex Programmable Logic Device (CPLD) Architecture and Its Applications
Fundamentals of FPGA
Cloud Computing
Présentation Legu'Ya
Pavel isaev. danone
The mixed-signal modelling language VHDL-AMS and its semantics (ICNACSA 1999)
Hybrid LUT/Multiplexer FPGA Logic Architectures
Design of vga based pong game using fpga
Xilinx Cool Runner Architecture
Batch no.2
Danone StratéGie MéDias Sociaux
Milady trabajo 2
Diktatorerna skriver historia
Diktatorerna skriver historia
Publicité

Similaire à Architecture et programmation des circuits CPLD et des FPGA (20)

PDF
Circuits-programmables.pdf
PPTX
Composants reconfigurables
PDF
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
PPTX
Arch_Ord_IF4_Partie1_2020_visio_FST.pptx
PPT
Cours2 Master Embarqué 2022-2023.ppt
PDF
Emulateur d’application soc
PPT
Cours_SAM(M14).ppt
PPT
Cours_SAM(M14).ppt
DOCX
tp structure interne des ordi.docx Unikin
PDF
Cours de microcontrôleurs
PDF
Presentation fpga
PDF
cấu trúc máy tính ( architecture des ordinatuers)
PDF
Chapitre 1 Introduction aux architectures à usage général et spécifiques.pdf
PPTX
Chapitre3 prog dsplf3
PPT
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
PDF
Fpga handout
PPTX
LIazknsfqjksfhuksj:nfbjkbrkjrnsdjkbkO2.pptx
PPTX
LIO2Ukagzdygbs;BQDJgqyj;sdhb;hjyqgysukbdk.pptx
PDF
Cours de PIC Généralités.pdf
PDF
Architecture des FPGAs.pdf
Circuits-programmables.pdf
Composants reconfigurables
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
Arch_Ord_IF4_Partie1_2020_visio_FST.pptx
Cours2 Master Embarqué 2022-2023.ppt
Emulateur d’application soc
Cours_SAM(M14).ppt
Cours_SAM(M14).ppt
tp structure interne des ordi.docx Unikin
Cours de microcontrôleurs
Presentation fpga
cấu trúc máy tính ( architecture des ordinatuers)
Chapitre 1 Introduction aux architectures à usage général et spécifiques.pdf
Chapitre3 prog dsplf3
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
Fpga handout
LIazknsfqjksfhuksj:nfbjkbrkjrnsdjkbkO2.pptx
LIO2Ukagzdygbs;BQDJgqyj;sdhb;hjyqgysukbdk.pptx
Cours de PIC Généralités.pdf
Architecture des FPGAs.pdf

Plus de Chiheb Ouaghlani (12)

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

Dernier (16)

PDF
Expansion du Réseau de Gazoducs de Gaz Naturel au Brésil _ Analyse Technique ...
PPTX
CH1-RMELLOULI-Données des problèmes d'ordonnancement de la production.pptx
PPTX
mon_expose_de_geophysique_disposotif_de_wener.pptx
PPTX
COURS DE PROSPECTION MINIERE UTMSIRI - Copie.pptx
PPTX
Introduction aux Systèmes temps réel.pptx
PPTX
Logique séquentielle : les fondamentaux
PDF
TP L’analyse granulométrique par tamisage
PDF
CHAPITRE 3 Typologie des réseaux [Enregistrement automatique] 4.pdf
PPTX
UMAPON Cours de traitement des minerais 2.pptx
PDF
Visite de chantier – Projet de Polyclinique à Laghouat
PPTX
Lirrigation-et-le-drainage-en-agriculture-Principes-et-Pratiques.pptx
PPTX
FormationFormation e pFormationour HC .pptx
PDF
TP de La Masse Volumique apparente et absolue
PPTX
A Recurrent Neural Network (RNN)s a type of artificial neural network
PDF
Arouna Toure - Senior Ingénieur Logiciel Et Chef De Produit
PDF
FAQ_FORAGE_EAU_SUNRISE_ENGINEERING_GROUP_SARL2025.pdf
Expansion du Réseau de Gazoducs de Gaz Naturel au Brésil _ Analyse Technique ...
CH1-RMELLOULI-Données des problèmes d'ordonnancement de la production.pptx
mon_expose_de_geophysique_disposotif_de_wener.pptx
COURS DE PROSPECTION MINIERE UTMSIRI - Copie.pptx
Introduction aux Systèmes temps réel.pptx
Logique séquentielle : les fondamentaux
TP L’analyse granulométrique par tamisage
CHAPITRE 3 Typologie des réseaux [Enregistrement automatique] 4.pdf
UMAPON Cours de traitement des minerais 2.pptx
Visite de chantier – Projet de Polyclinique à Laghouat
Lirrigation-et-le-drainage-en-agriculture-Principes-et-Pratiques.pptx
FormationFormation e pFormationour HC .pptx
TP de La Masse Volumique apparente et absolue
A Recurrent Neural Network (RNN)s a type of artificial neural network
Arouna Toure - Senior Ingénieur Logiciel Et Chef De Produit
FAQ_FORAGE_EAU_SUNRISE_ENGINEERING_GROUP_SARL2025.pdf

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!!!