[VHDL] Barrel Shifter und Cache

OP Persönliche Seite #1275819
Lesenswert?
• ▲
▼
Hey

Habe gestern Abend für mich 2 kleine VHDL Sachen beschrieben, erstens 
einen Barrel Shifter den man ganz fix durch Generics einstellen kann und 
zweitens ein kleines Cache System.

Zu dem Barrel Shifter muss ich denke ich nichts sagen doch das Cache 
System erkläre ich mal kurz:

Eigentlich ist der Cache sehr einfach aufgebaut und belegt bei mir im 
Spartan 3 ca 180 Slices und je nach Einstellung auch BRAMs.

Das einzige was man noch schnell machen muss ist das interne FIFO an 
seine Ram Schnittstelle anzubinden.
Die macht man über den Ausgang CMD, er besteht aus den Daten die 
geschrieben werden sollen einem Bit was ausacht ob geschrieben oder 
gelesen werden soll und der Adresse, also so:

Daten + Bit + Adresse

Für das Lesen muss man die Daten an Data anlegen und NewData auf High 
ziehen.

Das Bit bedeutet wenn es Low ist das gelesen wird und wenn es High ist 
nat. das geschrieben wird.

So jetzt einmal kurz zu der Technik:

Wenn man in den Cache schreibt wird der Eintrag mit einem Teil der 
Adresse assoziiert und der Rest der Adresse + die Daten in den Cache 
geschrieben.
Gleichzeitig wird genau das selbe in den FIFO geschrieben aus dem Ja der 
Ram gefüttert wird.

Das heißt dass, das FIFO als Warteschlange fungiert, falls der FIFO voll 
ist wird solange gewartet bis ein Eintrag Frei ist.

Dadurch wir der Ram immer Aktuell gehalten und durch die FIFO Struktur 
gibt es auch keine Probleme von wegen das der Cache nicht aktuell ist.

Beim Lesen ist es dann so, das falls der Eintrag vorhanden ist er aus 
dem Cache gelesen wird und sonst über das FIFO angefordert wird.

Solange der Cache arbeitet ist übrigens Bussy High.

Bei Fragen könnt ihr einfach hier Fragen!

mfg-AD

PS: Hänge den Cache im nächsten Beitrag an.
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.