Bärbar spelkonsol (GPU Team) (8 / 10 steg)
Steg 8: Direct Memory Access
DMA-styrenheten ger tillgång till GPU: s RAM (Micron chip i Nexys 3 styrelsen) direkt från SRAM-gränssnittet. Denna modul behövs mestadels för att överföra bitmappsbilddata som bakgrund, plattor, sprites till CRAM. För att minimera väntan på lastning skärmen spel, måste vi hitta ett sätt att maximera dataöverföringshastighet genom den här domänkontrollanten.
Vi har utformat denna modul, överväger möjligheten att andelen indata kan gå upp till 28MHz (i fall där en skriva cykel till gränssnittet MCU tog 6 AHB klockor för STM32), men i praktiken, tack vare de högljudda signalerna på MCU-gränssnittet, datahastigheten skulle aldrig gå så högt som (sannolikt mer mellan 3 MHz till 10 MHz).
Bortsett från registret modul, kan den här domänkontrollanten delas in i två submodules; MCU gränssnitt mottagaren som har till uppgift att övervaka överförings status och buffert inkommande data om det finns en pågående DMA-överföring. Buffringen sker tack vare sammanlagt sex 16 kB BlockRAMs, och dessa buffertar är sammanslagits till en enda adress buss på sidan av skriva porten. Den andra delmodul av den här domänkontrollanten är RAM Controller utsläppskälla, denna modul med uppgift att "tömma" dessa buffertar genom att skriva till RAM när de är fyllda med tillräckligt med data.
(Detaljerad driftlägen och theoritical bandbredd gräns kommer att utvecklas här snart.)
Demo
I videon, MCU emulatorn används för att mata en 16-bitars räknare utdata som inkommande datakälla från MCU och informationen överförs till zonen 300 x 200 i lager 0. Du kan hitta bilder på data före och efter operationen DMA.