categorieën: Microcontroller-circuits
Aantal keer bekeken: 21445
Reacties op het artikel: 0

Wat is FPGA een eenvoudige taal voor beginners

 

Wat houdt digitale elektronica in? Allereerst met logische elementen EN, OF, NIET. Verder komen schuifregisters, decoders, multiplexers, etc. in het geheugen. Naarmate de complexiteit van elektronische apparaten en de trend naar miniaturisatie toenam, werd het maken van apparaten op basis van geïntegreerde schakelingen (IC's) uit de bovenstaande componenten moeilijker, aangepaste IC's met de vereiste topologie en schakelingen bleken alleen de moeite waard wanneer het apparaat in grote aantallen werd gerepliceerd, in andere gevallen was het onredelijk duur.

De uitweg uit deze situatie was de ontwikkeling van programmeerbare geïntegreerde logische circuits (afgekort als FPGA, buitenlandse afkorting als programmeerbaar logisch apparaat, PLD). Wat is het en waar wordt het gebruikt, zullen we in dit artikel vertellen.

Wat is FPGA een eenvoudige taal voor beginners

Verschillen met microcontrollers

Met het woord "programmeerbaar" associëren de meeste beginners met microcontrollers. Ondanks het feit dat ze ook zijn geprogrammeerd, zijn FPGA's een heel ander apparaat.

Voor ontwikkelaars in microcontrollers is een vaste set oplossingen en middelen beschikbaar die inherent zijn aan een bepaalde chip, het zal op geen enkele manier werken om zich terug te trekken uit de architectuur. U krijgt een set opdrachten waarmee u interacties met de omgeving kunt uitvoeren, door gegevens van digitale en analoge ingangen te lezen en signalen naar actuatoren te sturen met behulp van uitgangen.

Bovendien kunt u berekeningen uitvoeren, gegevens opslaan in registers of ROM's en werken met gegevens die in het geheugen van de microcontroller zijn geflitst. Hierop zijn in wezen het doel en de kenmerken van het werken met microcontrollers.

Programmeerbaar 769; log 769; geheel getal 769; vlas 769; ma (FPGA, Engels programmeerbaar logisch apparaat, PLD)

Programmeerbare logische geïntegreerde schakelingen (FPGA's) zijn anders in die zin dat wanneer u een apparaat programmeert, u zelf een architectuur maakt op basis van logische basiselementen. Zo krijg je hoge snelheid en flexibiliteit van de chip. Dit maakt het mogelijk om, zonder één chip te veranderen, een aantal projecten te maken.

Over het algemeen kan het interne FPGA-apparaat in drie hoofdgroepen worden verdeeld:

1. Een reeks logische elementen (macrocellen, logische blokken).

2. Input / output blokken (IO).

3. Communicatielijnen tussen deze en het apparaat dat deze verbindingen bestuurt.

Een dergelijke structurering is echter zeer algemeen, we zullen deze kwestie hieronder in meer detail bespreken.

Door te programmeren, verbindt u de elementen op dezelfde manier als u zou doen, door een apparaat van afzonderlijke elementen samen te stellen en hun in- en uitgangen met geleiders te verbinden.

Opmerking:

Het belangrijkste verschil tussen FPGA's en microcontrollers is dat u in een microcontroller de interne verbindingen tussen de eenvoudigste elementen niet kunt wijzigen, en programmeren en ermee werken is gebaseerd op het registreren van verbindingen.

De keuze voor microcontrollers is gebaseerd op vele criteria, zoals:

  • Snelheid en kloksnelheid;

  • De hoeveelheid ROM en RAM;

  • Het aantal ingangen en uitgangen.

Andere functionele kenmerken en randapparatuur, zoals ondersteuning voor communicatielijnen en protocollen (I2C, ééndraads, PWM-signaal, enz.).

Bij het kiezen van een FPGA is het belangrijkste criterium het aantal programmeerbare blokken - deze moeten voldoende zijn om de taak uit te voeren.

Afhankelijk van de specifieke FPGA kan het aantal blokken sterk variëren, en de kosten veranderen ook.

De microcontroller voert achtereenvolgens alle in zijn programma voorgeschreven bewerkingen uit, terwijl FPGA-blokken de taak parallel en onafhankelijk van elkaar uitvoeren, daarom is het vergelijken van deze apparaten op klokfrequentie niet praktisch. Hun werkingsprincipe is te verschillend.

FPGA-typen

types

Momenteel zijn er twee hoofdtypen FPGA's:


1. CPLD (Complex Programmable Logic Device - Programmable Logic Integrated Circuit, in feite is dit FPGA in zijn klassieke betekenis). Het heeft meestal een ingebouwd niet-vluchtig geheugen waarin de firmware wordt geladen.

De interne structuur is gebouwd op een matrix van macrocellen of logische blokken en het aantal elementen daarin ligt in het bereik van honderden en duizenden stukjes. Vanwege hun relatieve eenvoud zijn ze goedkoper dan het volgende type programmeerbare logica. Dit alles leidt ertoe dat CPLD voornamelijk wordt gebruikt in circuits waar een hoge snelheid en een groot aantal uitgangen nodig zijn, terwijl eenvoudige taken worden uitgevoerd.


2. FPGA (Field-Programmable Gate Array - Field Programmable Gate Array, wordt echter vaak aangeduid als FPGA) - meer ontwikkelde en complexe apparaten vergeleken met CPLD, zijn gebouwd op logische blokken met flexibel schakelen en bevatten een groter aantal elementen (tien- of honderdduizenden stuks).

Firmware wordt meestal opgeslagen in extern niet-vluchtig geheugen. Naast de eenvoudigste logische elementen kunnen FPGA's kant-en-klare blokken bevatten voor het uitvoeren van alle bewerkingen, bijvoorbeeld DSP-signaalverwerkingsblokken. Met dit alles kunt u een processor, signaalverwerkingsapparaten en andere complexe apparaten implementeren.


I wonder:

Hoewel de aanwezigheid van niet-vluchtig geheugen in feite geen programmeerbare logische CPLD maakt. Dit is gedeeltelijk misleidend. Het belangrijkste verschil tussen CPLD en FPGA is de interne structuur.

Het verschil tussen CPLD en FPGA is de interne structuur

Het interne CPLD-apparaat wordt in meer detail weergegeven in de onderstaande afbeelding.

CPLD intern apparaat

En het geschatte schema van zijn macrocell ziet er als volgt uit:

Voorbeeld CPLD macrocell-indeling

De macrocell bestaat uit programmeerbare multiplexers, triggers (een of meer) en vormt een groep output FB-signalen in verschillende versies.

Het volgende is een ander voorbeeld - een blokdiagram van een CPLD-chip uit de Altera MAX II-chipsfamilie.

Altera MAX II CPLD-stroomdiagram

En het structurele plan van de chips van dezelfde familie.

Altera MAX II CPLD-blokdiagram

Tussenbanden worden toegewezen aan macrocellen met behulp van een knooppunt zoals een distributeur in het Engels. het klinkt als een Logic Allocator, die in het onderstaande diagram wordt weergegeven, het toont ook de matrix van schakelen (Global Routing Pool) en heeft aan de uitgang macrocellen (macrocellen) twee feedbacks.

Verdeler en schakelmatrix

De externe uitgangen van de microschakeling zijn verbonden met de uitgangen van de macrocellen via een ander blok (matrix) - ORP (Output Routing Pool), houd er rekening mee dat de INPUT-logica hierdoor is verbonden met GRP, zoals weergegeven in de onderstaande afbeelding.

Opmerking:

Sommige CPLD's hebben zogenaamde directe ingangen (Direct Input) - ze zijn direct verbonden met de ingangen van de cellen, wat vertragingen vermindert.

De FPGA-structuur heeft de vorm:

FPGA-structuur
  • L - logisch configureerbaar blok;

  • S (substitutieblok) - een substitutieblok, het ontvangt een bepaald aantal bits per zet, converteert volgens een bepaald algoritme en voert een ander aantal bits uit aan de uitgang. Met andere woorden, een decoder, een codeerder en een schakelaar.

  • C (verbindingsblok) - verbindingsblok.

S-blokdiagram:

 

S-blokdiagram



programmering


HDL (Hardware Description Language) - dit is de taal waarmee FPGA's worden geprogrammeerd. Populair en veelzijdig zijn Verilog HDL en VHDL. Andere talen bestaan, zoals die specifiek zijn voor fabrikanten, zoals AHDL voor ALTERA-producten.

Grafische programmering is beschikbaar voor ontwikkelaars die met FPGA's werken. Dat wil zeggen, u kunt eenvoudig logische circuits tekenen of code combineren met afbeeldingen. De laatste wordt de modulaire ontwikkelingsmethode genoemd, wanneer specifieke modules worden voorgeschreven en de bovenste module, waarin alles wordt gecombineerd, grafisch wordt geprogrammeerd.


Voorbeelden van populaire fabrikanten en series

Op het moment van schrijven zijn de producten van twee fabrikanten het beroemdst.

  • Altera (opgericht in 1983);

  • Xilinx (opgericht in 1984).

Altera

Altera heeft verschillende belangrijke series programmeerbare logica:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • cycloon;

  • Arria;

  • Stratix.

Laten we elk van hen in meer detail bekijken. In de onderstaande tabellen ziet u algemene informatie over de chips van de familie.

Kenmerken van de hoofdreeks van programmeerbare logica
Kenmerken van de hoofdreeks van programmeerbare logica

Altera 3 CPLD CPLD:

  • MAX is een CPLD voor gebruik in mobiele apparaten, de kenmerken zijn een relatief laag stroomverbruik en warmteafvoer. Afhankelijk van de complexiteit en de jaren van uitgave, worden de volgende wijzigingen onderscheiden:

  • 7000S is tot op heden verouderd, het werd uitgebracht in 1995.

  • 3000A - uitgebracht in 2002, is vervaardigd met behulp van 300nm-technologie. Bestaat uit een klein aantal macrocellen (32-512)

  • MAX II uitgebracht in 2004, is vervaardigd met behulp van 100 nm technologie, bestaat uit een groter aantal eenheden (240-2210) die werken op frequenties tot 304 MHz. Het product is gemaakt in gevallen van type TQFP 0,5 mill met 100 of meer poten.

  • MAX IIZ - 2007, het belangrijkste kenmerk is een lager stroomverbruik - dit is een positief punt, maar de frequenties worden verlaagd tot 152 MHz. Deze microschakelingen worden gevoed vanaf 1,8 V.

  • MAX V - 2010 jaar. Het wordt geproduceerd volgens de 180nm-technologie, het kan 40 tot 2210 blokken bevatten en werken op frequenties tot 152MHz of 304MHz - het hangt af van het aantal blokken.

Altera 3 CPLD CPLD

FPGA:

  • Cyclone is een budget-FPGA-chip. Er zijn vijf generaties die zijn gemarkeerd met Griekse cijfers (respectievelijk van I tot V). De eerste generatie werd uitgebracht in 2002, geproduceerd met behulp van 180nm-technologie, en de vijfde generatie kwam uit in 2011 en vervaardigd met behulp van 28nm-technologie. Het is vermeldenswaard dat alle generaties relevant blijven.

  • Arria - verwijs ook naar de mid-range FPGA.

  • Stratix - Krachtige FPGA's.

Hieronder staan ​​de Altera FPGA programmeerbare logische draaitabellen.

FPGA-functies
FPGA-functies
FPGA-functies

En de volledige tabel op de link:

De fabrikant Xilinx CPLD gepresenteerd in serie:

  • XC9500XL van 36-288 macrocellen. Ze werken op frequenties tot 178 MHz en modellen op 288 macrocellen op 208 MHz. Het wordt uitgevoerd zoals in kleine gevallen met 44 pennen (draden) op een afstand van 0,8 mm van elkaar - dergelijke gevallen worden als gemakkelijk gesoldeerd beschouwd. Ook verkrijgbaar met 64 en 100 poten in stappen van 0,5 mm, evenals modellen in PLCC-type behuizingen.

  • De CoolRunner-II-serie is een energiezuinige maar productieve CPLD. Een functie wordt gevoed door een spanning van 1,8 V, de ingangen en uitgangen zijn ontworpen om te werken in het bereik van 1,5 - 3,3 V. Ze bestaan ​​uit 32-512 macrocellen en worden geproduceerd met behulp van 180nm-technologie. Afhankelijk van het aantal cellen werken ze in het frequentiebereik 179-323 MHz, en hoe kleiner de cellen, hoe meer frequentie ze kunnen werken in dit geval. Ze worden gevonden in verschillende gevallen, waaronder gemakkelijk gesoldeerd, zoals in de microschakelingen van de serie die hierboven wordt overwogen.

Xilinx-bedrijf is niet voorbijgegaan en FPGA:

  • Spartan-6 - bestaat uit logische blokken met 6 ingangen, hun aantal ligt in het bereik van 3840-147443 stuks. Interessant in dat ze controllers kunnen bevatten voor het uitwisselen van gegevens zoals DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, SerialATA enz ...

  • De Vitrex-7-serie is complex, microschakelingen kunnen maximaal 2.000.000 logische blokken en 1200 contacten bevatten.

Hieronder vindt u de overzichtstabellen met de CPLD- en FPGA-specificaties uit de Xilinx 6- en 7-serie, evenals de Zynq-7000.

Xilinx 6 en 7-serie FPGA-functies
Kenmerken van Virtex-6 FPGA's
Kenmerken van de FPGA-familie Spartan-6
Kenmerken van de FPGA-familie Spartan-6
FPGA-functies
FPGA-functies

conclusie

FPGA's en PPVM's worden ook geproduceerd door andere bedrijven zoals Lattice Semiconductor (in 2002 begonnen FPGA's te produceren), Actel en zijn bekende lezers van onze site. microcontrollers ATMEL en vele anderen. Volgens de programmeerbare logica is het mogelijk om een ​​aantal apparaten te implementeren, om parallelle berekeningen onafhankelijk van elkaar in één apparaat te implementeren, maar voor thuisprojecten is hun aankoop vaak financieel niet gerechtvaardigd, maar redelijk op een productieschaal, als alternatief voor aangepaste geïntegreerde schakelingen.

PostscriptumBekijk de video, hierin ziet u een voorbeeld van de implementatie van de Nintendo-gameconsole op de FPGA:

Zie ook op electro-nl.tomathouse.com:

  • Functionele blokdiagramtaal (FBD) en de toepassing ervan
  • Soorten moderne geïntegreerde schakelingen - soorten logica, gevallen
  • Logische chips. Deel 1
  • PIC-microcontrollers voor beginners
  • Programmeerbare logische controllers voor domotica

  •