INHOUDSOPGAWE:
- Stap 1: Spesifikasies
- Stap 2: RTL -aansig van die hele stelsel
- Stap 3: Toetsomgewing
- Stap 4: aangehegte lêers
Video: Ontwerp van 'n eenvoudige kasbeheerder in VHDL: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Ek skryf hierdie instruksies, want ek het dit moeilik gevind om 'n verwysing -VHDL -kode te kry om te leer en 'n kasbestuurder te begin ontwerp. Ek het dus self 'n kasbeheerder ontwerp en dit met sukses op FPGA getoets. Ek het 'n eenvoudige direkte gekarteerde kasbestuurder hier aangebied, sowel as 'n volledige verwerker-geheuestelsel gemodelleer om die kasbestuurder te toets. Ek hoop dat u hierdie instruksies nuttig vind as 'n verwysing na die ontwerp van u eie kasbeheerders.
Stap 1: Spesifikasies
Dit is die belangrikste spesifikasies van die Cache Controller wat ons gaan ontwerp:
- Direk gekarteer. (gaan na hierdie skakel as u op soek is na 'n Associated Mapped Cache Controller)
- Enkelbank, blokkerende kas.
- Deurskrywingsbeleid oor skryf treffers.
- Geen-skryf-toewysings- of skryf-om-beleid oor skryf-missies.
- Geen skryfbuffer of ander optimalisering nie.
- Tag Array is opgeneem.
Boonop sal ons ook 'n kasgeheue en 'n hoofgeheue -stelsel ontwerp.
Die standaard (konfigureerbare) spesifikasies van die kasgeheue:
- 256 Bytes kas met enkelbank.
- 16 kaslyne, elke kaslyn (blok) = 16 grepe.
Die spesifikasies van die hoofgeheue:
- Sinchroniese lees-/skryfgeheue.
- Multi -bank interleaved geheue - vier geheue banke.
- Elke bankgrootte = 1 kB elk. Daarom is die totale grootte = 4 kB.
- Word (4 Bytes) adresbare geheue met 10-bis adresbus.
- Hoër bandwydte vir lees. Lees data breedte = 16 Bytes in een klok siklus.
- Skryf data breedte = 4 grepe.
LET WEL: kyk na my nuwer instruksies as u op soek is na 'n 4-rigting ontwerp van 'n assosiatiewe kasbeheerder
Stap 2: RTL -aansig van die hele stelsel
Die volledige RTL -voorstelling van die boonste module word in die figuur getoon (die verwerker uitgesluit). Die standaard spesifikasies vir die busse is:
- Alle databusse is 32-bis-busse.
- Adresbus = 32-bis-bus (maar slegs 10 bisse kan hier deur die geheue aangespreek word).
- Datablok = 128 bis (Wide Bandwidth Bus for Read).
- Alle komponente word deur dieselfde klok aangedryf.
Stap 3: Toetsomgewing
Die boonste module is getoets met 'n toetsbank, wat eenvoudig 'n nie-pyplynverwerker modelleer (want dit is glad nie maklik om 'n hele verwerker te ontwerp nie!). Die toetsbank genereer gereeld lees-/skryfdata -versoeke na die geheue. Dit bespot tipiese instruksies "Laai" en "Stoor", wat algemeen voorkom in alle programme wat deur 'n verwerker uitgevoer word. Die toetsresultate het die funksie van die kasgeheue -kontroleerder suksesvol geverifieer. Hier volg die toetsstatistieke:
- Alle Lees/Skryf Mej en tref seine is korrek gegenereer.
- Alle lees-/skryfdatabewerkings was suksesvol.
- Geen probleme met onsamehangendheid/inkonsekwentheid van data bespeur nie.
- Die ontwerp is suksesvol vir 'n maksimum tydsberekening van tydsberekening. Klok Gereedheid van werking = 110 MHz in Xilinx Virtex-4 ML-403 Board (hele stelsel), 195 MHz vir Cache Controller alleen.
- Blok -RAM's is vir die hoofgeheue afgelei. Alle ander skikkings is op LUT's geïmplementeer.
Stap 4: aangehegte lêers
Die volgende lêers word hier by hierdie blog aangeheg:
- . VHD -lêers van Cache Controller, Cache Data Array, Hoofgeheue -stelsel.
- Toetsbank.
- Dokumentasie oor kasbestuurder.
Notas:
- Lees die dokumentasie deur vir 'n volledige begrip van die spesifikasies van die Cache Controller wat hier aangebied word.
- Enige veranderinge in die kode is afhanklik van ander modules. Die veranderinge moet dus oordeelkundig gedoen word. Gee aandag aan al die opmerkings en opskrifte wat ek gegee het.
- As daar vir een of ander rede geen blok -RAM's vir die hoofgeheue afgelei word nie, VERMINDER die grootte van die geheue, gevolg deur veranderinge in adresbuswydtes oor die lêers, ensovoorts. Sodat dieselfde geheue op LUT's of verspreide RAM geïmplementeer kan word. Dit bespaar die routyd en hulpbronne. Of gaan na die spesifieke FPGA -dokumentasie en vind die versoenbare kode vir Block RAM en wysig die kode dienooreenkomstig, en gebruik dieselfde spesifikasies vir die adresbuswydte. Dieselfde tegniek vir Altera FPGA's.
Aanbeveel:
Ontwerp van 'n eenvoudige vierweg-stel assosiatiewe kasbeheerder in VHDL: 4 stappe
Ontwerp van 'n eenvoudige vierweg-stel assosiatiewe cache-beheerder in VHDL: In my vorige instruksies het ons gesien hoe om 'n eenvoudige direkte gekarteerde kasbestuurder te ontwerp. Hierdie keer beweeg ons 'n stap vorentoe. Ons ontwerp 'n eenvoudige assosiatiewe kasbestuurder met vier rigtings. Voordeel? Minder miskoers, maar ten koste van perfo
Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: 4 stappe
Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: Ek is oorweldig deur die soort reaksies wat ek op hierdie blog kry. Dankie ouens dat julle my blog besoek het en my gemotiveer het om my kennis met julle te deel. Hierdie keer bied ek die ontwerp aan van nog 'n interessante module wat ons in alle SOC's sien - Interrupt C
Ontwerp van I2C Master in VHDL: 5 stappe
Ontwerp van I2C Master in VHDL: In hierdie instruksies word die ontwerp van 'n eenvoudige I2C master in VHDL bespreek.OPMERKING: klik op elke prent om die volledige prent te sien
Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: 5 stappe
Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: In hierdie instruksies gaan ons 'n eenvoudige VGA -beheerder in RTL ontwerp. VGA Controller is die digitale stroombaan wat ontwerp is om VGA -skerms aan te dryf. Dit word gelees uit die raambuffer (VGA -geheue), wat die raam verteenwoordig wat vertoon moet word, en genereer
Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele: 5 stappe
Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele: Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele