Catégories: Circuits microcontrôleurs
Nombre de fois vus: 21445
Commentaires sur l'article: 0

Qu'est-ce que FPGA un langage simple pour les débutants

 

À quoi l'électronique numérique est-elle associée? Tout d'abord, avec des éléments logiques ET, OU, NON. De plus, les registres à décalage, décodeurs, multiplexeurs, etc., entrent en mémoire. Cependant, à mesure que la complexité des appareils électroniques et la tendance à la miniaturisation augmentaient, la création d'appareils basés sur des circuits intégrés (IC) à partir des composants ci-dessus est devenue plus difficile, les IC personnalisés de la topologie et des circuits requis ne se sont avérés utiles que lorsque l'appareil a été reproduit en grand nombre, dans d'autres cas, il était déraisonnablement cher.

Le moyen de sortir de cette situation a été le développement de circuits logiques intégrés programmables (en abrégé FPGA, abréviation étrangère en dispositif logique programmable, PLD). Qu'est-ce que c'est et où est-il utilisé, nous le dirons dans cet article.

Qu'est-ce que FPGA un langage simple pour les débutants

Différences par rapport aux microcontrôleurs

Avec le mot "programmable", la plupart des débutants associent avec microcontrôleurs. Malgré le fait qu'ils soient également programmés, les FPGA sont un appareil complètement différent.

Pour les développeurs de microcontrôleurs, un ensemble fixe de solutions et de moyens est inhérent à une puce particulière, il ne fonctionnera en aucune façon pour se retirer de l'architecture. Vous disposez d'un ensemble de commandes avec lesquelles vous effectuez des opérations d'interaction avec l'environnement, en lisant les données des entrées numériques et analogiques et en envoyant des signaux aux actionneurs à l'aide des sorties.

De plus, vous pouvez effectuer des calculs, enregistrer des données dans des registres ou des ROM et également fonctionner avec des données flashées dans la mémoire du microcontrôleur. C'est là essentiellement le but et les caractéristiques du travail avec les microcontrôleurs.

Programmable 769; log 769; entier 769; lin 769; ma (FPGA, dispositif logique programmable anglais, PLD)

Les circuits intégrés logiques programmables (FPGA) sont différents en ce que lorsque vous programmez un appareil, vous créez vous-même une architecture à partir d'éléments logiques de base. Ainsi, vous obtenez une vitesse et une flexibilité élevées de la puce. Cela permet, sans changer une puce, de réaliser plusieurs projets.

Généralement, le périphérique FPGA interne peut être divisé en trois groupes principaux:

1. Un tableau d'éléments logiques (macrocellules, blocs logiques).

2. Blocs d'entrée / sortie (IO).

3. Lignes de communication entre eux et l'appareil qui contrôle ces connexions.

Cependant, une telle structuration étant très généralisée, nous examinerons ce problème plus en détail ci-dessous.

En programmant, vous connectez les éléments de la même manière que vous le feriez, en assemblant un appareil à partir d'éléments individuels et en connectant leurs entrées et sorties avec des conducteurs.

Remarque:

La principale différence entre les FPGA et les microcontrôleurs est que dans le microcontrôleur, vous ne pouvez pas modifier les connexions internes entre les éléments les plus simples, et la programmation et le travail avec eux sont basés sur l'enregistrement des connexions dans les FPGA.

Le choix des microcontrôleurs est basé sur de nombreux critères, tels que:

  • Vitesse et vitesse d'horloge;

  • La quantité de ROM et de RAM;

  • Le nombre d'entrées et de sorties.

Autres caractéristiques fonctionnelles et périphériques, tels que la prise en charge des lignes et protocoles de communication (I2C, monofil, signal PWM, etc.).

Lors du choix d'un FPGA, le critère principal est le nombre de blocs programmables - ils devraient être suffisants pour mettre en œuvre la tâche.

En fonction du FPGA spécifique, le nombre de blocs peut varier dans de larges limites et le coût en conséquence.

Le microcontrôleur exécute séquentiellement toutes les opérations prescrites dans son programme, tandis que les blocs FPGA effectuent la tâche en parallèle et indépendamment les uns des autres, par conséquent, la comparaison de ces dispositifs par fréquence d'horloge n'est pas pratique. Leur principe de fonctionnement est trop différent.

Types de FPGA

Espèce

Actuellement, deux types principaux de FPGA sont pertinents:


1. CPLD (Complex Logic Programmable Device - Programmable Logic Integrated Circuit, en fait, c'est FPGA dans son sens classique). Il possède généralement une mémoire non volatile intégrée dans laquelle le firmware est chargé.

La structure interne est construite sur une matrice de macrocellules ou blocs logiques, et le nombre d'éléments en eux se situe dans la gamme de centaines et de milliers de pièces. En raison de leur relative simplicité, ils sont moins chers que le type de logique programmable suivant. Tout cela conduit au fait que le CPLD est utilisé principalement dans les circuits où une vitesse élevée et un grand nombre de sorties sont nécessaires, tout en effectuant des tâches simples.


2. FPGA (Field-Programmable Gate Array - User Programmable Gate Array, cependant il est souvent appelé FPGA) - les dispositifs plus développés et complexes par rapport au CPLD, sont construits sur des blocs logiques à commutation flexible et contiennent un plus grand nombre d'éléments (des dizaines ou des centaines de milliers de pièces).

Le firmware est généralement stocké dans une mémoire non volatile externe. En plus des éléments logiques les plus simples, les FPGA peuvent contenir des blocs prêts à l'emploi pour effectuer toutes les opérations, par exemple, des blocs de traitement de signal DSP. Tout cela vous permet de mettre en œuvre un processeur, des dispositifs de traitement du signal et d'autres dispositifs complexes.


Intéressant:

Bien qu'en fait la présence de mémoire non volatile ne rend pas la logique programmable CPLD. Ceci est partiellement trompeur. La principale différence entre CPLD et FPGA est la structure interne.

La différence entre CPLD et FPGA est la structure interne

Le CPLD interne est illustré plus en détail dans la figure ci-dessous.

Dispositif interne CPLD

Et le schéma approximatif de sa macrocellule ressemble à ceci:

Exemple de disposition de macrocellules CPLD

La macrocellule se compose de multiplexeurs programmables, de déclencheurs (un ou plusieurs) et forme un groupe de signaux FB de sortie en plusieurs versions.

Voici un autre exemple - un schéma de principe de la famille de puces CPLD MAX II, la firme Altera.

Organigramme Altera MAX II CPLD

Et le plan structurel des puces de la même famille.

Schéma fonctionnel du CPLD Altera MAX II

Les pneus intermédiaires pour les macrocellules sont attribués à l'aide d'un nœud tel qu'un distributeur en anglais. cela ressemble à un Allocateur Logique, qui est montré dans le diagramme ci-dessous, il montre également la matrice de commutation (Global Routing Pool), et à la sortie les macrocellules (macrocellules) ont deux rétroactions.

Distributeur et matrice de commutation

Les sorties externes du microcircuit sont connectées aux sorties des macrocellules via un autre bloc (matrice) - ORP (Output Routing Pool), notez qu'à travers lui, la logique INPUT est connectée à GRP, comme indiqué dans l'illustration ci-dessous.

Remarque:

Certains CPLD ont ce qu'on appelle entrées directes (entrée directe) - elles sont connectées directement aux entrées des cellules, ce qui réduit les retards.

La structure FPGA a la forme:

Structure FPGA
  • L - bloc configurable logique;

  • S (bloc de substitution) - un bloc de substitution, il reçoit un certain nombre de bits par mouvement, convertit, selon un certain algorithme, et sort un nombre différent de bits à la sortie. En d'autres termes, un décodeur, un chiffreur et un commutateur.

  • C (bloc de connexion) - bloc de connexion.

Diagramme en S:

 

Diagramme en S



Programmation


HDL (Hardware Description Language) - c'est le langage avec lequel les FPGA sont programmés. Verilog HDL et VHDL sont populaires et polyvalents. Il existe d'autres langages, tels que ceux spécifiques aux fabricants, comme AHDL pour les produits ALTERA.

La programmation graphique est disponible pour les développeurs qui travaillent avec des FPGA. Autrement dit, vous pouvez simplement dessiner des circuits logiques ou combiner du code avec des graphiques. Cette dernière est appelée méthode de développement modulaire, lorsque des modules spécifiques sont prescrits, et le module supérieur, dans lequel tout est combiné, est programmé graphiquement.


Exemples de fabricants et de séries populaires

Au moment d'écrire ces lignes, les plus célèbres sont les produits de deux fabricants.

  • Altera (fondée en 1983);

  • Xilinx (fondée en 1984).

Altera

Altera possède plusieurs grandes séries de logiques programmables:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • Cyclone

  • Arria;

  • Stratix

Examinons chacun d'eux plus en détail. Dans les tableaux ci-dessous, vous voyez des informations générales sur les microcircuits de la famille.

Caractéristiques de la série principale de logique programmable
Caractéristiques de la série principale de logique programmable

Altera 3 CPLD CPLD:

  • MAX est un CPLD pour une utilisation dans les appareils mobiles, les caractéristiques sont une consommation d'énergie et une dissipation de chaleur relativement faibles. En fonction de la complexité et des années de sortie, les modifications suivantes sont distinguées:

  • Le 7000S est obsolète à ce jour, il est sorti en 1995.

  • 3000A - sorti en 2002, est fabriqué en utilisant la technologie 300 nm. Se compose d'un petit nombre de macrocellules (32-512)

  • MAX II sorti en 2004, est fabriqué en utilisant la technologie 100 nm, se compose d'un plus grand nombre d'unités (240-2210) fonctionnant à des fréquences allant jusqu'à 304 MHz. Le produit est fabriqué dans des caisses de type TQFP 0,5 mill avec 100 pieds ou plus.

  • MAX IIZ - 2007, la caractéristique principale est une consommation d'énergie réduite - c'est un point positif, cependant, les fréquences sont réduites à 152 MHz. Ces microcircuits sont alimentés à partir de 1,8 V.

  • MAX V - 2010 ans. Il est produit selon la technologie 180 nm, il peut contenir de 40 à 2210 blocs et fonctionner à des fréquences allant jusqu'à 152 MHz ou à 304 MHz - cela dépend du nombre de blocs.

Altera 3 CPLD CPLD

FPGA:

  • Cyclone est une puce de type FPGA économique. Il y a cinq générations qui sont marquées avec des nombres grecs (de I à V, respectivement). La première génération a été lancée en 2002, produite à l'aide de la technologie 180 nm, et la cinquième génération a été publiée en 2011 et fabriquée à l'aide de la technologie 28 nm. Il convient de noter que toutes les générations restent pertinentes.

  • Arria - se réfère également au FPGA de milieu de gamme.

  • Stratix - FPGA puissants.

Vous trouverez ci-dessous les tableaux pivotants logiques programmables FPGA d'Altera.

Caractéristiques FPGA
Caractéristiques FPGA
Caractéristiques FPGA

Et le tableau complet sur le lien:https://e.imadeself.com/fr/tablitsa.docx

Le fabricant Xilinx CPLD a présenté en série:

  • XC9500XL de 36-288 macrocellules. Ils fonctionnent à des fréquences allant jusqu'à 178 MHz et modélisent à 288 macrocellules à 208 MHz. Il est effectué comme dans les petits boîtiers avec 44 broches (fils) à une distance de 0,8 mm les uns des autres - ces boîtiers sont considérés comme étant facilement soudés. Également disponible avec 64 et 100 pieds par incréments de 0,5 mm, ainsi que des modèles dans des boîtiers de type PLCC.

  • La série CoolRunner-II est un CPLD économe en énergie mais productif. Une fonction est alimentée par une tension de 1,8 V, les entrées et sorties sont conçues pour fonctionner dans la plage de 1,5 à 3,3 V. Ils sont constitués de 32 à 512 macrocellules et sont produits à l'aide de la technologie 180 nm. Selon le nombre de cellules, elles fonctionnent dans la gamme de fréquences 179-323 MHz, et plus les cellules sont petites, plus elles peuvent fonctionner en fréquence dans ce cas. On les retrouve dans différents cas, notamment facilement soudés, comme dans les microcircuits de la série considérée ci-dessus.

La société Xilinx n'est pas passée et FPGA:

  • Spartan-6 - se composent de blocs logiques à 6 entrées, leur nombre se situe dans la plage de 3840-147443 pièces. Intéressant en ce qu'ils peuvent contenir des contrôleurs pour échanger des données telles que DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, SerialATA etc ...

  • La série Vitrex-7 est complexe, les microcircuits peuvent contenir jusqu'à 2 000 000 de blocs logiques et 1 200 contacts.

Vous trouverez ci-dessous les tableaux récapitulatifs avec les spécifications CPLD et FPGA des séries Xilinx 6 et 7, ainsi que le Zynq-7000.

Caractéristiques des FPGA Xilinx séries 6 et 7
Caractéristiques des FPGA Virtex-6
Caractéristiques de la famille FPGA Spartan-6
Caractéristiques de la famille FPGA Spartan-6
Caractéristiques FPGA
Caractéristiques FPGA

Conclusion

Les FPGA et PPVM sont également produits par d'autres sociétés telles que Lattice Semiconductor (en 2002, a commencé à produire des FPGA), Actel et ses lecteurs bien connus de notre site. microcontrôleurs ATMEL et bien d'autres. Sur la logique programmable, vous pouvez implémenter un certain nombre d'appareils, implémenter des calculs parallèles indépendants les uns des autres dans un seul appareil, cependant, pour les projets domestiques, leur achat est souvent financièrement injustifié, mais en même temps tout à fait raisonnable à l'échelle de la production, comme alternative aux circuits intégrés personnalisés.

P.S.Regardez la vidéo, vous y verrez un exemple de la mise en œuvre de la console de jeu Nintendo sur le FPGA:

Voir aussi sur e.imadeself.com:

  • Langage de diagramme fonctionnel (FBD) et son application
  • Types de circuits intégrés modernes - types de logique, boîtiers
  • Puces logiques. Partie 1
  • Microcontrôleurs PIC pour débutants
  • Contrôleurs logiques programmables pour la domotique

  •