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