Kysymys:
Kuinka valita FPGA?
fpganewbie
2009-11-28 23:38:37 UTC
view on stackexchange narkive permalink

Minun täytyy tehdä digitaalinen signaalinkäsittely kahdeksalla analogisella linjalla 10 kHz: llä. Tämä on melko vaativa tehtävä, ja ajattelin, että FPGA voi olla oikea tapa. Tarkastelen tällä hetkellä Xilinxin dev-paketteja, ja koska minulla ei ole kokemusta FPGA: sta, minusta on todella vaikea tietää, miten valita oikea siru. Kuvittelin käyttävän dev-pakettia ja laajentavan sitä I / O-nastojen avulla yhteyden muodostamiseksi 8-kanavaiselle A / D-sirulle ja 8-kanavaiselle D / A-sirulle.

Mitä eroja on Spartanin käytössä, Virtex, Altera jne.? En edes tiedä kuinka arvioida kuinka monta porttia tarvitsen. Onko sille nyrkkisääntöjä? Kuinka voin varmistaa, että kellotaajuus riittää (lisäysten ja kertojen määrän funktiona). Onko FPGA: lla vaikea tehdä liukulukujen käsittelyä, pitäisikö minun pysyä kiinteän pisteen matematiikassa? Mikä on paras tapa aloittaa?

Tarvitsen Linux-ohjelmoitavan ratkaisun. Xilinx tarjoaa tämän, mutta en ole varma, mitkä ovat rajoitukset.

Se auttaisi paljon tietämään, millaiset algoritmit sinun on toteutettava. Mahdollisuudet ovat, että et tarvitse lainkaan FPGA: ta, mikä säästää paljon kehitysaikaa ;-)
Olen samaa mieltä gescheman kanssa; et ehkä tarvitse FPGA: ta. Ehkä DSP on parempi ratkaisu. Joka tapauksessa heidän kanssaan on helpompaa päästä alkuun, jos sinulla on kokemusta vain uC-laitteista. FPGA: t ovat hyvin erilaisia!
Kahdeksan vastused:
#1
+13
Jason S
2009-11-29 00:42:06 UTC
view on stackexchange narkive permalink

En käytä FPGA: ta.

Mainitset, että sinulla ei ole kokemusta FPGA: ista, ja silti olet kiinnostunut suorittamaan digitaalisen signaalinkäsittelyn FPGA: lla ... numeerinen käsittely + signaalin käsittely on tarpeeksi vaikeaa päästä suoraan tietokoneelle / DSP / mikroprosessorille, jossa ohjelmointityökalut ovat tavanomainen ohjelmointi. Minusta tuntuu, että digitaalisen signaalinkäsittelyprojektin käyttö ensimmäisessä FPGA-projektissa on todennäköisesti turhautumisresepti.

Jos haluat oppia FPGA: ita, kokeile tehdä jotain sopivampaa kehitystyökaluille, kuten valtion koneita tai tiedonsiirtopakettien käsittely.

Suosittelen kuvaamallesi DSP-projektille DSP: tä tai Cypress PSOC: ta tai Analog Devices Microconverter (= mikrokontrolleri, jossa on sisäänrakennettu ADC + DAC).

(täydellinen paljastus, joka tarjoaa jonkin verran kontekstia neuvoni: En itse käytä FPGA: ta. Olen käyttänyt ohjelmoitavaa logiikkaa = PLD: tä harvinaisissa tilanteissa. Työntekijäni käyttää usein FPGA: ta, ja olen nähnyt tarpeeksi VHDL / Verilog-koodia katsomassa hänen olkapäänsä yli tietääkseen, että se sopii hyvin bittikäsittelyihin. Hän on kokenut insinööri, jolla on paljon kokemusta FPGA: ista; äskettäisessä keskustelussa hänen kanssaan missä hän suoritti melko yksinkertaista matematiikkaa kokonaisluvuille, joilla oli erilainen bittileveys, kerroin hänelle, että hänen täytyi tehdä merkin jatke terävämpi bittileveysluku, jotta se vähennetään oikein, ja hän sai tämän ilmeen kasvoillaan, kuten "oi mies, en halua joutua tekemään merkkilaajennusta ..." Lisääminen ja vähentäminen ei ole kovin vaikeaa FPGA: ssa . Liittämisen ja vähentämisen lisäksi sinun on todella tiedettävä työkalut ja kirjastot. Ja liukulukuinen käsittely ??!? !! ??!? !!?)

[MyHDL] (http://www.myhdl.org/doku.php) yrittää korjata joitain näistä ongelmista.
En usko, että FPGA: ta on vaikeampi käyttää kuin mikroskooppeja, niillä on yksinkertaisesti erilainen joukko varoituksia.
#2
+10
Vincent P
2009-12-01 01:25:47 UTC
view on stackexchange narkive permalink

Ne kaikki ovat melko hyviä. Sinun ei tarvitse liikaa FPGA: sta tehdä jotain sellaista yksinkertaista, joten minkä tahansa aloittelijan FPGA: n (kuten Spartan-3-linjan) pitäisi riittää.

Vain varoituksen sana, FPGA: n ohjelmointi on erilainen LOOOOTTTTTT kuin jotain sellaista kuin C ++, C, perl ... Ehdotan aloittamista verilogilla, koska siihen siirtyminen on todennäköisesti helpompaa ... VHDL on hyvin COBOL-tyyppinen, mutta verilog muistuttaa enemmän nykyaikaisia ​​ohjelmointikieliä.

Tietoja kellonopeudesta: älä huoli siitä. FPGA: iden käytön etuna on, että ne ovat massiivisesti rinnakkaisia, joten vaikka 50 MHz: n kello saattaa tuntua naurettavan hitaalta nykypäivän standardien mukaan, pidä mielessä, että ne voivat tehdä satoja asioita kerralla, kun taas "normaalin" 3GHz: n prosessorin on jonottava asioita ylöspäin yksi kerrallaan. Tämä on FPGA: n käytön etu: rinnakkaisuus. Joten erikoisalalla sinun ei tarvitse huolehtia niin nopeasti.

Mutta kuten toinen kommentti, se on aivan erilainen paradigma. Oppimiskäyrä on jyrkkä, mutta kun ymmärrät kielen, sillä kaikella on järkeä (vain varmista, että ymmärrät rakennuspalikat).

Hyvää FPGA'a :)

VHDL perustuu itse asiassa Ada! Leoniin
Kun valitset Verilogin tai VHDL: n, ota huomioon, että kieli on sijoitus tulevaan markkinoitavuuteen. Yhdysvalloissa Verilog on suositumpi IC / chip-kehityksessä kuin VHDL, joten Verilogin (ja sen parannetun version, System Verilog) tunteminen on todennäköisesti parempi pitkäaikainen sijoitus. Näyttää myös siltä, ​​että kaikki suuret EDA-yritykset sijoittavat verilogiin ja järjestelmän verilogiin, kun taas VHDL ei saa paljon huomiota. . Kyllä, voit oppia molemmat, mutta miksi et priorisoi.
Voit kirjoittaa sen kummallakin kielellä. Luulen, että Xilinx-työkalut voivat viedä Verilogin ja VHDL: n, jopa samassa projektissa. FWIW, olen Yhdysvalloissa enkä ole koskaan käyttänyt Verilogia.
"VHDL on hyvin COBOL-tyyppinen". Ei miljoonalla maililla!
#3
+9
davr
2009-12-22 02:43:35 UTC
view on stackexchange narkive permalink

Jonkin aikaa sitten kootin vertailutaulukon lähtötason FPGA-levyistä, kahdelta FPGA-toimittajalta Xilinxiltä ja Alteralta. He ovat FPGA: n kaksi suurta toimijaa, kuten PIC vs AVR tai Sony vs Nintendo. Ne tarjoavat parhaan bang-for-buck. On muita toimittajia, jotka tarjoavat erityisominaisuuksia, mutta maksat yleensä joko enemmän tai menetät ominaisuudet / prosessointitehon.

Tiedän, että tämä ei vastaa suoraan kysymykseesi, mutta sen pitäisi olla hyödyllistä kuka tahansa, joka haluaa aloittaa FPGA-levyn käytön.

#4
+7
trondd
2010-11-03 14:52:59 UTC
view on stackexchange narkive permalink

Niin paljon kysymyksiä; Yritetään yrittää vastata niihin järjestyksessä:

  1. Resurssivaatimus signaalinkäsittelylle: Jotta voit määrittää, mitä laitteistoa haluat käyttää / rakentaa, tarvitset kuvan käsittelymäärä, jonka haluat tehdä kyseisillä signaaleilla. 8 kanavaa @ 10 kHz ei ole kovin suuri tiedonsiirtonopeus, joten ellei vaatimuksesi ole kovin erityisiä, useimpien FPGA: n ja DSP: n pitäisi pystyä käsittelemään tietoja.
  2. Kuinka voin valita oikean laitteen? Signaalinkäsittelysi vaatimusten perusteella sinun pitäisi pystyä selvittämään, mikä laite tarvitaan sovelluksellesi. Keskeisiä kohtia ovat muistivaatimus, vaativat kovat kertojat, erityiset IO-näkökohdat jne. Useimmilla FPGA-toimittajilla on työkaluja (verkkopohjaisia), joiden avulla voit etsiä salkustaan ​​tällaisten tekijöiden perusteella.
  3. Kuinka teen pääset alkuun DSP: n kanssa? DSP: t ovat vain tavallisia tietokoneita, joissa on yleensä signaalin käsittelyyn liittyviä SIMD-ohjeita [Single Instruction, Multiple Data]. Aloittamiseksi sinun on vain ymmärrettävä "upotetun" laitteiston ja C-kääntäjän rajoitukset, jotta voit testata koodiasi tavallisella tietokoneella.
  4. Kuinka pääsen alkuun FPGA: n kanssa? FPGA: t on ohjelmoitu laitteiston kuvauskielellä. Nämä eroavat merkittävästi peräkkäisistä kielistä, kuten C tai Java. FPGA: n kehittämiseksi sinun on ymmärrettävä todellisen laitteiston samanaikainen luonne. Aloittamiseen tarvittavat työkalut ovat HDL-simulaattori, kuten Simili (ilmainen pienille malleille) tai Modelsim. Näin voit simuloida koodia tietokoneella. Sen jälkeen tarvitset toimittajakohtaisen synteesityökalun, joka kokoaa HDL-koodin bittitiedostoksi, jota käytetään FPGA: n määrittämiseen. Jos saat aloituspaketin Alteralta, Actelilta tai Xilinxiltä, ​​kaikki tarvitsemasi työkalut ovat osa pakettia.
  5. Linux-tuki: useimpien toimittajien FPGA-työkalut toimivat Linuxissa, mutta DSP-kentässä sinun on yleensä pakko käyttää vain Windows-kääntöjä, ellei GCC tue DSP: täsi (Blackfin from Analog ja muut ovat Texas Instrumentsin mallit).
+1 "8 kanavaa @ 10 kHz: ssä ei ole kovin korkea tiedonsiirtonopeus" - en voi uskoa, ettei kukaan ole vielä sanonut sitä.
Ei, jos hän tekee 8-kanavaista FFT: tä ...
DSP: t ovat usein yksisäikeisiä rinnakkaisprosessointiyksiköitä, joista kukin pystyy suorittamaan eri käskyn (toisin kuin SIMD, jossa kaikilla yksiköillä on sama käsky).
#5
+4
Shawn J. Goff
2009-12-01 18:40:18 UTC
view on stackexchange narkive permalink

Kaveri Anthony Burch on koonnut laskeutuvan videosarjan FPGA: ista. Yksi ilmaisista sisältää tietoja FPGA: n valitsemisesta.

#6
+4
ajs410
2010-11-03 20:14:33 UTC
view on stackexchange narkive permalink

Lähes kaikki FPGA-toimittajat tekevät. Se on kuin Intel vs AMD ... Xilinxin ja Alteran välillä on eroja, mutta ne ovat huomattavan samanlaisia ​​toiminnallisuuden suhteen. Osta mikä tahansa hintaluokassasi oleva kehityspakkaus - pidin henkilökohtaisesti Xilinxin Spartan 3: sta - ja aja sen kanssa.

Porttimäärän osalta dev-paketti on tyypillisesti erittäin suuri, toivottavasti paljon suurempi kuin tarvitset. Kun valmistaudut siirtymään omalle piirilevyllesi, synteesityökalut arvioivat sinulle, kuinka monta porttia suunnittelusi vaatii. Voit käyttää tätä valitaksesi pienemmän FPGA: n, vaikka saatat huomata, että myös pakettirajoituksilla (QFP vs BGA) on tärkeä rooli.

Oikealla suunnittelutekniikalla kellonopeus ei ole ongelma. . Itse asiassa voit tyypillisesti käyttää suhteellisen alhaisen nopeuden kristalleja, kuten 12 MHz, ja FPGA pystyy syntetisoimaan paljon nopeamman kellon (tai monet nopeammat kellot!) Jos olet todella huolissasi kertolaskuista, tiedän, että Virtex4-sarjassa on omistetut DSP-viipaleet, jotka voivat nopeuttaa näitä laskelmia. Mutta FPGA: t ovat massiivisesti rinnakkaisia, joten sinun ei tarvitse liikaa MHz: tä tehdä tonni työtä.

Pitäisin ehdottomasti kiinni kiinteästä pisteestä, jos voit. On mahdollista tehdä liukuluku, ja Xilinxillä on jopa ydingeneraattori, joka tarjoaa sinulle kelluvan ytimen, mutta kiinteä piste on tapa, tapa nopeammin ja vaatii paljon vähemmän portteja. Toinen etu on, että voit tehdä parittoman kiinteän pisteen; voit käyttää niin monta bittiä kuin haluat, sen ei tarvitse olla 2-bittinen teho ja / tai voit käyttää suurempia kiinteitä pisteitä välivaiheisiin.

Paras tapa aloittaa FPGA: t? Etsi luokka, seminaari tai jotain. Jos et tunne tekniikkaa, kehitystyökalut ovat hyvin hämmentäviä, koska voi mennä pieleen. MCU: n työkalut ovat paljon anteeksiantavampia ja vaativat vähemmän läheisyyttä taustalla olevaan arkkitehtuuriin.

Ja sinun tulee lukea FPGA: n tietolomake edestä taakse.

#7
  0
Leon Heller
2009-12-01 21:48:48 UTC
view on stackexchange narkive permalink

Tutustu XMOSiin

Niitä voidaan käyttää korvaamaan FPGA: t monissa sovelluksissa.

#8
  0
mikeselectricstuff
2010-11-04 14:04:06 UTC
view on stackexchange narkive permalink

Jos haluat arvioida porttien määrää, sinun ei tarvitse vielä ostaa laitteistoa - tärkeimmillä FPGA-valmistajilla on ilmainen ohjelmisto, ja monilla on appnototteja dsp: n suorittamiseen. Voit suunnitella ja simuloida tavaroita ilman laitteistoa, ja ohjelmisto kertoo sinulle, mitä resursseja käytetään. Signaalinkäsittelyyn dsp olisi kuitenkin yleensä ensimmäinen askel ja FPGA vain, jos prosessointiteho loppuu.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 2.0-lisenssistä, jolla sitä jaetaan.
Loading...