Introduction aux Circuits Reconfigurables et FPGA
Mesures Données Evènements Système temps réel
Un système temps réel est un système de calcul capable de contrôler ou de commander un procédé physique à une vitesse adaptée à l’évolution du procédé contrôlé. Tous les système de commande sont des systèmes temps réels La plupart des systèmes temps réels sont embarqués, c.-à-d., le système de calcul est embarqué – une partie intégrée de l’équipement Système temps réel
Types des circuits numériques
Circuits numériques Circuits logiques à architecture programmable Logique Câblée Circuits logiques programmables PLD – PAL - GAL CPLD - FPGA Circuits logiques programmables spécifiques ASIC Circuits logiques à fonctionnement programmable Logique Programmable Microprocesseurs Microcontrôleurs DSP Circuits logiques standards TTL, CMOS
Circuits logiques à fonctionnement programmable Un microprocesseur c’est un séquenceur qui exécute des ordre mémorisés constituant un programme. Il ne peut donc faire qu'une chose à la fois.
Fonctionnement d’un microprocesseur Une instruction est exécuté par le processeur au cours d'un cycle (également appelé cycle de recherche et exécution ou encore fetch-decode-execute cycle, FDX). Les quatre étapes successives que les architectures von Neumann utilisent sont la recherche de l'instruction, le décodage de l'instruction (opération et opérandes), l'exécution de l'opération et pour finir l'écriture du résultat. Cette séquence constitue le cycle d'une instruction et est répété continuellement par le micro- processeur, tant qu'il est en fonctionnement.
Fonctionnement d’un microprocesseur Soit à calculer la somme S=A+B, les instructions à donner au microprocesseur sont : Charger dans le microprocesseur le nombre A. Additionner le nombre B. Stocker le résultat S de l’opération à l’adresse D3. Ces trois ordres ou instructions, constitue un programme qui est stocké dans le un mémoire La succession des opérations effectuées par le MP est : -Le compteur ordinal contient le nombre 1. L’instruction CHARGER est envoyée dans le microprocesseur et décodée ; le compteur ordinal passe à 2, l’adresse D1 est décodée et le nombre A est envoyé dans l’U.A.L. Il la traverse pour venir remplir l’accumulateur. Le compteur ordinal passe à 3. -Le compteur ordinal contient le nombre 3. L’instruction ADDITIONNER est envoyée dans le microprocesseur et est décodée. Le microprocesseur sélectionne dans l’U.A.L. l’opération d’addition, le compteur ordinal passe à 4, l’adresse de B est décodée, le nombre B est additionné au contenu A de l’accumulateur. Le résultat S = A + B apparaît dans l’accumulateur. Le compteur ordinal passe à 5. -Le compteur contient le nombre 5. La dernière instruction STOCKÉE est envoyée dans le microprocesseur et analysée par le décodeur d’instructions, le compteur ordinal passe à 6, l’adresse D3 est décodée. Le contenu S de l’accumulateur est alors envoyé dans la case D3 de la mémoire de données (voir figure 3). Le contenu du compteur ordinal vaut alors 7, mais il n’y a plus de tâche à effectuer.
Circuits logiques à architecture programmable
PLD: Programmable Logic Device Circuits logiques programmables Un PLD est un circuit intégré qui contient : Des éléments distribues de logique séquentielle et combinatoire : portes, bascules, cellules de mémoire, etc.. Un réseau d'interconnexion partiellement ou totalement programmable. Un ensemble de blocs d’entrées/sorties Les PLD sont classés selon: La technique de programmabilite ou de reconfiguration employée Leur architecture / structure interne
Classification des PLD selon la Programmabilite
Classification des PLD selon l’architecture PLD SPLD PAL PLA PROM CPLDFPGA
SPLD (simple PLD) Simple Programmable Logic Device Un ensemble d‘éléments logiques sur un bus unique d'interconnexion Une densité faible ; Peu ou pas de logique séquentielle.
Une plage de mémoire peut servir a implanter une fonction logique combinatoire. En ce sens, les PROM sont des PLD primitifs. Il sut de stocker dans la mémoire la table de vérité de la fonction désirée. Par exemple, une mémoire de 16x1 positions peut servir a l'implantation de n'importe quelle fonction combinatoire a 4 entrées et une sortie. Le plan ET est fixe tandis que le plan OU est programmable. PROM: Programmable Read-Only Memory (EPROMs, EEPROMs, OTP-ROMs)
Les PAL sont des circuits utilisant la technologie des fusibles pour programmer les interconnexions internes. Ils sont constitués d'un plan de portes AND programmables suivi d'un plan de portes "OR" fixe ou figée (Figure II.2). PAL : Programmable Array Logic Réseau Logique Programmable
Les PLA sont Une generalisation des PALs et PROMs dont les connexions dans les deux plans (AND, OR) sont programmables. PLA : Programmable Logic Array Réseau Logique Programmable
Programmable Logic Devices PLDs Logic Functions Programmed PLD Product Terms Sums
Programmable Logic Devices PLDs Logic Functions Programmed PLD Product Terms Sums x x x x x
Programmable Logic Devices PLDs Logic Functions Programmed PLD Product Terms Sums x x x x x x x n GLUE LOGIC
PLD Complexe : CPLD densité élevée reprend la structure complète d'un PLD de complexité moyenne pour former un bloc; Un seul CPLD comprend plusieurs blocs inter-relies par un bus d'interconnexion
PLD très Complexe : FPGA Densite elevee ou tres elevee ; Une matrice de cellules logiques dans un «océan» de ressources d'interconnexions diverses ; Plus versatile que les SPLD et CPLD ; Plus approprie en logique séquentielle puisqu'ils contiennent beaucoup plus de bascules que les CPLDs.
FPGA/Microprocesseur! Un FPGA possède des ensembles logiques que l'on peut combiner à peu près comme l'on veut. Le résultat tient donc de la logique câblée. Un microprocesseur est un séquenceur qui exécute des ordre mémorisés constituant un programme. Il ne peut donc faire qu'une chose à la fois. Maintenant, on peut aussi faire un mix de tout çà: on peut faire du traitement parallèle avec certain microprocesseurs et on peut implanter un bloc microprocesseur dans un FPGA, ce qui n'est pas surprenant car finalement un microprocesseur n'est composé que de circuit logiques.