Forum: FPGA, VHDL & Co. VHDL Zugriff FSM auf Speicher


von Alexander D. (abadu)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche gerade eine FSM zu bauen, die lesend und schreibend auf 
einen Speicher zugreift. Für den Speicher habe ich einen synchronen 
Block Speicher mit einem Port gewählt (Zeile 9-42 in der Datei 
FSMTest.vhd). Zugegriffen wird aus einer FSM heraus (Zeile 47-128 in der 
Datei FSMTest.vhd).

Das funktioniert so auch, aber für jeden lesenden Zugriff auf den 
Speicher brauche ich drei Schritte. Im ersten Schritt (Zeile 102) werden 
die Kontroll-Signale und die Speicheradresse gesetzt. Im zweiten Schritt 
(Zeile 107) wird nur gewartet. Erst im dritten Schritt (Zeile 109) 
können die Daten aus dem Speicher gelesen werden.Wenn der zweite Schritt 
ausgelassen wird, kann ich nicht auf die Daten aus dem Speiche 
zugreifen.

Ich kann mir nicht vorstellen, dass man immer drei Schritte zum 
Speicherzugriff braucht und dass dabei jedesmal gewartet wird. Was mache 
ich dabei falsch?

Eines ist mir aufgefallen: Wenn der Speicher über die fallende 
Taktflanke angesteuert wird, dann geht das ohne den zweiten Schritt. Mir 
ist allerdings nicht klar, ob das sinnvoll ist. Gibt es beim 
Zeitverhalten Probleme, wenn einige Prozesse über die fallende 
Taktflanke aktiviert werden und die andern Prozesse über die steigende?

Vielen Dank
Alexander

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Was mir in der FSMtest.vhd bei der RAM Ansteuerung sofort auffällt, ist, 
dass da ein Takt zuviel verbraten wird, weil die gelesenen Daten via 
memDataOut nochmal unnötigerweise registiert werden. Ein Blockram ergibt 
sich automatisch durch das Takten der Adresse.

Und das Verwenden von fallender und steigender Flanke kommt einer 
Verdopplung der Taktfrequenz gleich (wenn es überhaupt synthetisierbar 
ist), weil dann ja nur noch die halbe Zeit (bei symmetrischem Takt) für 
evtl. Kombinatorik zur Verfügung steht.

von Alexander D. (abadu)


Lesenswert?

Hallo,

Lothar Miller schrieb:

> .. FSMtest.vhd bei der RAM Ansteuerung sofort auffällt, ist,
> dass da ein Takt zuviel verbraten wird, weil die gelesenen Daten via
> memDataOut nochmal unnötigerweise registiert ..

Vielen Dank für den Hinweis auf diesen Fehler. Jetzt funktioniert der 
Zugriff auf den Speicher innerhalb zwei Takten.

Alexander

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
Noch kein Account? Hier anmelden.