Permalänk
Medlem

Börja med FPGA

Hej!

Jag studerar till elfordonsingenjör på yrkeshögskola men vill bredda mig lite med andra kunskaper inom elektronik och inbyggda system. Jag har därför tänkt försöka lära mig FPGA programmering då jag tycker detta verkar otroligt spännande och ser det som meriterande på vissa jobb. Jag skulle gärna vilja ha lite tips kring Vilken utrustning man borde köpa och vart man kan lära sig detta på något bra ställe. Känns som en ren djungel att börja i tyvärr så är tacksam för alla råd ni kan ge.

Ha det grymt

Permalänk
Medlem

Jag har själv varit lite i sitsen för FPGA när jag ville vidarestudera men från överblick så visste jag inte riktigt man ska prioritera, VHDL eller SystemVerilog. VHDL har funnits länge och är välbekant i industrier men SystemVerilog verkar vara mer flexibelt och modernt men har ingen aning om hur pass brett det är i verkligheten, C eller Python och försöker man hitta någon form av kompromiss så är där risk att någon annan inte kan arbeta med samma språk om medarbetare bara har utbildning i ett av dem.

Sen är frågan om hur pass mycket effektivare det är att använda VHDL vs C (CPU cykler) för att utföra samma sak, i vissa applikationer så är millisekunder avgörande. Men jag är själv nyfiken och hoppas någon kan svara på detta.

Visa signatur

PS3 Slim 320GB (1TB) | Wii U Premium | Xbox 360 250GB | X1 1TB | PS5 + Corsair MP600 Core 2TB | New 3DS XL + Katsukity's Capture Card | PS Vita 32GB | Ryzen 5800X3D, 32GB DDR4 3000Mhz, 240GB SSD, 4TB SSD (Kingston KC3000), Radeon 6700XT, 3TB+4TB HDD, B450M-DS3H | Nintendo Switch

Permalänk
Hedersmedlem

Har inte pysslat så mycket med FPGA men skaffade nyligen ett utvecklingskort.

Jag skaffade en baserad på Xilinx Artix7, AMD köpte ju Xilinx så det använder AMDs Vivado som verkar någorlunda populärt. Har inte gjort så mycket än, det var lurigt att få igång programmering men Vivado kändes som en ganska modern mjukvara och tycker det fungerat bra i övrigt.

Ville mest hitta något som inte skulle begränsa mig på länge och hade mycket möjligheter. Nu var det inte så mycket extra på det kortet jag köpte, några knappar och LEDar, sen alla pinnar utbrutna till headers. Kan vara bra att ta någon med brytare och kanske någon 7-segmentsdisplay för lite mer visuell feedback och projekt att börja med.

Kör själv Verilog(inte SystemVerilog). Vill minnas att det är lite smidigare än VHDL men Verilog är simuleringsmjukvara i grunden och sen insåg man att det gick att använda för FPGA som jag förståt det. Så det kan vara lite förvirrande. Jag vet inte om det är samma för VHDL.

Permalänk
Medlem

Jag köpte ett labbkort med en Altera Cyclone 3 någon gång 2008-2009 för att jag tyckte det verkade kul, utan någon direkt erfarenhet av elektronik (jag är elare). Trösklen var rätt stor då.
Men för 10 år sedan dammade jab av det igen och den gången kom jag mycket längre och lyckades programmera lite roliga funktioner och lärde mig mer elektronik på köpet. Då programmerade jag i verilog, vilket är som en blandning av C ocn Pascal känns det som, önskar att jag valde VHDL istället.

Jag skulle rekommendera att du väljer Xilinx eller Altera (AMD eller Intel nuförtiden) och köper ett labbkort för <1000kr på Amazon eller Ebay för att prova på lite. FPGA är väldigt annorlunda från MCU så det är inte för alla.

Permalänk

Vad kul! Jag arbetar med FPGA utveckling och gjort i många år. Man kan såklart lära sig själv. Har dock haft kollegor som gått distanskurser på halvfart eller lägre medan de jobbat. Om det är en möjlighet är det ett bra sätt att få grunderna.

När det kommer till online hjälp finns det väldigt få forum etc. https://www.reddit.com/r/FPGA/ är bästa källan. Det finns även en Discord för Elektronikingenjörer. https://discord.gg/hxXHTzKg
Det finns även en hemsida där du kan skriva kod och simulera på nätet utan verktyg.
https://www.edaplayground.com/ Sidan är inte så stabil dock. Tror det är någon eldsjäl som sköter allt själv och har en server typ hemma.

På grund av komponent brist som är kvar efter Covid så är det dyrt med utvecklingskit. Börja med att bara skriv kod och simulera. Kolla lite exempel på EDA Playground. Kan säga det är större delen av vad jag gör om dagarna. Skriva testbänkar och köra simuleringar är väldigt stor del av arbetet med FPGA utveckling. När du vet mer vad du vill göra så köp ett utvecklingskort med de delar du vill ha.
Däremot kan jag rekommendera ett DE10 Nano. För det kan man bygga om till en MiSTer https://www.retrorgb.com/mister.html och emulera en väldigt massa äldre konsoler perfekt. Också ett väldigt bra utvecklingskort.
Kan försöka svara på frågor om du har några.

Visa signatur

Hayabusa T3 | Venum Elite Evo | UFC Venum Pro Line

Permalänk
Medlem

Som sagt är resurserna få och inlärningskurvan brant, vilket jag kämpade mycket med i början av min karriär som FPGA/ASIC-utvecklare. Ett knepigt problem är att man utöver hårdvara behöver mjukvaruverktyg, och de professionella verktygen som används i branschen för simulering och syntes (t.ex. Questa/Modelsim, Vivado) är såpass dyra att ingen vettig privatperson kan betala för dem. Som mjukvaruutvecklare kan man ju dra ned professionella kompilatorer, debuggers etc helt gratis, men det är snarare undantag än regel för FPGA.

En hobby-community finns absolut kring t.ex. ovan nämnda MiSTer, men det kanske kan vara lite väl hög nivå att börja med. Jag vill slå ett slag för www.nandland.com och deras eget utvecklingskort Nandland Go baserad på en Lattice-FPGA. Här finns grundläggande lektioner i digital design samt instruktioner i hur man implementerar designer på deras utvecklingskort. Det börjar med att blinka en LED och kommer ända upp till att driva en display ut via VGA.

Allt bök jag nämnde ovan med att hitta och installera lämpliga verktyg slipper man eftersom det är inbakat i kursen för kortet.

Hör gärna av dig om du har fler frågor!