Forum: Mikrocontroller und Digitale Elektronik setup- und hold-margin


von Bernd S. (mms)


Lesenswert?

Hallo,

was versteht man genau unter Setup- und Hold-Margin?

Bei einem Setup- und Hold-Margin von jeweils 2ns - folgt daraus, dass 
sich die einzelnen Leitungen (Datenbus, CLK etc.) bei 14ns/cm 
(Geschwindigkeit auf FR4), 28cm maximal unterscheiden dürfen in der 
Länge? Und alles befindet sich im grünen Bereich?

http://timingdesigner.com/Docs/art_control_qdr_designs.pdf

Bernd

von Falk B. (falk)


Lesenswert?

@ Bernd Schuster (mms)

>was versteht man genau unter Setup- und Hold-Margin?

Das sind die Zeitüberschüsse, die im realen Design vorhanden sind. 
Sozusagen die Timingreserven.

>Bei einem Setup- und Hold-Margin von jeweils 2ns - folgt daraus, dass
>sich die einzelnen Leitungen (Datenbus, CLK etc.) bei 14ns/cm
>(Geschwindigkeit auf FR4), 28cm maximal unterscheiden dürfen in der
>Länge?

Kann man so allgemein nicht sagen.

MfG
Falk

von Bernd S. (mms)


Lesenswert?

>Kann man so allgemein nicht sagen.

weil man Jitter und Clock Skew noch berücksichtigen muss? Oder welche 
anderen Effekte verhindern so eine klare Aussage?

Bernd

von Bernd S. (mms)


Lesenswert?

also die Hold-Margin Time hab ich so z.B. ausgerechnet

Hold Margin = Tco(min) + TOF - Th - Tskew = 1.5ns

-> ich hab also 1.5ns als Timingreserve. Diese Zeit gilt für alle 
Signale, da überall die gleichen Setup- und Hold-Zeiten vorhanden sind.

Der Bustakt läuft mit 100MHz; Trise ist 2.5ns --> müssten ja gute 28cm 
ohne Terminierung möglich sein zu übertragen.

Welche Effekte muss ich noch berücksichtigen? Bzw. aus welchen Angaben 
kann ich sagen oder daraufschließen, wie groß die zeitlichen Differenzen 
zwischen den einzelnen Signalen sein dürfen? Nach welchen Regeln oder 
Formeln muss ich jetzt weiter gehen, um diese Information zu erhalten?

Bernd

von Falk B. (falk)


Lesenswert?

@  Bernd Schuster (mms)

>>Kann man so allgemein nicht sagen.

>weil man Jitter und Clock Skew noch berücksichtigen muss? Oder welche
>anderen Effekte verhindern so eine klare Aussage?

Nein, weil man das Timing im Ganzen betrachten muss, incl. Länge der 
Taktleitung.


>Der Bustakt läuft mit 100MHz; Trise ist 2.5ns --> müssten ja gute 28cm
>ohne Terminierung möglich sein zu übertragen.

???
Ich komme eher auf 8,3cm. Siehe Wellenwiderstand

>Welche Effekte muss ich noch berücksichtigen? Bzw. aus welchen Angaben
>kann ich sagen oder daraufschließen, wie groß die zeitlichen Differenzen
>zwischen den einzelnen Signalen sein dürfen? Nach welchen Regeln oder
>Formeln muss ich jetzt weiter gehen, um diese Information zu erhalten?

Bei normalen SDRAM ist das dor recht einfach. Alle Signale müssen die 
Setup-und Holdzeiten einhalten, sowohl beim Schreiben als auch beim 
Lesen. Thats is.

MfG
Falk

von Bernd S. (mms)


Lesenswert?

Falk Brunner wrote:
> @  Bernd Schuster (mms)
>
>>>Kann man so allgemein nicht sagen.
>
>>weil man Jitter und Clock Skew noch berücksichtigen muss? Oder welche
>>anderen Effekte verhindern so eine klare Aussage?
>
> Nein, weil man das Timing im Ganzen betrachten muss, incl. Länge der
> Taktleitung.

da hab ich noch meinen denkfehler - ich hab zwar die timingtabellen vor 
mir liegen mit den entsprechenden werten - z.B. Hold- und Setup-Zeiten 
(die bei allen Signalen gleich sind) - meine Länge für die CLK-Leitung 
ist 32.4mm. Aber wie müssen sich jetzt die anderen Signale dazu 
verhalten?


>
>
>>Der Bustakt läuft mit 100MHz; Trise ist 2.5ns --> müssten ja gute 28cm
>>ohne Terminierung möglich sein zu übertragen.
>
> ???
> Ich komme eher auf 8,3cm. Siehe Wellenwiderstand

Uebertragungsgeschwindkgiet ist doch 14ns/cm bei FR4, d.h. doch man legt 
in 1ns 14cm zurück und in 2ns sind es 28cm.

Schon wieder ein Denkfehler?

>
>>Welche Effekte muss ich noch berücksichtigen? Bzw. aus welchen Angaben
>>kann ich sagen oder daraufschließen, wie groß die zeitlichen Differenzen
>>zwischen den einzelnen Signalen sein dürfen? Nach welchen Regeln oder
>>Formeln muss ich jetzt weiter gehen, um diese Information zu erhalten?
>
> Bei normalen SDRAM ist das dor recht einfach. Alle Signale müssen die
> Setup-und Holdzeiten einhalten, sowohl beim Schreiben als auch beim
> Lesen. Thats is.

theoretisch hab ich das verstanden nur im Bezug auf die Entwicklung 
eines Layouts leider noch nicht... vor allem bei den unterschieden in 
den leitungslängen bin ich mir total unsicher bzw. weis ich nicht nach 
welchen regeln formeln ich mir das ausrechnen kann wie gross der max. 
und minimale leitungsunterschied zwischen den einzelnen Signalen zu CLK 
sein duerfen.

Muss die CLK-Leitung stets die kuerzeste Leitung sein?

Bernd

von Falk B. (falk)


Lesenswert?

@ Bernd Schuster (mms)

>da hab ich noch meinen denkfehler - ich hab zwar die timingtabellen vor
>mir liegen mit den entsprechenden werten - z.B. Hold- und Setup-Zeiten
>(die bei allen Signalen gleich sind) - meine Länge für die CLK-Leitung
>ist 32.4mm. Aber wie müssen sich jetzt die anderen Signale dazu
>verhalten?

Die Länge der Taktleitung verschiebt das Timingfenster nach hinten, da 
der Takt später am SDRAM ankommt. Aber die 32mm entsprechen ~160ps, das 
kann man hier getrost in den Skat drücken.


>>Der Bustakt läuft mit 100MHz; Trise ist 2.5ns --> müssten ja gute 28cm
>>ohne Terminierung möglich sein zu übertragen.
>
> ???
> Ich komme eher auf 8,3cm. Siehe Wellenwiderstand

>Uebertragungsgeschwindkgiet ist doch 14ns/cm bei FR4, d.h. doch man legt

In den Innlagen, aussen können es durchaus auch mal 21cm/ns sein.

>in 1ns 14cm zurück und in 2ns sind es 28cm.

Sicher, aber die Frage nach Terminierung ja/nein beantwortet das nicht. 
Den Artikel nochmal lesen.

Wellenwiderstand

Schon wieder ein Denkfehler?

>theoretisch hab ich das verstanden nur im Bezug auf die Entwicklung
>eines Layouts leider noch nicht... vor allem bei den unterschieden in
>den leitungslängen bin ich mir total unsicher bzw. weis ich nicht nach
>welchen regeln formeln ich mir das ausrechnen kann wie gross der max.
>und minimale leitungsunterschied zwischen den einzelnen Signalen zu CLK
>sein duerfen.

Bis 10cm ist alles OK, 20cm geht meist auch noch. Mach doch erstmal ein 
Layout,versuche die Leitungen kurz zu halten und dann schau mer mal.

>Muss die CLK-Leitung stets die kuerzeste Leitung sein?

Nicht unbedingt.

MfG
Falk

von Bernd S. (mms)


Lesenswert?

>Bis 10cm ist alles OK, 20cm geht meist auch noch. Mach doch erstmal ein
>Layout,versuche die Leitungen kurz zu halten und dann schau mer mal

längste-Datenbus-Anbindung ist 80mm,
längste Adress-Leitung ist 60mm,

kürzeste Adressandinbung ist 30mm
CS ist 24mm
RAS ist 27mm
CAS ist 35mm
kürzeste Datenbus-Anbindung ist 50mm
Clock ist 50mm
CKE ist 55mm
DQM ist 60mm


würde das passen mit der Setup und Hold Margin?

Bernd

von Falk B. (falk)


Lesenswert?

@ Bernd Schuster (mms)

>würde das passen mit der Setup und Hold Margin?

Passt schon.

MfG
Falk

von Bernd S. (mms)


Lesenswert?

ok - nur für das verständnis... anhand welcher Wert kannst du sagen, 
dass das mit dem Timing auf jeden fall passen sollte?

Nimmt man sich ein Signal mit einer mittleren Länge vor und schaut, um 
wieviel das längste und kürzeste davon entfernt ist -> rechnet die 
daraus resultierende Verzögerung aus und diese muss kleiner als der 
Setup-Margin (für längste Länge) und kleiner als der Hold-Margin (für 
kürzeste Länge)?

Und die Clock wird somit genauso behandelt wie ein ganz normales Signal 
- außer mit etwas mehr abstand zu den anderen Signalleitungen beim 
Layout?

Bernd

von Falk B. (falk)


Lesenswert?

@ Bernd Schuster (mms)

>ok - nur für das verständnis... anhand welcher Wert kannst du sagen,
>dass das mit dem Timing auf jeden fall passen sollte?

Pi mal Daumen ;-)

Die Erklärung ist recht lang, hab ich im Moment keine Lust und Zeit. Tut 
mir leid.

Kurzfassung

Es gibt Timings, die dein uC ausspuckt. Die müssen mit dem Timing des 
SDRAM übereinstimmen. Durch die Länge der Taktleitung sowie Länge der 
Datenleitungen kommt es zu einer Phasenverschiebung, wobei Setupzeiten 
kürzer und Holdzeiten länger werden (oder umgekehrt, je nach 
Längenverhältnis).

>Nimmt man sich ein Signal mit einer mittleren Länge vor und schaut, um
>wieviel das längste und kürzeste davon entfernt ist -> rechnet die

Vergiss das. Alle Timings beziehen sich direkt auf CLK.

>Und die Clock wird somit genauso behandelt wie ein ganz normales Signal

Nein!

MFG
Falk

von Bernd S. (mms)


Lesenswert?

>Die Erklärung ist recht lang, hab ich im Moment keine Lust und Zeit. Tut
>mir leid.

kennst du eine Quelle oder Buch, die du mir empfehlen könntest?

In den Application Notes verschiedener Hersteller steht dazu nämlich 
leider auch keine Erklärung drinnen.

Bernd

von Tina B. (tina)


Lesenswert?

die Verzögerung auf einer Leiterbahn erhältst du mit Hilfe der Formel

Verzögerung = Länge Leiterbahn * Z0 (Wellenwiderstand Leitung)

da bekommt man dann einen Wert für CLK und alle anderen Signale heraus. 
Und ich meine, man muss dann die Zeit von der CLK von der Setup-Time 
#Margin abziehen und zur Hold-Time Margin hinzuaddieren...

die anderen Zeiten müssen dann kleiner sein als die übrig gebliebene 
Setup-Time udn Hold-Time - glaub ich...


Tina

von Falk B. (falk)


Lesenswert?

@ Tina Berger (tina)

>die Verzögerung auf einer Leiterbahn erhältst du mit Hilfe der Formel

>Verzögerung = Länge Leiterbahn * Z0 (Wellenwiderstand Leitung)

Ach ja?

 Sekunden = Meter * Ohm?

MfG
Falk

von Bernd S. (mms)


Lesenswert?

naja vielleicht läuft mir irgendwann mal die lösung über den weg... 
interesant wäre es schon zu wissen, um nicht immer unwissentlich routen 
zu müssen.

Bernd

von Falk B. (falk)


Lesenswert?

@ Bernd Schuster (mms)

>naja vielleicht läuft mir irgendwann mal die lösung über den weg...
>interesant wäre es schon zu wissen, um nicht immer unwissentlich routen
>zu müssen.

Poste mal den Link zum Datenblatt des uC und des SDRAMs, mal sehen was 
ich machen kann.

MFG
Falk

von Bernd S. (mms)


Lesenswert?

>Poste mal den Link zum Datenblatt des uC und des SDRAMs, mal sehen was
>ich machen kann.

der µC ist der AT91RM9200 (tr = 2.5ns, tclock-to-output = 3.5ns - stehen 
nicht im Datenblatt)
http://www.atmel.com/dyn/resources/prod_documents/doc1768.pdf
(das Timing für den SDRAM befindet sich auf der Seite 641ff.)

SDRAM
http://www.samsung.com/global/system/business/semiconductor/product/2007/7/7/595936ds_k4s51xx32d_rev10.pdf
(hier stehen die Timings ab Seite 11ff)


>mal sehen was ich machen kann.

eine allgemeine Herleitung bzw. Erklärung mit Formeln wäre mir 
persönlich am liebsten, weil dann seh ich den Rechenweg und kann die 
Routine auch bei anderen Sachen wie Flashspeicher / oder anderen 
µControllern, 1zu1 verwenden.

wäre super, wenn ich es dann komplett verstehen würde.

Bernd

von Bernd S. (mms)


Lesenswert?

hast du übers weekend zeit, mir eine (leider ausführliche) erläuterung 
zu diesem thema zu machen?  formeln mit stichpunkten würde mir reichen 
-> dann kann ich nach diesen stichpunkten selbst googeln und so mir den 
zusammenhang klar machen.

Bernd

von Falk B. (falk)


Lesenswert?

Ich werd es versuchen.

MFG
Falk

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.