Forum: Offtopic Digitaltechnik, Frage zu maximaler Betriebsfrequenz


von Bert S. (kautschuck)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe eine Frage wie man beid er obigen Schaltung die
maximale Durchlaufzeit berechnet? Die Frequenz ist ja dann:
Wie kommt man aber genau auf tmax? ich dachte immer man nimmt
den längsten Pfad und addiert alle Verzögerungszeiten, warum nimmt
man aber die Setupzeit des T-FF und die Propagation-Delay des D-FF nicht
auch zur Zeit tmax?
Laut Lösung ist fmax = 40Mhz, tmax = 25ns.

von (prx) A. K. (prx)


Lesenswert?

Wodurch wird denn die Frequenz einer solchen Schaltung begrenzt?

Kleiner Tipp: Die maximale Betriebsfrequenz einer Eimerkette zum Löschen 
von Bränden ist nicht abhängig von der Länge der Kette.

von Bert S. (kautschuck)


Lesenswert?

Wie lange an den einzelnen Bauelementen das Signal anliegen muss? Bin 
mir nicht sicher ob ich es begriffen habe, aber ich versuche es einmal:
Zuerst kommt also das Signal durch das T-FF, tp = 11ns, dann
geht das Signal durch die Gatter (längster Weg = AND und XNOR), tp = 
7ns,
dann kommt das Signal and das D-FF, dort muss das Signal die Setup Zeit 
einhalten = 7 ns -> 25ns = tmax.
Bin mir aber nicht sicher warum am D-FF Nur die Setupzeit zählt?

von (prx) A. K. (prx)


Lesenswert?

Die maximale Betriebsfrequenz ist bestimmt durch die Laufzeit zwischen 
zwei Taktflanken. Wo tauchen da die Setup-Zeit vom T-FF und das Delay 
vom D-FF auf?

von Bert S. (kautschuck)


Lesenswert?

Die Setupzeit des T-FF tauchet nicht auf, da sie sich vor der Flanke 
befinden und die Tpd des D-FF nicht, da sie sich nach der Flanke 
befindet, ich glaube ich habe es verstanden. Wenn jetzt ein D-FF 
dazwischen wäre, müsste man von dem die grössere der beiden tpd und ts 
nehmen?

Gruss und Danke

von Sven P. (Gast)


Lesenswert?

Jein, ich glaube, du hast die Frage noch etwas anders interpretiert :-) 
Das hat A.K. auch schon vermutet.

Kritisch sind in so einer digitalen Schaltung die Flipflops. Denn genau 
dort trifft die Signallaufzeit auf den Takt. Das ist diese Geschichte 
mit Setz- und Haltezeiten, die man nicht verletzen darf -- das ist dir 
geläufig.

Wenn jetzt nach der maximalen Taktfrequenz gefragt ist, musst du genau 
dahin dein Augenmerk legen: Es interessiert nämlich nicht, wie schnell 
ein Signal am Eingang der Schaltung schließlich eine Änderung am Ausgang 
der Schaltung bewirkt!
Das hat A.K. mit seiner Eimerkette gemeint: Gefragt ist nicht, wie 
lange es dauert, bis Wasser am Ende der Kette ankommt. Sondern es ist 
gefragt, wie schnell der verantwortliche Feuerwehr-Zugführer den Leuten 
mit den Eimern 'hepp hepp hepp' zurufen darf...

Zu deiner Schaltung zurück: Wenn da jetzt eine Taktflanke kommt, wachen 
die drei Flipflops auf. Die beiden T-FF links machen irgendetwas 
(unerheblich) mit den Eingangssignalen und nach der Durchlaufzeit kommt 
hinten (also hinten an den T-FF) ein stabiles Signal heraus. Das D-FF 
tut es ihnen gleich. Bei den nächsten Taktflanken geschieht das wieder 
und wieder, wobei das Signal zwischen den Taktflanken durch die 
kombinatorische Logik (Gatter) läuft.

Jetzt kommt noch die Setup-Zeit dazu: Die besagt, dass ein 
Eingangssignal eines FF eine Weile stabil anliegen muss, bevor die 
Taktflanke kommt. Sonst ist die Setup-Zeit verletzt und gibt es 
metastabiles Zeugs und so weiter.

Damit hast du dein Kriterium: Es ist doch nun offenbar nur von 
Interesse, dass Signale von den Ausgängen irgendwelcher FF früh genug an 
den Eingängen der folgenden FF ankommen. Damit rechnest du:

. eine Taktflanke kommt,
. die T-FF werden wach,
. nach der Durchlaufzeit kommen hinten stabile Signale heraus,
. die laufen durch ein kombinatorisches Netz und
. kommen an den Eingängen irgendwelcher FF an,
. deren Setup-Zeit nicht verletzt werden soll.

Stabile Signale kommen nach 11ns heraus. Die Signale wandern auf 
mehreren Pfaden durch das Netz, wobei sich spätestens (längster Pfad) 
5+2ns (AND+XNOR) alles beruhigt hat. Von da an kann die Setup-Zeit mit 
7ns gezählt werden und erst danach darf dann wieder eine Taktflanke 
kommen.


Anderes Beispiel: Du schaltest zwischen AND und XNOR ein D-FF und 
zwischen
XOR und XNOR auch eines (also vor den beiden Eingängen des XNORs jeweils 
ein FF). Gleiche Überlegung wie oben, von links nach rechts:
. die Taktflanke kommt und die T-FF werden wach,
. nach der Durchlaufzeit von 11ns kommen stabile Signale heraus.
. die wandern 5ns durch ein AND (oben) und landen vor einem FF,
. unten wandern sie insgesamt 4ns durch NOR und XOR und landen ebenfalls 
vor einem FF.
. Diese beiden (mittleren) FF brauchen 7ns Setup (D-FF), also darf die 
Taktflanke erst nach 11+5+7=23ns (oberer Pfad) bzw. 11+4+7=22ns (unterer 
Pfad) kommen. Sinnigerweise also insgesamt erst nach 23ns, um keine 
Setup-Zeit zu verletzen, der untere Pfad hat also noch etwas Luft.

Nun sind wir durch die halbe Schaltung. Von dort geht es weiter:
. Nächste Taktlflanke.
. Nach der Durchlaufzeit von 11ns liegen hinter den mittleren FF stabile 
Signale an,
. die laufen 2ns durch ein XNOR und landen wiederum vor einem FF mit 7ns 
Setup-Zeit.
. Die nächste Taktflanke darf also frühestens nach 11+2+7=20ns kommen.

Insgesamt dominiert also schon wieder der obere Pfad von vorhin mit 
23ns, dessen Setup-Zeit ja nicht verletzt werden darf. Trotzdem ist die 
Schaltung nun etwa 3MHz (von 25ns auf 23ns) schneller geworden.
ABER die gesamte Durchlaufzeit der Schaltung hat sich fast verdoppelt! 
Denn nun braucht die Schaltung nämlich zwei Takte, bis die 
Eingangssignale bis zum Ausgang durchgreifen.

Du hast also in diesem Beispiel etwas mehr Taktfrequenz mit etwas mehr 
Latenz (=Durchlaufzeit der Schaltung) erkauft.

Das sieht nun erst einmal sinnlos aus, denn für dich von Belang ist ja 
eigentlich nur diese Latenz. Du willst ja nicht wissen, wie und warum 
die Schaltung intern arbeitet, sondern nach außen hin willst du wissen, 
wie schnell die Eingangssignale verarbeitet werden und die Ergebnisse am 
Ausgang erscheinen. Und in diesem Sinne hast du nun etwas Zeit verloren: 
Vorher brauchte es zwei (langsame 40MHz-)Takte dafür (erster Takt 
schiebt die Eingangssignale in die T-FF, dann arbeitet das 
kombinatorische Netz und der zweite Takt schiebt die Ergebnisse vom Netz 
an die Ausgänge der D-FF), also 50ns. Mit den beiden zusätzlichen FF 
sind es nun drei (etwas schnellere 43MHz-)Takte, also 69ns.

Aber aufgemerkt: Die Zwischenergebnisse sind nicht verloren. Du hast 
hier (vielleicht unbemerkt) eine Pipeline-Architektur entworfen: Wenn du 
mit dem ersten Takt die Eingangssignale in die T-FF übernimmst, musst du 
ja nicht zwingendermaßen auch noch den zweiten Takt abwarten, bevor du 
neue Eigangssignale anlegst. Das ist nämlich der Unterschied zwischen 
Taktrate und Latenz: Du darfst mit jedem Takt neue Eingaben anlegen. Und 
du bekommst auch mit jedem Takt gültige Ergebnisse. Nur bekommst du mit 
einem Takt eben nicht sofort die Ergebnisse, die zu den aktuellen 
Eingabe gehören. Stattdessen tauchen die nach der Latenz auf.

Die zweite Schaltung (mit den zusätzlichen FF) ist damit tatsächlich 
schneller: Bei der ersten Schaltung legst du jeden Takt Eingaben an und 
bekommst Ergebnisse. Du legst also alle 25ns Eingaben an und bekommst 
alle 25ns Ergebnisse, und zwar diejenigen Ergebnisse, die zu den 
Eingaben gehören, die du vor 50ns angelegt hast -- das ist die Latenz 
(Klar, beim Anlaufen der Schaltung kommt bei den ersten beiden Takten 
einmal Unfug heraus, weil noch keine Eingaben in die T-FF geladen wurden 
und die D-FF noch irgendwelche unbekannten Zustände haben).

Bei der zweiten Schaltung kannst du Eingaben mit 23ns laden und 
Ergebnisse ebensoschnell abholen, allerdings kommen die Ergebnisse 
jeweils du den Eingaben von vor 69ns. Aber trotzdem 2ns schneller.

Uff.

von Bert S. (kautschuck)


Lesenswert?

Wow, vielen Dank!

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.