Olen uusi FPGA-tekniikassa ja käytän tällä hetkellä HDL (erityisesti Verilog) -luokkaa. Minulla on riittävästi tietoa digitaalisesta suunnittelusta, kuten yhdistelmä- ja peräkkäiset piirit.
Haluan luoda samanlainen projekti kuin , joka näkyy tässä YouTube-videossa .
Tiedän myös, että Xilinx ISE pystyy käsittelemään loogisia signaaleja ja simuloimaan aaltomuotoja. Onko sillä lisäominaisuuksia, kuten tulosignaalien saanti USB: n, kameran jne. Kautta ja lähtö tietokoneellesi.
Onko mahdollista ajaa Tämä projekti (kuten simulaatio tietokoneessa) ostamatta varsinaista FPGA-korttia? Tarkoitan, voinko rakentaa, koodata ja suorittaa projektin tietokoneellani ja kytkeä kamerani vain USB: n kautta ja antaa saapuvien videosignaalien olla käsitelty HDL-simulaattoreilla, kuten Xilinx ISE, jne. (ei todellakaan osta FPGA-korttia ja syntetisoi projektisi siellä, minulla ei tällä hetkellä ole budjettia sellaisen käyttämiseen)
( Tarkoitan todella HDLl-suunnittelun liittämistä todellisiin lähteisiin, C-koodiin jne.)
Kommentit
- En ’ en tiedä, voitko tehdä sen Xilinx ’ -simulaattorilla, mutta Icarus Verilogin kaltainen antaa simulaatiorajapinnan C-koodiin, josta voi saada tietoja tosielämän lähteet; Kuitenkin se toimii todennäköisesti suuruusluokkaa hitaammin kuin reaaliaikainen, joten suoran videolähteen käsittely olisi vaikeaa.
- Voi niin, tämä on lause etsiminen, liitettävissä tosielämän lähteisiin
- @vvavepacket äänestää kommentteja / viestejä kiittämään kommentoijaa / julistajaa.
- Videon FPGA näyttää Altera DE2: lta. Se ’ on 200–600 USD lisenssistä ja sirusta riippuen. ’ uudelleen simulaattorit csc.kth.se/~emille/niisim
- Terasic DE0-nano on luokkaa 80 dollaria ja voi liittyä kameroihin ja LCD-näyttöihin; itse asiassa heillä on demoja siitä verkkosivuillaan. Ei ole sidoksissa heihin, mutta DE0-nano ’ s saivat melko mukavan pienen FPGA: n kohtuullisen hinnoitellulla levyllä. Olen ’ vihannut aina kuinka kalliimpia dev-levyt ovat.
Vastaa
Xilinx-työkalut eivät voi liittyä reaaliajassa, sikäli kuin tiedän, eivätkä ModelSim (Actelin Libero IDE: n käyttämä). En tiedä avoimen lähdekoodin simulaattoreista, joitain on melko eksoottisia projekteja siellä, joten on mahdollista, että jotain voisi tehdä tämän.
Tämä voi kuitenkin olla sinä vastaus, jota et pyytänyt (poistan sen, jos siitä ei ole hyötyä), mutta harkitsen oman FPGA-kortin rakentamista tätä varten tai ainakin Aloitin matkalla kohti sitä. Syövytin ensimmäisen FPGA-korttini ja vaikka se oli hyvin yksinkertainen (levy ei prosessi ;-)), se opetti minulle todella paljon.
Plussat:
- Halpa
- Hyppää suoraan sisään syvimpään päähän ja opi kaikki mitä tarvitset tietää laitteistokysymyksistä. Pakottaa sinut lukemaan ensin suurimman osan taulukoista ja kirjoittamaan omat aloituskoodi, joka IMHO on usein parempi kuin Plug and Play Dev Board -lähestymistapa oppimiseen.
- Laita taululle vain tarvitsemasi.
- Hanki sinut eteenpäin kohti todellisen toimivan suunnittelun tavoite mahdollisesti samalla vaivalla / tutkimuksella kuin keksimällä, kuinka simuloida kaikkea reaaliajassa.
Miinukset:
- On vielä ostettava ohjelmoija, vaikka eBaysta löytyy halpoja versioita Xilinx / Altera-ohjelmoijista.
- Jos piirilevyn / signaalin eheyden suunnittelu ja ongelmat eivät ole sellaisia, joihin haluat keskittyä, niin et ehkä ole kiinnostunut suuresta osasta tietoa, joka saavutetaan tällä tavalla.
Ymmärrän, että oman levyn syövytys on todennäköisesti tarpeetonta, tein sen vain siksi, että minulla oli FPGA: t, olin kärsimätön eikä halunnut odottaa 2 viikkoa PCB: n saapumiseen. Täällä on erittäin halpoja tarjouksia 2-kerroksisille levyille, jotka tekisivät ainakin suunnittelun toteuttamisen (mahdollisesti pienemmillä nopeuksilla kuin lopulta toivottiin – normaalisti nopeiden FPGA-mallien vähimmäiskerrosluku olisi 4, mutta nämä ovat paljon kalliimpaa)
Joka tapauksessa Spirit Circuits tekee täysin ilmaisen 2-kerroksisen ”paljaat luut” -piirilevysopimuksen (yksi kuukaudessa, yksi malli, ei naamiota tai silkkipainoa), joka on kätevä kertaluonteiseen suunnitteluun .
Oikeille 2 ja 4 kerroksisille halvoille prototyyppilevyille ITead ja Seed Studio maksavat jopa 10 dollaria 10 levylle (tai mahdollisesti viidelle hinnalle).
Kommentit
- erittäin mielenkiintoinen ottaa tämä! ja rohkaiseva myös
vastaus
Standardi Xilinx ISE Webpack (ilmainen versio, joka voit ladata osoitteesta xilinx.com) sisältää simulaattorin nimeltä iSim. Se ei ole hieno simulaattori, mutta on täysin toimiva ja hinta oikea.
Vaikka en ole käyttänyt Altera-työkaluja, se yllättäisi minua, jos simulaattoria ei olisi mukana.
Mutta … Sinun on tiedettävä, mitä simulaattori voi ja mitä ei voi tehdä Aloittelijoille se ei voi simuloida täydellä nopeudella toimivaa FPGA: ta. Itse asiassa ne ovat melko hitaita. Simuloidun FPGA: n monimutkaisuudesta riippuen en yllättäisi minua nähdessäni yhden minuutin simulointia simuloidulla tavalla. aika ”. Jos haluat simuloida tunnin” simuloitua aikaa ”, se vaatii 1000 tuntia reaaliaikaa.
Simuloitu FPGA ei myöskään voi kommunikoida suoraan USB-porttisi kanssa. Simuloitu FPGA ei kommunikoi ”testipenkin” kanssa. Testipenkki on pala VHDL- tai Verilog-koodia, joka syöttää FPGA: n (tai sen osien) tuloja ja vahvistaa FPGA: n lähdön. Voit tehdä melko monimutkaisia asioita testipenkissä , kuten käyttää liukulukujen numeroita, lukea ja kirjoittaa tiedostoja ja ajaa logiikkaa, jota on mahdotonta syntetisoida.
Kommentit
- A ltera ’ s saivat ilmaisia Quartus-versioita, joihin sisältyy ModelSim. ModelSimin ilmainen versio rajoittaa simulointinopeutta ja Quartus-ilmainen versio rajoittaa syntetisointiin käytettyjen suorittimen ytimien määrää, mutta ovat muuten täysin toimivia.
- Altera ModelSim ei tue VHDL: n simulointia ja Verilog samassa mallissa.
Vastaa
En tiedä simulaattoreista, jotka ovat suoraan käyttöliittymässä USB-porttiin (tai muuhun laitteistoon) saapuville signaaleille.
Ainakin teoriassa olisi mahdollista kirjoittaa ohjelmisto, joka ottaisi porttiin saapuvat signaalit, ja kääntää ne testbench-tiedostoksi, joka simulaattori voisi käsitellä. Valitettavasti en tiedä olemassa olevia ohjelmistoja tämän tekemiseksi, ja itse kirjoittaminen olisi ehdottomasti ei-triviaalia.
Kommentit
- sitten paras tapa on hankkia lähtötaso, edullinen fpga-levy minun kaltaisilleni n00bs: lle
- Sinun ei ’ sinun tarvitse itse käydä läpi testbench-tiedosto, jos sinulla on simulaattori, mikä h tukee käyttöliittymää mukautettuun koodiin, kuten VPI, mutta kun otetaan huomioon, että simulaattori toimii suuruusluokkaa hitaammin kuin reaaliaikainen, siepattujen tietojen käsittely voi olla helpompaa tiedostossa, joka voidaan lukea simulaation nopeudella.
- @ChrisStratton Minua kiinnostaa ajatus tiedostoon kaapatuista tiedoista. Onko siihen resursseja? Kiitos
- Se riippuu täysin oheislaitteista, joita haluat käyttää tietolähteinä.
Vastaa
Sinun on käytettävä simulointirajapintoja (DPI, VPI, VHPI, FLI), joiden avulla voit kirjoittaa koodin, joka kiinnittyy simulaattoriin ja siltaa siten simulaatiossa käynnissä olevan RTL: n ja koneesi todellisen laitteiston välillä .
Huomattavat ongelmat (lukuun ottamatta huonosti dokumentoituja rajapintoja) liittyvät synkronointiin ja ajoitukseen. Simulaatiossa suoritettava RTL on paljon hitaampi kuin todellinen laitteisto – sinun on pystyttävä siirtymään vuorovaikutuksessa ulkoisen käyttöliittymän kanssa vastaamaan simulointinopeutta. Jotkin laitteistoliitännät eivät tykkää tästä! Esimerkiksi jos käytät TCP: tä, joudut mahdollisesti joutumaan vääristämään ytimen pinossa olevia ajastimia väärän uudelleenlähetyksen jne. Välttämiseksi.
Icarus tukee VPI: tä ja on ilmainen, joten voit kokeilla käyttämättä rahaa lisensseihin. Saatat haluta tutkia olemassa olevia kehyksiä, jotka tekevät osan simulaatiosta raskaasta nostosta ja tarjoavat simulaattorille puhtaamman abstraktin. Yksi tällainen kehys on Cocotb , avoimen lähdekoodin kirjasto, joka tarjoaa Python-käyttöliittymän simulaattorille. ( Vastuuvapauslauseke: Olen yksi cocotb-kehittäjistä.)
Esimerkki, joka voi olla merkityksellinen: Eilen koputin RTL: n vastaamaan ping-pyyntöihin ja loin testipenkin joka avaa TUN-käyttöliittymän. Voit sitten pingata käyttöliittymää komennolla ping
ja simulaatiossa suoritettava RTL vastaanottaa pingin ja vastaa. Koko testipenkki on alle 50 Python-riviä! Tämän esimerkin lähdekoodi on Github : ssä ja se toimii Ikaruksella Linuxissa.
Vastaa
Useimmissa tapauksissa kaikki simulaatiossa tekemäsi pysyy simulaatiossa. Et voi käyttää todellista laitteistoa – sinulla on oltava todellisen laitteiston simulointimalli.
Jos kuitenkin olet valmis tekemään vaivaa, useimmilla simulaattoreilla on käyttöliittymä mielivaltaiseen koodiin. Verilogissa se on melko tavallinen käyttöliittymä, kuten ymmärrän, joten Verilog-puoli tulee portille simulaattoreiden välillä. VHDL-land-tilassa se on tavallinen tapa tehdä se, mutta ainakin yhdellä suurista myyjistä on oma tapansa sen tekeminen!
Muista myös, että reaaliaikainen käyttö (eli nopeudella, jonka FPGA tekisi) on erittäin epätodennäköistä – ja loput simulaatiosi (HDL) eivät toimi reaaliajassa – joko.Kuten kommenteissa todettiin, videon reaaliaikainen simuloitu käsittely ei ole mahdollista tällä tavalla.
Henkilökohtaisesti minulla ei ole koskaan ollut tarvetta kokeilla tätä, mielestäni olen tuottavampaa kirjoittaa laitteisto ja kaikki VHDL: ssä.
Mutta älä unohda simulaation tekemisen etuja – se on paljon nopeampi tapa selvittää, toimivatko asiat (kääntäminen kestää sekunteja) ja sitten bittivirtajen luominen kymmeniä minuutteja – tunteja) ja kokeilemalla niitä laitteistossa.
Kommentit
- Totta, katso kysymyksen kommentit.
- OK, minun olisi ’ ollut selkeämpi – rajoitin vastaukseni ” I ’ m uutta FPGA: n ” tasolle 🙂 Vastaus päivitetty