FPGA

Kenttäohjelmoitava porttiryhmä (usein lyhennettynä FPGA) on elektroninen komponentti, jota käytetään uudelleenmuokattavien digitaalisten piirien rakentamiseen. Tämä tarkoittaa, että FPGA eroaa logiikkaportista, koska logiikkaportilla on kiinteä toiminto. FPGA:lla sen sijaan on valmistusvaiheessa määrittelemätön toiminto. Ennen kuin FPGA:ta voidaan käyttää piirissä, se on ohjelmoitava eli konfiguroitava uudelleen.

FPGA:t ovat integroituja piirejä, jotka kuuluvat ohjelmoitavien logiikkalaitteiden eli PLD:iden luokkaan. FPGA:t ovat PLD-tyypeistä suorituskykyisimpiä, joustavimpia ja myös kalleimpia. FPGA-piirien haittapuoli muihin PLD-piireihin verrattuna on se, että ne eivät muista suunnittelemaansa piiriä, kun virta katkaistaan. Siksi FPGA tarvitsee erillisen konfigurointimuistisirun, joka säilyttää FPGA-suunnittelun. Kun FPGA:lle annetaan virta takaisin, FPGA:n kiinteä osa lukee konfiguraation konfiguraatiomuistisirulta. Kun FPGA on konfiguroitu, se pystyy suorittamaan suunnittelussa sille annetut tehtävät.

FPGA eroaa mikroprosessorista tai mikrokontrollerista. Perusmuodossaan FPGA ei pysty suorittamaan ohjelmistoja. Vasta kun FPGA:lle annetaan konfiguraatio, joka sisältää prosessoriarkkitehtuurin, se pystyy suorittamaan ohjelmistoja.

FPGA-valmistajat tarjoavat suunnitteluohjelmistoja Windowsille ja joskus myös Linuxille FPGA-suunnittelua varten. Suunnittelu kirjoitetaan yleensä ihmiselle luettaviin tietokonetiedostoihin, joita kutsutaan laitteiston kuvauskieleksi (Hardware Description Language, HDL). Suosituimpia ovat VHDL ja Verilog. Laitteiston kuvauskielet ovat vahvasti verrattavissa ohjelmointikieliin. HDL:ien tarkoituksena on kuitenkin suunnitella digitaalisia logiikkapiirejä, kun taas ohjelmointikielillä suunnitellaan ohjelmistoja.

FPGA-suunnitteluohjelmiston on käännettävä abstrakti HDL-koodi valitun FPGA:n käytettävissä oleviksi logiikkaelementeiksi. Tätä kutsutaan logiikkasynteesiksi. Tämän jälkeen suoritetaan sijoitus- ja reititysprosessi logiikkaelementtien sijoittamiseksi FPGA:han. Tuloksena on bittitiedosto, joka voidaan ohjelmoida FPGA:han tai konfigurointimuistiin. Tämä tehdään yleensä USB-ohjelmointilaitteella, joka on kytketty FPGA:n JTAG-porttiin.

Koska FPGA on integroitu piiri, FPGA-valmistaja voi päättää lisätä muita yleisesti käytettyjä integroituja piirikomponentteja. Näitä kiinteitä osia kutsutaan ytimiksi. Näitä ovat esimerkiksi Ethernet-ohjaimet tai jopa kokonainen prosessoriarkkitehtuuri. Eri markkinasegmenteillä, kuten puolustus-, lääkintä-, viestintä- ja robotiikka-aloilla, FPGA-valmistajat pyrkivät lisäämään arvokkaimman joukon näitä lisäytimiä.

Zoom


Sisäinen rakenne

FPGA:t perustuvat yleensä ohjelmoitaviin logiikkaelementteihin ja ohjelmoitaviin liitäntöihin. Yksi logiikkaelementtien rakennuspalikka on ohjelmoitava hakutaulukko (Lookup Table, LUT). LUT voidaan ohjelmoida tuottamaan mikä tahansa arvo, jolle on annettu tuloarvot. Näin LUT voidaan ohjelmoida minkä tahansa tyyppiseksi logiikaksi, jossa on sama määrä tuloja ja lähtöjä. Esimerkiksi 2-sisäänmenon ja 1 ulostulon LUT voidaan ohjelmoida jäljittelemään 2-sisäänmenon AND-, OR-, NAND-, NOR-, XOR- jne. logiikkaa. Tämän LUT:n ulostulo voidaan joko tallentaa rekisterin avulla tai kytkeä muiden LUT:ien tuloon. Ohjelmoitavan muxin avulla FPGA voidaan ohjelmoida valitsemaan rekisteröity tai rekisteröimätön lähtö. Tämä LUT:n, rekisterin ja muxin yhdistelmä on logiikkaelementin yleinen rakenne.

Näiden logiikkaelementtien yhdistämiseen toisiinsa käytetään läpivientitransistoreja. Transistori voidaan ohjelmoida joko kytkemään signaalin tai olemaan kytkemättä sitä, jolloin FPGA:lla on mahdollisuus kytkeä logiikkaelementtejä toisiinsa hyvin tarkasti. Jos esimerkiksi yhden logiikkaelementin ulostulo syöttää toisen logiikkaelementin sisääntuloa, läpivientitransistori voidaan ohjelmoida kytkemään nämä kaksi johdinta yhteen ja vastaamaan määritettyä logiikkaa. Logiikkaelementtien ja läpivientitransistorien välissä kääntäjä voi ottaa HDL:n laitteistokuvauksen, luoda logiikkaelementtien logiikan ja yhdistää ne toisiinsa läpivientitransistoreiden avulla.

Kysymyksiä ja vastauksia

K: Mikä on kenttäohjelmoitava porttiryhmä (FPGA)?


V: Kenttäohjelmoitava porttiryhmä (FPGA) on elektroninen komponentti, jota käytetään uudelleenmuokattavien digitaalisten piirien rakentamiseen. Sen toiminto on valmistushetkellä määrittelemätön, ja se on ohjelmoitava eli konfiguroitava uudelleen, ennen kuin sitä voidaan käyttää piirissä.

K: Miten FPGA eroaa loogisesta portista?


V: FPGA eroaa logiikkaportista, koska logiikkaportilla on kiinteä toiminto, kun taas FPGA:lla on valmistushetkellä määrittelemätön toiminto.

K: Minkä tyyppinen integroitu piiri on FPGA?


V: FPGA on integroitu piiri, joka kuuluu ohjelmoitavien logiikkalaitteiden eli PLD-laitteiden luokkaan.

K: Mitä haittoja FPGA:n käytössä on verrattuna muihin PLD-piireihin?


V: Yksi FPGA:iden käytön haittapuoli muihin PLD-piireihin verrattuna on se, että ne eivät muista suunnittelua, kun virta katkaistaan, joten ne tarvitsevat erillisen konfigurointimuistisirun, joka säilyttää suunnittelun. Ne ovat myös kalliimpia kuin muuntyyppiset PLD-piirit.

Kysymys: Miten FPGA:ta ohjelmoidaan?


V: FPGA:n ohjelmointiin insinöörit käyttävät Windows- tai Linux-ohjelmistoja, joilla he kehittävät VHDL:n ja Verilogin kaltaisilla laitteiston kuvauskielillä kirjoitettuja malleja. Tämän jälkeen ohjelmisto kääntää tämän koodin valituissa FGPA-piireissä käytettävissä oleviksi logiikkaelementeiksi ja sijoittaa ne place and route -prosesseilla, jolloin syntyy bittitiedosto, joka voidaan ohjelmoida joko konfiguraatiomuistiin tai suoraan itse FGPA-piireihin USB-ohjelmointilaitteella, joka on kytketty sen JTAG-porttiin.

K: Ovatko mikroprosessorit ja mikrokontrollerit samanlaisia kuin FGPA:t?


V: Ei, mikroprosessorit ja mikrokontrollerit eroavat FGPA:sta, koska perusmuodossaan se ei voi ajaa ohjelmistoja; vasta kun sille annetaan prosessoriarkkitehtuurin sisältävä konfiguraatio, se saa tämän kyvyn.

AlegsaOnline.com - 2020 / 2023 - License CC3