Ooit al met een FPGA gewerkt?

Gepost door Jonathan Pauwels op woensdag 3 mei 2006 19:40
Optie Percentage Aantal
Ja, als een prof 6.6 % (130)
Ja, enkel wat experimenteerwerk 13.4 % (262)
Nee 23.9 % (469)
FPGA....Wat is dat? 56 % (1098)
Totaal 1959 stemmen
Gepost door Jonathan op woensdag 3 mei 2006 19:45
ik ben er nog nooit aan toe gekomen...
Gepost door Mike G op woensdag 3 mei 2006 20:02
Wasda???
Gepost door wijngaert op woensdag 3 mei 2006 20:20
Is het legaal?
Gepost door Nightwalker op woensdag 3 mei 2006 20:35
Even vluchtig doorgelezen. Maar het zou dus een zeer geavanceerde programeerbare chip moeten zijn. Geinig:-P
http://en.wikipedia.org/wiki/FPGA
Gepost door greenghost op woensdag 3 mei 2006 20:44
dacht dat het software was wasda
Gepost door surge_me op woensdag 3 mei 2006 20:51
Tis gewoon logica (and, nand, or, xor, ...) die je beschrijft.

Leuke is dat wat je in een FPGA mept ook op een stukje custom silitium kunt prakken. En dan heb je je "eigen" chip ;) (daarnaast waarschijnlijk ook een enorme schuld...)

Je kunt er best leuke dingen mee doen, ik ben namelijk net klaar met een ASK FSK BPSK signaal generator voor RFID en dat past gemakkelijk in een chipje (FPGA) van een paar dollar.

Laatst had ik een workshop over motion controll en daar was een gast die 4 processoren in een FPGA gebouwt had.

Je ziet de mogelijkheden zijn eindeloos ;)

[Reactie gewijzigd op woensdag 3 mei 2006 20:52]

Gepost door MAH op woensdag 3 mei 2006 22:53
Tis gewoon logica (and, nand, or, xor, ...) die je beschrijft.


oeps, dan heb ik dus verkeerd gestemt. zowel in gewone IC's als in een gal-chipje.(overgens is gal toch zo goed als dood/van de markt??)

[Reactie gewijzigd op woensdag 3 mei 2006 22:53]

Gepost door Videomodulator op woensdag 3 mei 2006 21:13
Leer ik nu op de hogeschool (opleiding master (ingenieur) elektronica). Erg interessant, je moet wel ff een andere denkmethode aanleren dan je van µP gewend bent.
Dat komt omdat FPGA's alles in hardware doen, dus alles gebeurt parallel en dus gelijktijdig (je moet zelf alles stevig in de hand houden, en synchroon laten lopen). Mensen denken en µP's werken echter iteratief, dus alles na elkaar, dat is wel ff serieus uitkijken, maar tis een krachtige tool voor de gevorderde elektronicus :+

De programmeertaal is trouwens VHDL, en het leuke daaraan is, dat ongeveer alle digitale chip's in VHDL beschreven worden, het amerikaanse leger gebruikt enkel chips die zo beschreven worden. Je kan trouwens dingen in VHDL beschrijven die nooit in een FPGA te krijgen zijn, maar wel nuttig zijn om de werking van een of andere chip te begrijpen.

[Reactie gewijzigd op woensdag 3 mei 2006 21:18]

Gepost door surge_me op woensdag 3 mei 2006 21:22
Leer ik nu op de hogeschool Erg interessant, je moet wel ff een andere denkmethode aanleren dan je van µP gewend bent.
Dat komt omdat FPGA's alles in hardware doen, dus alles gebeurt parallel en dus gelijktijdig


In principe heb je gelijk alleen je kunt met een state machien werken, deze states worden na elkaar afgehandeld en dus kun je toch itteratief werken met een FPGA.
Gepost door free_electron op zaterdag 6 mei 2006 06:33
Leer ik nu op de hogeschool (opleiding master (ingenieur) elektronica).

De programmeertaal is trouwens VHDL, en het leuke daaraan is, dat ongeveer alle digitale chip's in VHDL beschreven worden


even een rechtzetting.
der zijn 4 programmeertalen voor programmeerbare logica ( naast schemati centry.
VHDL is er een en in de MINDERHEID
Verilog is de meest populaire en meest gebruikte
System-c is on ontwikkeling en poogt C code om te zetten in harde logica.
AHDL / Abel zijn oudere talen die onderandere in kleine cpld en pal en gal gebruikte wrden. AHDL is ook voor grote designs maar altera specifiek

Het bizarre aan VHDL is dat het alleen in europa gebruikt wordt en voor bepaalde militaire toepassingen omdat het ene zeer strenge syntax heeft. de productiviteit van een vhdl coder is dan ook zeer laag ( vergelijk het met programmeren in ADA )

Verilog is de meest gebruikte taal. Intel , Amd , ST , Motorola, nVidia , al de grote kleppers draaien bijna exclusief op verilog.

Ik was ook verbaasd. Hier in silicon valley is de vraag naar VHDL coders NUL !
als je 'en passant' opmerkt dat je VHDL kent krijg je steevast de vraag: maar ken je Verilog ? nee ? daar is de deur.

in de US wordt VHDL bijna niet gebruikt ( behalve door de DOD en de contractors ) . alle chipdesign hier is verilog.
De taal is ook een stuk makkelijker en veel flexibeler dan VHDL.

Der is trouwens een fameuze test gedaan paar jaar terug door Synopsis ( die maken de compilers voor beide talen )
ze haddne 3 VHDL guru's en 3 verilog Guru's uitgenodigd

De opgave was : je krijgt ene half uur om code te schrijven voor een horloge met alarm functie en stopwatch. je krijgt ene tstbench mat stimuli en wat er moet uitkomen . scjrijf code, compileer en simuleer.
De balans na ene half uur :
ALLE verilog codes simuleerde correct
2 van de 3 verilog codes synthetiseerden ook ( omzetten naar schema . simuleren kan als source en als schema. niet alles wat je schrijft kan ook naar schema of werkt ook correct als schema. das ook voro VHDL zo)
2 van de 2 gesynthetiseerden draaiden correct
NUL van de VHDL simuleerde
van synthese was geen sprake.
De eerste vhdl code was geloof ik pas na 3 uur of zo klaar en simuleerde dan nog niet correct.

je kan het googlen 'vhdl versus verilog ' der zijn ganse artikelen over te vinden.
Gepost door Antoine op woensdag 3 mei 2006 22:16
Ik wil wel, maar het is er nog niet van gekomen
Gepost door the waiter op woensdag 3 mei 2006 22:33
het zijn erg gave dingen. Ik heb er eens MIPS processor verbouwd en op een fpga gezet. Dat ga ik over een paar weken weer doen. Kunt er veel gave dingen mee, alleen jammer dat het zo duur is.
Gepost door Switching Power op woensdag 3 mei 2006 23:03
Als ik er de tijd en zin voor heb misschien nog een keer.
Gepost door Lucky Luke op donderdag 4 mei 2006 09:05
heb nee gestemd. nooit wat mee gedaan. ook nog niet van gehoord overigends...

voor nu dan. nou, geef mij maar een uC.
(maar ben dan ook niet echt prof. met electro bezig natuurlijk. ik hobby maar wat aan.
Gepost door the waiter op vrijdag 5 mei 2006 11:16
het grote verschil tussen een uC en een fpga is dat een uC gewoon een processor is waar je een programmatje op laat draaien. Een fpga is een berg poorten en geheugens die je zelf met elkaar loopt te verbinden. Je ontwerpt bijvoorbeeld je eigen processor die je er vervolgens op zet. De mogelijkheden zijn bijna onbeperkt. Je kunt er mee doen wat je wilt.
Gepost door free_electron op zaterdag 6 mei 2006 06:38
een FPGA is niks anders dan een doos LEGO , behalve dan dat de 'blokjes' nu logische poorten zijn

De alter programmeeromgeving is daar een schoolvoorbeeld van.
je kan weliswaar in Verilog / AHDL en VHDL schrijven
maar je kan evengoed een schema tekenen.
Der zijn 4 legodozen
1) De duplodoos : alle basispoorten
2) De normale lego : alle 74xx chips
3) de lego technics : paramteriseerbare blokken. je vult in wat je wilt en er komt ene kan en klaar blok uit wat je zo kan gebruiken
4) Lego robotics : de NIOs cpu omgeving. een straffe 32 bitter met alle soorten support blokken tot etherent ddr en sata toe. klik aan wat je wilt , waar je het wilt en hoe je het wilt. en er rolt een compleet systeem uit waar je direct code kan voor gaan schrijven.

ze hebben een demobordje een FPGA waarop een NIOS gebaseerd systeem geladen wordt waar een webserver op draait via ethernet.
alles in een fpga.

der is zelfs ooit een demonstratie gedaan van ene nios systeem wat in fpga draaide waar een verilog compiler op geplaatst was. je schreef je blok code , stuurde het naar de nios processor die op de fpga draaide ( en zelf in verilog geschrevne is ) fgpa , die compileerde het en plaatste het bij in zijn eigen configuratie en memory map. je kon dan via de web interface stimuli aanleggne en resultaten bekijken.

zelf modifying hardware ...

[Reactie gewijzigd op zaterdag 6 mei 2006 06:40]

Gepost door stefsky op zaterdag 6 mei 2006 10:41
willen julie me nu wijsmaken dat je met een IC zelf uc's ontwerpt, en via zelfontworpen software ook nog eens programeert???
Gepost door Videomodulator op zaterdag 6 mei 2006 22:36
willen julie me nu wijsmaken dat je met een IC zelf uc's ontwerpt, en via zelfontworpen software ook nog eens programeert???
Je schrijft in een programmeertaal (VHDL of verilog of dergerlijke) hoe je een IC wil laten werken, en dat programmeer je in een FPGA. Zo kan je de volledige 74ls reeks in een FPGA programmeren, dat houd allemaal niets in (eenmaal je er mee weg bent).
Er zijn zelfs FPGA's waar je een PC in kan programmeren, of verschillende microcontrollers die met elkaar communiceren, allemaal intern in een FPGA. Alles wat met logische poorten (and,or,not,...) kan opgebouwd worden.
Gepost door free_electron op zaterdag 13 mei 2006 16:29
willen julie me nu wijsmaken dat je met een IC zelf uc's ontwerpt, en via zelfontworpen software ook nog eens programeert???

inderdaad. dat kan. alhoewel de meesten ene blok klaar geschreven code nemen.
je kan verilog of vhdl code vinden die een processor beschrijft
www.opencores.org bijvoorbeeld

er is ook allerhande peripherie te vinden
bijvoorbeeld je kleeft de code voor ene 8051 een 6264 een 8255 en 8279 aan elkaar , compileert het en kwakt het in een fpga. klaar een compleet computersysteempje op 1 chip. daarin laadt je bijvoorbeeld de 8052-basic rom. als je nu die fpga onder stroom zet heb je ene fpga waarop een processor gemapt is die ene basic interpreter draait waarop jij dan weer programma's kan lopen.

de altera NIOS bijvoorbeeld is ook zo ene cpu. je pakt ene fpga. start de nios configurator, geeft o wat je allemaal nodig hebt , synthetiseert dat en laadt het in de fpga. op dat systeem kan je nu weer software gaan lopen. ze hebben een complete webserver die zo gemaakt is in 1 fpga.

het gaat zelfs verder. het is mogelijk om veelgebruikte algoritmes die je normaal in software zou lopen om te zetten naar verilog of vhdl of systemc. dat stukje code wordt nu vertaald naar 'hardware'. met als gevolg dat het stukken sneller wordt. je kan zo de instructieset gaan uitbreiden van de cpu en eigenlijk ben je dan ene nieuwe cpu aant maken.
Gepost door HermanW op zaterdag 6 mei 2006 12:07
Nooit van gehoord....

Maar zoals jullie het beschrijven klinkt het heel mooi. Majha nog iets te ver gegrepen voor als hobby ;)

Gepost door surge_me op zondag 7 mei 2006 15:58
Nooit van gehoord....

Maar zoals jullie het beschrijven klinkt het heel mooi. Majha nog iets te ver gegrepen voor als hobby ;)



te ver? waarom? FPGA's zijn een ietsje duurder (rond 10 euro begint het, in aantallen van 1 stuk) maar je kunt natuurlijk altijd een CPLD nemen, deze kan iets minder (minder ruimte lagere snelheid, minder flexibel dan FPGA) maar is ook een stuk goedkoper (begint rond 1 euro).

Programeren kun je via de JTAG poort (programmer hangt aan je paralelle poort en bestaat uit wel geteld 4 weerstanden en een connector). Beschrijvingen maken in VHDL of VERILOG kun je doen met behulp van software die de belangrijkste fabrikanten (Xilinx en ALTERA) gratis ter beschikking stellen.

Dus je ziet het: is een stuk makkelijker dan een pic en je kunt er een stuk meer mee naarmate je ervaring toe neemt.
Gepost door draakskuh op zondag 7 mei 2006 22:19
waar kun je deze fpga's kopen want ik wil toch eens proberen hoe zoiets werkt
Gepost door Sir Qui op maandag 8 mei 2006 16:41
In mijn eerste jaar TU/e elektrotechniek ook gehad. (Ook icm MIPS)
Gepost door the waiter op maandag 8 mei 2006 20:00
In mijn eerste jaar TU/e elektrotechniek ook gehad. (Ook icm MIPS)
je bent niet de enige hier die daar rond loopt.
Gepost door sjors op dinsdag 9 mei 2006 15:59
al GAL's CPLD's en FPGA's geprogrameerd dat het m'n oren uitkomt. maarjah we moeten mee met de tijd nietwaar...
Gepost door HermanW op dinsdag 9 mei 2006 22:53
krijg je FPGA's ook in de les stof op hbo elektro techniek ??
Gepost door Henry S. op woensdag 10 mei 2006 21:44
Ik heb ze in het verleden ge(de)soldeerd op m'n werk. mooi met hetelucht en flux.
Gepost door muddy op dinsdag 16 mei 2006 20:48
echt geen idee wat het is...:s Nu ik dat stukje van wiki lees lijkt het me een programmeerbare chip met allemaal logische poorten aan boord. Wat daar zo speciaal aan is weet ik niet (het lijkt me ook vrij makkelijk in een normale uC te zetten), of zit ik nu helemaal fout.
Gepost door Videomodulator op woensdag 17 mei 2006 17:41
echt geen idee wat het is...:s Nu ik dat stukje van wiki lees lijkt het me een programmeerbare chip met allemaal logische poorten aan boord. Wat daar zo speciaal aan is weet ik niet (het lijkt me ook vrij makkelijk in een normale uC te zetten), of zit ik nu helemaal fout.
Dat dacht ik ook, tot ik begon met een frequentieteller. Als je in een µP een teller maakt die tot 100 telt, die kan je perfect maken. Wil je em tot 200 laten tellen, geen probleem, dat kan je nog gemakkelijk aanpassen. Tot je boven de 256 uitkomt, dan moet je (bij een 8-bits µP) eens serieus je programma gaan herwerken, en bij het nog vergroten kom je weer een limiet tegen.
In een FPGA maak je je programma, en als je het goed schrijft kan je het zonder enig probleem enorm uitbreiden, een 16-tellertje is door 2 cijfers te wijzigen in het programma een miljoentellertje.

Verder gebeurt alles parallel, terwijl een µP sequentieel werkt. Bij een FPGA kan je elk ingangssignaal als een "interrupt" gebruiken, als er gelijktijdig 25 ingangssignalen veranderen worden ze allemaal gelijktijdig verwerkt.

Er is trouwens laatst een FPGA uitgekomen die in een processorsocket kan (bij een AMD64 FX), waardoor je naast je gewone processor een programmeerbare processor hebt (die FPGA), die je perfect kan aanpassen aan de berekeningen die nodig zijn (en die berekeningen 100den keren sneller kan dan de gewone processor).

[Reactie gewijzigd op woensdag 17 mei 2006 17:44]

Gepost door GJ_ op woensdag 17 mei 2006 18:41
Klinkt als een uitgebreide PAL. Daar heb ik wel veel mee gewerkt (met PALasm van AMD)
Gepost door KT88 op zondag 21 mei 2006 16:01
Zodra ik een passende uitgangstransformator kan vinden, ga ik ermee aan de slag.
Gepost door the waiter op zondag 28 mei 2006 23:10
Je moet het niet zien als een programmeer bare processor zoals een uC, maar je moet het zien als een herbakbare chip. Je kunt zelf een processor ontwerpen en die er vervolgens op bakken. Alleen zonder waffers, maskers enz. Gewoon met een programmer. Je kunt dus bijvoorbeeld je eigen uc ontwerpen (de architectuur niet het programma) en die er in zetten.

Ik ben momenteel bezig een mips processor te schrijven en die er op te zetten. (Mips processors kom je bijna overal in tegen, auto's routers alles. Komt meer voor dan bijvoorbeeld een pentium.

Als ik het fpga "gebakken"heb met die mips er op. dan is het niet zoals bij een uc dat de chip doet alsof hij een mips is. op het moment dat ik het fpga gebakken heb is hij daadwerkelijk de mips. en is het enige verschil met een mips uit de fabriek dat ik hem opnieuw kan bakken :P

gaaf spul
Gepost door surge_me op dinsdag 30 mei 2006 07:38
Ik ben momenteel bezig een mips processor te schrijven en die er op te zetten. (Mips processors kom je bijna overal in tegen, auto's routers alles. Komt meer voor dan bijvoorbeeld een pentium.


Waar haal jij die mips beschrijving vandaan? ik ben wel geinteresseerd

Als je ingelogd bent kun je een reactie plaatsen.