kategorier: Microcontroller kredsløb
Antal visninger: 21445
Kommentarer til artiklen: 0

Hvad er FPGA et simpelt sprog for begyndere

 

Hvad er digital elektronik forbundet med? Først og fremmest med logiske elementer OG, ELLER, IKKE. Endvidere kommer skiftregistre, dekodere, multiplexere osv. Ind i hukommelsen. Da kompleksiteten af ​​elektroniske enheder og tendensen mod miniaturisering øges, blev oprettelsen af ​​enheder baseret på integrerede kredsløb (IC'er) fra ovennævnte komponenter imidlertid vanskeligere, tilpassede IC'er af den krævede topologi og kredsløb viste sig kun at være værd, når enheden blev replikeret i stort antal, i andre tilfælde var det urimeligt dyrt.

Vejen ud af denne situation var udviklingen af ​​programmerbare integrerede logiske kredsløb (forkortet som FPGA, fremmed forkortelse som programmerbar logisk enhed, PLD). Hvad er det, og hvor bruges det, vil vi fortælle i denne artikel.

Hvad er FPGA et simpelt sprog for begyndere

Forskelle fra mikrokontrollere

Med ordet "programmerbar" forbinder de fleste begyndere med mikrokontrollere. På trods af det faktum, at de også er programmeret, er FPGA'er en helt anden enhed.

For udviklere af mikrokontrollere, der er et fast sæt af løsninger og midler til rådighed, der er iboende i en bestemt chip, fungerer det ikke på nogen måde at trække sig tilbage fra arkitektur. Du får et sæt kommandoer, som du udfører interaktion med miljøet ved at læse data fra digitale og analoge indgange og sende signaler til aktuatorer ved hjælp af output.

Derudover kan du udføre beregninger, gemme data i registre eller ROM'er samt fungere med data, der er flashet ind i hukommelsen på mikrokontrolleren. I det væsentlige er formålet og funktionerne med at arbejde med mikrokontrollere.

Programmerbar 769; log 769; heltal 769; lin 769; ma (FPGA, engelsk programmerbar logisk enhed, PLD)

Programmerbare logiske integrerede kredsløb (FPGA'er) er forskellige, idet du selv opretter en arkitektur fra grundlæggende logiske elementer, når du programmerer en enhed. Således får du høj hastighed og fleksibilitet af chippen. Dette gør det muligt uden at ændre en chip at foretage et antal projekter.

Generelt kan den interne FPGA-enhed opdeles i tre hovedgrupper:

1. En række logiske elementer (makroceller, logiske blokke).

2. Input / output blokke (IO).

3. Kommunikationslinjer mellem dem og enheden, der kontrollerer disse forbindelser.

Imidlertid er sådan strukturering meget generaliseret, vi vil overveje dette spørgsmål mere detaljeret nedenfor.

Ved at programmere forbinder du elementerne på samme måde, som du ville, ved at samle en enhed fra individuelle elementer og forbinde deres indgange og udgange med ledere.

Bemærk:

Den største forskel mellem FPGA'er og mikrokontrollere er, at du i mikrokontrolleren ikke kan ændre de interne forbindelser mellem de enkleste elementer, og programmering og arbejde med dem er baseret på at registrere forbindelserne i FPGA'er.

Valget af mikrokontrollere er baseret på mange kriterier, såsom:

  • Hastighed og urhastighed;

  • Mængden af ​​ROM og RAM;

  • Antallet af input og output.

Andre funktionelle funktioner og perifere enheder, såsom understøttelse af kommunikationslinjer og protokoller (I2C, en-ledning, PWM-signal osv.).

Når du vælger en FPGA, er hovedkriteriet antallet af programmerbare blokke - de skal være nok til at implementere opgaven.

Afhængigt af den specifikke FPGA kan antallet af blokke variere vidt, og omkostningerne ændres også.

Mikrokontrolleren udfører sekventielt alle de operationer, der er foreskrevet i sit program, mens FPGA-blokke udfører opgaven parallelt og uafhængigt af hinanden, og det er derfor upraktisk at sammenligne disse enheder med urfrekvens. Deres driftsprincip er for anderledes.

FPGA-typer

typer

Aktuelt er der to hovedtyper af FPGA'er:


1. CPLD (kompleks programmerbar logisk enhed - programmerbar logisk integreret kredsløb, faktisk er dette FPGA i sin klassiske forstand). Det har normalt en indbygget ikke-flygtig hukommelse, hvor firmwaren er indlæst.

Den interne struktur er bygget på en matrix af makroceller eller logiske blokke, og antallet af elementer i dem ligger i intervallet hundreder og tusinder af stykker. På grund af deres relative enkelhed er de billigere end den næste type programmerbar logik. Alt dette fører til det faktum, at CPLD hovedsageligt bruges i kredsløb, hvor der er behov for høj hastighed og et stort antal output, mens der udføres enkle opgaver.


2. FPGA (feltprogrammerbar Gate Array - Brugerprogrammerbar Gate Array, men det kaldes ofte FPGA) - mere udviklede og komplekse enheder sammenlignet med CPLD, er bygget på logiske blokke med fleksibel switching og indeholder et større antal elementer (titusinder eller hundreder af tusinder af stykker).

Firmware gemmes normalt i ekstern ikke-flygtig hukommelse. Ud over de enkleste logiske elementer kan FPGA'er indeholde færdige blokke til udførelse af enhver operation, for eksempel DSP-signalbehandlingsblokke. Alt dette giver dig mulighed for at implementere en processor, signalbehandlingsenheder og andre komplekse enheder.


Jeg undre:

Selvom tilstedeværelsen af ​​ikke-flygtig hukommelse faktisk ikke gør programmerbar logisk CPLD. Dette er delvis vildledende. Den største forskel mellem CPLD og FPGA er den interne struktur.

Forskellen mellem CPLD og FPGA er den interne struktur

Det interne CPLD vises mere detaljeret i figuren herunder.

CPLD intern enhed

Og det omtrentlige skema med dens makrocell ser sådan ud:

Eksempel på CPLD-makrocellelayout

Makrocellen består af programmerbare multiplexere, triggere (en eller flere) og danner en gruppe af output FB-signaler i flere versioner.

Følgende er et andet eksempel - et blokdiagram over CPLD-chipfamilien MAX II-firma Altera.

Altera MAX II CPLD flowdiagram

Og strukturplanen for chips af den samme familie.

Altera MAX II CPLD-blokdiagram

Mellemdæk til makroceller tildeles ved hjælp af en knude, f.eks. En distributør på engelsk. det lyder som en Logic Allocator, som er vist i nedenstående diagram, det viser også skiftematrixen (Global Routing Pool), og ved udgangen har makroceller (makroceller) to feedbacks.

Distributør og switchmatrix

De eksterne udgange fra mikrokredsløbet er forbundet med output af makrocellerne gennem en anden blok (matrix) - ORP (Output Routing Pool). Bemærk, at der igennem er INPUT-logikken forbundet til GRP, som vist på illustrationen nedenfor.

Bemærk:

Nogle CPLD'er har såkaldte direkte indgange (direkte indgang) - de er forbundet til cellernes indgange direkte, hvilket reducerer forsinkelser.

FPGA-strukturen har formen:

FPGA-struktur
  • L - logisk konfigurerbar blok;

  • S (substitutionsblok) - en substitutionsblok, den modtager et vist antal bit pr. Bevægelse, konverterer i henhold til en bestemt algoritme og afgiver et andet antal bit ved output. Med andre ord en dekoder, en krypterer og en switch.

  • C (forbindelsesblok) - forbindelsesblok.

S-blokdiagram:

 

S-blokdiagram



programmering


HDL (hardwarebeskrivelsessprog) - dette er det sprog, som FPGA'er er programmeret med. Populære og alsidige er Verilog HDL og VHDL. Der findes andre sprog, såsom dem, der er specifikke for producenter, såsom AHDL til ALTERA-produkter.

Grafisk programmering er tilgængelig for udviklere, der arbejder med FPGA'er. Det vil sige, du kan blot tegne logiske kredsløb eller kombinere kode med grafik. Sidstnævnte kaldes den modulære udviklingsmetode, når der er ordineret specifikke moduler, og det øverste modul, hvor alt kombineres, programmeres grafisk.


Eksempler på populære producenter og serier

I skrivende stund er de mest berømte produkter fra to fabrikanter.

  • Altera (grundlagt i 1983);

  • Xilinx (Grundlagt i 1984).

Altera

Altera har flere store serier af programmerbar logik:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • Cyclone;

  • arria;

  • Stratix.

Lad os overveje hver af dem mere detaljeret. I tabellerne nedenfor ser du generelle oplysninger om familiens mikrokredsløb.

Karakteristika for hovedserien med programmerbar logik
Karakteristika for hovedserien med programmerbar logik

Altera 3 CPLD CPLD:

  • MAX er en CPLD til brug i mobile enheder, kendetegnene er relativt lavt strømforbrug og varmeafledning. Følgende ændringer skelnes afhængigt af kompleksitet og produktionsår:

  • 7000S er forældet til dato, det blev frigivet i 1995.

  • 3000A - frigivet i 2002, er fremstillet ved hjælp af 300nm teknologi. Består af et lille antal makroceller (32-512)

  • MAX II frigivet i 2004, er fremstillet ved hjælp af 100nm teknologi, består af et større antal enheder (240-2210), der fungerer ved frekvenser op til 304 MHz. Produktet fremstilles i tilfælde af type TQFP 0,5 mill med 100 eller flere ben.

  • MAX IIZ - 2007, hovedfunktionen er reduceret strømforbrug - dette er et positivt punkt, men frekvenserne er reduceret til 152 MHz. Disse mikrokredsløb er drevet fra 1,8 V.

  • MAX V - 2010 år. Det er produceret i henhold til 180nm teknologi, det kan indeholde fra 40 til 2210 blokke og fungerer ved frekvenser op til 152MHz eller ved 304MHz - det afhænger af antallet af blokke.

Altera 3 CPLD CPLD

FPGA:

  • Cyclone er en budget-FPGA-type chip. Der er fem generationer, der er markeret med græske tal (fra henholdsvis I til V). Den første generation blev frigivet i 2002, produceret ved hjælp af 180nm teknologi, og den femte generation kom ud i 2011 og fremstillet ved hjælp af 28nm teknologi. Det er værd at bemærke, at alle generationer forbliver relevante.

  • Arria - henvises også til mellemklasse FPGA.

  • Stratix - Kraftfulde FPGA'er.

Nedenfor er Altera FPGA programmerbare logiske drejeborde.

FPGA-funktioner
FPGA-funktioner
FPGA-funktioner

Og den fulde tabel ved linket:

Producenten Xilinx CPLD præsenteret i serie:

  • XC9500XL på 36-288 makroceller. De fungerer ved frekvenser op til 178 MHz og modeller ved 288 makroceller ved 208 MHz. Det udføres som i små tilfælde med 44 stifter (ledninger) i en afstand på 0,8 mm fra hinanden - sådanne tilfælde betragtes som let lodde. Kan også fås med 64 og 100 ben i trin på 0,5 mm samt modeller i kabinetter af PLCC-type.

  • CoolRunner-II-serien er en energieffektiv, men produktiv CPLD. En funktion er drevet af en spænding på 1,8 V, indgange og udgange er designet til at fungere i området 1,5-3,3V. De består af 32-512 makroceller og produceres ved hjælp af 180nm teknologi. Afhængigt af antallet af celler fungerer de i frekvensområdet 179-323 MHz, og jo mindre cellerne er, desto mere frekvens kan de arbejde i dette tilfælde. De findes i forskellige tilfælde, herunder let loddet, som i mikrokredsløbene i serien, der er betragtet ovenfor.

Xilinx-selskab gik ikke forbi, og FPGA:

  • Spartan-6 - består af 6-input logiske blokke, deres antal ligger i intervallet 3840-147443 stykker. Interessant i at de kan indeholde controllere til udveksling af data som DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, SerialATA osv ...

  • Vitrex-7-serien er kompleks, mikrokredsløb kan indeholde op til 2.000.000 logiske blokke og 1.200 kontakter.

Nedenfor kan du finde oversigtsborde med CPLD- og FPGA-specifikationer fra Xilinx 6 og 7-serien samt Zynq-7000.

Xilinx 6 og 7-serien FPGA-funktioner
Egenskaber ved Virtex-6 FPGA'er
Karakteristika for FPGA-familien Spartan-6
Karakteristika for FPGA-familien Spartan-6
FPGA-funktioner
FPGA-funktioner

konklusion

FPGA'er og PPVM'er produceres også af andre virksomheder såsom Lattice Semiconductor (i 2002 begyndte at producere FPGA'er), Actel og dets velkendte læsere af vores websted. mikrokontrollere ATMEL og mange andre. I den programmerbare logik er det muligt at implementere et antal enheder, implementere parallelle beregninger uafhængigt af hinanden i en enhed, men til hjemmeprojekter er deres køb ofte økonomisk uberettiget, men ganske rimelig i produktionsskala, som et alternativ til brugerdefinerede integrerede kredsløb.

P. S.Se videoen, i den ser du et eksempel på implementeringen af ​​Nintendo-spilkonsollen på FPGA:

Se også på elektrohomepro.com:

  • Funktionelt blokdiagram sprog (FBD) og dets anvendelse
  • Typer af moderne integrerede kredsløb - typer af logik, tilfælde
  • Logiske chips. Del 1
  • PIC-mikrokontrollere til begyndere
  • Programmerbare logikcontrollere til hjemmeautomation

  •