Principes de base des FPGA – 2e partie : premiers pas avec les FPGA de Lattice Semiconductor

Par Clive "Max" Maxfield

Avec la contribution de Rédacteurs nord-américains de DigiKey

Note de l'éditeur : Les solutions de traitement optimales reposent généralement sur la combinaison de processeurs RISC, de microprocesseurs CISC, de processeurs graphiques et de FPGA, sur des FPGA seuls ou sur des FPGA intégrant des cœurs de processeurs matériels dans leur structure. Cependant, beaucoup de concepteurs ne connaissent ni les capacités des FPGA, ni leur évolution, ni leur utilisation. La 1re partie de cette série en plusieurs parties présente en détail les FPGA et explique pourquoi ils sont nécessaires. Cette 2e partie est axée sur les gammes de dispositifs FPGA et les outils de conception proposés par le fournisseur de FPGA Lattice Semiconductor. Les 3e, 4e et 5e parties s'intéresseront à des FPGA d'Altera, de Microchip et de Xilinx.

Comme indiqué dans la 1re partie, les réseaux de portes programmables par l'utilisateur (FPGA) offrent de nombreuses caractéristiques qui en font une ressource informatique inestimable, autonome ou intégrée dans une architecture hétérogène. Cependant, de nombreux concepteurs ne connaissent pas bien les FPGA et ne savent pas comment les intégrer à leurs conceptions.

Pour surmonter cet obstacle, il est possible d'examiner plus en détail les architectures FPGA et les outils associés proposés par les principaux fournisseurs, en commençant ici par la ligne de produits de Lattice Semiconductor.

Présentation détaillée des options FPGA

Il existe de nombreux types de FPGA différents sur le marché, chacun intégrant différentes combinaisons de capacités et de fonctions. Au cœur de tout FPGA se trouve une structure programmable, qui est présentée sous forme d'un réseau de blocs logiques programmables (Figure 1a). L'étape suivante de la conception de la structure FPGA consiste à inclure des composants, comme des blocs SRAM, appelés RAM bloc (BRAM), des boucles à verrouillage de phase (PLL) et des gestionnaires d'horloge (Figure 1b). Des blocs de traitement numérique des signaux (DSP) (tranches DSP) et des blocs de sérialiseur/désérialiseur (SERDES) haute vitesse peuvent également être ajoutés (Figure 1c).

Schéma des FPGA contenant uniquement une structure programmable et des E/S à usage général (GPIO) configurables Figure 1 : Les FPGA les plus simples contiennent uniquement une structure programmable et des E/S à usage général (GPIO) configurables (a) ; différentes architectures étendent cette structure principale avec des blocs SRAM, des PLL, des gestionnaires d'horloges (b), des blocs DSP et des interfaces SERDES (c), ainsi que des cœurs de processeurs matériels et des périphériques (d). (Source de l'image : Max Maxfield)

Les fonctions d'interfaces périphériques comme CAN, I2C, SPI, UART et USB peuvent être implémentées sous forme de cœurs logiciels dans la structure programmable, mais beaucoup de FPGA les incluent sous forme de cœurs matériels dans la puce. De même, les microprocesseurs peuvent être implémentés sous forme de cœurs logiciels dans la structure programmable ou de cœurs matériels dans la puce (Figure 1d). D'autres FPGA offrent différents ensembles de fonctions, fonctionnalités, possibilités et capacités adaptés à différents marchés et applications.

Il existe un certain nombre de fournisseurs de FPGA, notamment Altera (qui a été racheté par Intel), Atmel (qui a été racheté par Microchip Technology), Lattice Semiconductor, Microsemi (qui a également été racheté par Microchip Technology) et Xilinx.

Tous ces fournisseurs proposent plusieurs gammes de FPGA. Certains proposent des FPGA sous forme de systèmes sur puce (SoC) (contenant des cœurs de processeur matériels) et d'autres proposent des dispositifs tolérant les rayonnements, destinés à des environnements à rayonnement élevé comme l'espace. Le choix du meilleur dispositif pour une tâche donnée peut s'avérer difficile, car il existe beaucoup de types de composants, chacun offrant des ressources différentes. Cet article se concentre sur les gammes de dispositifs et les outils de conception proposés par Lattice Semiconductor.

Présentation des FPGA de Lattice Semiconductor

Les offres de FPGA de Lattice Semiconductor s'étendent de l'entrée de gamme au milieu de gamme, en mettant l'accent sur des dispositifs basse consommation qui résolvent les problèmes des clients sur tout le réseau, de la périphérie au cloud, dans les marchés en croissance rapide des communications, de l'informatique, de l'industrie, de l'automobile et des produits grand public.

Lattice propose quatre gammes principales de FPGA :

  • iCE (que la marque vend comme étant les FPGA ultrabasse consommation les plus compacts au monde)
  • CrossLink et CrossLinkPlus (optimisés pour les applications de capteur et de vidéo haute vitesse)
  • MachXO (optimisés pour le pontage, l'extension et les applications de sécurité et de gestion de plateforme)
  • ECP (dispositifs à usage général destinés aux applications de connectivité et d'accélération)

Lattice propose également un certain nombre de suites d'outils de conception et de vérification, notamment le logiciel Lattice Diamond (pour les dispositifs CrossLink/CrossLinkPlus, MachXO et ECP) et le logiciel Lattice Radiant (pour les FPGA iCE et les futures architectures), ainsi que LatticeMico (un outil graphique pour créer conceptions basées sur des microprocesseurs logiciels), et la pile Lattice sensAI et le compilateur de réseau neuronal (pour les conceptions d'intelligence artificielle [IA] et d'apprentissage automatique [ML]).

Solution traditionnelle : FPGA ECP

Les dispositifs ECP de Lattice sont ce que de nombreux concepteurs considèrent comme des FPGA « traditionnels ». Ils peuvent contenir jusqu'à 85 000 (k) tables de correspondance (LUT) à quatre entrées dans un boîtier de 10 mm x 10 mm à pas de 0,5 mm. Ils présentent une faible consommation énergétique statique et dynamique avec des fonctions SERDES agnostiques à protocole monocanal en dessous de 0,25 W et des fonctions SERDES à quatre canaux en dessous de 0,5 W.

En plus des blocs SRAM, des blocs de traitement numérique des signaux (DSP), des boucles à verrouillage de phase (PLL) et des gestionnaires d'horloge, les FPGA ECP offrent une prise en charge des E/S programmables pour les interfaces entrée/sortie MIPI D-PHY, LVCMOS 33/25/18/15/12, XGMII, LVTTL, LVDS, Bus-LVDS, 7:1 LVDS et LVPECL.

Les cellules de configuration dans les FPGA ECP sont basées sur SRAM, ce qui signifie que, comme tous les autres FPGA basés sur SRAM, leur configuration doit être chargée à partir d'une source externe (par exemple, une mémoire Flash, un microprocesseur ou un microcontrôleur) lorsque le système est mis sous tension.

Le FPGA compatible SERDES LFE5UM5G-25F-8BG381C ECP5 5G en boîtier de 10 mm x 10 mm est un bon exemple de dispositif ECP. Pour permettre aux concepteurs de mieux étudier et tester les fonctionnalités de la gamme de FPGA ECP5, Lattice fournit également une carte de développement ECP5-5G correspondante, la carte LFE5UM5G-45F-VERSA-EVN (Figure 2).

Image de la carte d'évaluation ECP5 de Lattice SemiconductorFigure 2 : La carte d'évaluation ECP5 est une carte de prototypage avec logique abondante, E/S, SERDES 5G et embases d'extension. (Source de l'image : Lattice Semiconductor)

Solution compacte, mais puissante : FPGA iCE de Lattice

Les dispositifs iCE sont les FPGA les plus compacts disponibles, le plus petit de la gamme offrant 18 E/S dans un boîtier de 1,4 mm x 1,4 mm. Les FPGA iCE offrent une architecture logique flexible avec jusqu'à 5000 LUT à quatre entrées, jusqu'à 128 Kbits de BRAM sysMEM embarquée de Lattice et 1 Mbit de RAM à port simple (SPRAM), des blocs DSP hautes performances et des E/S personnalisables.

Bien qu'ils soient compacts et présentent une basse consommation avec un courant de veille de seulement 75 µA et un courant actif de 1 à 10 mA pour la plupart des applications, les FPGA iCE sont également puissants. Par exemple, ils sont capables d'implémenter des réseaux de neurones artificiels pour la mise en correspondance de schémas nécessaire pour amener l'intelligence toujours active à la périphérie.

Les données de configuration des FPGA iCE sont stockées dans une mémoire non volatile (NVM), ce qui signifie que ces dispositifs sont programmables une seule fois (OTP). Cela étant dit, ils contiennent également des cellules de configuration basées sur SRAM. Pendant le développement, la conception peut être testée en chargeant directement les cellules de configuration basées sur SRAM depuis le monde extérieur. Une fois la conception validée, elle peut être chargée dans la mémoire non volatile. Lorsque le dispositif est mis sous tension, la configuration stockée dans la mémoire non volatile est automatiquement copiée dans les cellules de configuration basées sur SRAM de manière massivement parallèle.

Le dispositif ICE40UL1K-SWG16ITR1K iCE40 UltraLite est un bon exemple. Il s'agit du FPGA le plus compact au monde (au moment de la publication de cet article), fournissant une puissance statique de 42 µW dans un boîtier de 1,4 mm x 1,4 mm. Le shield HM01B0-UPD-EVN Himax HM01B0 UPduino et la carte de démonstration modulaire sensAI constituent une carte de développement représentative (Figure 3).

Image du shield Himax HM01B0 UPduino de Lattice SemiconductorFigure 3 : Le shield Himax HM01B0 UPduino est un kit de développement complet pour l'implémentation de l'intelligence artificielle (IA) utilisant la vision et le son comme entrées sensorielles. (Source de l'image : Lattice Semiconductor)

Le kit est basé sur la carte UPduino 2.0, une carte de développement de prototypage rapide au format Arduino avec les performances et les capacités E/S du FPGA iCE40 UltraPlus. Il inclut également le module de capteur d'image basse consommation Himax HM01B0 et deux microphones I2S.

Solution spécialisée : FPGA CrossLink et CrossLinkPlus

Les gammes CrossLink et CrossLinkPlus sont des FPGA spécialisés qui, en plus de la logique programmable et des capacités E/S substantielles, contiennent des versions renforcées de spécifications largement utilisées dans les applications industrielles et automobiles. Il s'agit notamment de la norme de couche physique pour les communications de données haute vitesse D-PHY MIPI (Mobile Industry Processor Interface), et des cœurs CSI2 (Camera Serial Interface 2) et DSI2 (Display Serial Interface 2), dans des boîtiers de 6 mm x 6 mm (CrossLink) et de 3,5 mm x 3,5 mm (CrossLinkPlus).

Comme avec les FPGA iCE, les données de configuration des dispositifs CrossLink sont stockées dans une mémoire non volatile OTP. En outre, eux aussi contiennent des cellules de configuration basées sur SRAM qui peuvent être directement chargées pour les tests lors du développement. Une fois la conception validée, elle est chargée dans la mémoire non volatile et est automatiquement copiée dans les cellules de configuration basées sur SRAM de manière massivement parallèle lors de la mise sous tension. En comparaison, les cellules de configuration des dispositifs CrossLinkPlus sont basées Flash, ce qui signifie que ces dispositifs peuvent être reprogrammés selon les besoins. Ils offrent également une capacité de démarrage instantané en moins de 10 ms.

Le dispositif CrossLink LIF-MD6000-6JMG80I, avec 5936 éléments/cellules logiques, 184 320 bits de RAM au total et 37 E/S, est un bon exemple. Pour commencer avec les conceptions de vision embarquée, le kit de développement de vision embarquée LF-EVDK1-EVN permet aux concepteurs de combiner les entrées MIPI basées sur CrossLink avec le traitement FPGA ECP5 pour prototyper des conceptions de vision embarquée (Figure 4).

Image du kit de développement de vision embarquée LF-EVDK1-EVN de LatticeFigure 4 : Le kit de développement de vision embarquée LF-EVDK1-EVN de Lattice offre aux concepteurs de systèmes embarqués un environnement de prototypage logiciel et matériel qui inclut la possibilité de mélanger des cartes d'entrée et de sortie pour interfacer avec une variété d'écrans et de capteurs d'image. (Source de l'image : Lattice Semiconductor)

Pour les fonctionnalités E/S et de gestion de l'alimentation : FPGA MachXO

Avec des E/S par centaines, les FPGA MachXO conviennent parfaitement à un large éventail d'applications qui nécessitent des fonctions d'extension GPIO, de pontage d'interface et de gestion de la mise sous tension. Les derniers dispositifs de la gamme sont conçus pour la conformité NIST et incluent des fonctionnalités de sécurité supplémentaires pour garantir la sécurité du matériel et du micrologiciel du système.

Les FPGA MachXO offrent un ensemble robuste de GPIO qui incluent des fonctionnalités comme la capacité de « branchement à chaud », ce qui signifie que la tension peut être appliquée aux E/S quel que soit l'état des rails d'alimentation. De plus, alors que la plupart des entrées FPGA sont par défaut dans un état pull-up, les entrées MachXO sont par défaut dans un état pull-down, ce qui les rend parfaitement adaptées aux applications de contrôle de fonctions. Avec une mise en marche instantanée en moins de 10 ms, les FPGA MachXO offrent des solutions idéales pour les dispositifs de contrôle de type « premier allumé, dernier éteint » qui gèrent et séquencent d'autres composants pendant la mise sous tension et la mise hors tension du système.

Les données de configuration des dispositifs MachXO sont stockées en mémoire Flash. Les dispositifs MachXO contiennent également des cellules de configuration basées sur SRAM. Lorsque le dispositif est mis sous tension, les données de configuration stockées en mémoire Flash sont automatiquement copiées dans les cellules de configuration basées sur SRAM de manière massivement parallèle. De plus, pendant le fonctionnement du dispositif, il est possible de charger une nouvelle configuration dans la mémoire Flash, puis de copier cette nouvelle configuration dans les cellules SRAM à un moment opportun.

Le dispositif MachXO LCMXO3LF-9400C-6BG256C avec 9400 éléments/cellules logiques, 442 368 bits de RAM au total et 206 E/S est un bon exemple. Le kit de démarrage LCMXO3LF-6900C-S-EVN MachXO3 (version MachXO3L) constitue une carte de développement représentative.

Image du kit de démarrage MachXO3L de Lattice SemiconductorFigure 5 : Le kit de démarrage MachXO3L est une carte Breakout basique destinée à simplifier l'évaluation et le développement de conceptions basées sur MachXO3L. (Source de l'image : Lattice Semiconductor)

Une mémoire Flash SPI est disponible sur la carte du kit pour évaluer les capacités fonctionnelles de double amorçage ou d'amorçage externe. La carte Breakout LCMXO3L-DSI-EVN MachXO3L DSI est recommandée pour l'évaluation des E/S MIPI DSI et CSI2, tandis que la carte Breakout LCMXO3L-SMA-EVN MachXO3L SMA est recommandée pour l'évaluation des E/S différentielles haute vitesse.

Conception et développement avec des FPGA de Lattice Semiconductor

L'une des techniques les plus couramment utilisées pour le développement avec des FPGA est celle de la conception basée sur le langage (LDD). Cela implique de capturer l'intention de conception à un niveau d'abstraction connu sous le nom de RTL (Register Transfer Level) à l'aide d'un langage de description de circuit (HDL), comme Verilog ou VHDL. Après vérification par simulation logique, cette représentation est ensuite chargée dans un moteur de synthèse, avec des informations supplémentaires comme le type de FPGA cible, les affectations de broches et les contraintes temporelles (par exemple, les retards entrée-sortie maximum). La sortie du moteur de synthèse est un fichier de configuration, qui peut être chargé directement dans le FPGA ou dans un dispositif de mémoire externe dans le cas des FPGA basés sur SRAM (Figure 6).

Schéma de la description de conception RTL chargée dans un moteur de synthèseFigure 6 : Après vérification par simulation logique, la description de conception RTL est chargée dans un moteur de synthèse avec des détails de conception supplémentaires comme le type de FPGA, les affectations de broches et les contraintes temporelles. La sortie du moteur de synthèse est un fichier de configuration qui peut être chargé directement dans le FPGA (dans le cas des dispositifs basés sur mémoire non volatile ou sur mémoire Flash) ou dans un dispositif de mémoire externe (dans le cas de dispositifs basés sur SRAM). (Source de l'image : Max Maxfield).

Lattice Diamond fait partie de cette classe d'outils et offre un environnement de conception et de vérification FPGA complet basé sur une interface utilisateur graphique pour les dispositifs CrossLink, MachXO et ECP.

Comme Lattice Diamond, Lattice Radiant propose également un environnement de conception et de vérification FPGA complet basé sur une interface graphique, mais est destiné aux FPGA iCE et aux futures architectures.

Lattice Radiant offre une variété de fonctionnalités :

  • Cryptage de propriété intellectuelle (IP) IEEE 1735 standard et contraintes de conception Synopsys (SDC) pour une interopérabilité maximum
  • Facilité de navigation de conception et de débogage grâce à un environnement avec jeu d'outils intégré
  • Exécution d'implémentation de conception simple en un clic, avec une nouvelle barre d'outils de processus
  • Vérification croisée d'implémentation de conception physique à logique en boucle fermée complète
  • Capacité de conditionnement IP qui permet aux développeurs et aux fournisseurs IP tiers de conditionner les IP cryptées dans une forme adaptée à la distribution

Outils de développement système LatticeMico

Lattice propose deux cœurs de processeurs logiciels, LatticeMico8 et LatticeMico32, qui peuvent tous les deux être implémentés dans la structure programmable d'un FPGA.

Le LatticeMico8 est un microcontrôleur 8 bits optimisé et entièrement testé pour la gamme MachXO2 de dispositifs logiques programmables (PLD). Il peut également être utilisé comme conception de référence pour les autres gammes de FPGA. Le cœur du microcontrôleur combine un jeu d'instructions complet de 18 bits avec 32 registres à usage général et consomme un minimum de ressources du dispositif (moins de 200 LUT dans la plus petite configuration) tout en assurant un vaste ensemble de fonctionnalités.

Le LatticeMico32 est un microprocesseur à architecture RISC Harvard 32 bits. En combinant un vaste jeu d'instructions de 32 bits avec 32 registres à usage général, le LatticeMico32 offre les performances et la flexibilité adaptées à une grande variété de marchés. En utilisant une architecture RISC, le cœur consomme un minimum de ressources du dispositif, tout en assurant les performances requises pour un large éventail d'applications. Pour accélérer le développement des systèmes de microprocesseurs, plusieurs composants périphériques compatibles avec le contrôleur WISHBONE en option peuvent être intégrés au LatticeMico32.

Les outils de développement système LatticeMico fournissent une interface utilisateur graphique qui permet aux utilisateurs de glisser-déposer les périphériques et les cœurs de processeur LatticeMico, de les connecter aux bus et de définir divers paramètres pour chaque composant, comme son emplacement dans l'espace d'adressage du processeur. Une fois le système défini, les outils peuvent générer automatiquement le RTL correspondant à simuler et à synthétiser. Le système inclut également les outils qui permettent aux utilisateurs de générer le logiciel qui sera exécuté sur les cœurs de processeur.

Outils d'apprentissage automatique : pile sensAI et compilateur de réseau neuronal de Lattice

Les applications d'apprentissage automatique (ML) et d'intelligence artificielle (IA) sont actuellement déployées dans une large gamme de systèmes embarqués et dans l'ensemble de l'Internet des objets (IoT), y compris l'IoT industriel (IIoT).

La pile sensAI de Lattice inclut tout le nécessaire pour évaluer, développer et déployer des solutions ML/IA basées sur FPGA, notamment des plateformes matérielles modulaires, des démonstrations d'exemple, des conceptions de référence, des blocs IP de réseau neuronal, des outils logiciels pour le développement et des services de conception personnalisés. Cette pile est conçue pour accélérer les délais de mise sur le marché pour les développeurs de systèmes d'inférences flexibles d'apprentissage automatique dans les applications IoT grand public et industrielles.

Le bloc IP de l'accélérateur de réseau neuronal convolutif (CNN) de Lattice est un moteur de calcul pour les réseaux neuronaux profonds (DNN). Le moteur étant optimisé pour les réseaux neuronaux convolutifs, il peut être utilisé pour des applications basées sur la vision comme la classification ou la détection et le suivi d'objets. Le bloc IP CNN ne requiert pas de processeur supplémentaire, car il peut effectuer les calculs requis.

En parallèle, le compilateur de réseau neuronal de Lattice permet aux concepteurs de compiler les réseaux neuronaux créés dans des cadres de développement communs (comme TensorFlow, Caffe et Keras) pour les implémenter dans les blocs IP de l'accélérateur CNN et CNN compact de Lattice.

Conclusion

Les solutions de conception optimales reposent généralement sur des combinaisons de processeurs et de FPGA, sur des FPGA seuls ou sur des FPGA intégrant des cœurs de processeurs matériels dans leur structure. En tant que technologie, les FPGA ont évolué rapidement au fil des années et sont désormais capables de répondre à de nombreuses exigences de conception en matière de flexibilité, de vitesse de traitement et de puissance, ce qui les rend très utiles pour une vaste gamme d'applications s'étendant des interfaces intelligentes à la vision artificielle et à l'IA.

Comme illustré ici, les offres de FPGA de Lattice Semiconductor s'étendent de l'entrée de gamme au milieu de gamme, avec l'accent sur les dispositifs basse consommation qui résolvent les problèmes de réseau de la périphérie au cloud sur les marchés à croissance rapide des communications, de l'informatique, de l'industrie, de l'automobile et des produits grand public. Lattice propose également plusieurs suites d'outils de conception et de vérification adaptées à plusieurs flux de conception, allant de la conception basée sur le langage à la conception basée sur un processeur graphique, en passant par les conceptions axées sur l'apprentissage automatique et les applications d'intelligence artificielle.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield a obtenu sa licence en ingénierie de contrôle en 1980 à l'université de Sheffield Hallam, en Angleterre, et a commencé sa carrière en tant que concepteur de processeurs (CPU) pour ordinateurs centraux. Au fil des ans, Max a tout conçu, de puces en silicium aux cartes à circuit imprimé, en passant par les amplificateurs d'ondes cérébrales et les moteurs de prédiction steampunk (ne posez pas de questions !). Il a également été à la pointe de l'automatisation de la conception électronique (EDA) pendant plus de 30 ans.

Max est l'auteur et/ou le co-auteur d'un certain nombre d'ouvrages, dont Designus Maximus Unleashed (interdit en Alabama), Bebop to the Boolean Boogie (un guide non conventionnel de l'électronique), EDA: Where Electronics Begins, FPGAs: Instant Access, et How Computers Do Math. Consultez son blog « Max's Cool Beans ».

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey