Hallo! Ich möchte ein Sdram (hynix hy57v28820hct, 128mbit, 8bit Datenbus, pc133) als Ersatz für parallele Maskroms mit 120ns Zugriffszeit an einer betagten Videospielkonsole benutzen. Hatte geplant, das Interface mit nem Cpld zu realisieren, wahrscheinlich xc95144. Systemtakt ist 21,28Mhz, also deutlich langsamer als für das Sdram üblich. Laut Datenblatt liegt die maximal erlaubte Dauer eines Clock Cycles für das Sdram bei 1000ns, entspricht wenn ich mich nicht irre nem Takt von 1Mhz, sollte also theoretisch kein Problem sein. Ich habe vorher noch nie mit Sdram gearbeitet, aber Erfahrung mit Cplds und Vhdl. Soweit die Vorgeschichte, jetzt zum Problem: Habe nach genauem Studium diverser Sdram-Datenblätter das Timing durchgerechnet und fürchte, dass ich die 120ns Zugriffszeit vorne und hinten nicht einhalten kann. Soweit ich das sehe, dauert ein Clock Cylce bei 21,28Mhz ca 47ns. Grob überschlagen würde z.B. ein Lesezugriff wohl folgende Schritte beinhalten: 1.Cpu der Konsole gibt Adresse auf den Bus 2.Cpld startet nen Lesevorgang, aktiviert row, setzt row adress (Ras to Cas Delay von 20ns entfällt hoffentlich, ein Clock Tick dauert über 23ns) 3.Cpld sendet read command, setzt column adress 4.Cpld wartet 2 oder 3 cycles abhängig von cas latency 5.Cpld liest Daten mit Auto Precharge 6.Daten erscheinen auf dem Datenbus der Konsole Macht soweit ich das sehe mindestens 7 Cycles bzw. 329ns Zugriffszeit und ist damit viel zu langsam. Meine Frage an Sdram-Erfahrene ist nun, ob ich irgendwo einen Denkfehler gemacht habe, ob eine niedrige Taktung von Sdrams erfahrungsgemäss zu Problemen führen kann und wie ich die vorgegebe Zugriffszeit aus eurer Sicht am Besten erreichen kann. Logisch wäre natürlich, das Ganze einfach höher zu takten. Das würde aber bedeuten, 2 unterschiedliche Clockdomains zu benutzen, was ich wenn möglich vermeiden möchte.
Matthias N. wrote: > Hallo! > Ich möchte ein Sdram (hynix hy57v28820hct, 128mbit, 8bit Datenbus, > pc133) als Ersatz für parallele Maskroms mit 120ns Zugriffszeit an einer > betagten Videospielkonsole benutzen. Wie bekommst du die Daten in das SDRAM ? > Meine Frage an Sdram-Erfahrene ist nun, ob ich irgendwo einen Denkfehler > gemacht habe, ob eine niedrige Taktung von Sdrams erfahrungsgemäss zu > Problemen führen kann Wenn du die mindest Werte im Datenblatt einhälst, dann sollte es keine Probleme geben. > und wie ich die vorgegebe Zugriffszeit aus eurer > Sicht am Besten erreichen kann. Dürfte schwer werden. Du hast die Schwierigkeit von (S)DRAMs schon erkannt: Diese sind nur bei Sequentiellen Zugriffen wirklich schnell, bzw. haben eine hohe Latenzzeit ehe die Daten anstehen. Außer einem ehöhten Takt (z.B. per PLL, dann sollten die beiden Clockdomains nicht ganz soviele Probleme machen) fällt mir jetzt keine Lösung ein. Ich würde daher auf 4x Frequenz, also 85MHz gehen, dann brauchst du etwa 8-9 Takte für ein Byte, macht 105ns. Ein weiteres Problem ist eventuell noch: Wie erkennst du einen neuen Lesezugriff ? Wird OE\ bei jedem zu lesenden Byte erneut aktiviert, oder kann es auch sein, dass nur die Adresse geändert wird ?
Danke für deine Antwort! > Wie bekommst du die Daten in das SDRAM ? Erstmal auf ähnlichem Weg wie sie rauskommen, über einzelne Schreibbefehle der Konsolen-Cpu. Emulieren möchte ich ein Maskrom, aber im Endeffekt soll es dann von der Cpu wie ein Sram angesprochen werden können, irgendwie müssen die Daten ja, wie du schon sagtest, ins Sdram rein. > Dürfte schwer werden. Du hast die Schwierigkeit von (S)DRAMs schon > erkannt: Diese sind nur bei Sequentiellen Zugriffen wirklich schnell, > bzw. haben eine hohe Latenzzeit ehe die Daten anstehen. > Außer einem ehöhten Takt (z.B. per PLL, dann sollten die beiden > Clockdomains nicht ganz soviele Probleme machen) fällt mir jetzt keine > Lösung ein. Ich würde daher auf 4x Frequenz, also 85MHz gehen, dann > brauchst du etwa 8-9 Takte für ein Byte, macht 105ns. Das hört sich sehr gut an. Die Konsole läuft mit 5V, deswegen hatte ich auch ursprünglich an den xc95144 von Xilinx gedacht, weil der bei 3,3V Versorgungsspannung noch 5V Inputs akzeptiert. Nen PLL hat der natürlich nicht an Bord. Ich möchte das Design was die Bauteile angeht so kompakt und simpel wie möglich gestalten und auch noch in der Lage sein, es selbst zu löten, deshalb bin ich Fpgas gegenüber eher skeptisch. Insbesondere die verschiedenen Versorgungsspannungen, externe Konfigurationsspeicher und die notwendige Bus-Translation auf 5V schrecken mich ab. Ich habe mich ein bisschen umgesehen und hab nach längerem Suchem die ispXpld 5000 Cpld-Serie von Lattice entdeckt, da speziell das lc5512mv. 5V-tolerante Eingänge bei 3,3V Corespannung, PLL und dazu noch ne Menge Macrocells etc. Nachteil wären der recht hohe Preis von ca $30 bei Mouser und die kleinen Pins, aber das ist noch im Rahmen denke ich. Möglich wäre wohl auch ein externes PLL-Ic an nem normalen Xilinx-Cpld, aber ich tendiere momentan eher zum Lattice. Werde mich jetzt erstmal weiter in die Materie einlesen. > Ein weiteres Problem ist eventuell noch: Wie erkennst du einen neuen > Lesezugriff ? Wird OE\ bei jedem zu lesenden Byte erneut aktiviert, oder > kann es auch sein, dass nur die Adresse geändert wird ? OE wird bei jedem Zugriff erneut aktiviert, ja, das sollte kein Problem sein. Vielen Dank nochmal für deine Hilfe!
@ Matthias N. (strassenkind) >Ich möchte ein Sdram (hynix hy57v28820hct, 128mbit, 8bit Datenbus, >pc133) als Ersatz für parallele Maskroms mit 120ns Zugriffszeit an einer >betagten Videospielkonsole benutzen. Um es kurz zum machen. Vergiss es. Es gibt einen wesentlichen Unterschied zwischen SRAM und S_D_RAM. Siehe Speicher. Nimm einfach SRAM oder EEPROM/FLASH. MfG Falk
Hi, wieso spendierst du dem CPLD/SDRAM nicht eine eigenen takt? Ein ROM besizt ja keine takt-leitung an sich. Addresse anlegen Read-pin geht low und nach 120ns müssen die daten bits stabil am ausgang anliegen. Was hindert dich den CPLD mit 66MHz zu betreiben? Oder 100? Du must ja 'nur' ein latch implementieren das die daten vom SDram aufnimmt und solange hält wie der read-pin low ist. Nur so ne idee... mfg. Olaf
Wieso braucht eine betagte Videokonsole 128MBit Speicher? Gibts kein passender SRAM? Wenn es darum geht Catridges zu kopieren, dann fürde ich die Flash empfehlen ...
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.