Innehållsförteckning:
- Steg 1: Specifikationer
- Steg 2: RTL -vy av hela systemet
- Steg 3: Testresultat
- Steg 4: Bifogade filer
Video: Design av en enkel fyrvägsuppsättning associerad cachekontroller i VHDL: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:43
I min tidigare instruerbara, såg vi hur man utformar en enkel direkt mappad cache -kontroller. Den här gången går vi ett steg framåt. Vi kommer att utforma en enkel fyrvägsuppsättning associerad cache-kontroller. Fördel? Mindre missfrekvens, men på bekostnad av prestanda. Precis som min tidigare blogg skulle vi designa och efterlikna en hel processor, huvudminne och cachemiljö för att testa vår cachekontroller. Jag hoppas att ni tycker att detta är en användbar referens för att förstå begreppen och designa era egna cachekontroller i framtiden. Eftersom modellen för processor (testbänk) och huvudminnessystemet är exakt samma som min tidigare blogg kommer jag inte att förklara dem igen. Vänligen se den föregående instruktionsboken för detaljer om den.
Steg 1: Specifikationer
Snabb titt genom specifikationerna för Cache Controller som presenteras här:
- Four-way Set Associative Cache Controller (gå till den här länken om du letar efter Direct Mapped Cache Controller).
- Enbankad, blockerande cache.
- Genomskrivningspolicy för skrivträffar.
- Skriv-runt-policy för skrivmissar.
- Tree Pseudo-LRU (pLRU) ersättningspolicy.
- Tag Array inom handkontrollen.
- Konfigurerbara parametrar.
Standardspecifikationer för cacheminne och huvudminne är desamma som från min tidigare instruerbara. Vänligen hänvisa till dem.
Steg 2: RTL -vy av hela systemet
Komplett RTL -representation av toppmodulen visas i figuren (exklusive processorn). Standardspecifikationer för bussarna är:
- Alla databussar är 32-bitars bussar.
- Adressbuss = 32-bitars buss (men endast 10 bitar kan adresseras här av minnet).
- Datablock = 128 bitar (Wide Bandwidth Bus for Read).
- Alla komponenter drivs av samma klocka.
Steg 3: Testresultat
Toppmodulen testades med en testbänk, som helt enkelt modellerar en icke-pipelinerad processor, precis som vi gjorde i den senaste instruktionen. Testbänken genererar ofta läs-/skrivdataförfrågningar till minnet. Detta hånar typiska "Load" och "Store" instruktioner, vanliga i alla program som körs av en processor.
Testresultaten har verifierat funktionen hos cachekontrollern. Följande är teststatistiken som observerats:
- Alla läs/skriv miss- och träffsignaler genererades korrekt.
- Alla läs-/skrivdataoperationer lyckades på alla fyra sätten.
- pLRU -algoritmen har verifierats för ersättning av cachelinjer.
- Inga datainkoherens/inkonsekvensproblem upptäcktes.
- Designen lyckades tajma verifieras för en Maxm. Klocka Driftsfrekvens = 100 MHz i Xilinx Virtex-4 ML-403 Board (hela systemet), 110 MHz för Cache Controller ensam.
- Block RAM -minnen utlästes för huvudminnet. Alla andra matriser implementerades på LUT.
Steg 4: Bifogade filer
Följande filer bifogas här med denna blogg:
- . VHD -filer från Cache Controller, Cache Data Array, Main Memory System.
- Testbänk.
- Dokumentation om Cache Controller.
Anmärkningar:
- Gå igenom dokumentationen för fullständig förståelse av specifikationerna för Cache Controller som presenteras här.
- Eventuella ändringar i koden är beroende av andra moduler. Så, ändringarna bör göras på ett klokt sätt.
- Var uppmärksam på alla kommentarer och rubriker som jag har gett.
- Om det av någon anledning inte utläses block -RAM för huvudminnet, MINSKA storleken på minnet, följt av ändringar i adressbussbredder över filerna och så vidare. Så att samma minne kan implementeras antingen på LUT eller distribuerat RAM. Detta sparar tid och resurser. Eller, gå till den specifika FPGA -dokumentationen och hitta den kompatibla koden för Block RAM och redigera koden i enlighet därmed och använd samma adressbussbreddsspecifikationer. Samma teknik för Altera FPGA.
Rekommenderad:
Design av en programmerbar avbrottsstyrenhet i VHDL: 4 steg
Design av en programmerbar avbrottsstyrenhet i VHDL: Jag är överväldigad av den typ av svar jag får i den här bloggen. Tack killar för att du besökte min blogg och motiverade mig att dela min kunskap med dig. Den här gången kommer jag att presentera designen av en annan intressant modul som vi ser i alla SOC - Interrupt C
Design av en enkel cachekontroller i VHDL: 4 steg
Design av en enkel cachekontroller i VHDL: Jag skriver detta instruerbart, eftersom jag tyckte att det var lite svårt att få lite referens -VHDL -kod att lära sig och börja designa en cachekontroller. Så jag designade själv en cachekontroller från början och testade den framgångsrikt på FPGA. Jag har p
Design av I2C Master i VHDL: 5 steg
Design av I2C Master i VHDL: I den här instruktionsboken diskuteras att designa en enkel I2C -master i VHDL. OBS: klicka på varje bild för att se hela bilden
Design av en enkel VGA -kontroller i VHDL och Verilog: 5 steg
Design av en enkel VGA -styrenhet i VHDL och Verilog: I den här instruktören ska vi designa en enkel VGA -styrenhet i RTL. VGA Controller är den digitala kretsen som är utformad för att driva VGA -skärmar. Den läser från Frame Buffer (VGA Memory) som representerar ramen som ska visas, och genererar nece
Design av SPI Master i VHDL: 6 steg
Design av SPI Master i VHDL: I denna instruktiva kommer vi att designa en SPI Bus Master från grunden i VHDL