Kopioi artikkelin PDF-versio

Muuttuvat FPGA- ja CPLD-markkinat

FPGAaloitus

Ohjelmoitavien piirien käyttö lisääntyy kiihtyvällä vauhdilla, ja kilpailee voimakkaasti ASIC-piirien kanssa varsinkin pienehköissä, alle sadantuhannen portin siruissa. Jotkut ennustavat jopa ASIC-piirien katoa, mutta se on ehkä hieman hätiköityä. Tuotekehitys on kuitenkin kiivasta tällä alalla, joka on lähes kokonaan amerikkalaisten yritysten hallussa.

Ohjelmoitavat piirit ovat erittäin nopeasti kehittyvä mikropiiriteknologian alue, jossa jo vuosi on pitkä aika. Yrityksiä on ostettu ja myyty, ja usea suuri mikropiirivalmistaja on heittänyt pyyhkeen kehään todettuaan teknologian liian vaikeaksi tai muuten itselleen sopimattomaksi. AMD on myynyt Vantis-yhtiönsä Latticelle ja Philips CoolRunner-CPLD-piiriperheensä Xilinxille. Motorola on puolestaan kokonaan luopunut tästä alueesta, samalla kun koko sen puolijohdetoiminta on läpikäynyt perusteellisen uudelleenorganisoinnin uusien omistajien hoidossa. Intel myi jo muutamia vuosia sitten CPLD-piirinsä Alteralle. Jäljellä onkin vain yrityksiä, jotka muutamaa poikkeusta lukuunottamatta alun alkaen ovat keskittyneet yksinomaan FPGA- ja CPLD-piireihin.

Karu historia ei kuitenkaan ole pelästyttänyt kaikkia, vaan samalla on noussut esiin uusia, innovatiivisia pienyrityksiä pääasiassa Yhdysvalloissa. Monet näistä eivät menesty suurten valmistajien puristuksissa, kun taas parhaimmat päätyvät aikanaan jonkun suuremman valmistajan haltuun, hyvänä esimerkkinä Actelin viime vuonna ostama Gatefield. Mielenkiintoinen yksityiskohta on se, että suurimmillakaan ohjelmoitavien piirien yrityksillä ei ole omaa puolijohdetehdasta, vaan lähes kaikkien piirit valmistetaan alihankintana muun muassa Siemensin ja IBM:n tehtailla. Poikkeuksen muodostaa Lucent, jolla on FPGA-piirien lisäksi paljon muutakin mikropiirituotantoa.

Kaksi perusarkkitehtuuria

Ohjelmoitavat piirit jaetaan perinteisesti kahteen pääryhmään, CPLD-piirit (Complex Programmable Logic Device) ja FPGA-piirit (Field-Programmable Gate Array). Nimitykset ovat historiallista perua ja osin suorastaan harhaanjohtavia. Vaikka CPLD-piirien nimessä esiintyykin sana "complex", niin pääsääntöisesti CPLD-piirit ovat yksinkertaisempia kuin FPGA-piirit.

Kummassakin tapauksessa piirit muodostuvat erilaisista loogisista elementeistä ja niiden välisistä yhdysjohdoista. Loogiset elementit ovat porttipiirejä ja kiikkuja, kuten digitaalipiireissä yleensäkin. Yhdysjohdot ja loogiset elementit ovat piirissä kiinteitä eikä koostumusta tai lukumäärää voi jälkikäteen mitenkään ohjelmoida. Ohjelmoitavuus on nimenomaan elementtien välisissä liitännöissä. Piirissä on lukuisia, jopa miljoonia kytkimiä, joiden asento voidaan asettaa, yleensä jopa toistuvasti. Siten piirin peruselementeistä voidaan muodostaa lukematon määrä erilaisia toiminnallisia kokonaisuuksia.

Periaatteessa kummankin perusarkkitehtuurin ainoa ero on siinä, kuinka loogiset elementit on ryhmitelty piirin sisällä. CPLD-piireissä elementit on ryhmitelty suuremmiksi kokonaisuuksiksi eli makrosoluiksi, kun taas FPGA-piirit ovat suhteellisen hienojakoisia eli muodostuvat pienemmistä, jopa vain muutaman portin perusyksiköistä. Siten CPLD-piirit soveltuvat parhaiten melko säännöllisiin piirirakenteisiin, kuten rekistereihin, laskureihin ja dekoodereihin. FPGA-piireillä taas on helpompi toteuttaa hajanaisempia ja epäsäännöllisempiä rakenteita. FPGA-piirit ovat rakenteeltaan varsin lähellä yksinkertaisimmissa ASIC-piireissä suosittua porttimatriisirakennetta.

Perinteisesti CPLD-piirien tiheys ja koko ei ole vetänyt vertoja FPGA-piireille, joista suurimmat ovat olleet porttimäärältään monikymmenkertaisia suurimpiin CPLD-piireihin verrattuna. Viime aikoina kuitenkin muutamat CPLD-piirivalmistajat ovat esitelleet todella suuria piirejä, etunenässä Cypressin Delta39K-perhe, jonka suurin piiri käsittää yli puoli miljoonaa porttia. Tämä on suurempi kuin useimmat FPGA-piirit, ja vain Xilinxin Virtex-perheessä ja Alteran Apex-perheessä löytyy suurempia, jopa kahden miljoonan portin FPGA-piirejä.

SRAM-teknologia suosituinta

Ohjelmoitavien piirien kytkimet voidaan toteuttaa usealla eri menetelmällä, joilla kaikilla on omat hyvät ja huonot puolensa. FPGA-piireissä selvästi suosituin kytkintyyppi on MOS-transistori, jota ohjataan SRAM-muistisolulla. SRAM-muistin sisältö katoaa aina kun jännitteet kytketään pois päältä, ja FPGA-piiri täytyy siksi "ladata" uudelleen joka käynnistyksen yhteydessä. Ohjelmointitiedot tallennetaan usein sarjaliitännällä varustettuun EEPROM-piiriin, josta FPGA-piiri ne automaattisesti imuroi, kun siihen kytketään jännitteet.

Tästä kaikesta on sekä hyötyä että haittaa. Hyöty on siinä, että piirit voidaan helposti ohjelmoida piirilevyllä eikä piirien irrotusta tai erityistä ohjelmointilaitetta tarvita. Muutamien valmistajien piirit on jopa suunniteltu dynaamiseen ohjelmointiin, missä osa piiristä ohjelmoidaan uudelleen toiminnan aikana. Tämä ominaisuus antaa mahdollisuuden kehittää aivan uudenlaisia adaptiivisia eli mukautuvia laskenta-arkkitehtuureja. Toisaalta erillinen muistipiiri maksaa rahaa, ja piiri ei ole heti valmis toimintaan, kun jännitteet kytketään, vaan vasta kun lataus on suoritettu. Suurissa piireissä tähän kuluva aika voi olla sekuntienkin suuruusluokkaa, mikä on joissakin sovelluksissa aivan liian hidasta.

Toinen perinteinen FPGA-piirien kytkinrakenne perustuu sulakkeen käänteistoimintoon eli antisulakkeeseen. Kukin kytkin on aluksi auki-tilassa ja antisulakkeen eriste estää virran kulun. Ohjelmoitaessa jännitepulssi läpäisee eristeen, jolloin kytkin menee kiinni ja antisulake muuttuu johtavaksi. Muutos on pysyvä, ja piirit ovat siten kertaohjelmoitavia. Ulkoista muistipiiriä ei tarvita ja piirit ovat aina toimintavalmiita.

Antisulake on hyvin pienikokoinen varsinkin SRAM-pohjaiseen kytkimeen verrattuna, siksi tietynkokoiseen siruun mahtuu enemmän antisulakekytkimiä kuin mitään muuta kytkintyyppiä. Siten antisulaketyyppiset FPGA-piirit ovat yleensä kaikkein hienojakoisimpia. Antisulakepiireillä on myös yksi erikoislaatuinen etu muihin piirityyppeihin verrattuna: ne kestävät paremmin säteilyä. Tämä on erityisen tärkeää satelliiteissa, joiden ympäristö on huomattavasti "säteilevämpää" kuin maanpäällisissä olosuhteissa. Säteily pilaa vääjäämättä jokaisen satelliitin, mutta antisulakepiirejä käyttäen saadaan pitempi elinikä.

Toisaalta antisulaketeknologia on valmistusteknisesti kaikkein vaikeinta. Kertaohjelmoitavuudesta johtuen piirien täydellinen toimivuuden varmistus on tuotannossa mahdotonta. Niinpä valmistajia on vain kaksi, Actel ja QuickLogic. SRAM-teknologia on taas kaikkein helpointa, koska silloin koko piiri voidaan valmistaa samalla, helposti hallittavalla CMOS-prosessilla.

Antisulakkeen kertaohjelmoitavasta luonteesta johtuen piirien kulutus voi olla melko suurta tuotekehityksen protovaiheessa eikä laitteita yleensä voi päivittää kentällä, vaan ne on palautettava tehtaaseen.

Ohjelmoitava kytkin voidaan toteuttaa myös EEPROM- tai flash-transistorilla. Tämä on yleinen käytäntö CPLD-piireissä, mutta FPGA-piireissä vain Gatefieldin alunperin kehittämä, nykyään Actelin omistama ProASIC-FPGA-piiriperhe on toteutettu flash-tyyppisillä kytkimillä. Tässä menetelmässä yhdistyvät SRAM- ja antisulaketeknologian edut. Kytkimet ovat pienikokoisia, ulkoista muistia ei tarvita, ja piiri voidaan tyhjentää ja ohjelmoida uudelleen piirilevyllä. Flash-teknologian ja CMOS-teknologian yhdistäminen samalle sirulle on valitettavasti sangen hankalaa, mistä syystä valmistajia on ainakin toistaiseksi vain kaksi, nimittäin Actel ja Cypress.

Kaksi on kauneinta

Ohjelmoitavien piirien kaksi suurinta valmistajaa ovat selvästi Altera ja Xilinx, jotka yhdessä hallitsevat yli puolta alan markkinoista. Yritykset kilpailevat rinta rinnan siitä, kenellä on suurimmat, nopeimmat ja monipuolisimmat piirit. Piirien koko on kasvanut jo kahteen miljoonaan porttiin ja porttiviiveet kutistuneet neljän nanosekunnin suuruusluokkaan. Kummallakin valmistajalla on laaja ja monipuolinen piirivalikoima, joka kattaa CPLD-piirit ja SRAM-tyyppiset FPGA-piirit. Xilinxillä on lippulaivana Virtex-perhe ja Alteralla taas APEX-perhe.

Xilinx on hiljattain ostanut Philipsiltä erittäin vähän tehoa kuluttavan CoolRunner-nimisen CPLD-piiriperheen. Tästä perheestä löytyy suuria, lähes tuhannen makrosolun piirejä, esimerkiksi 960 makrosolun XCR3960. Tämä piiri on muutenkin erikoinen siinä, että vastoin yleistä CPLD-piirien käytäntöä piirin ohjelmointi perustuu SRAM-kytkimiin eikä EEPROM-kytkimiin.

Kahden suuren jälkeen hyvänä kolmosena tulee Lattice, varsinkin kun se osti AMD:n tytäryhtiön Vantiksen, jolla oli varsin kattava valikoima CPLD-piirejä (MACH-piiriperheet) ja yksi FPGA-perhe (VF1). Latticella oli jo ennestään laaja ja monipuolinen CPLD-valikoima, ja yritys on ollut edelläkävijänä kehittämässä CPLD-piirien sähköistä tyhjennystä ja uudelleenohjelmointia suoraan piirilevyllä (ISP eli In-System Programming). Muutkin CPLD-valmistajat kuten Altera, Cypress ja Xilinx ovat sen jälkeen omaksuneet saman käytännön.

Ohjelmoitavissa piireissä on mukana vain kaksi yritystä, joilla on tarjota muitakin mikropiirejä. Yksi näistä on Lucent, entinen AT&T:n mikropiiriosasto, jolla on myös hyvin laaja valikoima tietoliikennepiirejä. FPGA-piireissä Lucent aloitti aikoinaan Xilinxin kakkosvalmistajana, mutta on sen jälkeen kehittänyt oman ORCA-perheensä. Nämä ovat SRAM-tyyppisiä FPGA-piirejä.

Toinen, ei pelkästään ohjelmoitaviin piireihin keskittynyt valmistaja, on Lucentia paljon pienempi Cypress, joka valmistaa nopeita SRAM-piirejä ja FIFO-muisteja, USB-mikro-ohjaimia, kellopiirejä sekä CPLD-piirejä. Cypress aloitti CPLD-piireissä Alteran kumppanina, mutta on sen jälkeen kehittänyt omia piirejä: EEPROM-pohjaisen Ultra 37000 -perheen ja flash-pohjaisen UltraLogic Flash370i -perheen.

Cypress on hiljattain ostanut Alteran MAX5000-perheen, joka Alteralla on sieltä vanhemmasta päästä, mutta edelleen varsin suosittu suunnittelijoiden parissa. Cypressin lippulaiva on kuitenkin uusi, flash-pohjainen Delta39K-perhe, johon kuuluu maailman ylivoimaisesti suurin CPLD-piiri, peräti 5376 makrosolua eli lähes puoli miljoonaa porttia käsittävä Delta39K350. Piirejä ei tosin tätä kirjoitettaessa vielä ollut saatavilla.

Aivan oman kategoriansa muodostavat antisulakepiirien valmistajat QuickLogic ja Actel, joka näistä kahdesta on selvästi suurempi. Actelin piirivalikoima on myös laajempi ja monipuolisempi, varsinkin sen jälkeen kun Actel osti Gatefieldin toiminnot. Gatefield oli kehittänyt teknisesti erittäin edistyksellisen flash-pohjaisen FPGA-piiriperheen, mutta kuten pienyrityksille usein käy, markkinointiin ei oikein riittänyt resursseja. Pelastavana enkelinä tuli silloin paikalle Actel, joka aiemmin oli menestynyt oikein hyvin omilla antisulakepiireillään.

Actelin ProASIC-nimellä markkinoimat piirit ovat erittäin hienojakoisia FPGA-piirejä, jotka nimensä mukaisesti ovat rakenteeltaan lähimpänä varsinaisia ASIC-piirejä. Tällä pyritään siihen, että toteutukset voidaan mahdollisimman kivuttomasti siirtää FPGA-piireistä ASIC-piireihin, ilman laajamittaista uudelleensuunnittelua ja testausta. Normaalisti varsinkin SRAM-pohjaiset FPGA-piirit poikkeavat siinä määrin rakenteeltaan ASIC-piireistä, että siirtyminen voi olla käytännössä mahdotonta, ja toteutus joudutaan suunnittelemaan alusta alkaen uudelleen.

Uusia ominaisuuksia

Kehityksen myötä varsinkin FPGA-piireihin on tullut joukko uusia, ennennäkemättömiä ominaisuuksia. Liitäntänastojen signaalitasot ovat tavattomasti monipuolistuneet. Alteran APEX, Xilinxin Virtex ja DynaChipin piirit tarjoavat peräti parikymmentä valinnaista signaalimuotoa kullekin liitäntänastalle. Näihin sisältyvät tietenkin normaalit CMOS-logiikkatasot, mutta myös esimerkiksi LVDS (Low Voltage Differential Signalling) ja GTL (Gunning Transceiver Logic).

Xilinxin Virtex-piiriperheessä on erikoisuutena liitäntä nopeaan ulkoiseen muistiin, joka voi olla synkroninen DRAM tai staattinen SRAM useassa eri muodossa. Muissakin piireissä voidaan tietenkin ohjelmoida osa piiristä niin, että saadaan muistiliitäntä, mutta Virtexissä se on valmiina. Monessa sovelluksessa tarvitaan erittäin runsaasti muistia, ja ulkoinen muisti on yleensä paljon halvempi kuin piirin sisäinen SRAM-muisti, jota kaikkien valmistajien piireissä sinällään on tarjolla. PC-sovellukset ajavat voimakkaasti eteenpäin nopeiden, suuren kapasiteetin omaavien muistipiirien ja muistimoduulien kehitystä. Valtavien volyymien takia näiden muistien hinta on aivan lyömätön, ja niitä on siten järkevää soveltaa myös FPGA-sovelluksissa.

Kellosignaalit ovat sangen kriittinen yksityiskohta nopeissa digitaalipiireissä. Tästä syystä monet valmistajat, muun muassa Altera APEX-piireissään, ovat lisänneet sirulle vaihelukkopiirejä, joiden avulla voidaan esimerkiksi kertoa ulkoisen kellosignaalin taajuus sirun sisällä. Tämä helpottaa laitesuunnittelun EMC-ongelmia. kun suurimmat taajuudet voidaan pitää piirien sisällä.

Dynaaminen ohjelmointi

Uudelleenkonfiguroitavat laskentayksiköt ovat tämän hetken kuuma aihe tietokonearkkitehtuureissa. Niitä on useita tyyppejä, joista yksi hyvin mielenkiintoinen on adaptiivinen eli mukautuva laitteisto. Siinä laitteen ominaisuudet muuttuvat dynaamisesti tarpeen ja tilanteen mukaan. Tämä on mahdollista vain, mikäli laite toteutetaan dynaamisesti ohjelmoitavilla piireillä.

SRAM-pohjaiset FPGA-piirit ovat sinällään uudelleenohjelmoitavia, samoin kuin useimmat CPLD-piirit. Piirejä ei kuitenkaan yleisesti ole suunniteltu toistuvaan eikä varsinkaan osittaiseen uudelleenohjelmointiin, mikä taas on välttämätöntä adaptiivisissa laitteissa. Useimmat FPGA-piirit on ohjelmoitava kerralla kokonaisuudessaan, ja ohjelmointiajat ovat liian pitkiä adaptiivisiin sovelluksiin.

Muutamat yritykset tarjoavat kuitenkin nimenomaan dynaamisesti uudelleenohjelmoitavia FPGA-piirejä. Näitä ovat Atmelin Cache Logic -nimikkeellä markkinoimat piirit sekä uuden yrittäjän DynaChipin omaperäiset piirit. Muista valmistajista ainoastaan Xilinxin Virtex-perhe tukee osittaista uudelleenohjelmointia.

Atmelilla on hallussaan teknologia, joka yhdistää flash-muistin ja CMOS-logiikan samalle sirulle, ja tätä Atmel on hyödyntänyt varsinkin flash-muistilla varustetuissa mikro-ohjaimissa, joita on tarjolla kolme perhettä, 8051-yhteensopivat, ARM-pohjaiset sekä alunperin Norjassa kehitetty sangen omaperäinen, mutta hyvin mielenkiintoinen AVR. Ohjelmoitavissa piireissä Atmel toimii kakkosvalmistajana Alteran EPM7000-CPLD-piireille ja valmistaa myös omia pienempiä CPLD-piirejä. Atmelilla on samalla myös omia SRAM-pohjaisia FPGA-piirejä, AT40K-perhe ja pienempi AT6000-perhe. Suurin piiri AT40K40 käsittää noin neljäkymmentätuhatta porttia. Atmelin FPGA-piirit voidaan ohjelmoida osittain uudestaan samalla kun muu osa piiristä toimii normaalisti.

Amerikkalainen pienyritys DynaChip tarjoaa kolmea SRAM-pohjaista FPGA-perhettä, DL5000, DY6000 ja DY8000. Suurin piiri DY8105 käsittää hieman yli satatuhatta porttia. DY6000- ja DY8000-perheet sallivat osittaisen uudelleenkonfiguroinnin samalla kun piirin muu osa jatkaa toimintaansa. Mielenkiintoinen piirre näissä piireissä on tavattoman laaja valikoima liitäntäsignaalien logiikkatasoja. Jokainen liitäntänasta voidaan erikseen ohjelmoida käyttämään erilaisia CMOS-logikkatasoja, erilaisia GTL-logiikkatasoja, differentiaalisia ECL- ja LVDS-logiikkatasoja ja useita muita.

Järjestelmäpiirit

Nykyään puhutaan paljon yhden sirun järjestelmistä (SOC, System-On-Chip), vaikka tähän tavoitteeseen onkin päästy vain muutamassa erikoistapauksessa. Sirun lisäksi tarvitaan nimittäin aina myös joukko passiivikomponentteja ja liittimiä, usein myös teholähde, näppäimistö ja näyttö. Tästä huolimatta suuntaus on selvästi kohti lisääntyvää integraatiota, ja monissa tapauksissa laitteen päätoiminnot on todella voitu puristaa yhteen siruun.

Yhden tai useamman sirun järjestelmät on usein toteutettu ASIC-piireillä. Ohjelmoitaviin piireihin verrattuna tämän ratkaisun hyviä puolia ovat tehokkaampi piin hyväksikäyttö ja pienempi tehonkulutus, kun sirulla on mahdollisimman vähän ylimääräisiä ja tarpeettomia elementtejä. Haittoja puolestaan ovat suuri aloituskustannus ja melko pitkä toimitusaika. Ohjelmoitavien piirien suuri etu on joustavuus, kun piirin kytkentöjä voidaan jälkikäteen muuttaa jo valmistetussa laitteessa. Tämä antaa uusia ja mielenkiintoisia mahdollisuuksia varsinkin ylläpidon ja päivitysten suhteen.

Nyt ei tietenkään ole kaukana ajatus yhdistää ASIC-piirien ja ohjelmoitavien piirien hyvät puolet samaan siruun. Silloin osa piiristä toteuttaa jonkin kiinteän toiminnon, ja toinen osa taas on ohjelmoitavissa. Tässä menetetään osa joustavuudesta, mutta siitä ei välttämättä ole tavattomasti haittaa mikäli kiinteä toiminto on omalta osaltaan yleiskäyttöinen ja hyödyllinen. Muutamat ohjelmoitavien piirien valmistajat tarjoavatkin tällaisia järjestelmäpiirejä, ja nimenomaan tähän rakoon on syntynyt muutama aivan uusi pienyritys.

Yleinen, paljon käytetty toiminto on PCI-väyläliitäntä. PCI-väylän ajoitusvaatimukset ovat sangen tiukat, ja väyläliitännän toteuttaminen "pehmotyyppisenä" lohkona ei ole lainkaan yksinkertaista. Varsinkin toteutuksen verifiointi vaatii paljon enemmän asiantuntemusta ja kokemusta kuin esimerkiksi vaatimattoman osoitedekooderin toteutus CPLD-piirillä. FPGA-valmistajat QuickLogic ja Lucent tarjoavatkin piirejä, joissa on valmiiksi toteutettu PCI-liitäntä ja lisäksi FPGA-lohko, jonka avulla suunnittelija voi lisätä omia virityksiään. Lucentin piiri on SRAM-pohjainen OR3TP12, jossa PCI-liitännän lisäksi on noin kuusikymmentätuhatta porttia käsittävä ohjelmoitava osa. QuickLogic taas tarjoaa QuickPCI-nimikkeellä useita antisulaketyyppisiä, kertaohjelmoitavia piirejä, joista suurimmassa piirissä QL5262 on noin satatuhatta porttia. Kummankin valmistajan piireillä voidaan toteuttaa 64 bitit 66 MHz PCI-liitäntä.

PCI-liitännän lisäksi QuickLogicilla on tarjolla QuickRAM-piiriperhe, jossa suurimmassa piirissä on noin yhdeksänkymmentätuhatta porttia käsittävä FPGA-osa yhdistettynä yhteensä 25 kilotavua käsittävään RAM-osaan. Tämä ei toisaalta ole enää kovinkaan eksoottista, sillä lähes kaikkien valmistajien piireissä on tätä nykyä jonkin verran RAM-lohkoja.

Prosessori ja FPGA yhdessä

PCI-liitännän ohella toinen paljon käytetty vakiotoiminto sovelluksessa kuin sovelluksessa on mikroprosessori. Niinpä muutamat valmistajat ovat yhdistäneet mikro-ohjaimen ja FPGA-piirin samalle sirulle. Pioneerina on tässä toiminut amerikkalainen pienyritys Triscend, jonka E5-piirissä on nopea kahdeksanbittinen 8051-yhteensopiva suoritin ja noin 40000 portin FPGA-piiri. Suoritinlohkoon sisältyy kaksikanavainen DMA-ohjain, joita ei yleensä näe erillisissä 51-suorittimissa. Kolme ajastinta sekä UART-sarjaliitäntä kuuluvat myös asiaan, sekä 64 kilotavua RAM-muistia. Piirissä on JTAG-testausliitäntä ja siinä on muutenkin kiinnitetty huomiota ohjelmien ja laitteiston testaukseen.

Toinen tämän sektorin yrittäjä on Atmel, joka on jo melko pitkään valmistanut SRAM-pohjaisia FPGA-piirejä sekä flash-muistilla varustettuja mikro-ohjaimia. Nyt Atmel on yhdistänyt samalle sirulle FPGA-lohkon ja kahdeksanbittisen AVR-suorittimen nimikkeellä FPSLIC eli Field Programmable System Level Integrated Circuit. Tämä on mielenkiintoinen yhdistelmä jo yksin siitä syystä että AVR on selvästi tehokkaampi ja modernimpi suoritin kuin jo sangen ikäloppu 8051. Sulautetuissa sovelluksissa 51-suorittimet ovat tosin hieman samassa asemassa kuin Intelin x86-arkkitehtuuri PC-sovelluksissa. 8051 on yhä edelleen tavattoman suosittu ja laajamittaisessa käytössä, koska siitä on tarjolla erittäin laaja valikoima erilaisia versioita, samoin kuin ohjelmistoja ja ohjelmointityökaluja.

Vaikka amerikkalaiset yritykset ovatkin ohjelmoitavissa piireissä täysin dominoivia, niin kyllä Euroopassakin silti uskalletaan yrittää. Espanjalainen SIDSA on esitellyt järjestelmäpiirin nimikkeellä FIPSOC eli Field-Programmable System-On-Chip. SIDSA uskoo Triscendin tapaan 8051-yhteensopivuuteen ja lisäksi sirulla on pienehkö FPGA-lohko. Ainutlaatuista FIPSOC-piirissä on kuitenkin se, että siinä on myös ohjelmoitavia analogialohkoja. Tarkempia tietoja ei tätä kirjoitettaessa kuitenkaan ollut saatavissa.

Järjestelmäpiireissä on uutena yrittäjänä pieni amerikkalaisyritys Chameleon, joka sekin lupailee jonkinlaista prosessorin ja FPGA-piirin yhdistelmää. Tarkemmat tiedot kuitenkin puuttuvat tällä hetkellä. Myös Motorola tarjosi aikanaan tehokkaan prosessorin ja FPGA-piirin yhdistelmää, mutta tämä on valitettavasti menneen talven lumia Motorolan luovuttua kokonaan ohjelmoitavien piirien kehittelystä.

Aiheesta enemmän

Yleistä tietoa:

Progr. Logic Jumpstation, uutiset ja linkit: www.optimagic.com/index.shtml

ChipCenter, uutisia ja linkkejä&: www.chipcenter.com/pld/main.html

Ei-kaupallinen linkkisivu: www.ece.tntech.edu/412S98/FPGA_links.htm

Piirivalmistajat:

Lattice/Vantis: www.latticesemi.com

Quicklogic: www.quicklogic.com

Actel: www.actel.com

Altera http://www.altera.com

Xilinx http://www.xilinx.com

DynaChip http://www.dynachip.com

Lucent Technologies: www.lucent.com/micro/fpga

Cypress http://www.cypress.com

Atmel http://www.atmel.com

Triscend: http://www.triscend.com

Chameleon Systems: www.chameleonsystems.com

Suunnittelutyökalut:

VHDL-simulaattori: www.freehdl.seul.org

Tilakaaviot VHDL-koodiksi: www.servtech.com/~tcmayo/things/computers/programming/

Lohkokaaviot VHDL-koodiksi: www.atl.external.lmco.com/rassp/vgui/

VHDL-analysaattori: www-dt.e-technik.uni-dortmund.de/~mvo/vaul/

Verilog-kehitysympäristö: www.geocities.com/SiliconValley/Orchard/8284/index.html

Verilog-simulaattori: http://icarus.com/eda/verilog

Elektroniikan suunnittelujärjestelmä http://www.geda.seul.org

Lucentin suunnittelutyökalut online http://www.reflexnetworks.com


FPGA-suunnitteluprosessin kulku

Suunnitteluprosessi muodostuu karkeasti kolmesta vaiheesta. Alkupäässä on tarkoitus kuvata suunniteltavan piirin rakenne. Elektroniikan perinteisiä kuvausmenetelmiä on piirikaavio, joka näyttää komponentit piirrosmerkkeinä ja niiden väliset yhdysjohdot. Samaa menetelmää käytetään myös mikropiirien rakenteen kuvaukseen. Etu on siinä, että periaate ja piirrosmerkit ovat tuttuja jokaiselle digitaalitekniikkaa opiskelleelle.

Modernimpi, mutta ei välttämättä aina parempi menetelmä on tekstimuotoinen kuvaus jollakin kuvauskielellä. Laajassa käytössä on kaksi standardoitua kuvauskieltä, VHDL ja Verilog. Yksinkertaisuutensa vuoksi ovat sangen suosittuja myös Data I/O:n ja Alteran omat kuvauskielet Abel ja AHDL, vaikka eivät virallisia standardeja olekaan.

Kuvauskielet muistuttavat lauserakenteiltaan suuresti tavanomaisia ohjelmointikieliä, mutta edellyttävät kuitenkin suunnittelijalta varsin erilaista ajattelutapaa. Kielellinen kuvaus voi olla joko toiminnallista (functional) tai rakenteellista (RTL eli Register Transfer Level), kun taas piirikaavio on aina pelkästään rakenteellinen kuvaus. Tietenkin piirikaavio samalla implisiittisesti määrittelee myös toiminnan, mutta toiminnalliset yksityiskohdat eivät yleensä kovin helposti avaudu monimutkaisesta piirikaaviosta.

Kuvauksen jälkeen seuraa kaksivaiheinen jatkoprosessi, jossa ensin suoritetaan logiikkasynteesi, mikä paljolti vastaa tietokoneohjelman kääntämistä binäärikoodiksi. Tällä hetkellä logiikkasynteesi useimmiten tuottaa paremman eli "tiiviimmän" lopputuloksen rakenteellisesta kuvauksesta, ja kaikkein parhaan piirikaaviokuvauksesta lähtien. Toisaalta, isoissa ja monimutkaisissa järjestelmissä piirikaavio on helposti epäkäytännöllisen monimutkainen ja epähavainnollinen, eikä siitä helposti aukea piirin toiminta.

Synteesin tuloksena saadaan kytkentälista (netlist), joka sitten "sovitetaan" kohdepiiriin. FPGA-piireissä käytetään termiä "sijoittelu ja reititys" (place and route), mikä puolestaan on hyvin lähellä piirilevyn suunnittelua. Sovittelun tuloksena saadaan standardimuotoinen ohjelmointitiedosto, joka ladataan ohjelmoitavaan piiriin. Sen jälkeen piiri onkin valmis.

ASIC-piireissä enin osa suunnittelijan ajasta menee lopputuloksen varmistamiseen eli verifiointiin jo ennen kuin yhtään piiriä on valmistettu. Mikropiirien valmistusmaskit ovat niin kalliita, että virheisiin ei ole varaa. Verifiointi voi tietenkin tapahtua vain simuloimalla, ja kuvauskielten alkuperäinen päätarkoitus olikin juuri simuloinnin tehostaminen. Kertaohjelmoitavat antisulake-FPGA-piirit ovat tässä suhteessa melko samassa asemassa kuin ASIC-piirit, mutta muiden ohjelmoitavien piirien suuri etu on siinä, että toiminnan moitteettomuus voidaan testata myös prototyypissä ja sen jälkeen nopeasti tehdä tarvittavat muutokset samaan piiriin. Siksi FPGA-piirejä käytetään paljon prototyyppien rakentamiseen, vaikka tuotannossa olisikin tarkoitus käyttää ASIC-piirejä.