hallo an alle beim FPGA Einstieg gehört das Ansteuern von einem Sram, so wie ich es verstehe, zu den ersten Fingerübungen. Darum soll es auch bei mir so sein. Aber ich bin richtig verwirrt. Angenomen ich habe ein sram mit 20ns Zugriffszeit. Das würde ja gut zu einem FPGA Takt von 50 Mhz passen. Wenn ich in einem beliebigen Datenblatt gucke, gibt es da immer die im Titel Modi wenn es ums lesen geht. Address controlled passt ja noch ganz gut wenn ich es richtig deute. Adresse anlegen, wenn OE low ist und nach einer Zeit ist an den datenleitungen ein Wort gültig. Das bleibt auch gültig für eine Hand voll ns wenn die adr sich ändert. Könnte man also immer das Wort einlesen wenn man eine neue Adresse anlegt oder? Aber wenn ich OE controlled sehe, dann darf ich OE nicht gleichzeitig mit einer neuen Adresse bewegen richtig? Wie steuere ich mit einem 50 MHz Takt ein 20 ns Sram an? Spätestens beim schreiben müsste ich ja WE bedienen, was auch nicht gleichzeitig zur Adressänderung passieren darf. Glaube ich. Einfach intern schneller Takten kann es doch auch nicht sein. Auf ein 200 Mhz sram müsste doch auch zugegriffen werden können. Also als Standard Address controlled lesen und entsprechend langsam schreiben? Hat mich jemand verstanden und kann mir die Zusammenhänge mit eigenen Worten erklären? dafür wäre ich sehr dankbar, ich stehe vor einem rieeesen Berg. Grüße
Gustl B. schrieb: > Poste doch mal einen Link zum Datenblatt. Das wird es nicht geben, weil: > Angenomen ich habe ein sram mit 20ns Zugriffszeit Dem TO scheinen die Unterschiede zwischen Zugriffszeit und (read/write) cycle time sowie zwischen synchronen und asynchronen SRAM nicht geläufig zu sein. Der TO sollte sich mal gescheite Literatur zu Computerarchitektur besorgen. Und real existierende SRAM's benutzen, i.e. https://www.cypress.com/file/44061/download
Jo, dann nehme ich hier eben ein Datenblatt: https://www.mouser.de/datasheet/2/698/IDT_71024_DST_20141104-1711867.pdf Lesen Seite 5: Da ist zwar viel schraffiert, aber das bedeutet nur dass egal ist was anliegt. Du darfst also gleichzeitig Adresse, #OE, #CS1 und CS2 setzen. Die Daten sind dann am Ende des "Taktes" am Ausgang, nach t_AA. Schreiben Seite 6: Das sieht zwar im oberen Bildchen so aus, als dürfe #WE erst etwas nach der Adresse nach unten gezogen werden und müsse vor dem Ende des "Taktes" wieder high sein, aber wenn man sich die Daten anguckt in der Tabelle auf Seite 4, dann ist t_AS minimal nicht eingetragen, #WE darf also mit der Adresse gleichzeitig runtergezogen werden, und t_WR ist 0 ns, du darfst #WE also auch bis zum Ende des "Taktes" unten lassen. Du kannst also sowohl beim Schreiben als auch beim Lesen immer gleichzeitig alle Signale anlegen. Edit: Sorry Fred, das hatte ich schon getippt als dein Post noch nicht da stand.
:
Bearbeitet durch User
Guten Morgen und herzlichen Dank an Gustl. Freds Antwort ist zwar bestimmt auch gut gemeint gewesen, war aber nicht so ganz hilfreich. Gelesen habe ich ja vorher und wollte mein Verständnis verbessern. Der Unterschied zwischen asynchronen und synchronen Rams war mir durchaus bewusst, aber "Da ist zwar viel schraffiert, aber das bedeutet nur dass egal ist was anliegt."... das habe ich nicht verstanden. Super dass einer mein Anliegen verstanden hat. Jetzt hoffe ich am WE dazu zu kommen mich damit zu beschäftigen. (Man muss ja erst mal genauer verstehen, WAS man umsetzen will bevor man an die Umsetzung geht, ne) Danke noch mal
In dem Datenblatt von Fred ist unter den Signalformen, z. B. Seite 26 immer gezeigt was die Schraffuren bedeuten. Don't care bedeutet es ist egal was man anlegt und Undefined ist eben ein undefinierter Ausgabewert.
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.