La gamme d'appareils programmables par l'utilisateur disponible sur le marché aujourd'hui n'a jamais été aussi vaste qu'il y a quelques années encore. La soupe alphabétique d'acronymes qui en résulte, sans parler des multiples applications connexes, suffit souvent à décourager tout concepteur qui part à la recherche de son microcontrôleur favori.
Les appareils programmables par l'utilisateur (FPD) ou appareils logiques programmables (PLD) se distinguent des microcontrôleurs standard par le fait que la programmation d'un FPD modifie la configuration matérielle de l'appareil. Un microcontrôleur peut être programmé pour exécuter un programme de façon systématique, une instruction après l'autre. La vitesse d'exécution est généralement contrôlée par une horloge interne ou externe et l'appareil exécute une instruction par cycle d'horloge. Ce système convient parfaitement aux applications habituelles à signal lent. Cependant, si l'application demande une lecture simultanée des E/S et/ou le traitement de signaux haute vitesse, l'appareil doit pouvoir emprunter des chemins matériels dédiés. Avec un FPD, ces chemins matériels peuvent être définis et créés par l'utilisateur au moyen d'une interface de programmation. Ces appareils nécessitent une mémoire non-volatile, telle que mémoire flash ou NVRAM pour conserver leurs configurations, même en cas de perte de puissance.
Appareil logique programmable simple (SPLD)
Dans le cas des applications qui exigent seulement le traitement simultané d'un petit nombre d'E/S, un SPLD peut suffire. Généralement composés d'une douzaine de macrocellules à peine, ces appareils sont généralement les FPD les plus compacts, les moins chers et les moins gourmands en énergie. La bien connue famille ATF16xV8 d'Atmel comprend des composants contenant 8 macrocellules qui consomment moins de 250 mW à la puissance de crête, dans des modules qui ne dépassent pas 4 x 6 mm. La ligne est plus floue entre les SPLD et les logiques programmables spécialisées comme les réseaux logiques programmables (PLA ou PAL) qui s'utilisent souvent pour effectuer des fonctions similaires.
Appareil logique programmable complexe (CPLD)
Si votre application exige définitivement un appareil programmable, mais si vous avec besoin de 32 à 1000 macrocellules seulement environ, le CPLD est la solution. Ces appareils offrent généralement un rapport entrée à porte logique plus élevé, et conviennent idéalement aux applications qui exigent un nombre élevé d'E/S simultanées, mais un volume relativement faible de traitement des données. Les CPLD sont plus denses que les SPLD et offrent un plus grand nombre de fonctionnalités dans des modules compacts. Les appareils de la gamme Flash370 de Cypress comportent entre 32 et 128 macrocellules dans un module de 14 x 14 mm. Tandis que les SPLD ont tendance à fonctionner à 5 V, les CPLD se comportent davantage comme des FPGA et exigent généralement des tensions inférieures à des intensités plus élevées. La plupart du temps, les CPLD absorbent jusqu'à 50 mA par ligne d'E/S à partir d'une alimentation de 1,8 V ou 3,3 V.
Réseau de portes programmable par l'utilisateur (FPGA)
Les FPGA sont les titans actuels du monde des FPD. Ils commandent une large diversité d'appareils, des serveurs lames aux robots de sauvetage. Cette catégorie couvre une gamme étendue de prix, de fonctionnalités et de tailles. La famille LatticeEC de Lattice Semiconductor offre des solutions technologiques à 130 nm intégrant quelques milliers de cellules dans un module de 20 x20 mm à un prix inférieur à $10 USD. À l'autre bout du spectre, la famille Altera Stratix V utilise une technologie à 28 nm pour créer des dispositifs optimisés pour les applications exigeantes en données et en bande passante. Pour ces modèles, les prix varient entre quelques centaines et plusieurs milliers de dollars. Il exigent généralement des systèmes de gestion de la puissance très précis, capables de fournir les rails haute intensité, basse tension nécessaires au fonctionnement. Des modèles de référence sont disponibles pour guider l'ordre d'alimentation des rails principaux (0,9 V à 68 A maximum) et des rails d'E/S afin d'éviter d'endommager l'appareil. Les exigences strictes de gestion de l'alimentation et de gestion thermique nécessaires au bon fonctionnement d'un FPGA hautes performances peuvent intimider de prime abord, mais aucun produit présent sur le marché actuellement n'est capable d'égaler les fonctionnalités de ces appareils.