Indholdsfortegnelse:
- Trin 1: Specifikationer
- Trin 2: RTL -visning af hele systemet
- Trin 3: Testmiljø
- Trin 4: Vedhæftede filer
Video: Design af en simpel cache -controller i VHDL: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Jeg skriver dette instruerbart, fordi jeg fandt det lidt svært at få en reference -VHDL -kode til at lære og begynde at designe en cache -controller. Så jeg designede selv en cache -controller fra bunden og testede den med succes på FPGA. Jeg har præsenteret en simpel direkte kortlagt cachecontroller her, samt modelleret et helt processor-hukommelsessystem til at teste cache-controlleren. Jeg håber, at I finder dette instruktivt nyttigt som reference til at designe jeres egne cachecontrollere.
Trin 1: Specifikationer
Disse er hovedspecifikationerne for den cache -controller, vi skal designe:
- Direkte kortlagt. (gå til dette link, hvis du leder efter Associative Mapped Cache Controller)
- Enkeltbanket, blokerende cache.
- Gennemførelsespolitik for skrivehits.
- Tildel ikke-skriv eller skriv rundt-politik om skrive-savner.
- Ingen skrivebuffer eller andre optimeringer.
- Tag Array er inkorporeret.
Udover det vil vi også designe en cachehukommelse og et hovedhukommelsessystem.
Standardspecifikationerne for cachehukommelsen:
- 256 Bytes enkeltbanket cache.
- 16 cachelinjer, hver cachelinje (blok) = 16 bytes.
Specifikationerne for hovedhukommelsen:
- Synkron læse-/skrivehukommelse.
- Multi -banket interleaved hukommelse - fire hukommelsesbanker.
- Hver bankstørrelse = 1 kB hver. Derfor er den samlede størrelse = 4 kB.
- Word (4 Bytes) adresserbar hukommelse med 10-bit adressebus.
- Højere båndbredde til læsning. Læs databredde = 16 Bytes i en urcyklus.
- Skriv databredde = 4 Bytes.
BEMÆRK: tjek min nyere instruerbare, hvis du leder efter 4-vejs associeret cache-controller-design
Trin 2: RTL -visning af hele systemet
Komplet RTL -repræsentation af topmodulet er vist i figuren (undtagen processoren). Standardspecifikationer for busserne er:
- Alle databusser er 32-bit busser.
- Adressebus = 32-bit bus (men kun 10 bit kan adresseres her af hukommelsen).
- Datablok = 128 bits (Wide Bandwidth Bus for Read).
- Alle komponenter drives af det samme ur.
Trin 3: Testmiljø
Topmodulet blev testet ved hjælp af en testbænk, der simpelthen modellerer en ikke-pipelineret processor (fordi det slet ikke er let at designe en hel processor !!). Testbænken genererer ofte læse/skrive dataanmodninger til hukommelsen. Dette håner typiske "Load" og "Store" instruktioner, der er almindelige i alle programmer, der udføres af en processor. Testresultaterne bekræftede succesfuldt cachecontrollerens funktionalitet. Følgende er teststatistikken observeret:
- Alle Læs/skriv miss- og hit -signaler blev genereret korrekt.
- Alle operationer med læse/skrive data lykkedes.
- Der blev ikke fundet problemer med datainkoherens/inkonsistens.
- Designet blev med succes verificeret for en maks. Ur Driftsfrekvens = 110 MHz i Xilinx Virtex-4 ML-403 Board (hele systemet), 195 MHz til Cache Controller alene.
- Blok -RAM'er blev udledt for hovedhukommelsen. Alle andre arrays blev implementeret på LUT'er.
Trin 4: Vedhæftede filer
Følgende filer er vedhæftet her med denne blog:
- . VHD -filer fra Cache Controller, Cache Data Array, Main Memory System.
- Testbænk.
- Dokumentation om Cache Controller.
Bemærkninger:
- Gennemgå dokumentationen for fuld forståelse af specifikationerne for cache -controlleren, der præsenteres her.
- Eventuelle ændringer i koden afhænger af andre moduler. Så ændringerne bør gøres omhyggeligt. Vær opmærksom på alle de kommentarer og overskrifter, jeg har givet.
- Hvis der af en eller anden grund ikke udledes Block RAM'er for hovedhukommelsen, reducer hukommelsens størrelse efterfulgt af ændringer i adressebussbredder på tværs af filerne og så videre. Så den samme hukommelse kan implementeres enten på LUT'er eller distribueret RAM. Dette vil spare routing tid og ressourcer. Eller gå til den specifikke FPGA -dokumentation, og find den kompatible kode til Block RAM, og rediger koden i overensstemmelse hermed, og brug de samme adressebusbreddespecifikationer. Samme teknik for Altera FPGA'er.
Anbefalede:
Sådan laver du en simpel Nintendo LABO -målpraksis: 13 trin
Sådan laver du en simpel Nintendo LABO -målpraksis: Min søster og jeg købte for nylig en Nintendo Switch. Så selvfølgelig har vi nogle spil at følge med på. Og en af dem var Nintendo LABO Variety Kit. Jeg faldt så til sidst over Toy-Con Garage. Jeg prøvede nogle ting, og det var da jeg
Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin
Design af en programmerbar afbrydelsescontroller i VHDL: Jeg er overvældet over den slags svar, jeg får i denne blog. Tak fyre for at besøge min blog og motivere mig til at dele min viden med jer. Denne gang vil jeg præsentere designet af et andet interessant modul, vi ser i alle SOC'er - Interrupt C
Design af I2C Master i VHDL: 5 trin
Design af I2C Master i VHDL: I denne instruktive diskuteres design af en simpel I2C master i VHDL.BEMÆRK: klik på hvert billede for at se fuldt billede
Design af SPI Master i VHDL: 6 trin
Design af SPI Master i VHDL: I denne instruktive skal vi designe en SPI Bus Master fra bunden i VHDL
Design af UART i VHDL: 5 trin
Design af UART i VHDL: UART står for Universal Asynchronous Receiver Transmitter. Det er den mest populære og enkleste serielle kommunikationsprotokol. I denne instruktør vil du lære at designe et UART -modul i VHDL