Digitala projekt 2004

GPU

av

Daniel Olsson och Francisco Iglesias

Inledning

Kärnan kring vårt projekt var att utveckla något med en FPGA. Beskrivningsspråket för att modellera digital hårdvara - VHDL, hade vi kommit i kontakt med i föregående kurser. Detta ville vi omsätta i ett eget system med egen design! Projektet vi satte igång med innebar att konfigurera FPGAn som en GPU (Graphic Processing Unit). Den skulle klara av att återge en bild på en LCD-display som den hämtade från ett externt minne. Vi planerade även grafiska funktioner för att manipulera minnet, som att fylla ytor och att flytta areor. En processor skulle via ett enkelt testprogram förse GPUn med all data för att kunna göra det den var avsedd för.

GPU

Idén var att en processor skriver bildinformation till SRAM i form av bitmappsdata. FPGAn läser bildinformationen från SRAMet och återger detta på en LCD-display. FPGAn skulle även kunna utföra enkla grafiska operationer på bitmappsdatan i SRAMet, såsom fylla och flytta minnesareor.

Resultat

Varje del implementerades var för sig och enhets-testades. Processorn körde ett program som renderade en bild i SRAMet. FPGAn programmerades att visa datan i SRAMet på displayen. Allt fungerade bra var för sig.

När sedan bitarna kopplades samman och systemet kördes på full hastighet var det inte riktigt likadant. Tillståndsmaskinen i FPGAn fick processorn att hänga sig. Trots timmar av debugging och omskrivning av kod ville verkligheten inte anpassa sig till vår miljö.

Kontentan av det hela är att det är inte alltid så lätt att konstruera ett eget system och få det att bete sig som man vill. Att programmera för något som är färdigtestat och beprövat är en helt annan sak.

Länkar Projektrapport.pdf