Sisällysluettelo:
- Vaihe 1: Tekniset tiedot
- Vaihe 2: RTL -näkymä koko järjestelmästä
- Vaihe 3: Testitulokset
- Vaihe 4: Liitetyt tiedostot
Video: Yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Aiemmassa ohjeessani näimme kuinka suunnitella yksinkertainen suoraan kartoitettu välimuistiohjain. Tällä kertaa mennään askel eteenpäin. Suunnittelemme yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen. Etu? Vähemmän menetysprosenttia, mutta suorituskyvyn hinnalla. Aivan kuten edellinen blogini, suunnittelimme ja emuloimme koko prosessorin, päämuistin ja välimuistiympäristön testataksemme välimuistiohjaimemme. Toivon, että pidätte tätä hyödyllisenä viittauksena käsitteiden ymmärtämiseen ja omien välimuistiohjainten suunnitteluun tulevaisuudessa. Koska prosessorin malli (testipenkki) ja päämuistijärjestelmä ovat täsmälleen samat kuin edellinen blogini, en aio selittää niitä uudelleen. Katso lisätietoja edellisestä ohjeesta.
Vaihe 1: Tekniset tiedot
Katso nopeasti tässä esitetyt välimuistiohjaimen tekniset tiedot:
- Nelisuuntainen yhdistetyn välimuistin ohjain (siirry tästä linkistä, jos etsit suoraa kartoitettua välimuistiohjainta).
- Yhden pankin estovälimuisti.
- Kirjoituskäytäntö kirjoitusosumille.
- Kirjoituspolitiikka kirjoitusvirheitä varten.
- Pseudo-LRU (pLRU) -puun korvauskäytäntö.
- Tag Array ohjaimessa.
- Konfiguroitavat parametrit.
Välimuistin ja päämuistin oletusasetukset ovat samat kuin edellisessä ohjeessani. Viitatkaa niihin.
Vaihe 2: RTL -näkymä koko järjestelmästä
Kuvassa on esitetty ylämoduulin täydellinen RTL -esitys (lukuun ottamatta prosessoria). Bussien oletusasetukset ovat:
- Kaikki tietoväylät ovat 32-bittisiä.
- Osoiteväylä = 32-bittinen väylä (mutta vain 10 bittiä voidaan käsitellä täällä muistilla).
- Datalohko = 128 bittiä (laajakaistainen väylä lukemista varten).
- Kaikkia komponentteja ohjaa sama kello.
Vaihe 3: Testitulokset
Ylämoduulia testattiin käyttämällä testipenkkiä, joka yksinkertaisesti mallinnetaan ei-putkiprosessoria, aivan kuten teimme viime ohjeessa. Testipenkki luo luku-/kirjoitusdatapyyntöjä muistiin usein. Tämä pilkkaa tyypillisiä "Lataa" ja "Tallenna" -ohjeita, jotka ovat yleisiä kaikissa suorittimen suorittamissa ohjelmissa.
Testitulokset varmistivat välimuistiohjaimen toimivuuden. Seuraavat testitilastot ovat havaittuja:
- Kaikki luku-/kirjoitushäiriö- ja osuma -signaalit luotiin oikein.
- Kaikki luku-/kirjoitusdatatoiminnot onnistuivat kaikilla neljällä tavalla.
- pLRU -algoritmi on vahvistettu onnistuneesti välimuistilinjojen korvaamiseksi.
- Tietojen epäjohdonmukaisuus-/epäjohdonmukaisuusongelmia ei havaittu.
- Suunnittelun ajoitus vahvistettiin onnistuneesti Maxm: lle. Kello Toimintataajuus = 100 MHz Xilinx Virtex-4 ML-403 -kortilla (koko järjestelmä), 110 MHz pelkällä välimuistiohjaimella.
- Lohkomuistit pääteltiin päämuistia varten. Kaikki muut taulukot toteutettiin LUT -laitteilla.
Vaihe 4: Liitetyt tiedostot
Seuraavat tiedostot on liitetty tähän blogiin:
- . HDHD -tiedostot välimuistiohjaimesta, välimuistitiedostoista, päämuistijärjestelmästä.
- Testipenkki.
- Välimuistiohjaimen dokumentaatio.
Huomautuksia:
- Käy läpi asiakirjat, jotta ymmärrät täydellisesti tässä esitetyt välimuistiohjaimen tekniset tiedot.
- Kaikki koodin muutokset ovat riippuvaisia muista moduuleista. Muutokset on siis tehtävä harkiten.
- Kiinnitä huomiota kaikkiin antamiisi kommentteihin ja otsikoihin.
- Jos jostain syystä Estä RAM -muistia ei päätellä päämuistia varten, PIENENNÄ muistin kokoa, minkä jälkeen muuttuvat osoiteväylän leveydet tiedostoissa ja niin edelleen. Jotta sama muisti voidaan toteuttaa joko LUT -laitteissa tai hajautetussa RAM -muistissa. Tämä säästää reititysaikaa ja resursseja. Tai, siirry tiettyyn FPGA -dokumentaatioon ja etsi yhteensopiva koodi Block RAM -muistiin ja muokkaa koodia vastaavasti ja käytä samoja osoiteväyläleveyksiä. Sama tekniikka Altera FPGA -laitteille.
Suositeltava:
Ohjelmoitavan keskeytysohjaimen suunnittelu VHDL: ssä: 4 vaihetta
Ohjelmoitavan keskeytysohjaimen suunnittelu VHDL: ssä: Olen hämmästynyt siitä, millaisia vastauksia saan tästä blogista. Kiitos kaverit vierailustani blogissani ja kannustivat minua jakamaan tietoni kanssanne. Tällä kertaa aion esitellä toisen mielenkiintoisen moduulin suunnittelun, jonka näemme kaikissa SOC -järjestelmissä - Keskeytä C
Yksinkertaisen välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta
Yksinkertaisen välimuistiohjaimen suunnittelu VHDL: ssä: Kirjoitan tämän ohjeellisen, koska minusta oli hieman vaikeaa saada viite -VHDL -koodi oppia ja aloittaa välimuistiohjaimen suunnittelu. Joten suunnittelin välimuistiohjaimen itse tyhjästä ja testasin sen onnistuneesti FPGA: lla. Minulla on p
I2C Masterin suunnittelu VHDL: ssä: 5 vaihetta
I2C Masterin suunnittelu VHDL: ssä: Tässä ohjeessa käsitellään yksinkertaisen I2C -masterin suunnittelua VHDL: ssä
Yksinkertaisen VGA -ohjaimen suunnittelu VHDL- ja Verilog -järjestelmissä: 5 vaihetta
Yksinkertaisen VGA -ohjaimen suunnittelu VHDL- ja Verilog -järjestelmissä: Tässä ohjeessa aiomme suunnitella yksinkertaisen RTGA -VGA -ohjaimen. VGA -ohjain on digitaalinen piiri, joka on suunniteltu VGA -näyttöjen ohjaamiseen. Se lukee kehyspuskurista (VGA -muisti), joka edustaa näytettävää kehystä, ja luo tarvittavan
SPI Masterin suunnittelu VHDL: ssä: 6 vaihetta
SPI Masterin suunnittelu VHDL: ssä: Tässä ohjeessa aiomme suunnitella SPI Bus Masterin alusta alkaen VHDL: ssä