FPGA, förklaring och hjälp

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
Användarvisningsbild
axelsonic
EF Sponsor
Inlägg: 709
Blev medlem: 8 juni 2003, 20:56:03
Ort: Stockholm

FPGA, förklaring och hjälp

Inlägg av axelsonic »

Jag har fått det förklarat för mig och tror att det är något jag kan använda mig av. Men jag behöver mer information. Som jag fattat det är FPGA inte helt enkelt och man med lätthet ta en raketfysik-examen i ämnet.

Vad är det ? Förutom "en attans massa programmerbara snabba logiska kretsar typ..." (som var ungefär den förklaring jag fick) .

Jag har googlat lite, men enbart fått tag i mer eller mindre helt värdelösa länkar.

Hur gör man för att använda sig av en FPGA ?
Vad kan en sån göra ?
Hur programmerar man den ?
I vilka språk ?
Hur designar man sin FPGA ? (om man nu gör det)
Finns det någon smart (och kanske tillochmed inte snordyr) bok man kan köpa om detta ?

Tack på förhand.
mikrodator
Inlägg: 14
Blev medlem: 21 juli 2005, 02:26:15

Inlägg av mikrodator »

Enkelt är en FPGA uppbyggad av massa små minnesblock. När du bränner in din konstruktion till FPGAn väljer du hur dessa block skall anslutas till varandra för att få önskad logisk funktion.

Du beskriver din konstruktion med ett hårdvarubeskrivande språk (HDL), störst i europa är VHDL som är baserat på ADA. På andra sidan atlanten är det främst det C-liknande Verilog som används. När du beskrivit konstruktionen i lämpligt språk använder du ett syntesverktyg för att skapa en nätlista och därefter använder du (finns nog alltid tillsammans med verktyget) ett program som mappar nätlistan till din krets.

En svensk bok för VHDL är "VHDL för konstruktion" ISBN 91-44-02471-1. För att börja labba lite med FPGA kan jag rekommendera Xilinx Spartan-3 Starter Kit som kan beställas på http://tinyurl.com/4z7yk

Xilinx erbjuder även en utvecklingsmiljö, Xilinx Webpack, som innehåller allt du behöver (förutom simuleringsmjukvara, men du kan ladda ner en friversion av ModelSim). Jag tror att de även kommer (iom de inte redan har det) släppa sitt EDK i en friversion ifall du vill börja bygga SoC.

Edit: De FPGAs som jag använt har alla programmerats via JTAG
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

Användarvisningsbild
axelsonic
EF Sponsor
Inlägg: 709
Blev medlem: 8 juni 2003, 20:56:03
Ort: Stockholm

Inlägg av axelsonic »

Åkej, en följdfråga. Vad är JTAG ?
(måhända en spånig fråga, men jag kan ju inte få mer än ett RTFM! ;) )
Jag googlar lite undertiden ngn bemödar sig med att svara och lära mig mer om FPGA.

[EDIT 13:21]
Så om jag nu har fattat detta rätt. FGPA är som en microprocessor, bortsett från att den inte är "programerbar" på samma sätt, utan att man skapar en jävlarns massa logiska enheter som gör det man vill, fast fortare och parallellt ?
[/EDIT]
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

Jag vet inte heller vad JTAG är :)
Men Wikipeida och möjligen Susning brukar ha skapliga svar på det mesta.

http://en.wikipedia.org/wiki/JTAG
Användarvisningsbild
axelsonic
EF Sponsor
Inlägg: 709
Blev medlem: 8 juni 2003, 20:56:03
Ort: Stockholm

Inlägg av axelsonic »

Fler spåniga frågor.
FPGA/VHDL. Är det ett "ansi"-format på detta språk, eller är det beroende på kompliatorn (eller vad man nu ska kalla den) ?

Jag tror att detta är precis det jag letar efter.

Det jag vill göra är att plocka data parallellt och därefter beroende på vad det är som kommer, skicka det (helst parallellt) till ett antal olika moduler.

Mao, får jag forska mer i ämnet. VHDL-programmering verkar för övrigt vara skitjobbigt =P .
Så smarta sidor med gratisböcker/tutorials är välkomna. Eller om ngn på forumet sätter upp en wiki med lite godis *hint hint* =) .
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Om man inte ska vara för noga så tycker jag den bästa beskrivningen av en FPGA är en stor hög logiska grindar och vippor som kan kopplas ihop hur som helst för att bilda den funktion man vill ha. Allt från en liten OCH-grind till ett helt datorsystem med processor, minneskontroller, USB-interface, ethernet och allt möjligt annat.

För att slippa fundera ut varje liten koppling själv så använder man ett hårdvarubeskrivande språk som Verilog eller VHDL (ungefär som när man använder C istället för assembler till en uC).

Att skriva "programmet" är inte speciellt svårt om man bara låter bli att tänka "program" och istället tänker "hårdvarubeskrivning".

Jag kan leta reda på lite slides från kurser jag läst som handlar om grundläggande VHDL och hur man beskriver olika enkla kretsar om du vill.
Användarvisningsbild
axelsonic
EF Sponsor
Inlägg: 709
Blev medlem: 8 juni 2003, 20:56:03
Ort: Stockholm

Inlägg av axelsonic »

Cyr: Många tack.

Jag blir nästan bara mer och mer förvirrad. Men å andra sidan kan det vara ett bra tecken, för det är först efter det förvirrade stadiet man kommer till full insikt... och sen ger man upp =) .

Men det här blir nog bra det. Jag såg lite VHDL på "internet" och blev hmm... kanske lite ehm, orolig. Hur som helst så kan jag behöva hjälp i tänket hårdvadubeskrivning som jag inte alls fattar hur det går till. Men det blir nog också bra... kanske...sen... någon gång...
mikrodator
Inlägg: 14
Blev medlem: 21 juli 2005, 02:26:15

Inlägg av mikrodator »

axelsonic:

Din liknelse med microprocessorn känns inte helt riktig, jag tycker det känns som om den begränsar FPGAn lite. Du kan t.ex. bränna in en microprocessor i din FPGA.

VHDL är ett standardiserat språk och är inte särskilt svårt. Det är dock viktigt att ha en bra modell när man beskriver större konstruktioner. Många som är gamla i elektronikgamet går ner på så låg nivå att de beskriver enskilda vippor i VHDL för att sedan koppla ihop den med en massa strukturell VHDL. Börjar du göra det är du inne på fel spår. Boken jag tipsade om kan vara väl värd pengarna jämfört med online tutorials.

Edit: För lite vhdl-exempel kan du kolla slides på http://www.cs.chalmers.se/Cs/Grundutb/Kurser/svh/ där beskrivs också en två process-modell som gör att din kod får en fin struktur. Det blir också lättare att bygga stort. Jag bör slänga in en liten brasklapp för den modellen dock, många verkar få problem med timing.
Användarvisningsbild
axelsonic
EF Sponsor
Inlägg: 709
Blev medlem: 8 juni 2003, 20:56:03
Ort: Stockholm

Inlägg av axelsonic »

mikrodator: Åkej. Jag skall läsa lite. Känner mig fortfarande lite förvirrad, men det går nog över.
Tack.
fatpo83
Inlägg: 282
Blev medlem: 21 april 2004, 22:42:28
Ort: Sthlm

Inlägg av fatpo83 »

axelsonic,

jag känner igen mig när jag först kom i kontakt med VHDL och FPGA. Så som cyr sa är FPGA en attans sampling med grindar som tillsammans utgör programmet el. "beskrivningen" som det heter i VHDL. Det sägs till och med att VHDL är större än vanliga språk som C och C++!!

För att kunna programmera i FPGA måste man dock tänka på ett helt annat sätt. Vanligt programmerar med sekventiellt, men nu blir det parallellt!! Man nästan "kopplar" sin beskrivning, modul för modul.

I skolan gjorde vi en komplett mikroprecessor helt i VHDL. Gillar man hårvarunära beskrivning så är VHDL definitift intressant. Hursomhelst här är några länkar som jag hade nytta av (det finns tonvis med info):

http://csold.cs.ucr.edu/content/esd/labs/tutorial/
http://www.vhdl-online.de/tutorial/
http://www.seas.upenn.edu/~ee201/vhdl/vhdl_primer.html
http://www.eg3.com/fpga.htm
gille
Inlägg: 69
Blev medlem: 28 november 2004, 18:06:09
Ort: Stockholm
Kontakt:

Inlägg av gille »

Och om man nu tycker VHDL/FPGA är ett intressant ämne, var skaffar man ett vettigt utvecklingskit till ett bra pris?
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag hade besök av en säljare som berättade om Actel's kit till 2500:- med deras Libero IDE till ProASIC3 där man dels kan beskriva i språk, dels kan rita scheman. Gratis språk upp till o med 75K gates.

Finns en demoversion (timelimit) gratis.

Actel representeras av Actel Nordic
Användarvisningsbild
axelsonic
EF Sponsor
Inlägg: 709
Blev medlem: 8 juni 2003, 20:56:03
Ort: Stockholm

Inlägg av axelsonic »

fatpo83: Många tack. Tur att jag inte har så mycket att göra på jobbet ;) .
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Båda de stora märkena (Xilinx och Altera) har gratis programvara utan några allvarliga begränsningar. Xilinx har ett spartan3 starter kit för $99 som man kan köpa i deras webshop.
Skriv svar