Circuits programmables
Définition :
Un circuit programmable est un assemblage d’opérateurs logiques combinatoires et de bascules dans
lequel la fonction réalisée n’est pas fixée lors de la fabrication. Il contient potentiellement la possibilité
de réaliser toute une classe de fonctions, plus ou moins large suivant son architecture. La
programmation du circuit consiste à définir une fonction parmi toutes celles qui sont potentiellement
réalisables.
Généralités :
Jusqu'à présent, l'apprentissage de la logique se faisait à travers la découverte des fonctions logiques
élémentaires contenues dans les circuits intégrés des familles TTL ou CMOS. Les expérimentations se
limitaient aux fonctions proposées par les fabricants de ces circuits. La conception de fonctions logiques
regroupant plusieurs de ces circuits nécessitait un câblage conséquent, et la réalisation d'un circuit
imprimé de grande surface.
D'abord réalisées avec des circuits SSI (Small Scale Integration), les fonctions logiques intégrées se sont
développées avec la mise au point du transistor MOS dont la facilité d'intégration a permis la réalisation
de circuits MSI (Medium Scale Integration) puis LSI (Large Scale Integration) puis VLSI (Very Large Scale
Integration). Ces deux dernières générations ont vu l'avènement des microprocesseurs et
microcontrôleurs
De nombreuses familles de circuits sont apparues depuis les années 70 avec des noms très divers
suivant les constructeurs. Une certaine inertie dans l'évolution du vocabulaire a fait que certains circuits
technologiquement différents ont le même nom. Le terme même de circuit programmable est ambigu,
la programmation d'une FPGA ne faisant pas appel aux mêmes opérations que celle d'un
microprocesseur. Il serait plus juste de parler pour les PLD, CPLD et FPGA de circuits à architecture
programmable ou encore de circuits à réseaux logiques programmables.
Les sigles utilisés dans la suite semblent communément admis par la majorité des fabricants :
➢ PLD (programmable logic device) est un terme générique qui recouvre l’ensemble des circuits
logiques programmables. Il est le plus souvent employé pour désigner les plus simples d’entre eux
(équivalent de quelques centaines de portes logiques).
➢ CPLD (complex programmable logic device) désigne évidemment un circuit relativement complexe
(jusqu’à une ou deux dizaines de milliers de portes), mais dont l’architecture dérive directement de celle
des PLDs simples.
➢ FPGA (field programmable gate array) marque un saut dans l’architecture et la technologie, il
désigne un circuit qui peut être très complexe (jusqu’à cent mille portes équivalentes) ; la complexité des
FPGAs rejoint celle des ASICs (application specific integrated circuits).
Page 1 sur 7
Utilisation des circuits numériques :
1. Les fonctions standard sont utilisées pour les applications réalisées en logique câblée. Les catalogues
TTL et CMOS présentent plusieurs centaines de fonctions d’usage général, sous forme de circuits intégrés
à grande échelle.
2. Les microprocesseurs, désormais d’usage courant, sont omniprésents dans les applications
industrielles.
3. Dans des applications trop complexes pour être raisonnablement traitées en logique câblée
traditionnelle, et trop rapides pour avoir une solution à base de microprocesseurs, on utilise des
séquenceurs micro programmés (PLD, CPLD, FPGA).
4. Quand les volumes de production importants le justifient, les circuits intégrés spécifiques (ASICS)
offrent une alternative aux cartes câblées classiques.
Domaines d’application :
➢ Informatique.
➢ Médical.
➢ Electronique grand public.
➢ Militaire/aérospatial.
➢ Contrôle industriel.
➢ Automobile.
➢ Télécommunications.
➢ Stockage de données.
➢ Combinés multimédias.
➢ Boîtiers décodeurs pour télévision.
Mémoires :
➢ Les mémoires de type PROM (programmable memory) sont programmables une seule fois au
moyen d’un appareil spécial, le programmateur. Les données qui y sont inscrites ne sont pas modifiables.
Elles conservent les informations quand l’alimentation est interrompue. Leur inconvénient majeur est
l’impossibilité de modifier les informations qu’elles contiennent.
➢ Les mémoires de type EPROM (erasable programmable memory) sont programmables par
l’utilisateur au moyen d’un programmateur, effaçables par une exposition aux rayons ultraviolets et
Page 2 sur 7
reprogrammables après avoir été effacées. Elles aussi conservent les informations quand l’alimentation
est interrompue. Leur boîtier doit être équipé d’une fenêtre transparente, ce qui en augmente le coût.
➢ Les mémoires de type EEPROM (electricaly erasable programmable memory), ou FLASH, sont
effaçables et reprogrammables électriquement. Non alimentées, elles conservent les informations
mémorisées. La diminution des tensions à appliquer pour programmer les mémoires FLASH permet
même de s’affranchir du programmateur : il est intégré dans le circuit. On parle alors de mémoires
programmables in situ (ISP, pour in situ programming), c’est à dire sans démonter la mémoire de la carte
sur laquelle elle est implantée. Les technologies FLASH sont de loin les plus séduisantes pour les circuits
programmables pas trop complexes.
➢ Les mémoires RAM (random access memory) statiques3, ou SRAM, sont constituées de cellules
accessibles, en mode normal, en lecture et en écriture. Elles sont utilisées dans certains circuits
programmables complexes pour conserver la configuration (qui définit la fonction réalisée) du circuit.
Ces mémoires perdent leur information quand l’alimentation est supprimée.
Fonctionnement d’une mémoire électronique :
Les mémoires sont des circuits intégrés de forte densité d’intégration capables de stocker de
l’information sous forme binaire. Elles sont réalisées en technologie bipolaire ou CMOS. Dans
les mémoires sérielles il existe plusieurs protocoles de communication, les plus répandus étant I2C-Bus,
SPI-Bus, Microwire-Bus.
Circuits Logiques Programmables : PLD
Structure :
Un circuit logique programmable (en anglais Programmable Logic Device ou PLD) est un dispositif qui
peut être configuré par l'utilisateur pour réaliser une fonction logique quelconque. La plupart des PLD
sont constitués de deux réseaux de portes logiques, un réseau AND suivi d'un réseau OR.
Page 3 sur 7
Classification des PLD : Nous pouvons citer deux types de base de PLD : les PAL, les PLA. Un GAL
(Generic Array Logic) est un PAL effaçable électriquement.
PLA (Programmable Logic Array) : Les deux réseaux AND et OR sont programmable.
PAL (Programmable Array Logic).
Le réseau AND est programmable et le réseau OR est fixe.
Page 4 sur 7
CPLD.
Les circuits PLD étudiés jusqu'à maintenant sont connus comme SPLD (Simple Programmable Logic
Devices), pour les différencier des circuits plus complexes : les CPLD (Complex Programmable Logic
Devices). Les CPLD sont composés d'un certain nombre de SPLD qui partagent une matrice
d'interconnexion programmable commune. En plus de la configuration des différents SPLD, il est donc
également possible de configurer les interconnexions entre les blocs. Le nombre de portes peut varier
entre 100 et 100 000 portes logiques et entre 16 et 1000 bascules voir plus.
MICROPROCESSEURS Définition :
Le microprocesseur,
noté aussi M.P.U. (Microprocessor unit) ou encore C.P.U. (Central Processing Unit) est un circuit intégré
complexe appartenant à la famille des VLSI (Very large scale intégration) capable d'effectuer
séquentiellement et automatiquement des suites d'opérations élémentaires. Il remplit deux fonctions
essentielles : 1. Le traitement des données. On parle
d'unité de traitement. Cette fonction est dédiée à l'Unité Arithmétique Logique. Elle concerne la
manipulation des données sous formes de transfert, d’opérations arithmétiques, d’opérations logiques....
2. le contrôle du système. Cette fonction se traduit par des
opérations de décodage et d'exécution des ordres exprimés sous forme d'instruction.
Architecture interne d’un µprocesseur :
Un microprocesseur est construit autour de deux éléments principaux : unité de commande. + unité de
traitement.
Page 5 sur 7
Architecture des instructions.
1. L’architecture CISC (Complex Instruction Set Computer). Ce type de microprocesseur possède
un nombre important d’instructions. Chacune d’elles s’exécute en plusieurs périodes d’horloges.
2. L’architecture RISC (Reduced Instruction Set Computer). Ces microprocesseurs possèdent un
nombre réduit d’instructions. Chacune d’elles s’exécute en une période d’horloge.
MICROCONTROLLEUR. Exemple : PIC16F877A :
Un microcontrôleur comme étant une unité de traitement de l’information de type microprocesseur
à laquelle on a ajouté des périphériques internes permettant de réaliser des montages sans
nécessiter l’ajout de composants externes.
Architecture interne :
La structure interne d'un microcontrôleur comporte typiquement :
➢ Une unité de calcul et de commande (CPU).
➢ De la mémoire de donnée (RAM, EEPROM).
➢ De la mémoire programme (ROM, PROM, EPROM, EEPROM).
➢ Un compteur/temporisateur (timer) pour générer ou mesurer des signaux avec une grande
précision temporelle.
➢ Des interfaces parallèles pour la connexion des entrées/sorties.
➢ Des interfaces série (synchrones et asynchrones) pour le dialogue avec d’autres unités.
Page 6 sur 7
Il peut aussi posséder :
➢ Un chien de garde (Watchdog) qui assure la surveillance du programme.
➢ Une sortie PWM (Pulse Width Modulation) pour la modulation d’impulsion.
➢ Un convertisseur analogique-numérique et numérique-analogique (CAN/CNA) pour le traitement des
signaux analogiques.
Page 7 sur 7