Hi Ich habe folgendes Problem. Ich habe 2 Module die sich ein menge an Daten (ca 25kbit). Ein Modul schreibt die Daten nur und das andere liest die Daten. Daher wäre es doch sinnvoll einen DualPorted Ram zu nehmen? Benutze einen Xilinx Sparten 3 und will mir den Ram mit de Core Generator erstellen. Gibt es da etwas auf das ich speziel achten muss bzw. wie sieht es da mit den timing aus? MFG Gast
@ Fresh (Gast) >die Daten. Daher wäre es doch sinnvoll einen DualPorted Ram zu nehmen? Ja. Wenn das ganze aber eher einen Datemstrom darstellt, dann eher ein FIFO. >Benutze einen Xilinx Sparten 3 und will mir den Ram mit de Core >Generator erstellen. Dann tu das. > Gibt es da etwas auf das ich speziel achten muss Nicht direkt. >bzw. wie sieht es da mit den timing aus? Steht im Datenblatt. Ist aber trivial. MFG Falk
Hi Danke für die Antwort. Das mit der FiFo habe ich mir auch überlegt aber es ist kein Datenstrom. Das Modul welches was hineinschreibt macht dies so ab und zu. Das lesende Modul liest regelmässig alle Speicherblöcke durch. Beim Timing stellt sich mir die Frage was passsiert wenn beide gleichzeitig auf die selbe Speicherstelle zugreifen wollen?! MFG Gast
@ Fresh (Gast) >durch. Beim Timing stellt sich mir die Frage was passsiert wenn beide >gleichzeitig auf die selbe Speicherstelle zugreifen wollen?! Steht im Datenblatt. Der Leser bekommt den aktuellen Wert, der Schreiber überschrieb den im nächstzen Takt mit dem neuen Wert. MFG Falk
> Beim Timing stellt sich mir die Frage was passsiert wenn beide > gleichzeitig auf die selbe Speicherstelle zugreifen wollen?! Definiere "gleichzeitig" :-o Theoretisch mußt du dann mit korrupten Daten rechnen. Hast du den selben Takt am Eingang und am Ausgang? Dann wirst du kein Problem haben.
Hi also ich verwende im gesamten Design den selben Takt. Auch das Ram wird bei Port A und bei Port B den selben Takt erhalten. Aber es kann ja trotzdem passieren das der eine auf den speicherbereich schreibt von den der andere liest oder wird der Ausgang zwischengespeichert?! Beim schreiben und lesen muss ich nehme ich an in einen Takt das enable signal anlegen und die adresse und im nächsten Takt sind die Daten bereit bzw gespeichert oder? MFG Fresh
> wird der Ausgang zwischengespeichert?! Ja, das kannst du sogar (begrenzt) einstellen. Lies mal das Manual zum Thema BRAM. > Beim schreiben und lesen muss ich nehme ich an in einen Takt das enable > signal anlegen und die adresse und im nächsten Takt sind die Daten > bereit bzw gespeichert oder? Ja, und wenn jetzt Daten an die selbe Adresse geschrieben und von der selben Adresse gelesen werden, hast du fast zwangsläufig die alten Daten. Du kannst allerdings eine Art "Transparentmodus" einschalten, dann bekommst du gleich die aktuellen Daten.
Bin gerade dabei die Beschreibung von BlockMemory Generator v2,7 von Xilinx zu lesen. Habe schon festgestellt das ich gar kein True Dual Post Ram brauch sondern ein Simple Dual Port reicht. Weil diese unterstützt genau meinen Anwendungsfall. Das mit den Speichern am Ausgang ist nehme ich an das Register an Port B oder? MFG Fresh
Macht es auch sinn diese Register am Ausgang zu verwenden bei einen Simple Dual Port? Dadruch dauert das lesen ja einen Zyklus länger was mich allerdings nicht stören würde da ich mindestens 100 Zyklen bei 80MHz zeit habe um etwas zu lesen. Wenn ich die Register nicht verwende kann es zu einen fehler kommen oder?
Nicht bei 80 MHz... Hintergrund: Das Signal hat aus der Speicherzelle heraus bis an den Port des RAMs eine gewisse Laufzeit. Diese Laufzeit addiert sich zu deinem anschliessenden Routing+Kombinatorik. Mit dem Register dazwischen entkoppelst du die Laufzeit des RAMs und deine Routinglaufzeit. Damit wird dein Design u.U. schneller, du hast aber einen Takt Latenz.
Hi Habe es nun eh mit eine Register am Ausgang erstellt. Die Latenz ist aber nur ein Zyklus von den 80MHz oder? also ich lege die Adresse und das Enable SIgnal an Port B an und einen 2Takte Später habe ich den Inhalt der Speicherzelle oder verstehe ich das falsch?! MFG Fresh
Fresh schrieb: > Hi > Habe es nun eh mit eine Register am Ausgang erstellt. Die Latenz ist > aber nur ein Zyklus von den 80MHz oder? also ich lege die Adresse und > das Enable SIgnal an Port B an und einen 2Takte Später habe ich den > Inhalt der Speicherzelle oder verstehe ich das falsch?! > > MFG Fresh Nein so ist es richtig
HI habe noch ne kleine Frage zum schreiben in den Ram. Das schreiben dauert ja auch zwei Zyklen oder? Sprich ich lege mit den Takt die adresse und die daten an und setzte das Wea bit und beim nächsten Takt wird es übernommen oder?
> lege mit den Takt die adresse und die daten an und setzte das Wea bit > und beim nächsten Takt wird es übernommen oder? Richtig, aber nach allgemeiner Lesart ist das nur 1 Takt, denn den einen Takt zur Vorbereitung der Adressen bräuchtest du sowieso... Andersherum wird ein Schuh daraus: Rechtzeitig vor der Taktflanke müssen die Daten, die Adressen und das Enable richtig anliegen, dann wird beim nächsten Takt geschrieben.
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.