Obsah:
- Krok 1: Špecifikácia
- Krok 2: RTL pohľad na celý systém
- Krok 3: Testovanie prostredia
- Krok 4: Priložené súbory
Video: Návrh jednoduchého radiča vyrovnávacej pamäte vo VHDL: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
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
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
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:
Pripojenie procesora a Arduina a 7 -segmentového a servo radiča GUI: 4 kroky
Pripojenie procesora a Arduina a vytvorenie 7segmentového a servopohonu GUI: Pri niektorých projektoch, ktoré ste urobili, musíte použiť Arduino, pretože poskytuje jednoduchú platformu na prototypovanie, ale zobrazenie grafiky v sériovom monitore Arduina môže trvať dlho a dokonca je aj ťažké ho vykonať. Grafy môžete zobrazovať na sériovom monitore Arduino
Návrh jednoduchého štvorsmerového radiča asociatívnej vyrovnávacej pamäte vo VHDL: 4 kroky
Návrh jednoduchého štvorsmerového radiča asociatívnej vyrovnávacej pamäte vo VHDL: V mojom predchádzajúcom návode sme videli, ako navrhnúť jednoduchý radič vyrovnávacej pamäte s priamym mapovaním. Tentokrát sa posunieme o krok vpred. Navrhneme jednoduchý štvorsmerový radič asociatívnej vyrovnávacej pamäte. Výhoda? Menšia miera zmeškania, ale za cenu perfo
Návrh programovateľného regulátora prerušenia vo VHDL: 4 kroky
Dizajn programovateľného prerušovača vo VHDL: Som ohromený typom odpovedí, ktoré dostávam v tomto blogu. Ďakujem, chlapci, že ste navštívili môj blog a motivovali ma, aby som sa s vami podelil o svoje znalosti. Dnes predstavím návrh ďalšieho zaujímavého modulu, ktorý vidíme vo všetkých SOC - Interrupt C
Návrh I2C Master vo VHDL: 5 krokov
Dizajn I2C Master vo VHDL: V tomto návode sa diskutuje o návrhu jednoduchého I2C predlohy vo VHDL. UPOZORNENIE: kliknutím na každý obrázok zobrazíte celý obrázok
Dizajn jednoduchého ovládača VGA vo VHDL a Verilog: 5 krokov
Dizajn jednoduchého VGA radiča vo VHDL a Verilogu: V tomto návode navrhneme jednoduchý VGA radič v RTL. VGA Controller je digitálny obvod navrhnutý tak, aby poháňal displeje VGA. Číta z vyrovnávacej pamäte rámcov (pamäť VGA), ktorá predstavuje rámec, ktorý sa má zobraziť, a generuje potrebné