Anonim

Miksi prototyyppi?

Koska monet odottamattomat ohjelmistovirheet liittyvät käyttöjärjestelmän, sovellusten ja laitteistojen integroinnin monimutkaisuuteen, nopeuden FPGA-prototyyppi sallii monien ylimääräisten kuukausien tiukan ohjelmistotestauksen kriittisessä integraatiovaiheessa. Tämä etu moninkertaistuu jälleen, jos FPGA-prototyypin klooneja levitetään moniin ohjelmistolaboratorioihin. Korkealaatuisten, hyllystä saatavien FPGA-levyjen saatavuus tekevät tästä kysymyksen pikemminkin talouden kuin ajan suhteen.

Ohjelmiston voi antaa suuren määrän potentiaalisia käyttäjiä, jotka löytävät varmasti monia tapoja lukita käyttöjärjestelmä, kaataa sovellus tai yleensä tehdä asioita, joita ohjelmistosuunnittelija ei ole koskaan kuvitellut.

n

Milloin prototyyppi

On selvästi arvokasta, jos virheenkorjaus suoritetaan ennen SoC-suunnittelun allekirjoittamista. Kuvio 1 esittää tyypillistä painotusta simulointiin, emulointiin ja prototyyppien suunnitteluun suuren Asic-projektin eri vaiheissa. Kuten voidaan nähdä, FPGA-prototyyppejä käytetään enimmäkseen, koska projekti vaatii suurta nopeutta ja kapasiteettia integrointivaiheissa.

Harkitse tapausta, jossa ohjelmistointegraatio-ongelman ihanteellinen ratkaisu on laitteiston muokkaaminen. Esimerkiksi, tähän voi liittyä louhinta syklin nälkäinen DSP osaksi yhteistyössä prosessorin tai räätälöity laitteen logiikka. Jos tällaisen vaatimuksen löytämispiste tapahtuu sen jälkeen, kun SoC on jo pitkä matka nauhana, tai ehkä jopa valmis ja otettu näytteistä, on epätodennäköistä, että vaadittua muutosta laitteeseen harkitaan; mitä hyötyä lopputuotteesta onkin.

Itemid-51967-getasset

Kuva 1. Eri verifiointitekniikoiden suhteellinen käyttö projektin aikana

Prototyyppien haasteet

Yllättäen itse laitteiston luominen ei ole haastavin ongelma. Todellakin, tarkoitukseen rakennettuja Asic-prototyyppikortteja, kuten HAPS, on saatavana useilta myyjiltä. Todelliset haasteet ilmenevät, kun yritetään toteuttaa suunnittelu FPGA: ssa.

Osiointi ja I / O-käsittely

Vaikka nykypäivän suurimmat FPGA: t pystyvät käsittelemään yli kaksi miljoonaa Asic-porttia, monet Asic-mallit ovat vielä paljon suurempia. Tämä edellyttää, että vain kriittinen osa SoC: sta on prototyyppi tai että suunnittelu on jaettava useiden FPGA-tiedostojen kesken. Tämä esittelee mielenkiintoisia esteitä, koska meidän koko tarkoituksena on tarkastusta, ja siksi tavoitteena on oltava osio niin vähillä muutoksia ASIC RTL kuin mahdollista. Suunnittelun osittainen luominen luo keinotekoisia rajoja, ja malleissa, joissa on laajat sisäiset väylät tai leveät tietiet, osiointi voi aiheuttaa räjähdyksen tarvittavien I / O-nastajen määrässä. FPGA nastat tulla rajoittava resurssi, vaikka käytettäisiin uusimpia FPGA yli 1000 I / O kukin.

Ylimääräinen I / O-resurssi voidaan luoda muxing useita signaaleja samalle FPGA tappi, sitten demuxing on tavoite FPGA. Jälleen kerran, emme halua muuttaa Asic RTL: ää tämän mahdollistamiseksi, joten automaattinen pin-multipleksointi suoritetaan. Tämä johtaisi selvästi jonkinlaiseen rangaistukseen; Kuitenkin FPGA on tarpeeksi nopea I / O, että vaikka multipleksoitu, he silti tarjota riittävä suorituskyky vahvistamaan monimutkaisia ​​sulautettuja ohjelmistoja ”at-nopeus”.

Itemid-51969-getasset

Kuva 2 Automaattinen kellotetun kellon muuntaminen

Topografiset muutokset muuttamatta RTL: tä

Joidenkin manuaalisten interventioiden ja suunnittelijoiden älykkyyden avulla voimme lievittää I / O-rajoituksia toistamalla alilohkon useampaan kuin yhteen FPGA: hon, vähentämällä niiden välistä yhdistämistä. Jatkot erikoistuneet toiminnot RTL: llä, kuten matalan tason porttien viipalointi tai monimutkaisempien lohkojen vetoketju (molemmat mahdolliset ilman RTL-muutoksia) vähentävät edelleen FPGA I / O -tarvetta.

Asic-kellot ja FPGA-kellot eivät ole samoja

Lisäongelmat, joita joukkue kohtaa siirrettäessä SoC-mallia FPGA: lle, ovat alkuperäisen RTL: n kirjoittajien mahdollisuus ottaa vain vähän tai ei ollenkaan huomioon FPGA: ta. ASIC solu instantiations tai RAM BIST ovat kaksi esimerkkiä FPGA-vihamielinen esineitä RTL, mutta ennen kaikkea ongelmia ovat IP ja kello monimutkaisuus. FPGA: t pyrkivät tukemaan aidatun kellon suunnittelutyylejä, joita Asicsissa yleensä käytetään virran vähentämiseen. Sen sijaan kellosyöttösignaalit on muutettava FPGA-laitteiston kellokäyttömahdollisuuksiksi. Tämän muunnoksen manuaalinen suorittaminen olisi kohtuuttoman työlästä ja aiheuttaisi uusien virheiden esiintymisen. Sen sijaan jotkut synteesityökalut voivat suorittaa tämän porteitetun kellon muuntamisen automaattisesti jopa monimutkaisissa kellojen generointipiireissä. Kuvio 2 esittää esimerkkiä tällaisesta automaattisesta kellokonversiosta Synplicityn Synplify Premier -sovelluksessa.

IP: n käsittely

Suuri IP-lohkoja, kuten ARM-suorittimia, voidaan hankittu täydellinen sirut ja liitetty muuhun prototyyppien laitteisto. Ainoa vaatimus on, että laitteisto on riittävän joustava, jotta se mahtuu moniin IP-valmiisiin tytärkortteihin, kuten ARM Coretile. Kuitenkin, pienempi yhteisiä toimintoja, kuten muistin, FIFOs, kertojat ja summaimia, on liian paljon käsitellä tällä tavalla. Jälleen oikea EDA-ohjelmisto voi automaattisesti muuntaa nämä toiminnot FPGA vastaavien toteutusten tai tarjota helppo tapa eristää ne ulkoiselle täytäntöönpanoa.

Olemme FPGA: n hallituksessa: mitä nyt?

Kun suunnitelma on toteutettu monille FPGA, ja se pyörii nopeuden, toinen ongelma ilmenee: Miten debug toteuttaa tehokkaasti? Upotetut tai ulkoiset logiikka-analysaattorit voivat auttaa tässä pyrkimyksessä, mutta toimivat yleensä portitason nimitilassa. Siksi näiden signaalien jäljittäminen takaisin RTL: ään (ts. Mihin suunnittelu alun perin kirjoitettiin) voi olla aikaa vievä prosessi, koska se vaatii työskentelyä taaksepäin synteesivaiheen läpi. On suositeltavaa tehdä virheenkorjaus työkaluilla, jotka ylläpitävät saumattomasti symbolista yhteyttä portin ja RTL-nimitilojen välillä.

Mitä seuraavaksi FPGA-prototyyppiin tehdään?