FPGA
Käyttö ja ominaisuudet

FPGA-piirejä verrataan usein sovelluskohtaisiin mikropiireihin (ASIC ja järjestelmäpiiri (SoC, System on Chip)), sillä niiden sovellusalueet ovat usein samoja. FPGA-piirien suunnittelu poikkeaa huomattavasti esimerkiksi ASIC-piirien suunnittelusta. FPGA-piiriin verrattuna ASIC/SoC kuluttaa yleensä vähemmän tehoa ja sitä kautta lämpenee vähemmän, koska kaikki ylimääräiset liitännät ja elementit on karsittu pois. Yleensä FPGA-toteutus vie enintään n. 80% käytettävistä toiminnoista, mikä mahdollistaa toimintojen muuttamisen suunnittelun loppuvaiheessa esimerkiksi standardoinnin kehittyessä tai asiakastarpeiden muuttuessa. Vaikka ASIC/SoC on yleensä pienikokoisempi ja maksaa suurissa erissä vähemmän kuin saman toiminnalisuuden FPGA, suunnittelun ja koepiirien tuottaminen on huomattavsti nopeampaa. Näistä syistä sulautettujen laitteistojen tuotekehityksessä alkuvaiheessa käytetään FPGA-piirejä ja siirrytään ASIC/SoC-piirien käyttöön, kun tuotantomäärät kasvavat. Koska siirtyminen ASIC/SoC-piireihin ei tapahdu ilman uudelleen suunnittelua, valmistusta ja testausta, on siirtymisajankohta FPGAsta ASICiin/SoCiin määriteltävä siten, että ASIC/SoC-piirien mahdolistavat suorituskykylisäykset ja taloudellinen tehokkuus toteutuvat käytännössä. On huomattava, että siirtyminen FPGA:sta ASIC/SoC-piiriin tai joskus -piireihin vaatii tavallisimmin muutoksia myös useisiin muihinkin järjestelmän osiin kuten mm. tehontuottoon/käyttöjännitteisiin, kellotukseen, järjestelmäpiirilevyyn, testattavuuteen, mahdollisesti tarvittavaan salaukseen ja jopa tuotteen mekaaniseen ratkaisuun.
Ennen FPGA-piirien suunnittelua on valittava soveltuva valmistaja ja tuoteperhe. Tärkeimpiä valintakriteereitä ovat
Suorituskykyvaatimukset (nopeus, tehonkulutus)
Ulkoisten liityntöjen määrä, liityntävaatimukset (LVCMOS, LVDS, LVTTL, HSTL jne.) ja niiden yleiskäyttöisyys
Muisti(e)n (SRAM, OTP, NVM jne.) koko
Kehitysympäristön (ohjelmisto ja laitteisto) saatavuus,ja valmistajan tuki yleisesti ja eriyisesti standardiliityntöjen osalta: ovatko liitynnät (esim I2C, SPI jne) saatavana kiinteinä (hard macro) vai SW-muodossa (soft macro)
Mahdollisten maksullisten (ohjelmisto)lisenssien välttämättömyys kehitysvaiheessa ja tuotannollistamisessa joskus jopa kolmannelta osapuolelta
Fyysinen koko ja piirin/piirien eri kotelontimahdollisuudet
Valmistajan kyky tuottaa piirejä mahdollisesti kasvavissa määrin taloudellisesti
Kovetus-/jäädytysmahdollisuudet (engl. hardening/freezing) eli siirtyminen suorituskyvyltään vähintään vastaavaan/lopulliseen ASIC/SoC-piiriin, mikäli on odotettavissa tuotantomäärien kasvua. Muutamat FPGA-piirivalmistajat ovat solmineet sopimuksia piivalimoiden kanssa varmistaakseen joustavan siirtymisen FPGAsta ASICiin/SoCiin, jos omaa valmistuskapasiteettia ei ole tai se ei riitä ASIC/SoC-tuotantomääriin
Jos kyseessä on FPGA-SoC-piiri, mitä valmiita ytimiä/IP-lohkoja on käytetty piiripohjassa, ja miten niiden suorituskyky ja siirtäminen ASICin osaksi käytännössä varmistetaan (ml. käyttölisenssit)
Kyseessä olevan FPGA:n/-piiriperheen/-valmistajan oma ja mahdollinen käyttäjä-/harrastajayhteisön tuki
Sekasignaali-FPGA-piiriä valittaessa on lisäksi selvitettävä ovatko piirin mahdollisten muunninten suorituskyky riittävä ja mitä muita analogisia/analogis-digitaalisia lohkoja (esim. lämpötilamittaus, kosketusanturien kontrollointi jne.) tai langattomia yhteys- (esim. bluetooth) ja salauslohkoja on saatavilla integroituna FPGA:han.
Kun laitteistokuvauskielellä kirjoitettu malli on syntetisoitu, se voidaan suoraan ladata piirille ja aloittaa käyttö siinä missä ASIC-piirin kanssa alotettaisiin vasta piirin valmistukseen tähtäävä suunnittelutyö. Kriittisin vaihe FPGA:n suunnittelussa on yleensä ajoitusten simulointi,ja hyväksyminen (engl. timing closure). Kun laitteistokuvaus ajoituksineen ja hyväksytty,laitteistokuvaus voidaan tallettaa pieneen oheispiiriin/muistiin, josta se automaattisesti syötetään FPGA-piiriin aina kun laite käynnistetään. Heti tämän jälkeen itse FPGA aloittaa toimintansa.
FPGA-piirien kasvaessa toteutuvan ajoituksen testaaminen saattaa kerralla koko piirille olla vaativa tehtävä. Siksi on kehitetty FPGA-piirejä, joissa ajoituksen hyväksyminen voidaan tehdä osittain lohkoille, joita kutsutaan verkkoalueiksi (engl. NoC, Network on chip), ja näin nopeuttaa ajoituksen testausta ja hallintaa.
Mallissa havaittujen suunnitteluvirheiden korjaus on helppoa vaatiessaan vain uuden syntetisoinnin ja piirin uudelleenohjelmoinnin. Tämän takia FPGA-piirit sopivat erityisesti ASIC-piirien prototyypitykseen, sekä laiteajuri- ja firmwarekehitykseen siksi ajaksi ennen kuin varsinainen ASIC-piiri on valmis. FPGA-piirejä käytetään myös tilanteissa joissa piirin sisältävää laitetta valmistetaan pieni kappalemäärä jolloin kappalehinnalla ei ole suurta merkitystä, kokoa ja tehonkulutusta ei tarvitse minimoida, logiikan uudelleenohjelmoitavuus ja virheiden korjaus tuotteen toimituksen jälkeen on välttämätöntä, tai laite halutaan mahdollisimman nopeasti markkinoille.
Piirin toiminnan suunnitteluun jokainen FPGA-piirin valmistaja tarjoaa oman alustakohtaisen ohjelmiston. Yleensä ohjelmisto on saatavilla Windows- ja Linux-käyttöjärjestelmille ja se on ominaisuuksiltaan erittäin monipuolinen. Arvokkaiden yrityslisenssien lisäksi suunnitteluohjelmistoista julkaistaan yleensä myös pieniä rajoituksia sisältävä ilmaisversio.
FPGA-piirien ympärille on syntynyt myös järjestelmävalmistajia, jotka ovat valmiiksi integroineet FPGA-piirin oheistoimintoineen valmiille piirilevylle ja mähdollistavat tuotekehityksen nopean aloituksen.