Stap 8: Directe geheugentoegang
De DMA-Controller geeft toegang tot de GPU's RAM (de Micron chip op het bord Nexys 3) rechtstreeks vanuit de interface van SRAM. Deze module nodig zou zijn meestal bitmap afbeelding gegevensoverdracht zoals de achtergrond, tegels, sprites naar het CRAM. Om te minimaliseren van het wachten op het ladingsscherm voor de games, zullen we moeten een manier vinden om het maximaliseren van de snelheid van gegevensoverdracht via deze controller.
Wij hebben ontworpen deze module, gelet op de mogelijkheid dat de input gegevenssnelheid tot 28MHz (in het geval waar de cyclus van een schrijven aan de MCU-Interface nam 6 AHB klokken voor de STM32) zou kunnen gaan, maar in de praktijk, als gevolg van de luidruchtige signalen op de MCU-Interface, de gegevenssnelheid zou nooit zo hoog dat (zou vaker tussen 3 MHz tot 10 MHz).
Naast register beheermodule, kan deze controller worden gescheiden in twee submodules; de ontvanger van de MCU Interface die is belast met het toezicht op de status van de bestandsoverdracht en buffering van binnenkomende gegevens als er een voortdurende DMA-overdracht is. Dankzij een totaal van zes 16 kB BlockRAMs de buffering is gedaan, en deze buffers zijn gegroepeerd in één enkel adresbus aan de kant van de poort van het schrijven. De tweede sub-module van deze controller is de RAM Controller Emitter, deze module is belast met het "legen" van deze buffers door te schrijven naar de RAM wanneer ze zijn gevuld met voldoende gegevens.
(Gedetailleerde bedrijfsmodi en theoritical bandbreedte limiet zal worden ontwikkeld hier binnenkort.)
Demo
In de video, de MCU-Emulator wordt gebruikt om het Voer van de teller van een 16-bit output als binnenkomende gegevensbron uit de MCU en deze gegevens wordt overgedragen aan de 300 x 200 zone van de laag 0. Vóór en na de DMA-transactie, kunt u beelden van gegevens vinden.