Obsah:

Návrh jednoduchého radiča vyrovnávacej pamäte vo VHDL: 4 kroky
Návrh jednoduchého radiča vyrovnávacej pamäte vo VHDL: 4 kroky

Video: Návrh jednoduchého radiča vyrovnávacej pamäte vo VHDL: 4 kroky

Video: Návrh jednoduchého radiča vyrovnávacej pamäte vo VHDL: 4 kroky
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, November
Anonim
Návrh jednoduchého radiča vyrovnávacej pamäte vo VHDL
Návrh jednoduchého radiča vyrovnávacej pamäte vo VHDL

Píšem tento návod, pretože bolo pre mňa trochu ťažké získať nejaký referenčný kód VHDL na naučenie sa a začať navrhovať radič vyrovnávacej pamäte. A tak som sám od začiatku navrhol ovládač vyrovnávacej pamäte a úspešne som ho otestoval na FPGA. Predstavil som tu jednoduchý radič vyrovnávacej pamäte s priamym mapovaním a namodeloval som celý procesorovo-pamäťový systém na testovanie radiča vyrovnávacej pamäte. Dúfam, že vám tento návod bude užitočný ako referencia na návrh vlastných radičov vyrovnávacej pamäte.

Krok 1: Špecifikácia

technické údaje
technické údaje

Toto sú hlavné špecifikácie ovládača vyrovnávacej pamäte, ktoré sa chystáme navrhnúť:

  • Priamo mapované. (ak hľadáte asociatívny radič mapovanej vyrovnávacej pamäte, kliknite na tento odkaz)
  • Jednosmerná, blokovacia vyrovnávacia pamäť.
  • Zásady prepísania zápisov.
  • Zásady nepriradenia pri zápise a pri zápise nepripisujú.
  • Žiadna vyrovnávacia pamäť pre zápis alebo iné optimalizácie.
  • Pole značiek je začlenené.

Okrem toho navrhneme aj vyrovnávaciu pamäť a hlavný pamäťový systém.

Predvolené (konfigurovateľné) špecifikácie pamäte cache:

  • 256-bajtová jednobanková vyrovnávacia pamäť.
  • 16 riadkov vyrovnávacej pamäte, každý riadok vyrovnávacej pamäte (blok) = 16 bajtov.

Špecifikácia hlavnej pamäte:

  • Synchrónna pamäť na čítanie/zápis.
  • Multi -banked Interleaved Memory - štyri pamäťové banky.
  • Veľkosť každej banky = 1 kB. Celková veľkosť = 4 kB.
  • Adresovateľná pamäť Word (4 bajty) s 10-bitovou adresovou zbernicou.
  • Väčšia šírka pásma pre čítanie. Šírka údajov čítania = 16 bajtov v jednom hodinovom cykle.
  • Šírka údajov zápisu = 4 bajty.

POZNÁMKA: Pozrite sa na môj novší návod, ak hľadáte návrh 4-cestného asociatívneho radiča vyrovnávacej pamäte

Krok 2: RTL pohľad na celý systém

RTL pohľad na celý systém
RTL pohľad na celý systém

Kompletná RTL reprezentácia horného modulu je zobrazená na obrázku (okrem procesora). Predvolené špecifikácie pre autobusy sú:

  • Všetky dátové zbernice sú 32-bitové zbernice.
  • Adresa zbernice = 32-bitová zbernica (Pamäť tu však môže adresovať iba 10 bitov).
  • Dátový blok = 128 bitov (širokopásmová zbernica na čítanie).
  • Všetky komponenty sú poháňané rovnakými hodinami.

Krok 3: Testovanie prostredia

Horný modul bol testovaný pomocou testovacej stolice, ktorá jednoducho modeluje nepipelineový procesor (pretože navrhnúť celý procesor nie je vôbec jednoduché !!). Testovacia lavica často generuje požiadavky na čítanie/zápis údajov do pamäte. To sa vysmieva typickým pokynom „Načítať“a „Uložiť“, ktoré sú bežné vo všetkých programoch vykonávaných procesorom. Výsledky testu úspešne overili funkčnosť ovládača vyrovnávacej pamäte. Nasledujú pozorované testovacie štatistiky:

  • Všetky signály čítanie/zápis slečny a zásahu boli vygenerované správne.
  • Všetky operácie s údajmi na čítanie/zápis boli úspešné.
  • Neboli zistené žiadne problémy s nesúdržnosťou/nekonzistentnosťou údajov.
  • Dizajn bol úspešne načasovaný pre Maxm. Taktovacia frekvencia činnosti = 110 MHz na doske Xilinx Virtex-4 ML-403 (celý systém), 195 MHz pre samotný radič vyrovnávacej pamäte.
  • Blokové pamäte RAM boli odvodené z hlavnej pamäte. Všetky ostatné polia boli implementované na LUT.

Krok 4: Priložené súbory

K tomuto blogu sú priložené nasledujúce súbory:

  • Súbory. VHD programu Cache Controller, Cache Data Array, Main Memory System.
  • Testovacia lavica.
  • Dokumentácia k radiču vyrovnávacej pamäte.

Poznámky:

  • Prejdite si dokumentáciu, aby ste úplne porozumeli špecifikáciám ovládača vyrovnávacej pamäte, ktoré sú tu uvedené.
  • Akékoľvek zmeny v kóde závisia od iných modulov. Zmeny by sa preto mali vykonávať uvážlivo. Venujte pozornosť všetkým komentárom a hlavičkám, ktoré som uviedol.
  • Ak z akéhokoľvek dôvodu nie sú blokové pamäte RAM odvodené pre hlavnú pamäť, ZNÍŽTE veľkosť pamäte, potom nasledujú zmeny v šírkach adresovej zbernice v súboroch a podobne. Rovnakú pamäť je teda možné implementovať buď na LUT alebo na distribuovanú RAM. Šetrí to čas a zdroje smerovania. Alebo choďte na konkrétnu dokumentáciu FPGA, nájdite kompatibilný kód pre blok RAM a upravte kód podľa toho a použite rovnakú špecifikáciu šírky adresovej zbernice. Rovnaká technika pre Altera FPGA.

Odporúča: