Hallo, vielleicht kann mir jemand zu folgendem Problem einen Denkanstoss geben. Ich möchte auf ein 8 Bit breites Register aus 2 verschiedenen Prozessen heraus zugreifen. Process_1 (Takt_A): Schreibt Daten Process_2 (Takt_B): Liest Daten Das ist ja meines Wissens ein generelles Problem, wenn Daten genau dann gelesen werden, wenn der andere Prozess Daten reinschreibt. Wie lässt sich das Problem mit den 2 unterschiedlichen Takten beherschen? Meine Idee war es mit dem Xilinx CoreGenerator ein asynchrones FIFO zu erzeugen (FIFO Tiefe = 1). Allerdings brauche ich dann doch wieder ne kleine Statemachine um das FIFO anzusprechen, oder? Ist das ein brauchbarer Ansatz oder gibts da bessere Ideen? Danke an Alle Antwortenden, Ben
Lasse dir einfach ein dual ported fifo mit independent clocks erstellen. Dann hast du zwei voellig unabhaengige Schnittstellen und brauchst dich um nichts mehr zu kuemmern. Als Fifo kannst du ruhig auch eine Tiefe von 16 nehmen, die kostet die selben Ressourcen.
Danke, dein Vorschlag geht dann auch in dieselbe Richtung. Wie schaut es denn mit Dual Port Ram aus? Ist das schneller als die FIFO Implementierung von CoreGen? Ich müsste 16 Bit Signale mit 3MHz schreiben und lesen. Ich glaube irgendwo mal ne maximal Frequenz von deutlich unterhalb von 3 MHz für die Xilinx FIFOs gelesen zu haben. Danke für jede Hilfe!!
3 MHz? Niemals! Ein Virtex 2 schafft deutlich ueber 200 MHz, ein Spartan3 muesste sicher mit 100 MHz dabei sein. Ein generierter Fifo ist garantiert nicht langsamer als ein BlockRAM plus eigene Logik, eher schneller.
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.