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