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
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.
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.
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
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?
@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
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
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
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
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
>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
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
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
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
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.