Elevate your design and manufacturing processes with Autodesk Fusion
This post is also available in: Italiano (Italien) Deutsch (Allemand) English (Anglais)
Dans cet article, nous examinerons en détail un dispositif électronique numérique essentiel appelé « circuit logique programmable complexe » (en anglais : CPLD, Complex Programmable Logic Device).
Les technologies de l’information, Internet et les puces électroniques constituent le socle de l’ère numérique moderne. La plupart des technologies modernes (Internet, communications cellulaires, ordinateurs, serveurs, etc.) doivent leur existence à l’électronique. L’électronique est un vaste domaine comportant de nombreuses sous-catégories. Dans cet article, nous parlerons d’un dispositif électronique numérique essentiel appelé « circuit logique programmable complexe » (en anglais : CPLD, Complex Programmable Logic Device).
Évolution de l’électronique numérique
L’électronique est un domaine complexe qui compte des milliers de dispositifs et de composants. Toutefois, les dispositifs électroniques sont généralement répartis en deux catégories principales : analogiques et numériques.
Au tout début de la technologie électronique, les circuits étaient analogiques (son, lumière, tension et courant, par exemple). Cependant, les ingénieurs en électronique se sont vite rendu compte que les circuits analogiques étaient coûteux et leur conception complexe. Les exigences de performances élevées et les délais de livraison serrés ont conduit au développement de l’électronique numérique. Aujourd’hui, presque tous les appareils informatiques intègrent des processeurs et des circuits intégrés numériques. Dans le monde de l’électronique, les systèmes numériques ont désormais complètement remplacé l’électronique analogique pour plusieurs raisons : coût inférieur, faible niveau de bruit, meilleure intégrité des signaux, performances supérieures et simplicité.
Alors qu’un signal analogique se compose d’un nombre infini de niveaux de données, un signal numérique comprend uniquement deux niveaux logiques (1s et 0s).
Types de dispositifs électroniques numériques
Les premiers dispositifs électroniques numériques étaient assez simples et ne comportaient que quelques portes logiques. Cependant, avec le temps, la complexité des circuits numériques s’est accrue. La programmabilité est devenue une caractéristique importante des dispositifs de contrôle numérique modernes. Deux types de dispositifs numériques ont alors fait leur apparition pour assurer la programmabilité. Les premiers dispositifs étaient des conceptions matérielles fixes avec logiciels reprogrammables, comme les microcontrôleurs et les microprocesseurs. Les deuxièmes incorporaient du matériel reconfigurable pour obtenir des conceptions de circuits logiques flexibles, comme les réseaux de portes programmables (FPGA, Field Programmable Gate Array), les circuits logiques programmables simples (SPLD, Simple Programmable Logic Device) et les circuits logiques programmables complexes (CPLD, Complex Programmable Logic Device).
Une puce de microcontrôleur est dotée d’un circuit logique numérique fixe qui ne peut pas être modifié. La programmabilité s’obtient alors en modifiant le logiciel/microprogramme qui s’exécute sur la puce du microcontrôleur. Au contraire, un circuit logique programmable (PLD, Programmable Logic Device) est constitué de plusieurs cellules logiques dont les interconnexions peuvent être configurées à l’aide d’un langage de description du matériel (HDL, Hardware Description Language). Il est donc possible de réaliser de nombreux circuits logiques à l’aide d’un PLD. De ce fait, les performances et la vitesse des PLD sont généralement supérieures à celles des microcontrôleurs et des microprocesseurs. Les PLD offrent également plus de liberté et de flexibilité aux concepteurs de circuits.
Les circuits intégrés destinés au contrôle numérique et au traitement des signaux comprennent généralement un processeur, un circuit logique et de la mémoire. Différentes technologies peuvent être utilisées pour réaliser chacun de ces modules. Les options disponibles sont illustrées ci-dessous :
Présentation des CPLD
Comme nous l’avons vu précédemment, il existe plusieurs types de PLD (Programmable Logic Device), notamment les FPGA, les CPLD et les SPLD. La principale différence entre ces dispositifs réside dans la complexité des circuits et dans le nombre de cellules logiques disponibles. Un SPLD comporte généralement quelques centaines de portes, tandis qu’un CPLD comporte quelques milliers de portes logiques.
En termes de complexité, un CPLD se situe entre un SPLD et un FPGA et présente donc des caractéristiques de ces deux dispositifs. Les CPLD sont plus complexes que les SPLD, mais plus simples que les FPGA.
Les SPLD les plus utilisés sont notamment les circuits logiques programmables (PAL, Programmable Array Logic), les réseaux logiques programmables (PLA, Programmable Logic Array) et les réseaux logiques génériques (GAL, Generic Array Logic). Un réseau PLA se compose d’un plan ET et d’un plan OU. Le programme de description du matériel définit l’interconnexion de ces plans. La figure ci-dessous illustre la structure d’un réseau PLA :
Un circuit PAL est très similaire à un PLA, mais il ne comprend qu’un seul plan programmable au lieu de deux (plan ET). Comme un des plans est fixe, la complexité matérielle est moindre. Cet avantage est toutefois obtenu au détriment de la flexibilité.
Architecture des CPLD
Un CPLD peut être considéré comme une version évoluée d’un circuit PAL. Il se compose de plusieurs structures PAL appelées macrocellules. Dans un package CPLD, toutes les broches d’entrée sont disponibles pour chaque macrocellule, tandis que chaque macrocellule a une broche de sortie dédiée. La figure ci-dessous illustre le schéma fonctionnel d’un CPLD.
Dans ce schéma fonctionnel, vous pouvez voir qu’un CPLD se compose de plusieurs macrocellules ou blocs fonctionnels. Les macrocellules sont connectées par le biais d’une matrice d’interconnexions programmables, également appelée GIM (Global Interconnection Matrix). La reconfiguration de cette matrice permet de réaliser différents circuits logiques. Les CPLD interagissent avec les éléments extérieurs à l’aide d’E/S numériques.
Comparaison des CPLD et des FPGA
Au cours des dernières années, les FPGA sont devenus très populaires pour la conception de systèmes numériques programmables. Il existe de nombreuses similitudes et différences entre les CPLD et les FPGA. En ce qui concerne les similitudes, tous deux sont des circuits logiques programmables constitués de réseaux de portes logiques. En outre, les deux dispositifs sont programmés à l’aide d’un langage HDL (Verilog HDL ou VHDL, par exemple).
La première différence réside dans le nombre de portes. Un CPLD contient quelques milliers de portes logiques, tandis que le nombre de portes dans un FPGA peut atteindre plusieurs millions. Les FPGA peuvent donc servir à réaliser des circuits et des systèmes complexes. L’inconvénient de cette complexité est le coût, qui est plus élevé. Par conséquent, les CPLD conviennent davantage aux applications moins complexes.
Autre différence majeure : les CPLD disposent d’une mémoire morte modifiable électriquement ou mémoire EEPROM (Electrically Erasable Programmable Read-Only Memory) intégrée non volatile, tandis que les FPGA s’appuient sur une mémoire volatile. De ce fait, un CPLD peut stocker les données même lorsqu’il est mis hors tension, ce qui n’est pas le cas du FPGA. De plus, grâce à sa mémoire non volatile intégrée, un CPLD peut commencer à fonctionner immédiatement après sa mise sous tension. À l’inverse, la plupart des FPGA nécessitent un flux binaire provenant d’une mémoire externe non volatile pour démarrer.
En termes de performances, le délai de traitement des signaux des FPGA est imprévisible en raison de leur architecture très complexe et de la programmation personnalisée. Dans les CPLD, le délai de traitement entre les broches est considérablement réduit, en raison de la simplicité de l’architecture. Le délai de traitement des signaux est un facteur important dans la conception d’applications en temps réel incorporées et critiques pour la sécurité.
En raison de fréquences de fonctionnement plus élevées et d’opérations logiques plus complexes, certains FPGA peuvent être plus énergivores que les CPLD. La gestion thermique est donc un aspect important des systèmes basés sur la technologie FPGA. Ces systèmes requièrent souvent des dissipateurs de chaleur et des ventilateurs, mais aussi des blocs d’alimentation et des réseaux de distribution plus grands et plus complexes.
Du point de vue de la sécurité des informations, les CPLD sont plus sûrs, car la mémoire est intégrée dans la puce. Au contraire, la plupart des FPGA nécessitent une mémoire externe non volatile, ce qui peut compromettre la sécurité des données. Bien que les FPGA utilisent des algorithmes de chiffrement des données, les CPLD sont intrinsèquement plus sécurisés.
Applications des CPLD
Les CPLD trouvent leur application dans de nombreux circuits de traitement des signaux et de contrôle numérique de complexité faible ou moyenne. Parmi les applications importantes, citons-en quelques-unes :
- Les CPLD peuvent être utilisés comme chargeurs de démarrage des FPGA et d’autres systèmes programmables.
- Les CPLD sont souvent utilisés comme décodeurs d’adresses et machines à états personnalisées dans les systèmes numériques.
- En raison de leur petite taille et de leur faible consommation d’énergie, les CPLD sont parfaits pour être utilisés dans les appareils numériques portatifs et portables.
- Les CPLD sont également employés dans les applications de contrôle critiques pour la sécurité.
Fabricants de CPLD
Les CPLD et les FPGA sont des circuits logiques programmables haut de gamme, difficiles à fabriquer. Voici les principaux fabricants de CPLD :
- Altera (acquis par Intel)
- Xilinx (acquis par AMD)
- Atmel (acquis par Microchip)
- Lattice Semiconductor
Programmation et développement de CPLD
La première étape du développement d’un système numérique basé sur CPLD consiste à sélectionner le fabricant du dispositif. Comme indiqué précédemment, plusieurs fabricants proposent ces dispositifs. Après consultation des exigences du projet et des fiches techniques des dispositifs, choisissez un dispositif approprié. Les facteurs décisifs sont le coût, la consommation électrique, le nombre de macrocellules et d’E/S, la tension d’exploitation et les caractéristiques thermiques.
Après avoir sélectionné un modèle de CPLD, configurez l’environnement de programmation et de test, en incluant les packages logiciels nécessaires pour la conception, les tests et la vérification du circuit. Vous avez le choix entre plusieurs logiciels de programmation, notamment Altera Quartus, Xilinx ISE/Vivado, Lattice Diamond et Atmel ProChip Designer. Ces packages logiciels permettent de développer des programmes à l’aide des langages de description de matériel Verilog et VHDL.
Une fois la description logique créée à l’aide d’un langage HDL, la carte de développement ou le composant matériel se connecte au logiciel à l’aide d’un adaptateur de câble pour la programmation et le débogage. De nombreuses cartes de développement sont dotées de dispositifs de programmation intégrés. Si vous ne disposez d’aucun dispositif de programmation, vous pouvez utiliser un programmateur JTAG.
Après les étapes de conception, de test et de vérification du programme CPLD, le programme est téléchargé sur la puce et un prototype de système peut être généré. Vous pouvez concevoir une carte de circuit imprimé hébergeant le CPLD et les composants électroniques environnants. Après l’intégration, le dispositif doit être testé pour détecter les bogues et les erreurs. Une fois le débogage terminé, le prototype est prêt à être envoyé en production.
L’électronique numérique constitue le pilier des technologies de l’information modernes. La programmabilité est un facteur clé dans la conception de systèmes numériques. Il existe deux types de dispositifs numériques programmables : les processeurs et les PLD. Les PLD offrent des performances et une flexibilité supérieures, car le matériel est reconfigurable. Il existe trois principaux types de PLD : les CPLD, les SPLD et les FPGA. En termes de performances et de complexité, les CPLD se situent entre les SPLD et les FPGA. Intégrant une mémoire EEPROM non volatile, les CPLD renforcent la sécurité des données et assurent une vitesse de démarrage supérieure aux FPGA.
Dans cet article, nous vous avons présenté les CPLD en détail, notamment leur architecture, leur schéma fonctionnel, leurs applications et les méthodes de programmation correspondantes.
Prêt à commencer à utiliser Fusion 360 pour l’ingénierie électronique ? Essayez la version d’évaluation gratuite.