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.
Hi Maximilian, versuche use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; Bibliotheken zu vermeiden. Stattdessen besser use ieee.numeric_std.all; verwenden. Grüße, Kest
Hey Ja habe ich ganz vergessen ^^ Eig. benutze ich die Lib schon die ganze Zeit doch wenn man das am Anfang vergisst dann denkt man da später nicht mehr dran ^^ Kann man bei Xilinx iwie das Standard Template ändern ? Hier einmal Cache auf die Numeric Std. Lib umgebaut ^^ mfg-AD
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.