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