Obsah:
- Krok 1: Špecifikácia
- Krok 2: RTL pohľad na celý systém
- Krok 3: Výsledky testu
- Krok 4: Priložené súbory
Video: Návrh jednoduchého štvorsmerového radiča asociatívnej vyrovnávacej pamäte vo VHDL: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
V mojom predchádzajúcom návode sme videli, ako navrhnúť jednoduchý priamo mapovaný radič vyrovnávacej pamäte. Tentokrát sa posunieme o krok vpred. Navrhneme jednoduchý štvorsmerový radič asociatívnej vyrovnávacej pamäte. Výhoda? Menej chybovosti, ale za cenu výkonu. Rovnako ako v mojom predchádzajúcom blogu by sme navrhli a emulovali celý procesor, hlavnú pamäť a prostredie vyrovnávacej pamäte, aby sme otestovali náš radič vyrovnávacej pamäte. Dúfam, že to považujete za užitočnú referenciu na pochopenie konceptov a navrhnutie vlastných radičov vyrovnávacej pamäte v budúcnosti. Keďže model pre procesor (testovací stôl) a hlavný pamäťový systém sú úplne rovnaké ako môj predchádzajúci blog, nebudem ich viac vysvetľovať. Bližšie informácie o ňom nájdete v predchádzajúcom návode.
Krok 1: Špecifikácia
Stručný prehľad špecifikáciami ovládača vyrovnávacej pamäte uvedených tu:
- Štvorcestný radič asociatívnej vyrovnávacej pamäte (kliknite na tento odkaz, ak hľadáte radič priamej mapovanej vyrovnávacej pamäte).
- Jednosmerná, blokovacia vyrovnávacia pamäť.
- Zásady prepísania zápisov.
- Pravidlá pre zápis pri zmeškaní zápisu.
- Politika výmeny stromu Pseudo-LRU (pLRU).
- Tag Array v ovládači.
- Konfigurovateľné parametre.
Predvolené špecifikácie pre vyrovnávaciu pamäť a hlavnú pamäť sú rovnaké ako z môjho predchádzajúceho návodu. Obráťte sa na nich.
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: Výsledky testu
Horný modul bol testovaný pomocou testovacej stolice, ktorá jednoducho modeluje nep pipeline procesor, rovnako ako v minulom návode. 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 čítania/zápisu boli úspešné vo všetkých štyroch smeroch.
- Algoritmus pLRU je úspešne overený na nahradenie riadkov vyrovnávacej pamäte.
- Neboli zistené žiadne problémy s nesúladom/nekonzistentnosťou údajov.
- Dizajn bol úspešne načasovaný pre Maxm. Taktovacia frekvencia činnosti = 100 MHz na doske Xilinx Virtex-4 ML-403 (celý systém), 110 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 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 jednoduchého radiča vyrovnávacej pamäte vo VHDL: 4 kroky
Návrh jednoduchého ovládač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, aby som sa ho naučil a začal navrhovať radič vyrovnávacej pamäte. A tak som sám navrhol radič vyrovnávacej pamäte od začiatku a úspešne som ho otestoval na FPGA. Mám p
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é