Forum: FPGA, VHDL & Co. Aus mehreren Prozessen in den Block RAM schreiben


von Michael (Gast)


Lesenswert?

Hi @ all.

Ich digitalisiere Werte mit Hilfe eines AD-Wandlers. Die digitalen
Werte werden in den internen Block-RAM geschrieben. Während die Werte
in den RAM geschrieben werden, wird das Signal analysiert. Nachdem alle
Werte im RAM sind, sollen die Ergebnisse hinten rangehängt werden.
Demnach muss ein anderer Prozess auf den RAM zugreifen. Es greift immer
nur 1 Prozess gleichzeitig auf den RAM zu. Der RAM besitzt folgende
Leitungen:

ADDR[11..0] (in)
DIN[11..0]  (in)
DOUT[11..0] (out)
WE          (in)
EN          (in)


Ich habe mal gelesen das es mit Tristate gehen soll (Zustand 'Z').
Wie muss ich dazu meine Ports in den Prozessen schalten?

ADDR[11..0] (inout) ?
DIN[11..]   (inout) ?
DOUT[11..0] (inout) ?
WE          (inout) ?
EN          (inout) ?

Grüsse

Michael

von Cpt (Gast)


Lesenswert?

Hallo!

Ich weiß gerade nicht so ganz worauf du hinaus willst?
Wenn immer nur ein Prozess zugreift musst du eine Statemachine
davorsetzen die den Zugriff kontrolliert ...
das hat erstmal nichts mit dem Ram zu tun. Korrigiere mich wenn ich
falsch liege, denn ich bin definitiv nicht ganz nüchtern :-)

Cpt

von Tom (Gast)


Lesenswert?

Hallo Michael,

wie Cpt. schon schrob, würde ich Deine obige (verallgemeinerte)
BEschreibung Deiner gewünschten Funktionaliotät auch mit 2
Statemachines  lösen....

...die erste FSM schreibt die DW des AD-Wandlers in ein Register, die
zweite FSM liest die DW aus dem Register inklusive verketteten Ergebnis
(mit '&'-Verknüpfung) heraus...

Gruß
Tom

von Sebastian (Gast)


Lesenswert?

Als Idee, Du kannst den RAM-Block als DualPort anlegen. So brauchst Du
Dir über Synchronisation gar keine Sorgen machen.

Wähle FirstWrite then Read....

Sebastian

von Jürgen Schuhmacher (Gast)


Lesenswert?

So, wie Du es beschrieben hast, kann man das als 2-stufige pipeline
machen, die in jeweils 2 Zyklen in das Ram schreibt (den Wert und dann
das "Angehängte").

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.