Hallo, nun hab ich schon in einigen beiträgen gelesen, dass beim Datenbus Addressbus etc. man sich keine gedanken machen muss ob die einzelnen Busleitungen 2cm oder 3cm länger sind als manch andere... aber wieso geht das? Innerhalb welcher Zeit müssen die Bits ankommen - innerhalb der Setup-Time oder Hold-Time (abhängig von dem ob es sich um einen Eingang oder Ausgang handelt) - ja. Aber gibt es einen Mindestwert für die Setup-Zeiten oder Hold-Zeiten (meistens ja sogar 0ns)-> da würde man ja gar kein oder sehr kleines spiel haben... bei einer FR4 Leiterbahn bewegen sich die einzelnen bits ja mit 14cm/ns -> bei 14cm unterschied zwischen den einzelnen Datenleitungen wäre der zeitliche unterschied 1ns... Natürlich ist das alles ziemlich untypisch, dass das passieren wird, weil man natürlich unterhalb von 10cm bleibt... aber trotzdem innerhalb welcher Zeit müssen die einzelnen Bits ankommen? Innerhalb der Setup-Time? Matthias Krämer
Die Frage ist doch vor allem auch, wie schnell Dein Bus ist. Bei 'nem AVR mit 16 MHz hat man also 62,5 ns pro Takt, das muss man erstmal auf den Bus bekommen, eher wird's ein vielfaches davon. Da kümmert es gerade mal garnicht wenn die Signale mit 1 ns Versatz ankommen. Und sowas wie einen Bus gibt es ohnehin immer weniger, jedenfalls stirbt parallel ohnehin und die µC's haben mehr und mehr integriert.
ich meine natürlich eher SDRAMs, die dann mit 133MHz betrieben werden --> 7.5ns pro Takt --> und dann ist 1ns knapp 14% der 7.5ns.... 7.5ns * 14cm/ns = 105cm können mit 7.5ns durchlaufen werden. Matthias Krämer
Wird das jetzt zur Epidemie? Jahrelang kümmert's keine Sau und die Leute schliessen ihre SRAMs an den AVRs an wie sie wollen. Kümmern sich auch nicht drum, dass Atmel jenseits von 8MHz von HCs abrät, weil's ja trotzdem funktioniert. Ist wohl auch ok so, weil man einem '573 bei miesem Layout und ohne VCC/GND-Planes möglicherweise mit 74HC besser dran ist als mit 74AC/74AHC. Und nun auf einmal ist irgendein Virus ausgebrochen und jeder dritte Thread macht sich ins Hemd wegen einer halben Nanosekunde für die paar cm Leitung zwischen SRAM und AVR. WAS IST HIER LOS? Seit ihr zum ersten Mal den Begriffen Setup/Hold Time begegnet?
Setup/hold times am Beispiel für einen Eingang: 5nsec setup time: Eingang muss spätestens 5nsec vor T anliegen. 20nsec hold time: Eingang darf sich frühestens 20nsec nach T ändern. Das ist alles Leute. Keine Zauberei. Wenn's 100nsec vorher und 200nsec nachher sind stört das auch nicht.
> 7.5ns * 14cm/ns = 105cm können mit 7.5ns durchlaufen werden.
Und wenn du dann mal einen guten Oszi dranhältst, wirst du feststellen,
dass diese rechnerische Laufzeit das geringste deiner Probleme ist.
>Bei 'nem AVR mit 16 MHz hat man also 62,5 ns pro Takt, das muss man >erstmal >auf den Bus bekommen, eher wird's ein vielfaches davon. heißt dass, das der AVR z.B. mit einer viel höheren Frequenz läuft als der externe Bus EBI und dadurch man ein paar Nanosekunden sozusagen geschenkt bekommt, die dann die Differenz zwischen den einzelnen ankommenden Bits ausmacht.. also bei 180MHz CPU Takt und 133 MHz SDRAM (wie oben genannt) --> 5.55ns pro CPU-Takt und 7.5ns pro Bustakt --> man braucht mindestens zwei CPU-Zyklen --> 11.1ns diese 11.1ns > tclk-to-outut + tsetup + thold + tleiterbahn --> wenn das stimmt ist alles im grünen bereich? Matthias
>5nsec setup time: Eingang muss spätestens 5nsec vor T anliegen. >20nsec hold time: Eingang darf sich frühestens 20nsec nach T ändern. die werte bewegen sich ja eher in hold time = 0ns und setup time 2-5ns; aber im prinzip ist sowieso zu achten, dass die leitungslänge kurz ist, weil ansonsten kapazitätsbelag und vor allem auch die induktivität steigt und somit das signal schlechter wird.
> die werte bewegen sich ja eher in hold time = 0ns und setup time 2-5ns; War ein Beispiel. Die exakten Zahlen sind für's Verständnis unwichtig. Man kann dann auch mal einer setup time von -3nsec (minus 3) begegnen, ohne dass es einen aus der Kurve schmeisst. > aber im prinzip ist sowieso zu achten, dass die leitungslänge kurz ist, > weil ansonsten kapazitätsbelag und vor allem auch die induktivität > steigt und somit das signal schlechter wird. Jau. Aber zwischen AVR und RAM sind zig Leitungen. Wer Controller, Latch und RAM an drei entgegengesetzte Enden seiner Platine plaziert, kriegt doch schon bei Layouten den Vogel. Das regelt sich also gewissermassen von selber.
hallo Andreas, für mich ist das noch etwas unverständlich, warum man sich keine sorgen machen muss obwohl die hold-time 0ns entspricht... bei der setup-time von z.B. 4ns hab ich es jetzt so verstandenn, dass innerhalb dieser 4ns das Bit ankommen muss... kann man dass mit den bieden Frequenzen von µC (die um einiges höher ist) und dem EBI erklären, so dass mind. zwei CPU-Takte von nöten sind, um die daten zu empfangen und man so z.B. 12ns zeit hat? Ingo
> bei der setup-time von z.B. 4ns hab ich es jetzt so verstandenn, > dass innerhalb dieser 4ns das Bit ankommen muss... So kann Panik aufkommen. Nö. Es heisst, dass das Bit MINDESTENS 4ns vorher (vor was?) ankommen muss. Darf aber auch schon 2 Stunden vorher da sein. Und darf auch noch 3 Tage (>=0ns) danach anliegen.
Andersrum ausgedrückt: Es darf sich innerhalb der Zeit von 4ns vorher und 0ns nachher nicht ändern. Womit es also das Gegenteil von deiner These ausdrückt. Nun beruhigt?
>vorher (vor was?) ankommen muss.
da ist genau mein denkfehler.. welchen zeitbezug haben den die 4ns setup
time? ist die für alle datenbusleitungen gleich (also gleich lang und
zur gleichen zeit beginnend?)
wenn es einen zeitpunkt gibt, ab dem diese 4ns für alle inputs anfängt
und ein bit erst 6ns später ankommt ist es doch zu spät, oder?
Ingo
Vielleicht klappt's so: Die setup time entspricht den 1-2 Stunden, die du vor dem Abflug nach Mallorca am Airport sein solltest und wenn du zu spät kommst (setup time violation) oder vor dem tatsächlichen Abflug wieder ausrückst (hold time violation) fliegen sie halt ohne dich. EDIT: Oder, wenn nicht eingehalten, sie werden sauer und verfrachten dich als Terrorist (Behinderung des Verkehrs) nach Gitmo. Um den Vergleich etwas passender zu gestalten.
> wenn es einen zeitpunkt gibt, ab dem diese 4ns für alle inputs anfängt > und ein bit erst 6ns später ankommt ist es doch zu spät, oder? Wenn man auf den Kopf steht, sieht die Welt irgendwie verkehrt aus. Und so geht es dir. Die 4ns fangen nicht irgendwann an, sondern enden nur irgendwann. Nämlich mit dem Referenzzeitpunkt, was immer das ist - NB: ich würde mich da gern etwas weniger abstrakt ausdrücken, weiss aber immer noch nicht um welche Signale es eigentlich geht.
Da will ich auch mal ne frage zu stellen... Timings im Datenblatt: http://www.atmel.com/dyn/resources/prod_documents/doc6221.pdf Seite 763 .. Also die Setup Zeit sagt wann vor Clock Fallend die Daten da sein müssen, die Hold Zeit wie lange die Daten nach Clock Fallend noch anliegen müssen. In dem Fall also 0.2ns vor Clock da und bis 1.1ns nach Clock.. das heißt ja bei 100MHz Takt also 10ns sind 8.7ns Zeit die Daten an den Controller anzulegen, also knapp 130cm darf quasi die längste Leitung sein (?) was ja schon relativ unrealistisch ist.. Die Out Valid Time sagt wann der Controller die Daten vor Clock anlegt bzw. nach Clock noch anliegen hat ? THX
> In dem Fall also 0.2ns vor Clock da und bis 1.1ns nach Clock.. das heißt > ja bei 100MHz Takt also 10ns sind 8.7ns Zeit die Daten an den Controller > anzulegen, also knapp 130cm darf quasi die längste Leitung sein (?) was > ja schon relativ unrealistisch ist.. Das hast du in wirklich jeder Hinsicht falsch verstanden. Aber noch deutlicher als vorhin kann ich mich nicht mehr ausdrücken.
>Vielleicht klappt's so: Die setup time entspricht den 1-2 Stunden, die >du vor dem Abflug nach Mallorca am Airport sein solltest und wenn du zu >spät kommst (setup time violation) oder vor dem tatsächlichen Abflug >wieder ausrückst (hold time violation) fliegen sie halt ohne dich. das hab ich verstanden - aber der fall, dass ich zu spät am flughafen bin (die daten nicht innerhalb der setup time ankommen) darf ja nicht auftreten. Und einen direkten Zeitbezug gibt es somit auch, weil das flugzeug nur einmal startet. ok die daten dürfen früher ankommen als die 4ns --> die setup time könnte biliebig lange sein. Jedoch werden die daten nicht beliebig früh auf die reise geschickt vom µC z.B. an einen speicher. --> ich muss wissen wie lang die längste strecke eines bits ist und diese zeit auf der längsten leiterbahn auf alle bits umrechnen und diese somit entsprechend früh losschicken - mnanche kommen dann 6ns vorher an und das letzte 4ns (was der setup-time im datenblatt entspricht) an - und alles ist gut... beim rückflug muss ich wider die längste leitung in der berechnung berücksichtigen... so?
> Also die Setup Zeit sagt wann vor Clock Fallend die Daten da sein > müssen, die Hold Zeit wie lange die Daten nach Clock Fallend noch > anliegen müssen. Wobei dein "Clock" hier die NRD Leitung ist, und sich das auf dessen steigende Flanke bezieht. So du SMC19/20 meinst.
> ok die daten dürfen früher ankommen als die 4ns --> die setup time > könnte biliebig lange sein. Jedoch werden die daten nicht beliebig früh > auf die reise geschickt vom µC z.B. an einen speicher. Hättest du die Güte, nicht mittem im Satz das Schlachtfeld zu wechseln. Eben noch Lesezyklus, jetzt auf einmal Schreibzyklus. Bleib mal bei einem und verstehe den, dann nimm den nächsten.
sorry, da rattert es dann plötzlich zu schnell im gehirn -. aber so müsste es stimmen, oder?
Kleiner gut gemeinter Tip: Wenn du mit diesem Kenntnisstand ein 133MHz SDRAM an einen ARM9 kleben willst, dann wird das höchstwahrscheinlich nicht aufgrund deiner Rechnung funktionieren, sondern allenfalls deshalb, weil Atmel diese Rechnung wahrscheinlich schon gemacht und das Verhalten von SDRAMs im Timing des Controllers berücksichtigt hat. Und wenn du davon mehrere dranhängen willst: Vergiss es. Sei froh wenn's mit einem funktioniert. Weiteres zu diesem Thema setzt Kenntnisse voraus, für die man in einem E-Technik-Studium längere Zeit büffeln darf (behaupte ich als dummer Informatiker jetzt mal - und würde davon selber die Finger lassen). Weil's mit Zeiten allein nicht getan ist.
> sorry, da rattert es dann plötzlich zu schnell im gehirn -. aber so > müsste es stimmen, oder? Keine Ahnung. Hat für mich zu schnell gerattert.
also so wie ich das aus deiner erklärung herausgehört habe, ist es doch so, dass jedes Bit die im Datenblatt angegebene Setup-Time möglichst auch einhalten sollte. Daher fängt man mit dem DAtensenden so früh an, dass das Bit mit der längsten Leitung früh genug ankommt, damit die Setup-Time eingehalten werden kann. Dass die anderen Bits schon viel länger am SDRAM anliegen ist völlig egal... so hab ich das verstanden...
> auch einhalten sollte. Daher fängt man mit dem DAtensenden so früh an, > dass das Bit mit der längsten Leitung früh genug ankommt, damit die > Setup-Time eingehalten werden kann. Dass die anderen Bits schon viel > länger am SDRAM anliegen ist völlig egal... Also bei welchen Zyklus sind wir grad? Lesezyklus oder Schreibzyklus? Konkret bei welchen Signalen und welchen Zeiten im Datasheet (Name!)?
setup-time ist doch nur bei einem schreibzyklus vorhanden? also wenn die daten vom µC in den SDRAM geschrieben werden. Ein Datensheet hab ich nicht... aber wenn die setup-time 4ns ist, die die daten am sdram anliegen müssen, müssen die daten spätestens beim µC abgeschickt werden, so dass gilt t = tsetup + tleiterbahn(längste) --> so dass manche Bits (auf kürzeren Bahnen) länger als die 4ns setup time warten müssen und das Bit welches die längste strcke zurücklegen muss genau die 4ns setup time hat bevor es in den sdram geschrieben wird. Ingo
> setup-time ist doch nur bei einem schreibzyklus vorhanden? Nein. Beim Lesezyklus gibt's das auch, diesmal seitens des Controllers. > aber wenn die setup-time 4ns ist, die die daten am sdram anliegen > müssen, müssen die daten spätestens beim µC abgeschickt werden, so dass > gilt t = tsetup + tleiterbahn(längste) Mal so herum ausgedrückt: Wenn die Laufzeit auf der Leitung gross genug ist, um dir die Suppe zu versalzen, dann ist diese einfache Rechnung schon falsch, weil Aspekte von Hochfrequenztechnik und Platinenlayout mit einbezogen werden müssen. Also mach die Leitung kurz und vergiss die Laufzeit. Oder studier E-Technik, mit ein paar Postings lässt sich das nicht ersetzen.
d.h. die buslängen sind nur ab bestimmte frequenzen bezüglich high-speed-design-rules kürzer zu halten? weil die rise time steigt etc. - ansonsten müsste terminiert werden
ja sowie ich das verstanden habe, spielen bei höheren frequenzen nur noch die high-speed high-frequency effekte eine rolle, warum die max. buslänge kürzer sein muss... daher muss auch bereits die clk-leitung kürzer ausgeführt werden als die datenleitungen. Ingo
> d.h. die buslängen sind nur ab bestimmte frequenzen bezüglich > high-speed-design-rules kürzer zu halten? Wobei dann unter Frequenz nicht (nur) die Datenrate zu verstehen ist, sondern auch die Flankensteilheit. Je steiler die Flanke, desto kürzer die ohne zusätzliche Massnahmen vertretbare Leitungslänge.
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.