Feltprogrammerbar portarray

En "Field Programmable Gate Array" (vanligvis forkortet til FPGA ), i digital elektronikk , er en programmerbar logisk enhet eller, generelt sett, en elektronisk maskinvareenhet dannet av en integrert krets hvis logiske prosesseringsfunksjoner er spesielt programmerbare og modifiserbare gjennom passende beskrivelsesspråk maskinvare .

Historie

FPGA-komponenter ble introdusert i andre halvdel av 1980-tallet som tredje generasjon programmerbare logiske enheter (PLDs ), utviklet i laboratoriene til Harris Semiconductor . Ytterligere utviklinger ble gjort med Read Only Memory , CMOS - minner og antifuse- teknologier som alle ble implementert i disse enhetene.

Fra andre halvdel av 80-tallet , etter de første modellene produsert av Altera og realiseringen av XC2064 av Xilinx og implementeringen av storskala SRAM på 90 -tallet , har industrien i sektoren hatt en sterk ekspansjon, også takket være de kontinuerlige teknologiske fremskritt i halvledersektoren , og nådde en markedsandel på nærmere 2 milliarder dollar i 2005.

Funksjoner

Typologi

Det finnes flere typer FPGA-er, som inkluderer både enheter som kan programmeres én gang, og enheter som kan omprogrammeres et stort antall ganger. Førstnevnte, kalt OTP ( One Time Programmable ), består av komponenter hvis driftsstatus endres permanent, slik at konfigurasjonen kan opprettholdes når enheten slås av. Den andre kategorien inkluderer enheter basert på SRAM -teknologi ( Static Random Access Memory ), som må omprogrammeres hver gang de slås på, med et flyktig konfigurasjonsminne.

FPGA-kretser er elementer som har mellomliggende egenskaper med hensyn til ASIC ( Application Specific Integrated Circuit ) enheter på den ene siden og de med PAL ( Programmable Array Logic ) arkitektur på den andre. Bruken av FPGA-komponenter har noen fordeler i forhold til ASIC-er: de er faktisk standardenheter hvis funksjonalitet som skal implementeres ikke er satt av produsenten, som derfor kan produsere i stor skala til en lav pris. Deres generiske natur gjør dem egnet for et stort antall bruksområder i forbruker- , kommunikasjons-, bil- , etc.-sektorene. De programmeres direkte av sluttbrukeren, noe som tillater reduksjon av designtid, verifisering gjennom simuleringer og felttesting av applikasjonen. Den store fordelen fremfor ASIC-er er at de lar deg gjøre endringer eller rette feil ved å omprogrammere enheten når som helst. Av denne grunn er de mye brukt i prototypingfasene , ettersom eventuelle feil kan løses ganske enkelt ved å rekonfigurere enheten. Designmiljøet er også mer brukervennlig og relativt enkelt å lære seg. På den annen side, for applikasjoner på store antall er de uøkonomiske, fordi enhetsprisen på enheten er høyere enn for ASIC-ene (som imidlertid ofte har høyere designkostnader).

Kostnaden for disse enhetene synker nå raskt: dette gjør dem mer og mer til et gyldig alternativ til standard celleteknologi . De er vanligvis programmert med språk som Verilog eller VHDL , men vi må ikke glemme modusen " skjematisk oppføring ", som gir en rask og forenklet tilnærming til denne teknologien samtidig som den har det samme potensialet. Mange produsenter (for eksempel Xilinx og Altera ) tilbyr gratis utviklingssystemer som støtter nesten hele produktspekteret deres.

Takket være allsidigheten til disse prosessorene, utvides bruksfeltene i ulike sektorer som disse kortene i utgangspunktet ikke var designet for: for eksempel for gruvedrift av kryptovaluta, et felt som i utgangspunktet bare ble kjempet av ASIC-prosessorer og GPUer.

De viktigste teknologiene

Struktur

Strukturen til en FPGA består vanligvis av en matrise av konfigurerbare logiske blokker, kalt CLBs ( Configurable Logic Blocks ), koblet til hverandre gjennom programmerbare sammenkoblinger. Ved kantene av denne matrisen er det inngangs-/utgangsblokker, kalt IOB-er ( Input Output Block ). CLB-ene utfører de logiske funksjonene, settet med sammenkoblinger setter dem i kommunikasjon, mens IOB-ene tar seg av grensesnittet til kretsen med omverdenen. Innenfor denne matrisen er det også andre typer ressurser, for eksempel DCM ( Digital Clock Manager ), som genererer klokkesignalet , nettverket som bærer klokkesignalet fra flip-flopsene til CLB-ene og andre dataressurser, som f.eks. ALU ( Arithmetic Logic Unit ), og distribuerte minneressurser. Hvert av disse bestanddelene har en spesifikk driftsmodell, som er av stor betydning for å forstå hvordan enheten fungerer korrekt.

Konfigurerbare logikkblokker

CLB-blokker er vanligvis sammensatt av to eller fire logiske celler , som utfører boolske operasjoner . Hver logisk celle er vanligvis sammensatt av en eller flere programmerbare LUT -er ( oppslagstabeller ). LUT-er brukes til å implementere generaliserte boolske funksjoner, og er vanligvis ledsaget av et register. Settet med disse elementene kalles logic cell , og representerer en av de viktigste parameterne for å evaluere potensialet til en FPGA.

CLB-ene kan kobles til hverandre, slik at det kan lages komplekse boolske funksjoner. LUT-ene er sammensatt av et 16-bits SRAM-minne og en 4-inngangs multiplekser: når de er konfigurert, kan de generere enhver logisk funksjon med fire innganger hver. Det er også sammenkoblinger knyttet til innstilling/tilbakestilling og brikkeaktiveringslogikk, til klokkesignalene og til signalene som kommer fra de andre delene av enheten. Valget om å bruke LUTer med kun fire innganger ligger i det faktum at kompleksiteten til en LUT vokser eksponentielt etter hvert som antall innganger øker, og er derfor lite håndterlig.

Å gruppere noen LUT-er i en CLB og koble dem til et lokalt nettverk av sammenkoblinger gir faktisk større hastighet, på grunn av det faktum at denne typen sammenkobling er raskere enn den generelle mellom distinkte logiske blokker. CLB er også dimensjonert for å optimalisere antall lokale og globale forbindelser i henhold til det okkuperte området: CLB-er som er for store betyr at arealet som kreves for lokale sammenkoblinger overstiger det som er spart takket være grupperingen av LUT-ene som finnes i dem. Til slutt, langs omkretsen av de logiske blokkene er det inngangs- og utgangspinnene, koblet til den tilstøtende sammenkoblingen ved hjelp av programmerbare transistorer.

Inn-/utgangsblokker

Inn-/utgangsblokkene tar for seg styring av signaler til og fra FPGA ved å kontrollere pinnene til brikken. I Xilinx-enheter, for eksempel, kontrollerer hver IOB en pinne som kan konfigureres som inngang, utgang, toveis eller tri-state . Plassert langs omkretsen av CLB-matrisen, er IOB-ene til Virtex-familien sammensatt av flip-flops dedikert til datasynkronisering, multipleksere som administrerer signaler i DDR-modus ( Double Data Rate ) og buffere for administrasjon av de forskjellige logikkstandardene. . Bufferene lar deg også kontrollere signalsvitsjingshastigheten, kalt responshastighet , for høyfrekvent kommunikasjon med eksterne enheter, mens inngangsbufferen har en programmerbar terskel for å tillate FPGA-enheten å grensesnitt med forskjellige logiske standarder som TTL , CMOS eller PCI . Det er også pull-up / pull-down motstander som lar deg karakterisere tilstanden til pinnen i situasjoner med høy impedans.

Sammenkoblingslinjer

Sammenkoblingslinjene har derimot som oppgave å sette de ulike ressursene til enheten i kommunikasjon. To typer sammenkobling kan skilles: faste linjer og utvekslingsmatriser, også kjent som brytermatrise . Faste linjer er delt inn i "korte" og "lange" linjer: "korte" linjer er sammenkoblinger som forbinder tilstøtende CLB-er, og minimerer signalforsinkelse; "lange" linjer, derimot, gjør at ressurser 6 CLB-er fjernt fra hverandre kan settes inn i kommunikasjon gjennom ikke-konfigurerbare baner, som ikke krysser utvekslingsmatrisene og som derfor er preget av ikke å introdusere betydelige forsinkelser. Til slutt er utvekslingsmatrisene nettverk av programmerbare og kommuniserende pass-transistorer. I en SRAM-FPGA-enhet er sammenkoblingslinjene faste, og det som er programmert er forbindelsene mellom forskjellige linjer: de fleste sammenkoblingene skjer mellom to forskjellige sider av utvekslingsmatrisene, og er aktivert av pass-transistorer.

Bruk

Disse enhetene tillater realisering av selv svært komplekse logiske funksjoner , og er preget av høy skalerbarhet . Denne typen teknologi har fått en stadig viktigere rolle i industriell elektronikk så vel som i vitenskapelig forskning . Takket være den kontinuerlige utviklingen av miniatyriseringsteknikker, har egenskapene til slike enheter økt enormt i løpet av bare to tiår, hvor de har gått fra noen få tusen logiske porter til noen få millioner logiske porter for en enkelt FPGA-enhet.

Opplagsdata

Bruksøkningshistorikk

Trend gjennom årene i antall logiske porter til stede på FPGA-kretser:

Markedsstørrelse:

Store produsenter

Xilinx og Altera fra 2014 var de to største FPGA-produsentene. [2] De to selskapene er "historiske" rivaler, og sammen kontrollerer de over 80 % av markedet. [3] Både Xilinx og Altera leverer sin utviklingsprogramvare for Windows og Linux , i gratis eller betalte versjoner, og under proprietær lisens [4] [5] . Denne programvaren tillater implementering av logikken i enheten og gjør det mulig å administrere de enkelte ressursene. [6] [7] Andre produsenter inkluderer Lattice Semiconductor (SRAM-enheter med integrert flash-minne) Actel (nå Microsemi , produserer antifuse-enheter), SiliconBlue Technologies , Achronix , [8] og QuickLogic . I mars 2010 kunngjorde Tabula introduksjonen av sin teknologi basert på tidsmultiplekset logikk. [9]

Merknader

  1. ^ a b Dylan McGrath, EE Times, FPGA Market passerer 2,7 milliarder dollar innen '10 , sier In-Stat . . 24. mai 2006. Hentet 5. februar 2009.
  2. ^ John Edwards, No room for Second Place: Xilinx and Altera slug it out for supremacy in the changing PLD market , EDN , 1. juni 2006. Hentet 11. mai 2012 (arkivert fra originalen 28. juli 2012) .
  3. ^ Altera and Xilinx Report: The Battle Continues , on Seeking Alpha , 17. juli 2008. Hentet 13. november 2013 .
  4. ^ Xilinx Inc., sluttbrukerlisensavtale ( TXT ), på Xilinx.com . Hentet 15. oktober 2015 (arkivert fra originalen 17. oktober 2015) .
  5. ^ Altera Corporation, Altera programvarelisensavtaler , på dl.Altera.com . Hentet 15. oktober 2015 .
  6. ^ Xilinx ISE WebPACK , på xilinx.com (arkivert fra originalen 24. juni 2007) .
  7. ^ Programvare for Quartus II-nettutgave , på altera.com . Hentet 1. januar 2014 (arkivert fra originalen 3. desember 2007) .
  8. ^ Achronix for å bruke Intels 22 nm-produksjon , på newsroom.intel.com .
  9. ^ Tabula's Time Machine - Micro Processor Report ( PDF ), på tabula.com (arkivert fra originalen 10. april 2011) .

Bibliografi

Relaterte elementer

Andre prosjekter

Eksterne lenker