Forum: Mikrocontroller und Digitale Elektronik sdram timing von samsung


von Newbie (Gast)


Lesenswert?

Hallo,

wie liest man dieses timing diagramm von samsung.

http://www.samsung.com/global/business/semiconductor/productList.do?fmly_id=122
und dann rechts auf timing diagramm.

auf seite 3:

zuerst muss die Adresse angelegt werden - gleichzeitig mit der Auswahl 
der Speicherbank. Eine halbe clk-time später muss RAS - die Zeile im 
Speicher aktiviert werden, damit man sachen rauslesen kann. Trcd dauert 
dann drei clk-zyklen an. Anschließend kann man die DAten lesen.

wie liest man diese diagramm eigentlich, wenn sowohl der high als auch 
der low status gleichzeitig vorhanden ist, wie z.B. das stets der Fall 
bei ADDR, CAS, RAS, A10 etc. der Fall ist? Bei dQM seh ich genau wann 
DQM low und wann high ist.

Newbie

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Grau sind wie unten vermekt "Don't care", aöso egal.
Weiß und gleichzeitig high und low = mehrere Bit in einer Kurve 
dargestellt, als Text steht darin die Row-Adresse und zwei Takte später 
die Column-Adresse, nochmal zwei oder drei Takte später sind die Daten 
zum Lesen bereit.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Also "Ra" heißt, die Row-Adresse für Bank "a" , wobei "a" bedeutet, 
Bank-Adressen BA0 und BA1 sind "00"

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ich will beispielsweise eine VGA-Grafik ausgeben, 1024*768 Pixel mit 60 
Hz, das sind 65 MHz CLOCK. Im Diagramm auf Seite 10 ist zu sehen, wie 
man ununterbrochen Daten aus dem RAM lesen kann. Eine Bank ist zum 
Beispiel 512 Pixel groß, dann muß ich rechtzeitig auf die zweite Bank 
umschalten. Im Full Page-Modus können alle 512 Pixel mit einem 
Lesebefehl angefordert werden, hier in der Grafik wären es nur 4 Pixel 
auf einmal, wobei das sogar noch abgebrochen wird.

von Newbie (Gast)


Lesenswert?

oh mein monitor ist nicht so groß, so dass ich das "don`t care" nicht 
gesehen habe...

d.h. gleichzeitig muss die addresse und die entsprechende Bank über BA[0 
1] ausgewählt werden. Währenddessen ist RAW low und CAS high.

Was bedeutet in diesem Zusammenhang noch mal A10/AP?

Anschließend ist die Adresse wieder low und BA[0 1] auch low und RAS 
wird high (die über die Adresse und BA ausgewählte Zeile wird aktiv) - 
das dauert 3 clk-Zyklen. anschließend wird die CA-Addresse angelegt und 
BA[0 1] angelegt, so dass die Spalte ausgewählt wird. Jetzt wird 
anscheinend AP nicht benötigt.

Dann wird RAS low (inaktiv) und CAS wird aktiv für 4 clk-zyklen - in 
dieser Zeit wird die Spalte aktiviert. Derweilen sind ADDR und BA wieder 
low.

Wie wird genau Trac gekennzeichnet? In meinem Datenblatt von Samsung 
wird diese Zeit nicht aufgeführt. Abhängig von der Taktrate ist Tsac 
entsprechend lang zu wählen. Bis die Daten Qa an den µC übertragen 
werden können.

Solange gelesen wird, ist WE high. Dann wird CAS wieder high und WE low 
für schreiben. eine neue Adresse liegt an und BA wurde gewählt. 
gleichzeitig werden schon die Daten übertragen Db.

Dann wird WE wieder high - lesen. Die Adresse und BA sind low - liegen 
nicht mehr an und CAS wird High und RAS wird low. --> d.h. die Daten 
werden an die entsprechende Stelle im  Speicher geschrieben?

CS markiert stets, wann auf den SDRAM zugegriffern werden kann - nämlich 
wenn CS high ist. wenn die Adressen und BA anliegen kann demnach nicht 
auf SDRAM zugegriffen werden. Wie werden dann die Sachen gespeichert? 
Auch bei Db (Daten) ist CE low.

Newbie

von Olaf (Gast)


Lesenswert?

aber wie kann man jetzt aus so einem Diagramm das genaue Timing für 
einen SDRAM rauslesen? Die Diagramme zeigen ja nur was nach einander 
passieren muss, damit man sachen rauslesen kann oder reinschreiben kann.

Klar die clk-time ergibt sich durch den Takt mit dem der SDRAM gespeist 
wird - aber heißt das dann auch, dass die Addresse im gleichen Moment 
anliegen muss wie BA[0 1]? Wieviel spielraum hat man hier? sind 1 - 2ns 
unterschied ok? Aus welchen Daten kann man das lesen?

Olaf

Welche Bedeutung kommt gleich nochmal DQM zu?

von Dominic R. (dominic)


Lesenswert?

@Olaf:
Das Timing ist im Grunde implizit - es handelt sich um _S_DRAM, 
synchrones DRAM, alles passiert synchron zur Taktflanke. Der Spielraum 
ergibt sich aus den Setup- und Hold-Zeiten - Alle Signale (Adresse, 
Kommando) müssen rechtzeitig vor der Taktflanke anliegen, und müssen 
ausreichend lange nach der Taktflanke stabil bleiben. Zu den Setup- und 
Hold-Zeiten des SDRAMs kommt dann noch Board Delay, Output vom SDRAM 
Controller etc.

@Newbie:
Du solltest die einzelnen Signale komplett ignorieren - Micron hat da 
IMHO eine deutlich bessere Dokumentation. Die Kombinationen der Signale 
entsprechen bestimmten Kommandos, die der Reihe nach angelegt werden.

Eine Row (auch Page genannt) wird mit ACTIVE geöffnet (BA + Row 
Address), nach tRCD kann diese Row dann gelesen oder geschrieben werden.

Zum Lesen wird READ angelegt (BA + Column Address), nach den CAS Latency 
Zyklen liegen dann die Daten an DQ an, bei einem Burst können weitere 
Daten gelesen etc.

Zum Schreiben wird WRITE angelegt (BA + Column Address), die Daten die 
an DQ anliegen werden dann direkt geschrieben.

Spätestens nach tRAS (Active to Precharge) muss die Row dann mit 
PRECHARGE (BA) geschlossen werden.

Des weiteren muss natürlich in regelmässigen Abständen ein AUTO REFRESH 
ausgelöst werden.

Gruß,

Dominic

von Olaf (Gast)


Lesenswert?

die minimalen Setup- und Hold-Zeiten stehen ja im Datenblatt drinnen. 
z.B. Setup-Zeit 3ns und Hold-Time 1ns (Input-Zeiten). Dies müssen 
eingehalten werden laut Datenblatt.

bei einer bestimmten Frequenz von z.B. 66MHz = 15ns pro Taktzyklus. 
Wielange muss jetzt z.B. eine Adresse ADDR anliegen (laut Diagramm genau 
ein Taktzyklus)? Spielraum = 15ns - 3ns - 2ns - Zeit(in der Signal hier 
Adresse anliegen muss - wie nennt sich diese Zeit?).

Olaf

von Dominic R. (dominic)


Lesenswert?

Die Adresse muss mindestens für tSetup + tHold anliegen, und das genau 
von tSetup vor der Taktflanke, in der sie benötigt wird, und bis tHold 
nach dieser Flanke - k.a. ob's dafür einen Namen gibt.

Gruß,

Dominic

von Olaf (Gast)


Lesenswert?

ok und mit der Taktflanke ist natürlich CLK-Taktflanke gemeint...

noch eine zweite Frage die vielleicht auch aus diesem Diagramm 
resultiert;

Den übergang zwischen Addresse liegt an Ba ist gewählt und RAS-Flanke 
wird aktiviert, verstehe ich noch nicht ganz - zeitlich gesehen.

der abstand bei 66MHz zwischen zwei Taktflanken sind 15ns. Die Adresse 
wird bis 1ns (hold-time) nach der taktflanke gehalten und dann ist die 
adresse wieder weg. RAS wird jedoch erst 4ns vor der nächsten Taktflanke 
aktiviert --> wie kommt dann die angelegte Adresse über die 
Adressleitungen auch in den SDRAM rein, so dass die richtige Reihe 
ausgewählt werden kann?


Olaf

von Dominic R. (dominic)


Lesenswert?

Olaf wrote:
> ok und mit der Taktflanke ist natürlich CLK-Taktflanke gemeint...

Genau darauf wollte ich hinaus - es ist ein synchrones Design, und 
Signale werden erstmal nur relativ zur Taktflanke (CLK Takt* ist ein 
bisschen redundant) betrachtet.

> Den übergang zwischen Addresse liegt an Ba ist gewählt und RAS-Flanke
> wird aktiviert, verstehe ich noch nicht ganz - zeitlich gesehen.
>
> der abstand bei 66MHz zwischen zwei Taktflanken sind 15ns. Die Adresse
> wird bis 1ns (hold-time) nach der taktflanke gehalten und dann ist die
> adresse wieder weg. RAS wird jedoch erst 4ns vor der nächsten Taktflanke
> aktiviert --> wie kommt dann die angelegte Adresse über die
> Adressleitungen auch in den SDRAM rein, so dass die richtige Reihe
> ausgewählt werden kann?

Mir ist nicht ganz klar was du meinst. In dem Diagramm auf Seite 3 des 
Samsung Datasheets wird die Row an der zweiten steigenden Flanke von CLK 
ausgewählt (ist ganz unten mit "Row Active" gekennzeichnet"). nRAS ist 
ein active-low Signal - in dem Diagramm wird gezeigt wie es tSS vor der 
Flanke low gehen muss (zuvor: don't care) und tSH danach wieder don't 
care sein kann.

Gruß,

Dominic

von Olaf (Gast)


Lesenswert?

>Mir ist nicht ganz klar was du meinst. In dem Diagramm auf Seite 3 des
>Samsung Datasheets wird die Row an der zweiten steigenden Flanke von CLK
>ausgewählt (ist ganz unten mit "Row Active" gekennzeichnet"). nRAS ist
>ein active-low Signal - in dem Diagramm wird gezeigt wie es tSS vor der
>Flanke low gehen muss (zuvor: don't care) und tSH danach wieder don't
>care sein kann.

ah ok - das hab ich übersehen, dass RAS ein aktive-low signal ist. Dann 
ist CAS auch ein aktiv low signal... ok, dann war das mein denkfehler...

Welche Bedeutung hat gleich nochmal DQM? Ich dachte DQM gibt an welche 
Datenleitungen aktiv sind LDQM z.B. die ersten 8 Datenleitugnen und DQM 
die zweiten acht Datenleitungen.

CS ist dann auch ein low-aktiv signal?

WAs gibt die Burst Länge eigentlich an? Nur die Anzahl, wie oft 
hintereinander aus dem Speicher gelesen werden kann? Also bei Burstlänge 
= 1 kann nur 1x * Anzahl der Datenleitungen Bits rausgelesen werden?

Olaf

von Dominic R. (dominic)


Lesenswert?

Olaf wrote:
> Welche Bedeutung hat gleich nochmal DQM? Ich dachte DQM gibt an welche
> Datenleitungen aktiv sind LDQM z.B. die ersten 8 Datenleitugnen und DQM
> die zweiten acht Datenleitungen.
Beim Lesen sind die Datenleitungen CAS-Latency-Takte nachdem DQM high 
war High-Z.
Beim Schreiben wird der Teil, für den DQM high war, nicht geschrieben, 
sondern behält seinen vorherigen Wert.
DQM muss auch benutzt werden wenn ein READ Burst mit einem WRITE 
abgebrochen werden soll - DQM muss dann CAS-Latency-Takte vor dem Write 
HIGH sein, um Bus-Contention zu vermeiden.

> CS ist dann auch ein low-aktiv signal?
Ja - das wird üblicherweise durch einen waagerechten Strich über dem 
Signalnamen deutlich gemacht, so auch im Samsung Timing Diagramm.

> WAs gibt die Burst Länge eigentlich an? Nur die Anzahl, wie oft
> hintereinander aus dem Speicher gelesen werden kann? Also bei Burstlänge
> = 1 kann nur 1x * Anzahl der Datenleitungen Bits rausgelesen werden?
Die Burstlänge gibt an wie viele Worte hintereinander gelesen oder 
geschrieben werden sofern kein neues Kommando angelegt wurde.

Gruß,

Dominic

von Hans (Gast)


Lesenswert?

wie berechnet man die zeitliche Verzögerung der Leiterbahn mit hinein.

also Tclk = Tsetup + Thold + Tleiterbahn

Jeder IC hat ja eine gewisse Kapazität die zusammen mit dem 
Eingangswiderstand ein RC-Glied darstellt - rechnet man darüber die 
Verzögerung auf der Leiterbahn auch aus? Welches R wird dafür verwendet? 
R = V(output low) / I (output low) - kann nur diese wertebezeichnungen 
im datenblatt nicht immer finden.

Hans

von Olaf (Gast)


Lesenswert?

noch eine kleine frage, wo in diesem diagramm findet man eigentlich die 
clock-to-output time wieder?

schon mal vielen dank für die zahlreichen antworten...

Olaf

von Hans (Gast)


Lesenswert?

die output-to-clock time ist hier doch der minimalen hold time 
entsprechend, oder? also der stabil bleibende teil nach der aktiven 
taktflanke?

Jeder IC hat ja eine gewisse Kapazität die zusammen mit dem
Eingangswiderstand ein RC-Glied darstellt - rechnet man darüber die
Verzögerung auf der Leiterbahn auch aus? Welches R wird dafür verwendet?
R = V(output low) / I (output low) - kann nur diese wertebezeichnungen
im datenblatt nicht immer finden.

von Olaf (Gast)


Lesenswert?

ich dachte aber das output-to-clk und hold-time zwei verschiedene zeiten 
sind?

von Lars (Gast)


Lesenswert?

sind sie auch

von Olaf (Gast)


Lesenswert?

aber in diesem diagramm kann ich die clk-to-output time nciht deuten.

Olaf

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
Noch kein Account? Hier anmelden.