Taula de continguts:
- Pas 1: especificacions
- Pas 2: Vista RTL de tot el sistema
- Pas 3: proveu l'entorn
- Pas 4: fitxers adjunts
Vídeo: Disseny d'un controlador de memòria cau simple en VHDL: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Estic escrivint aquesta informació instructiva, perquè em va costar una mica obtenir algun codi VHDL de referència per aprendre i començar a dissenyar un controlador de memòria cau. Així que vaig dissenyar un controlador de memòria cau des de zero i el vaig provar amb èxit a FPGA. Aquí he presentat un senzill controlador de memòria cau mapat directe, així com he modelat tot un sistema de memòria de processador per provar el controlador de memòria cau. Espero que us sigui útil aquesta instrucció com a referència per dissenyar els vostres propis controladors de memòria cau.
Pas 1: especificacions
Aquestes són les principals especificacions del controlador de memòria cau que dissenyarem:
- Mapat directe. (aneu a aquest enllaç si busqueu un controlador associat de memòria cau associada)
- Memòria cau de bloqueig única.
- Política d'escriptura de visites d'escriptura.
- Política d'assignació de no escriure o Política d'escriptura al voltant d'errors d'escriptura.
- Sense memòria intermèdia d’escriptura ni altres optimitzacions.
- S'incorpora Tag Array.
A més, també dissenyarem una memòria cau i un sistema de memòria principal.
Les especificacions predeterminades (configurables) de la memòria cau:
- Memòria cau d'un banc de 256 bytes.
- 16 línies de memòria cau, cada línia de memòria cau (bloc) = 16 bytes.
Les especificacions de la memòria principal:
- Memòria de lectura / escriptura síncrona.
- Memòria intercalada multi-banc: quatre bancs de memòria.
- Cada mida del banc = 1 kB cadascun. Per tant, mida total = 4 kB.
- Memòria adreçable de Word (4 bytes) amb bus d'adreces de 10 bits.
- Amplada de banda superior per a lectura. Llegir amplada de dades = 16 bytes en un cicle de rellotge.
- Amplada de dades d'escriptura = 4 bytes.
NOTA: comproveu la informació més recent que podeu instruir si esteu buscant un disseny de controlador de memòria cau associativa de 4 vies
Pas 2: Vista RTL de tot el sistema
La representació completa RTL del mòdul superior es mostra a la figura (excloent el processador). Les especificacions predeterminades per als autobusos són:
- Tots els busos de dades són busos de 32 bits.
- Bus d'adreces = Bus de 32 bits (però només la memòria pot dirigir aquí 10 bits).
- Bloc de dades = 128 bits (Bus ample de banda ampla per llegir).
- Tots els components són accionats pel mateix rellotge.
Pas 3: proveu l'entorn
El mòdul superior es va provar utilitzant un banc de proves, que simplement modelava un processador sense canalització (perquè no és gens fàcil dissenyar un processador complet !!). El banc de proves genera sol·licituds de lectura / escriptura de dades a la memòria amb freqüència. Això es burla de les instruccions típiques de "Carregar" i "Emmagatzemar", habituals en tots els programes executats per un processador. Els resultats de la prova han verificat correctament la funcionalitat del controlador de memòria cau. A continuació es mostren les estadístiques de prova observades:
- Tots els senyals de lectura i escriptura Miss i Hit es van generar correctament.
- Totes les operacions de lectura / escriptura de dades van tenir èxit.
- No s'ha detectat cap problema d'incoherència o incoherència de dades.
- El disseny s'ha verificat correctament per un Maxm. Freqüència de funcionament del rellotge = 110 MHz a la placa Xilinx Virtex-4 ML-403 (sistema sencer), 195 MHz només per al controlador de memòria cau.
- Les memòries RAM de bloc es van inferir per a la memòria principal. La resta de matrius es van implementar als LUT.
Pas 4: fitxers adjunts
Els fitxers següents s’adjunten aquí amb aquest bloc:
- Fitxers. VHD del controlador de memòria cau, matriu de dades de memòria cau, sistema de memòria principal.
- Banc de proves.
- Documentació sobre el controlador de memòria cau.
Notes:
- Consulteu la documentació per obtenir una comprensió completa de les especificacions del controlador de memòria cau que es presenta aquí.
- Qualsevol canvi en el codi depèn d'altres mòduls. Per tant, els canvis s’han de fer amb criteri. Presteu atenció a tots els comentaris i capçaleres que he fet.
- Si per qualsevol motiu, les memòries RAM no es dedueixen per a la memòria principal, REDUEIX la mida de la memòria, seguida de canvis en l'amplada del bus d'adreces dels fitxers, etc. De manera que la mateixa memòria es pot implementar en LUT o en RAM distribuïda. Això estalviarà el temps i els recursos d’encaminament. O bé, aneu a la documentació FPGA específica i cerqueu el codi compatible per a Block RAM i editeu el codi en conseqüència i utilitzeu les mateixes especificacions d'amplada del bus d'adreces. La mateixa tècnica per als FPGA d’Altera.
Recomanat:
Disseny d'un controlador de memòria cau associatiu conjunt de quatre vies en VHDL: 4 passos
Disseny d'un controlador de memòria cau associatiu de configuració simple de quatre direccions en VHDL: en el meu instructable anterior, vam veure com dissenyar un controlador de memòria cau mapat directe. Aquesta vegada, fem un pas endavant. Dissenyarem un senzill controlador de memòria cau associativa de quatre vies. Avantatge ? Menys percentatge de missatges, però a costa de perfos
Disseny d'un controlador d'interrupció programable en VHDL: 4 passos
Disseny d'un controlador d'interrupció programable en VHDL: estic aclaparat pel tipus de respostes que rebo en aquest bloc. Gràcies nois per visitar el meu bloc i motivar-me a compartir el meu coneixement amb vosaltres. Aquesta vegada, presentaré el disseny d’un altre mòdul interessant que veiem a tots els SOCs: Interrupt C
Disseny del màster I2C en VHDL: 5 passos
Disseny del màster I2C en VHDL: en aquest instructiu, es parla del disseny d’un màster I2C simple en VHDL. NOTA: feu clic a cada imatge per veure la imatge completa
Disseny d'un controlador VGA simple en VHDL i Verilog: 5 passos
Disseny d'un controlador VGA senzill en VHDL i Verilog: en aquesta instrucció, dissenyarem un controlador VGA simple en RTL. El controlador VGA és el circuit digital dissenyat per conduir pantalles VGA. Es llegeix des de Frame Buffer (memòria VGA) que representa el marc que es mostrarà i genera nece
Converteix una memòria USB ordinària en una memòria USB segura: 6 passos
Converteix una memòria USB ordinària en una memòria USB segura: en aquest manual aprendrem a convertir una memòria USB normal en una memòria USB segura. Tot amb funcions estàndard de Windows 10, res d’especial i res de més. Què necessiteu: una memòria USB o un disc dur. Us recomano getti