Turinys:

Paprasto keturių krypčių asociatyvaus talpyklos valdiklio VHDL dizainas: 4 žingsniai
Paprasto keturių krypčių asociatyvaus talpyklos valdiklio VHDL dizainas: 4 žingsniai

Video: Paprasto keturių krypčių asociatyvaus talpyklos valdiklio VHDL dizainas: 4 žingsniai

Video: Paprasto keturių krypčių asociatyvaus talpyklos valdiklio VHDL dizainas: 4 žingsniai
Video: PRARASTASIS - 14 mėnesių dingęs jūroje 2024, Lapkritis
Anonim
Paprasto keturių krypčių asociatyvaus talpyklos valdiklio VHDL dizainas
Paprasto keturių krypčių asociatyvaus talpyklos valdiklio VHDL dizainas

Mano ankstesniame nurodyme mes matėme, kaip sukurti paprastą tiesioginį žemėlapio talpyklos valdiklį. Šį kartą žengiame žingsnį į priekį. Mes sukursime paprastą keturių krypčių asociatyvaus talpyklos valdiklį. Privalumas? Mažiau praleidimų, bet našumo kaina. Kaip ir mano ankstesnis tinklaraštis, mes suprojektuosime ir imituosime visą procesorių, pagrindinę atmintį ir talpyklos aplinką, kad išbandytume talpyklos valdiklį. Tikiuosi, kad jums, vaikinai, tai bus naudinga nuoroda norint suprasti sąvokas ir ateityje sukurti savo talpyklos valdiklius. Kadangi procesoriaus (bandymų stendo) ir pagrindinės atminties sistemos modelis yra visiškai toks pat kaip ir mano ankstesniame tinklaraštyje, daugiau jų neaiškinsiu. Išsamesnės informacijos apie tai skaitykite ankstesnėje instrukcijoje.

1 žingsnis: specifikacijos

Specifikacijos
Specifikacijos

Greitai peržiūrėkite čia pateiktas talpyklos valdiklio specifikacijas:

  • Keturių krypčių asociatyvus talpyklos valdiklis (eikite į šią nuorodą, jei ieškote tiesioginio žemėlapio valdiklio).
  • Vieno banko blokavimo talpykla.
  • Perrašymo politika dėl rašymo hitų.
  • Rašymo aplink politika dėl rašymo praleidimo.
  • Medžio pseudo-LRU (pLRU) pakeitimo politika.
  • Žymėkite masyvą valdiklyje.
  • Konfigūruojami parametrai.

Numatytosios talpyklos atminties ir pagrindinės atminties specifikacijos yra tokios pačios kaip ir ankstesnėse instrukcijose. Prašome kreiptis į juos.

2 veiksmas: visos sistemos RTL vaizdas

Visos sistemos RTL vaizdas
Visos sistemos RTL vaizdas

Pilnas viršutinio modulio RTL atvaizdavimas parodytas paveikslėlyje (išskyrus procesorių). Numatytosios autobusų specifikacijos yra šios:

  • Visos duomenų magistralės yra 32 bitų magistralės.
  • Adreso magistralė = 32 bitų magistralė (tačiau tik 10 bitų čia galima adresuoti atmintimi).
  • Duomenų blokas = 128 bitai (plataus dažnių juostos pločio magistralė skaitymui).
  • Visus komponentus valdo tas pats laikrodis.

3 žingsnis: bandymo rezultatai

Viršutinis modulis buvo išbandytas naudojant bandomąjį stendą, kuriame paprasčiausiai modeliuojamas procesorius be dujotiekio, kaip ir paskutinėje instrukcijoje. Bandymų stendas dažnai generuoja skaitymo/rašymo duomenų užklausas į atmintį. Tai tyčiojasi iš tipiškų „Įkelti“ir „Saugoti“nurodymų, būdingų visoms procesoriaus vykdomoms programoms.

Bandymo rezultatai sėkmingai patvirtino talpyklos valdiklio funkcionalumą. Toliau pateikiama bandymų statistika:

  • Visi skaitymo/rašymo praleidimo ir smūgio signalai buvo sugeneruoti teisingai.
  • Visos duomenų skaitymo/rašymo operacijos buvo sėkmingos visais keturiais būdais.
  • pLRU algoritmas sėkmingai patvirtintas, kad būtų pakeistos talpyklos eilutės.
  • Duomenų nenuoseklumo/nenuoseklumo problemų neaptikta.
  • Dizainas buvo sėkmingai patikrintas „Maxm“. Laikrodis Veikimo dažnis = 100 MHz „Xilinx Virtex-4 ML-403“plokštėje (visa sistema), 110 MHz tik talpyklos valdikliui.
  • Blokuoti RAM buvo nustatyti pagrindinei atminčiai. Visi kiti masyvai buvo įgyvendinti LUT.

4 veiksmas: pridedami failai

Prie šio tinklaraščio pridedami šie failai:

  • Talpyklos valdiklio, talpyklos duomenų masyvo, pagrindinės atminties sistemos. VHD failai.
  • Bandymo suolelis.
  • Dokumentai apie talpyklos valdiklį.

Pastabos:

  • Peržiūrėkite dokumentus, kad visiškai suprastumėte čia pateiktas talpyklos valdiklio specifikacijas.
  • Bet kokie kodo pakeitimai priklauso nuo kitų modulių. Taigi pakeitimai turėtų būti atliekami apgalvotai.
  • Atkreipkite dėmesį į visus mano pateiktus komentarus ir antraštes.
  • Jei dėl kokių nors priežasčių blokinė atmintis nėra išvedama pagal pagrindinę atmintį, MAŽINKITE atminties dydį, o po to keiskite adresų magistralės plotį visuose failuose ir pan. Taigi ta pati atmintis gali būti įdiegta LUT arba paskirstytojoje RAM. Tai sutaupys maršruto laiką ir išteklius. Arba eikite į konkrečią FPGA dokumentaciją ir raskite suderinamą Block RAM kodą ir atitinkamai redaguokite kodą bei naudokite tas pačias adresų magistralės pločio specifikacijas. Ta pati technika taikoma ir „Altera FPGA“.

Rekomenduojamas: