Sadržaj:
- Korak 1: Specifikacije
- Korak 2: RTL pogled na cijeli sustav
- Korak 3: Ispitno okruženje
- Korak 4: Priložene datoteke
Video: Dizajn jednostavnog upravljača predmemorijom u VHDL -u: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Pišem ovo uputstvo jer mi je bilo malo teško nabaviti neki referentni VHDL kôd za naučiti i početi dizajnirati kontroler predmemorije. Stoga sam sam dizajnirao predmemorijski kontroler od nule i uspješno ga testirao na FPGA. Ovdje sam predstavio jednostavan kontroler predmemorije s izravnim preslikavanjem, kao i modelirao cijeli procesorsko-memorijski sustav za testiranje kontrolera predmemorije. Nadam se da će vam ovo uputstvo biti korisno kao referenca za dizajniranje vlastitih kontrolera predmemorije.
Korak 1: Specifikacije
Ovo su glavne specifikacije Cache Controllera koji ćemo dizajnirati:
- Izravno preslikano. (idite na ovu vezu ako tražite Associative Mapped Cache Controller)
- Jednostruka banka, predmemorija koja blokira.
- Politika pisanja kroz pogotke zapisivanja.
- Politika dodjeljivanja zabranjenog pisanja ili pisanje oko pogrešaka pri pisanju.
- Nema međuspremnika za pisanje ili drugih optimizacija.
- Niz oznaka je uključen.
Osim toga, dizajnirat ćemo i predmemoriju i glavni memorijski sustav.
Zadane (konfigurabilne) specifikacije predmemorije:
- 256-bitna predmemorija s jednom bankom.
- 16 linija predmemorije, svaka linija predmemorije (blok) = 16 bajtova.
Specifikacije glavne memorije:
- Sinhrona memorija za čitanje/pisanje.
- Više bankovna isprepletena memorija - četiri memorijske banke.
- Svaka banka = 1 kB svaka. Dakle, ukupna veličina = 4 kB.
- Word (4 bajta) adresabilna memorija s 10-bitnom sabirnicom adresa.
- Veća propusnost za čitanje. Očitajte širinu podataka = 16 bajtova u jednom ciklusu takta.
- Širina zapisa podataka = 4 bajta.
NAPOMENA: provjerite moju noviju uputu ako tražite dizajn 4-smjernog asocijativnog upravljača predmemorije
Korak 2: RTL pogled na cijeli sustav
Cjeloviti RTL prikaz gornjeg modula prikazan je na slici (isključujući procesor). Zadane specifikacije za autobuse su:
- Svi podatkovni sabirnici su 32-bitni sabirnici.
- Adresna sabirnica = 32-bitna sabirnica (ali memorija može adresirati samo 10 bita).
- Blok podataka = 128 bita (sabirnica široke propusnosti za čitanje).
- Sve komponente pokreću isti sat.
Korak 3: Ispitno okruženje
Vrhunski modul testiran je pomoću Test Bencha, koji jednostavno modelira procesor bez cjevovoda (jer projektiranje cijelog procesora nije nimalo jednostavno !!). Testna ploča često generira zahtjeve za čitanje/pisanje podataka u memoriju. Ovo ismijava tipične upute "Učitaj" i "Spremi", uobičajene u svim programima koje izvodi procesor. Rezultati ispitivanja uspješno su potvrdili funkcionalnost Cache Controllera. Slijedi statistika ispitivanja:
- Svi signali propuštanja i pisanja čitanja/pisanja ispravno su generirani.
- Sve operacije čitanja/pisanja podataka bile su uspješne.
- Nisu otkriveni problemi nekoherentnosti/nedosljednosti podataka.
- Dizajn je uspješno provjerio vrijeme za Maxm. Sat Frekvencija rada = 110 MHz na Xilinx Virtex-4 ML-403 ploči (cijeli sustav), 195 MHz samo za Cache Controller.
- Za glavnu memoriju zaključeno je da su blokirani RAM -ovi. Svi ostali nizovi implementirani su na LUT -ovima.
Korak 4: Priložene datoteke
Sljedeće datoteke su priložene ovdje uz ovaj blog:
- . VHD datoteke Cache Controllera, Cache Data Array, Main Memory System.
- Testna klupa.
- Dokumentacija o Cache Controller -u.
Bilješke:
- Pregledajte dokumentaciju za potpuno razumijevanje ovdje prikazanih specifikacija Cache Controllera.
- Sve promjene u kodu ovise o drugim modulima. Dakle, promjene treba obaviti razumno. Obratite pažnju na sve komentare i zaglavlja koja sam dao.
- Ako se iz bilo kojeg razloga ne blokiraju RAM -ovi za glavnu memoriju, SMANJITE veličinu memorije, nakon čega slijede promjene širine sabirnice adresa po datotekama itd. Tako da se ista memorija može implementirati bilo na LUT -ovima ili distribuiranoj RAM -u. Time ćete uštedjeti vrijeme i resurse usmjeravanja. Ili idite na posebnu dokumentaciju o FPGA -i i pronađite kompatibilan kod za Blokiranje RAM -a i prema tome uredite kôd te upotrijebite iste specifikacije širine sabirnice adresa. Ista tehnika za Altera FPGAs.
Preporučeni:
Dizajn jednostavnog četverosmjernog asocijativnog upravljača predmemorije u VHDL-u: 4 koraka
Dizajn jednostavnog četverosmjernog asocijativnog upravljačkog predmemorije u VHDL-u: U mojim prethodnim uputama vidjeli smo kako dizajnirati jednostavan izravno mapirani predmemorski kontroler. Ovaj put idemo korak naprijed. Dizajnirat ćemo jednostavan četverosmjerni set asocijativnih kontrolera predmemorije. Prednost? Manje propuštanja, ali po cijenu performanse
Dizajn programabilnog kontrolera prekida u VHDL -u: 4 koraka
Dizajn programabilnog kontrolera prekida u VHDL -u: Oduševljen sam vrstama odgovora koje dobivam na ovom blogu. Hvala vam momci što ste posjetili moj blog i motivirali me da svoje znanje podijelim s vama. Ovaj put ću predstaviti dizajn još jednog zanimljivog modula koji vidimo u svim SOC -ovima - Interrupt C
Dizajn I2C Master u VHDL -u: 5 koraka
Dizajn I2C Master -a u VHDL -u: U ovom uputstvu se raspravlja o dizajniranju jednostavnog I2C majstora u VHDL -u. NAPOMENA: kliknite na svaku sliku da biste vidjeli cijelu sliku
Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: 5 koraka
Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: U ovom uputstvu ćemo dizajnirati jednostavan VGA kontroler u RTL -u. VGA kontroler je digitalni sklop dizajniran za pogon VGA zaslona. Čita iz Frame Buffer -a (VGA memorija) koji predstavlja okvir za prikaz i generira potrebno
Dizajn SPI Master -a u VHDL -u: 6 koraka
Dizajn SPI Master -a u VHDL -u: U ovom uputstvu, dizajnirat ćemo SPI Bus Master od nule u VHDL -u