mikrocontroller.net

Forum: FPGA, VHDL & Co. sram: adress controlles, OE controlled


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von stiller Leser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Poste doch mal einen Link zum Datenblatt.

von Fred Frequenz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
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
von stiller Leser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Gustl B. (gustl_b)


Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.