Pitanje:
Kako odabrati FPGA?
fpganewbie
2009-11-28 23:38:37 UTC
view on stackexchange narkive permalink

Moram obaviti digitalnu obradu signala na 8 analognih linija na 10 kHz. Ovo je prilično zahtjevan zadatak i razmišljao sam da bi FPGA mogao biti pravi pristup. Trenutno gledam razvojne programe tvrtke Xilinx, a budući da nemam iskustva s FPGA-om, stvarno mi je teško znati kako odabrati pravi čip. Zamišljao sam da koristim razvojni komplet i proširim ga pomoću U / I pinova za spajanje na 8-kanalni A / D čip i 8-kanalni D / A čip.

Koje su razlike između korištenja Spartana, Virtex, Altera itd.? Ne znam ni kako procijeniti koliko će mi vrata trebati. Postoje li neka osnovna pravila za to? Kako mogu osigurati da brzina takta bude dovoljna (u funkciji broja zbrajanja i množenja). Je li teško izvršiti obradu s pomičnom zarezom na FPGA-i, trebam li se držati matematike fiksne točke? Koji je najbolji način za početak?

Trebam rješenje koje je moguće programirati pomoću Linuxa. Xilinx to pruža, ali nisam siguran koja su ograničenja.

Puno bi pomoglo znati kakve algoritme trebate implementirati. Šanse su da vam uopće ne treba FPGA, što će vam uštedjeti puno razvojnog vremena ;-)
Slažem se s gešemom; možda vam neće trebati FPGA. Možda je DSP bolje rješenje. U svakom slučaju s njima je lakše započeti ako imate samo iskustva u uC-ima. FPGA se vrlo razlikuju!
Osam odgovori:
#1
+13
Jason S
2009-11-29 00:42:06 UTC
view on stackexchange narkive permalink

Ne bih koristio FPGA.

Spominjete da nemate iskustva s FPGA-ima, a opet ste zainteresirani za digitalnu obradu signala na FPGA-i ... numerička manipulacija + obrada signala dovoljno su teški da biste došli točno na računalo / DSP / mikroprocesor, gdje su programski alati uobičajeno programiranje. Čini mi se da je korištenje projekta digitalne obrade signala za prvi FPGA projekt vjerojatno recept za frustraciju.

Ako želite naučiti FPGA-e, pokušajte učiniti nešto prikladnije za razvojne alate, poput državnih strojeva ili obradu komunikacijskog paketa.

Za DSP projekt poput onoga što ste opisali, preporučio bih DSP ili Cypress PSOC ili mikrokonvertor Analog Devices (= = mikrokontroler s ugrađenim ADC + DAC-om).

(cjelovito otkrivanje, koje daje određeni kontekst za moj savjet: ja sam ne koristim FPGA-ove. U rijetkim sam prilikama koristio programabilnu logiku = PLD-ove. Moj službenik često koristi FPGA-e i vidio sam dovoljno VHDL / Verilog koda koji ga gleda preko ramena da bi znao da li je pogodan za manipulacije bitovima. On je iskusni inženjer s puno iskustva s FPGA-ima; u nedavnom razgovoru s njim gdje je radio prilično jednostavnu matematiku na cijelim brojevima s različitim širinama bitova, rekao sam mu da treba napraviti produženje znakova na s horter bit širine broja kako bi ga pravilno oduzeo i dobio je ovaj izraz na licu, poput "oh čovječe, ne želim raditi proširenje znaka ..." Zbrajanje i oduzimanje nije jako teško u FPGA-i . Osim zbrajanja i oduzimanja, doista morate znati alate i knjižnice. I obrada s pomičnim zarezom ??!? !! ??!? !!?)

[MyHDL] (http://www.myhdl.org/doku.php) pokušava riješiti neke od tih problema.
Mislim da FPGA-e nije teže koristiti od mikrofona, oni jednostavno imaju drugačiji skup upozorenja.
#2
+10
Vincent P
2009-12-01 01:25:47 UTC
view on stackexchange narkive permalink

Svi su prilično dobri. Nećete trebati previše iz FPGA-e da biste učinili nešto tako jednostavno, pa bi svaki početnički FPGA (poput linije Spartan-3) trebao biti dovoljan.

Ipak, samo jedna riječ upozorenja, programiranje FPGA-e je LOOOOTTTTTT drugačiji od nečega poput C ++, C, perl ... Predlažem da započnete s verilogom jer je vjerojatno lakši prijelaz u ... VHDL je vrlo COBOL, ali verilog je sličniji modernim programskim jezicima.

O taktu: ne brinite zbog toga. Prednost korištenja FPGA-a je u tome što su masovno paralelni, pa iako se taktovi od 50 MHz po današnjim standardima mogu činiti smiješno sporima, imajte na umu da mogu odraditi stotine stvari odjednom, dok "normalni" CPU na 3 GHz mora staviti stvari u red čekanja. gore jedan po jedan. To je prednost korištenja FPGA: paralelizam. Dakle, za nešto specijalizirano, ne trebate se toliko brinuti o brzini.

Ali kao i drugi komentar, to je sasvim drugačija paradigma. Krivulja učenja je strma, ali kad shvatite jezik, sve to ima smisla (samo pripazite da razumijete gradivne blokove).

Sretni FPGA'ing :)

VHDL se zapravo temelji na Adi! Leonu
Također, prilikom odabira Veriloga ili VHDL-a, uzmite u obzir jezik u svjetlu da je to ulaganje u vašu buduću tržišnu mogućnost. U SAD-u je Verilog popularniji u razvoju IC-a / čipova od VHDL-a, pa će poznavanje Veriloga (i njegove poboljšane verzije, System Verilog) vjerojatno biti bolja dugoročna investicija. Također se čini da sve velike EDA tvrtke ulažu u verilog i sistem verilog, dok VHDL ne dobiva puno pažnje. (svjedok VCS mješovite simulacije s razlikama u izvedbi simulatora vhdl vs VCS verilog). (que the flaming) Da, možete naučiti oboje, ali zašto ne biste odredili prioritete.
Možete ga napisati na bilo kojem jeziku. Mislim da Xilinx alati mogu uzeti Verilog i VHDL, čak i u istom projektu. FWIW, nalazim se u SAD-u i nikada nisam koristio Verilog.
"VHDL je vrlo sličan COBOL-u". Ni milion milja!
#3
+9
davr
2009-12-22 02:43:35 UTC
view on stackexchange narkive permalink

Prije nekog vremena sastavio sam tablicu usporedbe ulaznih FPGA ploča od dva dobavljača FPGA Xilinx i Altera. Oni su dva glavna igrača u FPGA-ima, otprilike poput PIC-a protiv AVR-a ili Sony-a protiv Nintenda. Oni pružaju najbolji udarac. Postoje i drugi dobavljači koji nude određene značajke, ali obično na kraju ili platite više, ili izgubite značajke / procesorsku snagu.

Znam da ovo ne odgovara izravno na vaše određeno pitanje, ali trebalo bi biti korisno svatko tko želi započeti s FPGA pločom.

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

Toliko pitanja; pokušajmo odgovoriti redom:

  1. Zahtjev za resursima za obradu signala: Da biste utvrdili koji hardver trebate koristiti / graditi, potrebna vam je ideja o količinu obrade koju želite obaviti na dotičnim signalima. 8 kanala na 10 kHz nije vrlo visoka brzina prijenosa podataka, pa ako vaši zahtjevi nisu vrlo posebni, većina FPGA-a i DSP-ova trebala bi moći obraditi podatke.
  2. Kako mogu odabrati pravi uređaj? Na temelju zahtjeva obrade signala trebali biste znati koji je uređaj potreban za vašu aplikaciju. Ključne točke su zahtjev za memorijom, potrebni su tvrdi multiplikatori, posebna razmatranja IO-a itd. Većina dobavljača FPGA-a ima alate (temeljene na webu) koji vam omogućuju pretraživanje portfelja na temelju takvih čimbenika.
  3. Kako mogu započeti s DSP-om? DSP-ovi su samo obična računala koja obično imaju SIMD [Single Instruction, Multiple Data] upute relevantne za obradu signala. Da biste započeli, samo morate razumjeti ograničenja "ugrađenog" hardvera i C kompajlera kako biste mogli testirati svoj kôd na običnom računalu.
  4. Kako započeti s FPGA-ima? FPGA programirani su na jeziku za opis hardvera. Oni se značajno razlikuju od sekvencijalnih jezika kao što su C ili Java. Da biste mogli razviti FPGA, morate razumjeti istodobnu prirodu stvarnog hardvera. Alati koji su vam potrebni za početak je HDL simulator kao što je Simili (besplatan za male dizajne) ili Modelsim. To vam omogućuje simulaciju koda na računalu. Nakon toga potreban vam je alat za sintezu specifičan za dobavljača koji kompilira HDL-kôd u bit-datoteku koja se koristi za konfiguriranje FPGA-e. Ako od tvrtke Altera, Actel ili Xilinx nabavite početni komplet, svi potrebni alati dio su kompleta.
  5. Podrška za Linux: FPGA alati većine dobavljača rade na Linuxu, ali u polju DSP obično ste prisiljeni koristiti kompajle samo za Windows, osim ako vaš DSP ne podržava GCC (Blackfin iz Analoga i nekoliko modeli iz Texas Instruments su).
+1 za "8 kanala na 10 kHz nije baš velika brzina prijenosa podataka" - Ne mogu vjerovati da to još nitko nije rekao.
Ne ako radi 8-kanalni FFT ...
DSP-ovi su često paralelne procesne jedinice s jednim navojem, svaka sposobna za izvršavanje različitih naredbi (za razliku od SIMD-a gdje sve jedinice dijele iste upute).
#5
+4
Shawn J. Goff
2009-12-01 18:40:18 UTC
view on stackexchange narkive permalink

Momak po imenu Anthony Burch sastavio je seriju videozapisa o FPGA-ima. Jedan od besplatnih uključuje informacije o tome kako odabrati FPGA.

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

Gotovo svaki dobavljač FPGA-e će to učiniti. To je poput Intel-a protiv AMD-a ... postoje razlike između Xilinxa i Altere, ali nevjerojatno su slične u smislu funkcionalnosti. Kupite bilo koji razvojni komplet u vašem cjenovnom rangu - osobno mi se svidio Spartan 3 iz Xilinxa - i trčite s njim.

Što se tiče broja vrata, razvojni komplet obično će biti vrlo velik, nadam se i puno veći nego što vam treba. Kad se pripremite za prelazak na vlastiti PCB, alati za sintezu procijenit će vam koliko vrata zahtijeva vaš dizajn. To možete koristiti za odabir manjeg FPGA-a, iako ćete možda otkriti da ograničenja paketa (QFP vs BGA) također igraju važnu ulogu.

Uz pravilne tehnike dizajna, brzina takta neće predstavljati problem . U stvari, obično možete koristiti kristal relativno male brzine, poput 12 MHz, a FPGA može sintetizirati puno brži takt (ili mnogo brže satove!) Ako ste stvarno zabrinuti zbog množenja-dodavanja, znam da serija Virtex4 ima namjenski DSP kriški koji mogu ubrzati te izračune. Ali FPGA su masovno paralelni, pa vam ne treba previše MHz da biste obavili tonu posla.

Svakako bih se držao fiksne točke ako možete. Moguće je raditi s pokretnim zarezom, a Xilinx čak ima i Generator jezgre koji će vam pružiti jezgru s pomičnim zarezom, ali fiksna točka bit će put, puno brža i zahtijevat će mnogo manje vrata. Druga je prednost što možete napraviti neku čudnu fiksnu točku; možete koristiti onoliko bitova koliko želite, to ne mora biti brojanje snage 2 bita i / ili možete koristiti veće fiksne točke za srednje faze.

Najbolji način za započeti s FPGA-ima? Pronađite predavanje ili seminar ili nešto slično. Ako vam tehnologija nije poznata, razvojni alati bit će vrlo zbunjujući jer puno toga može poći po zlu. Alati za MCU-ove mnogo su opraštajući i zahtijevaju manje bliskosti s temeljnom arhitekturom.

Oh, trebali biste pročitati podatkovni list FPGA-e, sprijeda prema natrag.

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

Pogledajte XMOS

Mogu se koristiti za zamjenu FPGA-a u mnogim aplikacijama.

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

Ako želite procijeniti broj ulaza, još ne morate kupovati hardver - glavni proizvođači FPGA-a imaju besplatan softver, a mnogi će imati bilješke o tome kako raditi dsp. Stvari možete dizajnirati i simulirati bez hardvera, a softver će vam reći koji se resursi koriste. Međutim, za obradu signala dsp bi obično bio prvi korak, a FPGA samo ako vam ponestane procesorske snage.



Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 2.0 licenci pod kojom se distribuira.
Loading...