Fpga, var ska man börja?
Fpga, var ska man börja?
Hej!
Jag sitter och funderar lite på att testa att labba med en fpga.
Vad jag har förstått är det optimalt att köra fpga när man behöver bearbeta digital data?
Men jag är helt nybörjare på detta området och skulle behöva lite tips på vad som kan vara bra att börja med! Vilken tillverkare har smidigast utvecklingsmiljö osv?
Hur styr man hastigheten på en fpga? Har dom inbyggda pll eller måste man fixa det själv?
Vad brukar max klockhastighet ligga på? (Dum fråga egentligen..)
All möjlig information kring fpgas välkommnas! Eller en knuff åt rätt riktning iallafall..
// Jocke
Jag sitter och funderar lite på att testa att labba med en fpga.
Vad jag har förstått är det optimalt att köra fpga när man behöver bearbeta digital data?
Men jag är helt nybörjare på detta området och skulle behöva lite tips på vad som kan vara bra att börja med! Vilken tillverkare har smidigast utvecklingsmiljö osv?
Hur styr man hastigheten på en fpga? Har dom inbyggda pll eller måste man fixa det själv?
Vad brukar max klockhastighet ligga på? (Dum fråga egentligen..)
All möjlig information kring fpgas välkommnas! Eller en knuff åt rätt riktning iallafall..
// Jocke
Re: Fpga, var ska man börja?
FPGA är användbar när man behöver reaktionstider på nanosekunder (10^-9) och absolut realtidsrespons. Samt för uppgifter som kan nyttja parallellism och pipeline. Test inför ASIC design är också en tillämpning där prestandan blir mindre kritisk.
Själv gillar jag Xilinx pga bra utbud av kretsar som också går att köpa t.ex via DigiKey (hallå ELFA!). En annan tillverkare som är värd att kika på är Actel, dock har de senare lite begränsande villkor om man vill sälja sin design. Båda dessa tillverkare erbjuder utvecklingsmiljö som fungerar med BSD, Linux och Windoze.
Grafisk miljö är enkel men begränsande. Programmering i VHDL eller Verilog är att föredra samt att man använder makefiler. Dator med stor L-cache och snabb minneskontroller är också bra! (klockfrekvens av mindre vikt)
En FPGA är en hög grindar. Så om du frågar hur snabb en AND-grind är, så är svaret detsamma. det beror på hur snabba signaler DU skickar in. Dock finns det begränsningar på hur snabbt grinden kan reagera säkert och ju fler som är sammankopplade, desto längre tid tar stabilisering av signaler (hold + setup tid).
Maximal klockningshastighet beror helt på vad du konstruerar. Men 50 MHz är en vanligt förekommande standardfrekvens på utvecklingskort. Utöver detta kan man använda egna oscillatorer på kanske upp till 300 MHz, helt beroende på chip och impedansanpassning. Internt kan man multiplicera klockan till högre frekvens med hjälp av DCM modulen (Xilinx). Latenstiden för yttre anslutningar är utan problem 2 ns och bithastigheten 300 Mbit/s. Så man kan lätt konstruera HDMI signaler, A/D bearbetning, DDR2 gränssnitt osv.
Själv gillar jag Xilinx pga bra utbud av kretsar som också går att köpa t.ex via DigiKey (hallå ELFA!). En annan tillverkare som är värd att kika på är Actel, dock har de senare lite begränsande villkor om man vill sälja sin design. Båda dessa tillverkare erbjuder utvecklingsmiljö som fungerar med BSD, Linux och Windoze.
Grafisk miljö är enkel men begränsande. Programmering i VHDL eller Verilog är att föredra samt att man använder makefiler. Dator med stor L-cache och snabb minneskontroller är också bra! (klockfrekvens av mindre vikt)
En FPGA är en hög grindar. Så om du frågar hur snabb en AND-grind är, så är svaret detsamma. det beror på hur snabba signaler DU skickar in. Dock finns det begränsningar på hur snabbt grinden kan reagera säkert och ju fler som är sammankopplade, desto längre tid tar stabilisering av signaler (hold + setup tid).
Maximal klockningshastighet beror helt på vad du konstruerar. Men 50 MHz är en vanligt förekommande standardfrekvens på utvecklingskort. Utöver detta kan man använda egna oscillatorer på kanske upp till 300 MHz, helt beroende på chip och impedansanpassning. Internt kan man multiplicera klockan till högre frekvens med hjälp av DCM modulen (Xilinx). Latenstiden för yttre anslutningar är utan problem 2 ns och bithastigheten 300 Mbit/s. Så man kan lätt konstruera HDMI signaler, A/D bearbetning, DDR2 gränssnitt osv.
Re: Fpga, var ska man börja?
> Vad jag har förstått är det optimalt att köra fpga när man behöver bearbeta digital data?
Det beror ju helt på vilken betydelse du lägger i "digital data" !
För lägre hastigheter så är det sannolikt fortfarande betydligt
enklare att använda "vanliga" generella processorer som t.ex
AVR eller PIC om en 8-bitars räcker till, eller ARM om det är
lite större krav.
> All möjlig information kring fpgas välkommnas!
Som vanligt är det mesta redan skrivet...
http://en.wikipedia.org/wiki/Field-prog ... gate_array
Det beror ju helt på vilken betydelse du lägger i "digital data" !
För lägre hastigheter så är det sannolikt fortfarande betydligt
enklare att använda "vanliga" generella processorer som t.ex
AVR eller PIC om en 8-bitars räcker till, eller ARM om det är
lite större krav.
> All möjlig information kring fpgas välkommnas!
Som vanligt är det mesta redan skrivet...

http://en.wikipedia.org/wiki/Field-prog ... gate_array
Re: Fpga, var ska man börja?
Allright! Tack för bra info! Det är ju egentligen videodata jag vill hantera, så det lär bli ganska höga hastigheter på det hela.. Men det får bli någon gång i framtiden när jag känner mig mer säker på vad jag håller på med.
VHDL, är det väldigt olikt andra språk? Jag har tidigare bara kört avr och stm32 och då programmerat mest i c.
För att testa tänkte jag beställa hem något från ebay. Länk
kan det vara något att ha som nybörjare eller bör jag satsa på något annat?
Har förstått att jag behöver en jtag programmerare med, är det någon specifik man behöver använda eller räcker det med någon billig variant?
// Jocke
VHDL, är det väldigt olikt andra språk? Jag har tidigare bara kört avr och stm32 och då programmerat mest i c.
För att testa tänkte jag beställa hem något från ebay. Länk
kan det vara något att ha som nybörjare eller bör jag satsa på något annat?
Har förstått att jag behöver en jtag programmerare med, är det någon specifik man behöver använda eller räcker det med någon billig variant?
// Jocke
Re: Fpga, var ska man börja?
Kolla senaste numren av Elektor. Rätt mycket fpga där och dessutom har de ett färdigt kit till salu.
Re: Fpga, var ska man börja?
Här http://elecrom.wordpress.com/2008/03/02 ... nx-xc9536/ finns lite info om hur man kommer igång med en fin liten CPLD, ganska rakt på. Bra början för att labba och lära sig grunderna.
Kort kan man väl säga att det inte finns några likheter alls mellan VHDL och det du programmerat till din stm32. VHDL är mer ett hårdvarubeskrivande språk. Tänk att du bygger ett nät av grindar/vippor som utför någon logisk funktion när klockan tickar. VHDL beskriver såna nät i kod. Så istället för att bygga din lösning med grindar/vippor så kodar du VHDL (eller verilog, samma sak fast annat språk bara), sen låter du 'kompilatorn' skapa ditt nät och skriver ner det på en fpga/cpld.
Kort kan man väl säga att det inte finns några likheter alls mellan VHDL och det du programmerat till din stm32. VHDL är mer ett hårdvarubeskrivande språk. Tänk att du bygger ett nät av grindar/vippor som utför någon logisk funktion när klockan tickar. VHDL beskriver såna nät i kod. Så istället för att bygga din lösning med grindar/vippor så kodar du VHDL (eller verilog, samma sak fast annat språk bara), sen låter du 'kompilatorn' skapa ditt nät och skriver ner det på en fpga/cpld.
- Krille Krokodil
- Inlägg: 4062
- Blev medlem: 9 december 2005, 22:33:11
- Ort: Helsingborg
Re: Fpga, var ska man börja?
Finns syntesverktyg på högre nivå också där man grafiskt kopplar ihop grindar och mer komplexa komponenter. Och också på ännu högre nivå där man drar in hela moduler såsom CPU, VGA-drivare, PCI-buss m.m och kopplar ihop.
Sist jag kollade vad som var det värsta på marknaden har jag för mig att man låg nära 1 Tbit/s genomströmning av data, det var en 1936 kulors BGA.
Sist jag kollade vad som var det värsta på marknaden har jag för mig att man låg nära 1 Tbit/s genomströmning av data, det var en 1936 kulors BGA.
Re: Fpga, var ska man börja?
Wedge: Näääe, varför undrar du det?
Tack för länken, Zealotry!
Till en början låter det faktiskt rätt smidigt att designa grafiskt och koppla grindar. Nånting säger mig att det kommer bli mycket att lära sig.. Men det blir nog skoj!
AndersG: Fanns det någon smidig modul att köpa från elektor? Har inte prenumererat på dem..
// Jocke
Tack för länken, Zealotry!
Till en början låter det faktiskt rätt smidigt att designa grafiskt och koppla grindar. Nånting säger mig att det kommer bli mycket att lära sig.. Men det blir nog skoj!

AndersG: Fanns det någon smidig modul att köpa från elektor? Har inte prenumererat på dem..
// Jocke
Re: Fpga, var ska man börja?
Jag undrar eftersom du postat i kategorin "Mikroprocessorer", that's why.
Re: Fpga, var ska man börja?
Ja jusste. lite fel egentligen... Kan jag flytta tråden eller får mod göra det?
Re: Fpga, var ska man börja?
Jag håller på med FPGA och CPLD på hobbybasis och det är väldigt roliga små leksaker.
Jag kan rekommendera dig att börja kolla på SPI-interface vilket är ett smidigt sätt att koppla ihop din enhet till periferi hjälpmedel tex ADC, displayer, sensorer osv.
Och har du hållt på med C-programering innan kan jag varmt rekommendera att skriva koden i språket verilog vilket är starkt baserat på just C så du kommer nog känna igen dig mer där.
Jag kan rekommendera dig att börja kolla på SPI-interface vilket är ett smidigt sätt att koppla ihop din enhet till periferi hjälpmedel tex ADC, displayer, sensorer osv.
Och har du hållt på med C-programering innan kan jag varmt rekommendera att skriva koden i språket verilog vilket är starkt baserat på just C så du kommer nog känna igen dig mer där.
Re: Fpga, var ska man börja?
Ett sätt att komma igång kan vara Papilio, FPGA-motsvarigheten till Arduino: http://papilio.cc/ . Jag har själv köpt ett kort för att leka lite med "soft-processors" mm. Ganska kul faktiskt.
- SeniorLemuren
- Inlägg: 8507
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Fpga, var ska man börja?
Jag har ett par rör med en krets som heter Altera EP910. Dessa var med i ett surplusinköp. Så vitt jag förstår så är det någon typ av programmerbara grindar. Kanske dom är hopplöst gamla och inte särskilt användbara men om du vill ha några ex för att leka med kan jag skänka några st. Skicka mig ett PM och meddela din adress i så fall.
Sedan tycker jag att tråden väl passar in under rubriken mikroprocessorer. Det är ju visserligen inte en renodlad mikroprocessor men det är enligt min mening i alla fall frågan om mikroprocessing / kretsprogrammering.
Tråkigt det där med att en del inlägg bara handlar om att vara skollärare och knäppa folk på näsan utan att tillföra något vettigt angående frågeställningen.
Sedan tycker jag att tråden väl passar in under rubriken mikroprocessorer. Det är ju visserligen inte en renodlad mikroprocessor men det är enligt min mening i alla fall frågan om mikroprocessing / kretsprogrammering.
Tråkigt det där med att en del inlägg bara handlar om att vara skollärare och knäppa folk på näsan utan att tillföra något vettigt angående frågeställningen.
- Krille Krokodil
- Inlägg: 4062
- Blev medlem: 9 december 2005, 22:33:11
- Ort: Helsingborg
Re: Fpga, var ska man börja?
Studentversionen av Alteras gamla verktyg Max Plus II är rätt lagom stort för att börja med, deras nya Quartus II är en koloss på flera GB som man går vilse i. I det kan man skriva en komponenter i VHDL och sedan får man den som en grafisk krets som man kan koppla in och utgångar till, lägga in grindar och och några av de vanligaste digitala kretsarna och sedan simulera hela rasket.
Finns ingen lämpligare forumkategori än denna för FPGA, blir det ett vanligare diskussionsämne bör man lägga till det i definitionen.
Finns ingen lämpligare forumkategori än denna för FPGA, blir det ett vanligare diskussionsämne bör man lägga till det i definitionen.