kategorier: Mikrokontrollkretser
Antall visninger: 21445
Kommentarer til artikkelen: 0

Hva er FPGA et enkelt språk for nybegynnere

 

Hva er digital elektronikk knyttet til? Først av alt, med logiske elementer OG, ELLER, IKKE. Videre kommer skiftregistre, dekodere, multipleksere, etc. inn i minnet. Etter hvert som kompleksiteten til elektroniske enheter og trenden mot miniatyrisering øker, ble det imidlertid vanskeligere å lage enheter basert på integrerte kretsløp (IC) fra ovennevnte komponenter, tilpassede IC-er av den nødvendige topologien og kretsløpet viste seg å være verdt bare når enheten ble replikert i store antall, i andre tilfeller var det urimelig dyrt.

Veien ut av denne situasjonen var utviklingen av programmerbare integrerte logiske kretsløp (forkortet som FPGA, utenlandsk forkortelse som programmerbar logisk enhet, PLD). Hva er det og hvor brukes det vil vi fortelle i denne artikkelen.

Hva er FPGA et enkelt språk for nybegynnere

Forskjeller fra mikrokontrollere

Med ordet "programmerbar" forbinder de fleste nybegynnere med mikrokontrollere. Til tross for at de også er programmert, er FPGA-er en helt annen enhet.

For utviklere av mikrokontrollere, et fast sett med løsninger og midler som er iboende i en bestemt chip, vil det ikke fungere på noen måte å trekke seg tilbake fra arkitekturen. Du får et sett med kommandoer som du utfører operasjoner for interaksjon med miljøet, ved å lese data fra digitale og analoge innganger og sende signaler til aktuatorer ved hjelp av utganger.

I tillegg kan du utføre beregninger, lagre data i registre eller ROM, samt operere med data som er blinket inn i minnekontrolleren. På dette er i hovedsak formålet og funksjonene med å jobbe med mikrokontrollere.

Programmerbar 769; log 769; heltall 769; lin 769; ma (FPGA, engelsk programmerbar logisk enhet, PLD)

Programmerbare logiske integrerte kretsløp (FPGA-er) er forskjellige på at når du programmerer en enhet, lager du selv en arkitektur fra grunnleggende logiske elementer. Dermed får du høy hastighet og fleksibilitet på brikken. Dette gjør det mulig, uten å endre en brikke, å lage en rekke prosjekter.

Generelt kan den interne FPGA-enheten deles inn i tre hovedgrupper:

1. En rekke logiske elementer (makroceller, logiske blokker).

2. Input / output blocks (IO).

3. Kommunikasjonslinjer mellom dem og enheten som kontrollerer disse tilkoblingene.

Imidlertid er slik strukturering veldig generalisert, vi vil vurdere dette problemet mer detaljert nedenfor.

Ved å programmere kobler du elementene på samme måte som du ville gjort, samler en enhet fra individuelle elementer og kobler innganger og utganger med ledere.

Note:

Hovedforskjellen mellom FPGA-er og mikrokontrollere er at du i mikrokontrolleren ikke kan endre de interne forbindelsene mellom de enkleste elementene, og programmering og arbeid med dem er basert på å registrere tilkoblingene i FPGA-er.

Valget av mikrokontrollere er basert på mange kriterier, for eksempel:

  • Hastighet og klokkehastighet;

  • Mengden ROM og RAM;

  • Antall innganger og utganger.

Andre funksjonelle funksjoner og periferiutstyr, for eksempel støtte for kommunikasjonslinjer og protokoller (I2C, en-ledning, PWM-signal, etc.).

Når du velger en FPGA, er hovedkriteriet antall programmerbare blokker - de skal være nok til å implementere oppgaven.

Avhengig av den spesifikke FPGA, kan antall blokker variere innenfor vide grenser, og kostnadene tilsvarende.

Mikrokontrolleren utfører sekvensielt alle operasjonene som er foreskrevet i programmet, mens FPGA-blokker utfører oppgaven parallelt og uavhengig av hverandre, og derfor er det upraktisk å sammenligne disse enhetene med klokkefrekvens. Driftsprinsippet deres er for annerledes.

FPGA-typer

typer

Aktuelt er to hovedtyper av FPGA-er:


1. CPLD (Complex Programmable Logic Device - Programmable Logic Integrated Circuit, faktisk er dette FPGA i sin klassiske forstand). Den har vanligvis et innebygd ikke-flyktig minne som firmwaren er lagt inn i.

Den interne strukturen er bygget på en matrise av makroceller eller logiske blokker, og antall elementer i dem ligger i området hundre og tusenvis av stykker. På grunn av deres relative enkelhet, er de billigere enn neste type programmerbar logikk. Alt dette fører til det faktum at CPLD hovedsakelig brukes i kretsløp der høy hastighet og et stort antall utganger er nødvendig, mens du utfører enkle oppgaver.


2. FPGA (feltprogrammerbar gate-array - Brukerprogrammerbar gate-array, men det blir ofte referert til som FPGA) - mer utviklede og komplekse enheter sammenlignet med CPLD, er bygd på logiske blokker med fleksibel veksling og inneholder et større antall elementer (titusenvis eller hundretusener av brikker).

Firmware lagres vanligvis i eksternt, ikke-flyktig minne. I tillegg til de enkleste logiske elementene, kan FPGAer inneholde ferdige blokker for å utføre alle operasjoner, for eksempel DSP-signalbehandlingsblokker. Alt dette lar deg implementere en prosessor, signalbehandlingsenheter og andre komplekse enheter.


Jeg lurer på:

Selv om tilstedeværelsen av ikke-flyktig minne ikke gjør programmerbar logisk CPLD. Dette er delvis misvisende. Hovedforskjellen mellom CPLD og FPGA er den interne strukturen.

Forskjellen mellom CPLD og FPGA er den interne strukturen

Den interne CPLD-enheten vises mer detaljert i figuren nedenfor.

CPLD intern enhet

Og det omtrentlige opplegget med makrocellene ser slik ut:

Eksempel på CPLD-makrocellelayout

Makrocellen består av programmerbare multipleksere, triggere (en eller flere) og danner en gruppe av FB-signaler i flere versjoner.

Følgende er et annet eksempel - et blokkskjema over en CPLD-brikke fra Altera MAX II-sjetongfamilien.

Altera MAX II CPLD flytskjema

Og strukturplanen for sjetongene til den samme familien.

Altera MAX II CPLD-blokkskjema

Mellomdekk tilordnes makroceller ved hjelp av en node som forhandler på engelsk. det høres ut som en Logic Allocator, som er vist i diagrammet nedenfor, den viser også Global Routing Pool-matrisen, og ved utgangen har makroceller to tilbakemeldinger.

Distributør og byttematrise

De ytre utgangene til mikrokretsen er koblet til utgangene til makrocellene gjennom en annen blokk (matrise) - ORP (Output Routing Pool), merk at INPUT-logikken er koblet til GRP, som vist på illustrasjonen nedenfor.

Note:

Noen CPLD-er har såkalte direkte innganger (direkte inngang) - de er koblet direkte til inngangene til cellene, noe som reduserer forsinkelser.

FPGA-strukturen har formen:

FPGA-struktur
  • L - logisk konfigurerbar blokk;

  • S (substitusjonsblokk) - en substitusjonsblokk, den mottar et visst antall biter per bevegelse, konverterer i henhold til en viss algoritme, og gir ut et annet antall biter ved utgangen. Med andre ord en dekoder, en krypterer og en bryter.

  • C (tilkoblingsblokk) - tilkoblingsblokk.

S-blokkskjema:

 

S-blokkskjema



programmering


HDL (maskinvarebeskrivelse språk) - dette er språket som FPGA-er er programmert med. Verilog HDL og VHDL er populære og allsidige. Andre språk eksisterer, for eksempel de som er spesifikke for produsenter, for eksempel AHDL for ALTERA-produkter.

Grafisk programmering er tilgjengelig for utviklere som jobber med FPGAer. Det vil si at du ganske enkelt kan tegne logiske kretsløp eller kombinere kode med grafikk. Sistnevnte kalles modulær utviklingsmetode, når spesifikke moduler er foreskrevet, og toppmodulen, der alt kombineres, programmeres grafisk.


Eksempler på populære produsenter og serier

I skrivende stund er de mest berømte produktene fra to produsenter.

  • Altera (grunnlagt i 1983);

  • Xilinx (Grunnlagt i 1984).

Altera

Altera har flere store serier med programmerbar logikk:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • Cyclone;

  • arria;

  • Stratix.

La oss vurdere hver av dem mer detaljert. I tabellene nedenfor ser du generell informasjon om chipsene til familien.

Kjennetegn på hovedserien med programmerbar logikk
Kjennetegn på hovedserien med programmerbar logikk

Altera 3 CPLD CPLD:

  • MAX er et CPLD for bruk på mobile enheter, kjennetegnene er relativt lavt strømforbruk og varmeavledning. Avhengig av kompleksitet og utgivelsesår, skilles følgende endringer:

  • 7000S er utdatert til dags dato, den ble utgitt i 1995.

  • 3000A - utgitt i 2002, er produsert ved hjelp av 300nm teknologi. Består av et lite antall makroceller (32-512)

  • MAX II utgitt i 2004, er produsert ved hjelp av 100nm teknologi, består av et større antall enheter (240-2210) som opererer med frekvenser opp til 304 MHz. Produktet er laget i tilfeller av type TQFP 0,5 mill med 100 eller flere ben.

  • MAX IIZ - 2007, hovedfunksjonen er redusert strømforbruk - dette er et positivt punkt, men frekvensene er redusert til 152 MHz. Disse mikrokretsene er drevet fra 1,8 V.

  • MAX V - 2010 år. Den er produsert i henhold til 180nm teknologi, den kan inneholde fra 40 til 2210 blokker og opererer med frekvenser opp til 152MHz eller ved 304MHz - det avhenger av antall blokker.

Altera 3 CPLD CPLD

FPGA:

  • Cyclone er en budsjettbrikke av FPGA-type. Det er fem generasjoner som er merket med greske tall (fra henholdsvis I til V). Den første generasjonen ble lansert i 2002, produsert ved hjelp av 180nm teknologi, og den femte generasjonen ble utgitt i 2011 og produsert ved bruk av 28nm teknologi. Det er verdt å merke seg at alle generasjoner forblir relevante.

  • Arria - referer også til mellomtoner FPGA.

  • Stratix - Kraftige FPGA-er.

Nedenfor er Altera FPGA programmerbare logiske pivottabeller.

FPGA-funksjoner
FPGA-funksjoner
FPGA-funksjoner

Og hele bordet på lenken:

Produsenten Xilinx CPLD presentert i serie:

  • XC9500XL på 36-288 makroceller. De opererer med frekvenser opp til 178 MHz, og modeller på 288 makroceller ved 208 MHz. Det utføres som i små tilfeller med 44 pinner (ledninger) i en avstand på 0,8 mm fra hverandre - slike tilfeller anses å være loddete. Finnes også med 64 og 100 ben i trinn på 0,5 mm, samt modeller i kapslinger av PLCC-type.

  • CoolRunner-II-serien er en energieffektiv, men produktiv CPLD. En funksjon drives av en spenning på 1,8V, inngangene og utgangene er designet for å fungere i området 1,5-3,3V. De består av 32-512 makroceller og er produsert ved hjelp av 180nm teknologi. Avhengig av antall celler, fungerer de i frekvensområdet 179-323 MHz, og jo mindre celler, jo mer frekvens kan de jobbe i dette tilfellet. De finnes i forskjellige tilfeller, inkludert lett loddet, som i mikrokretsene i serien som er vurdert over.

Xilinx-selskapet gikk ikke forbi og FPGA:

  • Spartan-6 - består av 6-input logiske blokker, antallet ligger i området 3840-147443 stykker. Interessant i at de kan inneholde kontrollere for utveksling av data som DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, SerialATA osv ...

  • Vitrex-7-serien er kompleks, mikrokretser kan inneholde opptil 2 000 000 logiske blokker og 1 200 kontakter.

Nedenfor finner du sammendragstabellene med CPLD- og FPGA-spesifikasjonene fra Xilinx 6 og 7-serien, samt Zynq-7000.

Xilinx 6 og 7-serie FPGA-funksjoner
Kjennetegn på Virtex-6 FPGA-er
Kjennetegn på FPGA-familien Spartan-6
Kjennetegn på FPGA-familien Spartan-6
FPGA-funksjoner
FPGA-funksjoner

konklusjon

FPGA-er og PPVM-er produseres også av andre selskaper som Lattice Semiconductor (i 2002 begynte å produsere FPGA-er), Actel og dens kjente lesere av nettstedet vårt. mikrokontrollere ATMEL og mange andre. På den programmerbare logikken er det mulig å implementere en rekke enheter, å implementere parallelle beregninger uavhengig av hverandre i en enhet, men for hjemmeprosjekter er kjøpet ofte økonomisk uberettiget, men ganske rimelig i produksjonsskala, som et alternativ til tilpassede integrerte kretsløp.

PS!Se videoen, i den vil du se et eksempel på implementeringen av Nintendo-spillkonsollen på FPGA:

Se også på elektrohomepro.com:

  • Functional Block Diagram Language (FBD) og dens anvendelse
  • Typer av moderne integrerte kretsløp - typer logikk, tilfeller
  • Logikkbrikker. Del 1
  • PIC-mikrokontrollere for nybegynnere
  • Programmerbare logiske kontrollere for hjemmeautomatisering

  •