Den här e-postadressen skyddas mot spambots. Du måste tillåta JavaScript för att se den. har arbetat med metodik, komponenter, utvecklingsverktyg, utbildning, forskning och strategisk analys inom FPGA-området sedan 1989. Han har arbetat mot företag och högskolor i hela världen och har arrangerat konferenser – den 8 september är det dags igen då FPGA World startar. Han har också författat böcker inom områdena VHDL, realtidssystem och HW/SW-system. Tiden delas mellan Mälardalens högskola och företaget RealFast som kanske mest är känt för en FPGA-komponent som är en realtidsoperativsystemsaccelerator. |
Det magiska är att lösningsrymden och flexibiliteten i implementeringen blir större eftersom hårdvaran är lika enkel att programmera som programvaran.
Andra attribut som påverkas positivt är observerbarhet, svarstid, förutsägbarhet, storlek och pris. Dessutom ger FPGA-tekniken en snabbare utveckling från idé till fungerande system.
Nackdelen är att FPGA:erna inte kan exekvera programvara i samma takt som en modern avancerad processor. Men det kan man kompensera för genom att flytta applikationsspecifika programfunktioner till hårdvara.
Många saknar fortfarande kunskap om tekniken, även om det finns tecken på en ändring - vi ser ett allt större intresse för kurser och det startas många nya projekt. Allt fler använder sig av färdiga Internetprotokoll och realtidskärnor i form av teknologioberoende komponenter i hårdvara.
FPGA-tekniken vilar på tre ben: FPGA-teknologin, utvecklingsverktygen och komponenterna.
Teknologin har utvecklats sedan mitten av 80-talet. Kretsarna har blivit billigare och större. När RAM integrerades på FPGA - vilket skedde ganska sent - startade en utveckling där man kan ha mjuka och hårda CPU:er på samma chip, alltså blanda program- och hårdvara.
Priset för en FPGA med 100 000 grindar ligger idag runt några dollar.
Lösningen blir ännu billigare om man sedan för över en fungerande konstruktionen till en mindre asic. Detta eftersom kretsen blir mindre, systemet startar snabbare och man slipper en extra krets för programmeringen.
Det senaste FPGA-kort jag köpte kostade 700 kronor i stycketal. Det innehöll 200 000 grindar, 1 Mbyte RAM, serieport, VGA, ett antal anslutningar, fyra sjusegmentsdisplayer, åtta lysdioder, fyra knappar, spänningsaggregat och en nedladdningskabel till utvecklingssystemet.
200 000 grindar kostar runt 40 kronor och kan programmeras med en 32-bitars CPU, bussar, RAM/ROM (ca 32Kb), I/O, operativsystemsaccelerator. Och fortfarande får du cirka 70 000 grindar över för egna funktioner.
Det finns idag produktionsvolymer på FPGA-kretsar med runt 8 miljoner grindar.
Det andra benet - utvecklingsverktygen - har det senaste året visat sig tillräckligt robusta för att kunna användas i skarpa projekt.
Utvecklingen går mot verktyg som är kompletta utvecklingsmiljöer för analys, konstruktion och verifiering av både system och komponenter.
Hårdvaruspråk och syntes har gjort det möjligt att skapa teknologioberoende komponentbibliotek för hårdvaran. Nya verktyg översätter automatiskt enkel C-syntax till hårdvara. Komponenternas businterface kan idag genereras på ett enkelt sätt, vilket tidigare var en stor kostnad. Det finns mycket mera att omnämna. Mjukvaruverktyg för komponentkonstruktion och -bibliotek utvecklas hela tiden och kvaliteten förbättras allteftersom antalet användare ökar.
Internetprotokoll och operativsystem håller idag hög kvalité i de bibliotek som medföljer systemen.
Det tredje benet - komponenterna - är nyckeln till högre effektivitet.
På några timmar kan man bygga en plattform med flera processorer och ett flertal standardkomponenter, bussar och drivrutiner. Inklusive syntes och nerladdning. Knepet är att bygga systemet med generiska HW/SW-komponenter. Att de är generiska betyder att man kan förändra dem genom att ändra deras attribut innan de instansieras.
Det går att bygga en stor variation av plattformar bara med hjälp av existerande komponenter. Komponenter som kommunicerar med hårdvaran länkar automatiskt i verktyget med rätt drivrutiner. Därefter är det kundens sak att utveckla sina egna applikationsberoende komponenter, som bör vara teknologioberoende.
Jag blir alltid lika förvånad när ett företag pratar om effektivisering, men det visar sig att de inte ens har en fungerande komponenthantering.
Systemet förändras på flera sätt till det bättre om det implementeras i FPGA-teknik. Observerbarheten kan ökas till 100 procent med hjälp av prober. Hårdvaruprober belastar inte prestanda, och fortfarande måste mjukvarans prober oftast konstrueras så de inte ställer till realtidsproblem. Nya komponenter som arbetar som en svart låda finns på marknaden. De kan i efterhand spela upp skeenden i FPGA:n och svara på frågor om vad som gått snett. Även användandet av en realtidskärna i hårdvaran ökar observerbarheten, eftersom man kan lyssna på den utan att påverka prestanda.
Snabbheten och determinismen ökar drastiskt om man utnyttjar hårdvarans parallellitet. Det betyder att hårdvaran med tiden kommer att överta allt fler uppgifter i systemet, allteftersom FPGA-priserna sjunker. Jag har märkt att på de platser jag har undervisat om HW/SW system, så har SW ingenjörerna börjat programmera mer i hårdvara. Detta eftersom det ger dem möjlighet att garantera tidsbeteendet hos deras funktioner.
Systemet tar mindre yta på kretskortet eftersom CPU:er, in- och utgångar, Ethernet-styrenheter med mera, kan få plats i en enda FPGA.
Ett tips för er som utnyttjar flerprocessorsystem i rack: vi tror att de i många fall kan ersättas med en stor FPGA vilket skulle ge en större flexibilitet och en stor minskning av produktionskostnaden.
Länk: Ni som är intresserade - kom till FPGAworld Conference i Kista den 8 September.