Mitä ovat FPGA:t?

Kenttäohjelmoitavat porttipiirturit (FPGA) ovat puolijohdelaitteita, jotka perustuvat ohjelmoitavien interliitäntien kautta kytkettyjen konfiguroitujen logiikkalohkojen (CLB) matriisiin. Toisin kuin sovelluskohtaiset integroidut piirit (ASIC), jotka on kovajohdotettu yhteen toimintoon, FPGA voidaan ohjelmoida uudelleen valmistuksen jälkeen minkä tahansa digitaalisen logiikkapiirin toteuttamiseksi. Tämä joustavuus saavutetaan useiden hakutaulukoiden (LUT), varvastossujen ja reititysresurssien avulla, jotka voidaan konfiguroida käyttäen laitteiston kuvauskieltä (HDL), kuten VHDL tai Verilog.

Sisäarkkitehtuuri sisältää myös upotettuja muistilohkoja (BRAM), digitaalisia signaalinkäsittelyviivoja (DSP) ja nopeita I/O-lähettimiä. Modernit FPGA-laitteet integroidaan kokonaisiin prosessorijärjestelmiin . Esimerkiksi AMD Xilinx Zynq -laitteissa ARM Cortex -ytimet yhdistetään ohjelmoitavaan logiikkaan, jolloin ne ovat todellisia järjestelmän päällä olevia siruja (SOC). Konfiguraatio tallennetaan SRAM-soluihin, jolloin laite voidaan ohjelmoida uudelleen jokaiseen tehonsiirtoon tai jopa osittain uudelleenmuotoiluun käytön aikana.

Miksi valita FPGA yli vaihtoehtoisten teknologioiden?

Päätös käyttää FPGA:ta perustuu usein tulosten, joustavuuden ja kustannusten väliseen kompromissiin.

Massive Rinnakkaiskäsittely

FPGA:t ovat luonnostaan rinnakkaisia. Vaikka suoritin suorittaa ohjeita peräkkäin, FPGA voi käsitellä samanaikaisesti tuhansia datavirtoja. Tämä tekee niistä ihanteellisia korkean läpimenon tehtäviin, kuten reaaliaikaiseen videonkäsittelyyn, ohjelmiston määritellyssä radiossa ja laitteiston kiihdytykseen. Microsoftin ja Amazonin kaltaiset yritykset ovat ottaneet FPGA:t käyttöön datakeskuksissaan nopeuttaakseen Bing-hakua ja pilvilaskentaa.

Matala latenssi ja päättäväinen ajoitus

Koska logiikka on suoraan käytössä laitteistossa, FPGA-piirit voivat saavuttaa deterministisen latenssin nanosekunnin alueella. Tämä on ratkaisevan tärkeää teollisuuden valvonnan, itsenäisen ajon (kehittyneet kuljettaja-apujärjestelmät) ja kaupankäyntijärjestelmien kannalta, joissa mikrosekunti on tärkeä.

Uudelleenkonfiguroituvuus ilman uudelleensuunnittelukustannuksia

Toisin kuin ASICs, joka vaatii kalliita naamio asetetaan ja kuukausia valmistus, FPGA voidaan ohjelmoida uudelleen sekunnissa. Tämä mahdollistaa iteratiivisen prototyypin, kenttäpäivitykset, ja kyky sopeutua muuttuviin standardeihin (esim., uudet video koodekit tai salausalgoritmit) ilman korvaa laitteisto.

Tehokas nopeutuminen erityistoiminnoissa

Vaikka FPGA-palvelut kuluttavat tietyn toiminnon osalta enemmän tehoa kuin ASIC-laitteet, ne saavuttavat usein paljon paremman suorituskyvyn kuin suorittimet ja GPU-yksiköt datan rinnakkaisten tai putkimaisten työmäärien osalta. Kun logiikka räätälöidään juuri vaadittujen toimintojen mukaan, tarpeeton opetus- ja muistinsiirto poistetaan.

Suunnittelu FPGA:n kanssa: ideasta täytäntöönpanoon

Hardware Kuvaus Kielet (HDL)

FPGA:iden ensisijainen suunnittelumerkintä on HDL-tiedostojen kautta. VHDL ja Verilog ovat yleisimpiä, vaikka uudemmat korkean tason synteesityökalut mahdollistavat suunnittelijoiden kirjoittamisen C/C++- tai SystemVerilog-versioon. Koodi on syntetisoitu netlistiksi, joka sitten kartoittaa käytettävissä oleviin logiikkalohkoihin ja reititetään. FPGA:iden keskeinen etu on, että sama muotoilu voidaan kohdistaa eri myyjien laitteisiin, joissa on minimaalisia muutoksia.

Varmennus ja simulointi

Ennen FPGA:n ohjelmointia tarvitaan perusteellinen simulaatio. ModelSimin tai Vivado Simulator -simulaattorin kaltaiset työkalut mahdollistavat suunnittelijoiden todentaa ajoituksen, toiminnan oikeellisuuden ja tehonkulutuksen. Monimutkaisten järjestelmien laitteisto-in-the-loop (HIL) -testaus voi yhdistää tosimaailman signaaleja simulointimalleihin.

Asetukset ja Bitstream Generation

FPGA-suunnitteluvirran lopullinen tuloste on bitstream-tiedosto. Tämä binary sisältää kaikkien LUT-laitteiden, reititysmuksujen ja lohkomuustojen konfigurointitiedot. Ohjelmointi tehdään JTAG-, SPI-flash- tai kaukopäivityksien verkon kautta. Monet modernit FPGA-järjestelmät tukevat osittaista uudelleenkonfigurointia . Muuttavat osan logiikasta samalla kun loput jatkavat toimintaa .

FPGA-sovellukset eri teollisuudenaloilla

FPGA:t ovat edenneet paljon pidemmälle kuin perinteinen roolinsa liimalogiikassa. Niiden monipuolisuus tekee niistä välttämättömiä seuraavilla aloilla.

Televiestintä ja 5G

FPGA:t käsittelevät massiivista digitaalista signaalinkäsittelyä tukiasemilla, suorittavat kanavan koodausta/dekoodausta ja tukevat massiivinen MIMO. Niiden kyky siirtyä erilaisiin radiostandardeihin (LTE, 5G NR, Wi-Fi 6) ilman laitteistomuutoksia on merkittävä kustannussäästö verkko-operaattoreille. Xilinx (nykyinen osa AMD:tä) toimittaa teollisuudelle SerDes-transsetit, jotka täyttävät etu- ja takamatkan rajapintojen korkeat vaatimukset.

Automotive ... ADAS-järjestelmästä autonomiseen ajoon

Nykyaikaisissa ajoneuvoissa FPGA-laitteita käytetään anturifuusioon (radar, LiDAR, kamerat), reaaliaikaiseen objektien havaitsemiseen ja päätöksentekoon. Ne tarjoavat vähäisen latenssin, jota tarvitaan törmäysten välttämiseen ja jotka yhdistetään usein verkkotunnusten ohjaimissa oleviin GPU-kiihdyttimiin. Esimerkiksi Xilinx Zynq UltraScale+ -perhe on laajalti käytössä auto-alustoilla.

Lääketieteellinen kuvantaminen ja diagnostiikka

Reaaliaikainen ultraääni-, CT- ja MRI-järjestelmät perustuvat FPGA-laitteisiin säteenmuodostamista, kuvan rekonstruointia ja suodattamista varten. Niiden rinnakkaisarkkitehtuuri voi käsitellä miljoonia datapisteitä sekunnissa, mikä mahdollistaa korkean resoluution kuvantamisen mahdollisimman vähin viivein. Lisäksi FPGA-laitteita käytetään kannettavissa diagnostiikkalaitteissa, joissa tehonkulutuksen on pysyttävä alhaisena.

Ilmailu- ja puolustusala

Tutkasignaalien käsittely, turvallinen viestintä ja sähköiset sodankäyntijärjestelmät vaativat sekä korkeaa suorituskykyä että kestävyyttä. FPGA-laitteissa on tällä alalla tyypillisesti säteilykarkaistuja muunnelmia (esim. Microchip RTAX tai Xilinx Q-sarja), jotka toimivat äärimmäisissä ympäristöissä. Niiden ohjelmoitavuuden ansiosta sotilasyksiköt voivat päivittää salausalgoritmit ja aaltomuodot kentällä.

Datakeskukset ja rahoituskauppa

Googlen, Microsoftin ja AWS:n kaltaiset teknologiajätit ovat yhdistäneet FPGA:t palvelininfrastruktuuriinsa nopeuttaakseen koneoppimista, verkkopakettien käsittelyä ja tietokantakyselyjä. Korkeataajuisessa kaupankäynnissä FPGA:t voivat jäsentää verkkopaketteja ja toteuttaa kauppoja alle mikrosekunnin . Nopeus on mahdoton ohjelmistopohjaisilla ratkaisuilla. Xilinxin ja Intelin kaltaiset startup-yritykset (Atera-divisioonansa kautta) tarjoavat nyt erityisiä kiihtyvyyskortteja näihin työtehtäviin.

FPGA vs. ASIC vs. GPU: Oikean työkalun valinta

Jokainen teknologia on selvästi makea paikka. AICE-järjestelmät saavuttavat korkeimman suorituskyvyn ja alhaisimman tehon kiinteässä toiminnossa, mutta vaativat suuren määrän (miljoonaa yksikköä) oikeuttaakseen NRE:n. GPU-laitteet ovat erinomaisia data-rinnakkaisissa tehtävissä, joilla on korkea aritmeettinen intensiteetti (esim. syväoppimiskoulutus). FPGA-järjestelmät ovat keskikentällä: ne tarjoavat lähes ASIC-suorituskyvyn moniin tehtäviin, joissa on joustavuutta muuttua käyttöönoton jälkeen. Sovelluksissa, jotka vaativat sekä matalaa latenssia että sopeutumiskykyä .

Kehittyvän puiteohjelman teknologia ja tulevaisuus

Tekoäly ja koneoppimisen nopeutuminen

FPGA:ita käytetään yhä enemmän kiihdyttiminä reunalla. Niiden alhainen teho ja deterministinen latenssi tekevät niistä ihanteellisia autonomisille roboteille, droneille ja teollisille IoT:ille. Intel. Intel.s OpenVINO toolkit ja AMD.s Vitis AI:t mahdollistavat sen, että kehittäjät voivat ottaa käyttöön koulutettuja hermoverkkoja FPGA:n kankaalle mahdollisimman vähin ponnistuksin. Koska verkkotoistot muuttuvat monipuolisemmiksi, kyky muuttaa kiihdyttimen konfigurointia erilaisiin malleihin tulee kilpailuetua.

Heterogeeninen integraatio ja sirut

Seuraava sukupolvi FPGA:t ovat siirtymässä kohti monivärisiä arkkitehtuuria. Yhdistämällä logiikkaa, muistia ja analogisia lohkoja yhteen pakettiin interposers-sovelluksella suunnittelijat voivat rakentaa massiivisia (tuhansia logiikkasoluja) järjestelmiä ilman että niitä rajoitettaisiin retiklekokoa. Tämä on samanlainen kuin se, miten AMD ja Intel integroivat suorittimen ja FPGA:n samaan siruun . Xilinx Versal -alusta on erinomainen esimerkki.

Avoimen lähdekoodin laitteistot ja työkalut

FPGA-suunnittelu on perinteisesti ollut suljettuna omaehtoisiin työkaluketjuihin. Yosysin (synteesin) ja seuraavan sukupolven (paikka- ja reittien) kaltaisten avoimen lähdekoodin hankkeiden nousu on demokratisoinut FPGA-kehityksen erityisesti pienempien Lattice- ja Gowin-laitteiden osalta. Tämä suuntaus saattaa vähentää opiskelijoiden ja harrastajien pääsyn esteitä ja edistää räätälöityjä laitteita koskevaa innovointia.

Turvallisuus ja luotettava toteutus

Kun huoli laitteisto Troijalaisista ja toimitusketjuhyökkäyksistä kasvaa, FPGA:t tarjoavat ainutlaatuisia turvaominaisuuksia. Bitstream-salaus, autentikointi ja kyky eristää logiikka eri turvallisuusaloilla tekevät niistä houkuttelevia sovelluksiin, kuten turvallisiin erillisalueisiin ja lohkoketjuihin. Yhdysvaltain puolustusministeriö rahoittaa aktiivisesti tutkimusta väärentämisen kestävistä FPGA-pohjaisista järjestelmistä.

Aloittaminen FPGA:n kehittämisestä

FPGA:ille uusille insinööreille ja harrastajille lähtökohtana on kehittämislautakunnan valinta. Edullisia vaihtoehtoja ovat Digilent Basys 3 (Artix-7), Lattice iCEstick tai Gowin Tang Nano -sarja. Oppimispolku alkaa tyypillisesti yksinkertaisella yhdistelmälogiikalla (LED- vilkkurit, laskurit), etenee valtion koneisiin ja viestintäprotokolliin (UART, SPI) ja siirtyy sitten monimutkaisiin suunnitelmiin, kuten yksinkertaiseen RISC-V-prosessoriin.

Resources such the free online course from []Kaikkia tietoja piirit[[[[]]]] ja virallinen dokumentaatio [[]][[[[]]]]]]AMD Xilinx[[[]]] tai [[[][[]Intel FPGA[] tarjoavat vankan perustan. Lisäksi yhteisöfoorumit kuten FPGA subreddit ja Hackaday.io ovat korvaamattomia vianmääritykseen ja inspiraatioon.

Päätelmä

FPGA-teknologia kehittyy edelleen nopeasti, mikä kurottaa umpeen kuilun ohjelmiston määrittelemän joustavuuden ja laitteistotason suorituskyvyn välillä. Televiestintäinfrastruktuurista, jonka on pysyttävä kehittyvien 5G-standardien tasalla, lääkinnällisiin laitteisiin, jotka vaativat reaaliaikaista kuvankäsittelyä, ja AI-kiihdyttimien, jotka toimivat paristoilla, on mahdollista saavuttaa seuraavan sähköisen innovaatioaallon. Niiden uudelleenohjelmointi tarkoittaa, että yksi laitealusta voi mukautua tuleviin vaatimuksiin, vähentää e-jätettä ja pidentää tuotteiden elinkaarta. Kun suunnittelutyökalut tulevat helpommin saataville ja FPGA-laitteiden kustannukset laskevat edelleen, voimme odottaa, että useammat suunnittelijat ottavat tämän teknologian käyttöön mukautetuissa ja suorituskykyisissä ratkaisuissa.