Sisukord:
- Samm: spetsifikatsioonid
- 2. samm: kogu süsteemi RTL -vaade
- 3. samm: testitulemused
- Samm: manustatud failid
Video: Lihtsa neljasuunalise assotsiatiivse vahemälu kontrolleri disain VHDL-is: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Minu eelmises juhendis nägime, kuidas kujundada lihtne otsene kaardistatud vahemälu kontroller. Seekord liigume sammu edasi. Kavandame lihtsa neljasuunalise assotsiatiivse vahemälu kontrolleri. Eelis? Vähem vahelejäämissagedust, kuid jõudluse hinnaga. Nii nagu minu eelmine ajaveeb, kujundaksime ja jäljendaksime kogu vahemälu kontrolleri testimiseks kogu protsessorit, põhimälu ja vahemälu keskkonda. Loodan, et te leiate, et see on kasulik viide mõistete mõistmiseks ja tulevikus oma vahemälu kontrollerite kujundamiseks. Kuna protsessori (katsestendi) mudel ja põhimälusüsteem on täpselt samad, mis mu eelmisel blogil, ei hakka ma neid uuesti selgitama. Palun vaadake selle kohta üksikasju eelmisest juhendist.
Samm: spetsifikatsioonid
Kiire ülevaade siin esitatud vahemälu kontrolleri spetsifikatsioonidest:
- Neljasuunaline seostuv vahemälu kontroller (minge sellele lingile, kui otsite otsest kaardistatud vahemälu kontrollerit).
- Ühe pangaga blokeeriv vahemälu.
- Kirjutamispoliitika kirjutamishittide kohta.
- Ümbritseva ümberkirjutamise eeskirjad kirjutamisvigu.
- Pseudo-LRU (pLRU) asenduspoliitika.
- Tag Array kontrolleris.
- Konfigureeritavad parameetrid.
Vahemälu ja põhimälu vaikespetsifikatsioonid on samad, mis minu eelmisel juhendil. Palun viidake neile.
2. samm: kogu süsteemi RTL -vaade
Ülemise mooduli täielik RTL -esitus on näidatud joonisel (välja arvatud protsessor). Busside vaikespetsifikatsioonid on järgmised:
- Kõik andmebussid on 32-bitised.
- Aadressibuss = 32-bitine siin (kuid mälu abil saab siin adresseerida ainult 10 bitti).
- Andmeplokk = 128 bitti (laia ribalaiusega siin lugemiseks).
- Kõiki komponente juhib sama kell.
3. samm: testitulemused
Ülemoodulit testiti testpingi abil, mis lihtsalt modelleerib torustikuta protsessorit, nagu me tegime viimases juhendis. Testpink genereerib mälule sageli lugemis-/kirjutamisandmeid. See pilkab tüüpilisi "Laadi" ja "Salvesta" juhiseid, mis on levinud kõikides protsessori poolt käivitatud programmides.
Katsetulemused kinnitasid edukalt vahemälu kontrolleri funktsionaalsuse. Järgnevalt on täheldatud testistatistikat:
- Kõik lugemis-/kirjutamis- ja vastamata signaalid genereeriti õigesti.
- Kõik andmete lugemise/kirjutamise toimingud olid edukad kõigil neljal viisil.
- pLRU algoritm on vahemälu ridade asendamiseks edukalt kontrollitud.
- Andmete ebajärjekindluse/vastuolu probleeme ei tuvastatud.
- Kujundus oli Maxmi jaoks edukalt ajastatud. Kell Töösagedus = 100 MHz Xilinx Virtex-4 ML-403 pardal (kogu süsteem), 110 MHz ainult vahemälu kontrolleri jaoks.
- Põhimälu jaoks järeldati plokk -RAM -id. Kõik muud massiivid rakendati LUT -idel.
Samm: manustatud failid
Selle ajaveebi juurde on lisatud järgmised failid:
- Vahemälu kontrolleri, vahemäluandmete massiivi, põhimälusüsteemi. VHD -failid.
- Testpink.
- Vahemälu kontrolleri dokumentatsioon.
Märkused:
- Siin esitatud vahemälu kontrolleri spetsifikatsioonide täielikuks mõistmiseks lugege dokumentatsiooni.
- Kõik koodi muudatused sõltuvad teistest moodulitest. Seetõttu tuleks muudatusi teha mõistlikult.
- Pöörake tähelepanu kõikidele kommentaaridele ja päistele, mille olen andnud.
- Kui mingil põhjusel ei järeldata plokk -RAM -e põhimälu kohta, VÄHENDA mälu suurust, millele järgneb failide aadressibussi laiuse muutmine jne. Nii et sama mälu saab rakendada kas LUT -idel või hajutatud RAM -il. See säästab marsruutimise aega ja ressursse. Või minge konkreetse FPGA dokumentatsiooni juurde ja leidke ühilduv kood Block RAM -i jaoks ning muutke koodi vastavalt ja kasutage samu aadressibussi spetsifikatsioone. Sama tehnika Altera FPGA -de puhul.
Soovitan:
Programmeeritava katkestuskontrolleri disain VHDL -is: 4 sammu
Programmeeritava katkestuskontrolleri kujundamine VHDL -is: olen ajaveebist saadud vastustest väga vaimustuses. Tänan poisid, et külastasite minu ajaveebi ja motiveerisite mind teiega oma teadmisi jagama. Seekord tutvustan veel ühe huvitava mooduli kujundust, mida näeme kõigis SOC -des - katkestus C
Lihtsa vahemälu kontrolleri disain VHDL -is: 4 sammu
Lihtsa vahemälu kontrolleri disain VHDL -is: Kirjutan selle juhendi, sest mul oli veidi raske saada VHDL -viite koodi, et õppida ja alustada vahemälu kontrolleri kujundamist. Nii kujundasin ma vahemälu kontrolleri nullist ja katsetasin seda edukalt FPGA -ga. Mul on p
I2C Masteri disain VHDL -is: 5 sammu
I2C Masteri disain VHDL -is: selles juhendis käsitletakse lihtsa I2C -kapteni kujundamist VHDL -is. MÄRKUS: täieliku pildi nägemiseks klõpsake igal pildil
Lihtsa VGA -kontrolleri disain VHDL -is ja Verilogis: 5 sammu
Lihtsa VGA -kontrolleri disain VHDL -is ja Verilogis: selles juhendis kavandame RTL -is lihtsa VGA -kontrolleri. VGA -kontroller on digitaalskeem, mis on ette nähtud VGA -ekraanide juhtimiseks. See loeb kaadripuhvrist (VGA -mälu), mis tähistab kuvatavat kaadrit, ja loob vajaliku
SPI Masteri disain VHDL -is: 6 sammu
SPI Masteri disain VHDL -is: selles juhendis kavandame VHDL -is SPI -bussimeistri nullist