Obsah:
- Krok 1: Specifikace
- Krok 2: RTL pohled na celý systém
- Krok 3: Testování prostředí
- Krok 4: Připojené soubory
Video: Návrh jednoduchého řadiče mezipaměti ve VHDL: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Píši tento návod, protože mi přišlo trochu obtížné získat nějaký referenční kód VHDL, abych se naučil a začal navrhovat řadič mezipaměti. Navrhl jsem tedy řadič mezipaměti sám od nuly a úspěšně jej otestoval na FPGA. Zde jsem představil jednoduchý přímo namapovaný řadič mezipaměti a také jsem vymodeloval celý procesorový paměťový systém pro testování řadiče mezipaměti. Doufám, že vám tento návod bude užitečný jako reference pro návrh vašich vlastních řadičů mezipaměti.
Krok 1: Specifikace
Toto jsou hlavní specifikace řadiče mezipaměti, které se chystáme navrhnout:
- Přímo mapováno. (pokud hledáte asociativní mapovaný ovladač mezipaměti, přejděte na tento odkaz)
- Jednosměrná, blokovací mezipaměť.
- Zásady přepisování požadavků na zápis.
- Přidělení zákazu zápisu nebo zakázání zápisu při chybě zápisu.
- Žádná vyrovnávací paměť pro zápis ani jiné optimalizace.
- Pole značek je začleněno.
Kromě toho navrhneme také vyrovnávací paměť a hlavní paměťový systém.
Výchozí (konfigurovatelné) specifikace mezipaměti:
- 256bajtová jednobanková mezipaměť.
- 16 řádků mezipaměti, každý řádek mezipaměti (blok) = 16 bytů.
Specifikace hlavní paměti:
- Synchronní paměť pro čtení/zápis.
- Multi -banked Interleaved Memory - čtyři paměťové banky.
- Velikost každé banky = 1 kB. Celková velikost = 4 kB.
- Adresovatelná paměť Word (4 bajty) s 10bitovou adresovou sběrnicí.
- Vyšší šířka pásma pro čtení. Šířka načtených dat = 16 bajtů v jednom hodinovém cyklu.
- Šířka zápisu dat = 4 bajty.
POZNÁMKA: podívejte se na můj novější instructable, pokud hledáte design 4cestného asociativního řadiče mezipaměti
Krok 2: RTL pohled na celý systém
Kompletní RTL reprezentace horního modulu je zobrazena na obrázku (kromě procesoru). Výchozí specifikace pro autobusy jsou:
- Všechny datové sběrnice jsou 32bitové.
- Adresa sběrnice = 32bitová sběrnice (Paměť zde však může adresovat pouze 10 bitů).
- Datový blok = 128 bitů (širokopásmová sběrnice pro čtení).
- Všechny komponenty jsou poháněny stejnými hodinami.
Krok 3: Testování prostředí
Top Module byl testován pomocí testovací lavice, která jednoduše modeluje nepipeline procesor (protože navrhnout celý procesor není vůbec snadné !!). Testovací lavice často generuje požadavky na čtení/zápis dat do paměti. To zesměšňuje typické pokyny „Načíst“a „Uložit“, běžné ve všech programech spuštěných procesorem. Výsledky testu úspěšně ověřily funkčnost řadiče mezipaměti. Níže jsou uvedeny pozorované zkušební statistiky:
- Všechny signály čtení/zápisu Miss and Hit byly generovány správně.
- Všechny operace čtení/zápisu dat byly úspěšné.
- Nebyly zjištěny žádné problémy s nesoudržností/nekonzistencí dat.
- Design byl úspěšně načasován pro Maxm. Taktovací frekvence provozu = 110 MHz na desce Xilinx Virtex-4 ML-403 (celý systém), 195 MHz pouze pro Cache Controller.
- Blokové RAM byly odvozeny pro hlavní paměť. Všechna ostatní pole byla implementována na LUT.
Krok 4: Připojené soubory
K tomuto blogu jsou připojeny následující soubory:
- Soubory. VHD Cache Controller, Cache Data Array, Main Memory System.
- Testovací lavice.
- Dokumentace k řadiči mezipaměti.
Poznámky:
- Projděte si dokumentaci, abyste plně porozuměli zde uvedeným specifikacím řadiče mezipaměti.
- Jakékoli změny v kódu jsou závislé na jiných modulech. Změny by tedy měly být provedeny uvážlivě. Věnujte pozornost všem komentářům a nadpisům, které jsem uvedl.
- Pokud z nějakého důvodu nejsou blokové paměti RAM odvozeny pro hlavní paměť, SNÍŽTE velikost paměti, následované změnami šířek adresové sběrnice napříč soubory atd. Stejnou paměť lze tedy implementovat buď na LUT nebo na distribuovanou RAM. Tím ušetříte čas a prostředky směrování. Nebo přejděte na konkrétní dokumentaci FPGA, najděte kompatibilní kód pro Block RAM a podle toho upravte kód a použijte stejné specifikace šířky adresové sběrnice. Stejná technika pro Altera FPGA.
Doporučuje:
Adaptér řadiče Sega Genesis na USB za kroky 2: 4 USD
Adaptér řadiče Sega Genesis na USB za 2 $: Tento adaptér umožňuje ovladač Sega Genesis / Mega Drive emulovat duální gamepady XBox 360 pro použití s retroarchem nebo jiným softwarem. Pro elektroniku používá modrou pilulku stm32f103c8t6 kompatibilní s Arduino. Složení: stm32f103c8t6 blue pilltwo DB9 m
Návrh jednoduchého čtyřcestného řadiče asociativní mezipaměti ve VHDL: 4 kroky
Návrh jednoduchého čtyřcestného řadiče asociativní mezipaměti ve VHDL: V mém předchozím pokynu jsme viděli, jak navrhnout jednoduchý přímý mapovaný řadič mezipaměti. Tentokrát se posuneme o krok napřed. Budeme navrhovat jednoduchý čtyřcestný řadič asociativní mezipaměti. Výhoda? Méně chyb, ale za cenu perfo
Návrh programovatelného řadiče přerušení ve VHDL: 4 kroky
Návrh programovatelného řadiče přerušení ve VHDL: Jsem ohromen druhem odpovědí, které dostávám v tomto blogu. Díky, lidi, že jste navštívili můj blog a motivovali mě, abych se s vámi podělil o své znalosti. Tentokrát představím návrh dalšího zajímavého modulu, který vidíme ve všech SOC - Interrupt C
Design jednoduchého VGA řadiče ve VHDL a Verilog: 5 kroků
Návrh jednoduchého VGA řadiče ve VHDL a Verilogu: V tomto návodu navrhneme jednoduchý VGA řadič v RTL. VGA Controller je digitální obvod navržený pro řízení VGA displejů. Čte z vyrovnávací paměti snímků (paměť VGA), která představuje snímek, který má být zobrazen, a generuje potřebný
Návrh UART ve VHDL: 5 kroků
Design UART in VHDL: UART znamená Universal Asynchronous Receiver Transmitter. Je to nejpopulárnější a nejjednodušší sériový komunikační protokol. V tomto návodu se naučíte, jak navrhnout modul UART ve VHDL