Forum: Mikrocontroller und Digitale Elektronik flip flop flankenerkennung


von sinapse (Gast)


Angehängte Dateien:

Lesenswert?

hallo,

bei einem Shift Register werden mehrere D-FlipFlops in Reihe geschaltet, 
die ihren jeweiligen D-Eingang speichern und hinten bei Q ausgeben, wenn 
eine steigende Flanke im Clockeingang registriert wird.

Hinter dem Clock-Eingang befindet sich ein Edgedetector, der bei einer 
steigenden Flanke einen kurzen Impuls generiert. Während dieser kurze 
Impuls auf high ist übernimmt die FlipFlop Schaltung den anliegenden 
D-Wert und gibt diesen in Q aus.

So kann man mit jedem Clock Takt den D Wert einen FlipFlop weiter nach 
rechts reichen.

Frage: wenn der impuls vom Edgedetector zu lang ist, müsste doch der D 
Wert durch alle FlipFlops durchrutschen oder? Weil sich ja der Ausgang 
vom vorgänger flipflop verändert hat und genügend zeit hat beim 
nachfolger flipflop anzukommen?

Gibts dazu eine gute internetseite wo das timing erklärt wird... weil 
wenn der impuls zu kurz ist, müsste das D-FlipFlop nicht genügend zeit 
haben den Wert zu übernehmen. Ist der zu lang, müsste das doch 
durchrutschen??

irgendwie kommt es mir so vor, als müsste man den edgedetector richtig 
gut einstellen, weil es sonst zu unerwarteten ergebnissen führt, sobald 
man mehrere flipflops verschaltet... oder hab ich einen grundlegenden 
denkfehler?

vielen dank schonmal im voraus für die antworten

lg

: Verschoben durch Moderator
von Helge (Gast)


Lesenswert?

Die Flanke am Takteingang muß den kritischen Bereich schneller 
durchlaufen als die Durchlaufzeit des FF ist. Und ja, es gibt durch die 
Durchlaufzeiten eine Maximalfrequenz.

von jo (Gast)


Angehängte Dateien:

Lesenswert?

sinapse schrieb:
> Frage: wenn der impuls vom Edgedetector zu lang ist, müsste doch der D
> Wert durch alle FlipFlops durchrutschen oder? Weil sich ja der Ausgang
> vom vorgänger flipflop verändert hat und genügend zeit hat beim
> nachfolger flipflop anzukommen?

Es gibt keinen Flankendetektor, der "einen kurzen, aber ja nicht zu 
langen Puls erzeugt", sondern eine Master- und eine Slave-Sektion.

von sinapse (Gast)


Angehängte Dateien:

Lesenswert?

hallo,

danke für die antworten. In der master-slave schaltung verstehe ich das. 
jedoch sehe ich öfter das bild wie es im angehangenen Bild oben gezeigt 
ist. da handelt es sich ja nicht um eine master-slave schaltung? erst 
wenn da die inverter in das clock signal eingesetzt werden (siehe im 
bild mitte).

Muss man also immer eine master-slave schaltung verwenden, sobald 
triggergesteuerte flipflops in reihe geschaltet werden? nicht nur beim 
schieberegister, sondern bei jeder anderen beliebigen schaltung bei der 
über mehrere logikgatter ein flipflop mit dem anderen flipflop verbunden 
ist (siehe bild unten)??

Oder sind die kantenerkennungsimpulse so eingestellt, dass das signal 
nicht durchrutschen kann?? ich muss mir also keinen kopf machen und das 
signal kann nicht durchrutschen??

von (prx) A. K. (prx)


Lesenswert?

sinapse schrieb:
> ich muss mir also keinen kopf machen und das
> signal kann nicht durchrutschen??

Ebendies, zumindest wenn die geforderten Zeitbedingungen im Datasheet 
eingehalten werden.

von Axel S. (a-za-z0-9)


Lesenswert?

sinapse schrieb:
> In der master-slave schaltung verstehe ich das.
> jedoch sehe ich öfter das bild wie es im angehangenen Bild oben gezeigt
> ist. da handelt es sich ja nicht um eine master-slave schaltung?

Es geht aus dem Schaltbild nicht hervor, ob in den Kästchen, die ein 
D-Flipflop darstellen, sich ein Master-Slave-Flipflop verbirgt oder 
nicht. Aber wenn der Takteingang mit einem ">" geschmückt ist, dann kann 
man gewöhnlich davon ausgehen.

Vielleicht sagst du ja einfach mal deine eigentliche Frage, statt 
immer nur in den Randbereichen zu stochern.

von (prx) A. K. (prx)


Lesenswert?

Bei den RCA CD4000 Bausteinen ist oft eine detaillierte Innenschaltung 
angegeben. So auch beim CD4014B. Mit zweistufigem Flipflop:
https://www.ti.com/lit/gpn/cd4014b

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

sinapse schrieb:
> Gibts dazu eine gute internetseite wo das timing erklärt wird

Immer das Datenblatt des IC, zumindest das vollständige Datenblatt eines 
seriösen Herstellers, nicht die Pocket Guide.

von (prx) A. K. (prx)


Lesenswert?

Bitte beachten, dass bei Nichteinhaltung der Zeitbedingungen ein 
undefinierter Zustand eintreten kann, die Metastabilität. Ein Risiko, 
das zwar minimiert aber nicht gänzlich vermieden werden kann:
https://de.wikipedia.org/wiki/Metastabilität_(digitale_Schaltung)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

sinapse schrieb:
> das signal kann nicht durchrutschen??
Das Signal kann dann "durchrutschen" (aka "fall through"), wenn die 
Taktverteilung ungünstig gelöst ist und der Takt langsamer von links 
nach rechts durchläuft als das Signal (wie z.B. oben im Bild 
RaceCondition.png).

Sinnvollerweise wäre es dann also gut, wenn der Takt "in die andere 
Richtung ginge (wie unten im Bild RaceCondition.png).

sinapse schrieb:
> irgendwie kommt es mir so vor, als müsste man den edgedetector richtig
> gut einstellen, weil es sonst zu unerwarteten ergebnissen führt
Kommt drauf an, welches die Zielplattform ist. In einem FPGA sorgt der 
Hersteller dafür, dass die Setup- (tsu) und Hold- (th), und 
Clock-to-Output (tco) Zeiten samt der Taktverteilung so ein "fall 
through" verhindern. Das ist die Basis von synchronen Designas. Auf 
dieser Voraussetzung funktioneren FPGA-Designs.

Bei einem ASIC bist du "selber schuld" und musst den Taktbaum passend 
aufbauen, dass keine solche Race Conditions auftraten.

Und diskrete Logik ist ao langsam, dass die Laufzeiten auf der 
Leiterplatte "normalerweise" nichts mehr ausmachen.

sinapse schrieb:
> (siehe bild unten)??
In deinem Bild unten ist der unkritische Fall gezeigt: der Takt ist 
immer schneller als die Logik.

Wenn du den Takt zwischen den Flipflops invertierst, dann fängst du dir 
ganz andere Probleme ein, denn dann musst du auf einmal auf die Phase 
(steigende oder fallende Flanke?) achten, wenn du 2 Signalpfade wieder 
miteinander verknüpfen willst.
Dazuhin reduzierst du die maximale Taktfrequenz, weil ja die tsu nur 
noch halb den halben Taktzyklus betragen darf.

: Bearbeitet durch Moderator
von Peter D. (peda)


Lesenswert?

Das Dreieck am Takteingang bedeutet, daß es ein FF mit Flankentriggerung 
ist.
Im Datenblatt sieht man schön, daß intern 2 FFs vorhanden sind. Der 
erste übernimmt D bei CP = 0, der 2. übernimmt vom ersten bei CP = 1. 
Der Ausgang des 2. FFs kann sich also nur bei der 0-1 Flanke von CP 
ändern.
Die Gatterlaufzeiten sorgen dafür, daß die Zustände für die 
Übernahmezeit stabil sind.

Siehe Fig. 4.
https://assets.nexperia.com/documents/data-sheet/74HC_HCT74.pdf

Jeder D-FF ist also intern als Master-Slave aufgebaut.
Nur D-Latches (74HC75) enthalten nur einen FF.

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

Peter D. schrieb:
> Im Datenblatt sieht man schön, daß intern 2 FFs vorhanden sind.

Denksportaufgabe: Die detaillierte Innenschaltung des 
flankengetriggerten TTL Klassikers SN74LS74 verstehen.

Die CMOS Version ist trivial.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

(prx) A. K. schrieb:
> Denksportaufgabe: Die detaillierte Innenschaltung des
> flankengetriggerten TTL Klassikers SN74LS74 verstehen.

Lass dich nicht durch die vielen Transistoren verwirren.
Jeweils fünf gehen schon für die Ausgangsstufen von Q und !Q drauf ;-)

von (prx) A. K. (prx)


Lesenswert?

Die Ausgangsstufen sind der einfache Teil. Die Eingangsstufe in der 
unteren Hälfte ist interessanter. ;-)

von HildeK (Gast)


Lesenswert?

sinapse schrieb:
> erst
> wenn da die inverter in das clock signal eingesetzt werden

Das sollte kein Inverter sein, bestenfalls ein Delay.

Lothar M. schrieb:
> Das Signal kann dann "durchrutschen" (aka "fall through"), wenn die
> Taktverteilung ungünstig gelöst ist und der Takt langsamer von links
> nach rechts durchläuft als das Signal (wie z.B. oben im Bild
> RaceCondition.png).

Ich hätte das jetzt genau anders herum erklärt. Die obere Schaltung 
ist save, die untere, mit der Takteinspeisung von hinten ist 
unbrauchbar.
Der Takt soll ja den alten Zustand des vorangegangenen FFs übernehmen. 
Und das gelingt ihm schon deshalb, weil zwischen CP und der Änderung an 
Q eine Laufzeit vorhanden ist (und einem geeigneten IC-Desing bezüglich 
der Setup- und Holdzeiten von D).

von jo (Gast)


Lesenswert?

sinapse schrieb:
> danke für die antworten. In der master-slave schaltung verstehe ich das.
> jedoch sehe ich öfter das bild wie es im angehangenen Bild oben gezeigt
> ist. da handelt es sich ja nicht um eine master-slave schaltung? erst
> wenn da die inverter in das clock signal eingesetzt werden (siehe im
> bild mitte).

Jedes einzelne D-FF in deiner Kette ist ein Master-Slave-FF. Das kann 
also nichts durchrutschen. Nicht bei einem D-FF und auch nicht bei 
vielen.

Solange CLK auf low liegt, wird D über die beiden Tore (NANDs) in der 
1.Spalte direkt auf das MASTER-FF (die beiden kreuzgekoppelten NANDs in 
Spalte 2)  transparent durchgeschaltet.
Wechselt CLK auf H, wird das MASTER-FF von D abgekoppelt, speichert 
damit den vorherigen Zustand.

Nun tritt das SLAVE-FF in Aktion, das ja mit invertierten Takt 
angesteuert wird. Funktion genau wie beim MASTER: das SLAVE-FF 
übernimmt, was am Ausgang des MASTERS liegt, auf die Ausgänge Q und -Q.

Das funtioniert immer, eigentlich ...


FF's können eine recht unangenehme Eigenschaft aufweisen. Betroffen ist 
primär das MASTER-FF, wenn D unsynchronisiert zu CLK ist. Nennt sich 
Meta-Stabilität und kann auftreten, wenn die Setup-Zeit nicht 
eingehalten wird.

https://de.wikipedia.org/wiki/Metastabilit%C3%A4t_(digitale_Schaltung)

(Aber selbst da ist nichts mit "Durchrutschen")

von sinapse (Gast)


Lesenswert?

Hallo,

Ihr habt auch alle meine Fragen und noch mehr beantwortet.

Axel S. schrieb:
> Es geht aus dem Schaltbild nicht hervor, ob in den Kästchen, die ein
> D-Flipflop darstellen, sich ein Master-Slave-Flipflop verbirgt oder
> nicht. Aber wenn der Takteingang mit einem ">" geschmückt ist, dann kann
> man gewöhnlich davon ausgehen.

Peter D. schrieb:
> Jeder D-FF ist also intern als Master-Slave aufgebaut.
> Nur D-Latches (74HC75) enthalten nur einen FF.

aha, das war mir nicht bewusst. daher die verwirrung, ob das 
master-slave konstrukt bereits im FlipFlop vorhanden ist oder nicht.

Axel S. schrieb:
> Vielleicht sagst du ja einfach mal deine eigentliche Frage, statt
> immer nur in den Randbereichen zu stochern.

das ist(sind) meine eigentliche(n) Frage(n). Wie ihr bereits richtig 
vermutet habt, möchte ich mich in FPGAs einarbeiten. Allerdings bin ich 
noch nicht so weit. Ich bin gerade dabei meine flipflop grundlagen 
aufzubauen.

--> insgesamt lese ich aus den vielen Antworten heraus

- Master Flip Flop ist üblicherweise bereits im Bauteil vorhanden -> 
durchrutschen nicht möglich
- Man muss halt aufpassen dass das clock signal nicht zu sehr versetzt 
an einem FlipFlop ankommt. man kann das entschärfen indem man letztere 
flipflop näher an die clk quelle bringt
- weiterhin darf sich beim speichern des signals, sich das signal nicht 
dabei ändern (metastabil)
- lese datenblätter statt internetbeiträge

ich schau mir dann mal über die feiertage die denksportaufgabe an

vielen Dank für die vielen Antworten.

lg

von (prx) A. K. (prx)


Lesenswert?

sinapse schrieb:
> man kann das entschärfen indem man letztere
> flipflop näher an die clk quelle bringt

Oder den Takt besser an die Flipflops. Taktverteilung (clock 
distribution network) ist ein kritisches Thema bei Schaltungsdesign. 
Egal ob es sich dabei um ein FPGA oder die Internas eines 
Mikroprozessors handelt, oder früher um Gattergräber mit Logikchips.

: Bearbeitet durch User
von Dietrich L. (dietrichl)


Lesenswert?

sinapse schrieb:
> - Man muss halt aufpassen dass das clock signal ...

... eine genügend hohe Flankensteilheit hat:
Beim Wechsel durchläuft das Signal einen Spannungsbereich, bei dem der 
Zustand undefiniert ist.
Dieser Bereich muss schneller durchlaufen werden als die 
Verzögerungszeit von Clock zu Ausgang. Sonst könnte sich der 
Dateneingang der nächsten Stufe bereits geändert haben, bevor der Clock 
dort wirksam wird.

Beispiel bei einem Flipflop, das bei postiver Clock-Flanke arbeitet: der 
Clock reagiert bei Stufe 1 bei einer niedrigeren Spannung als bei Stufe 
2 (Exemplarstreuung). Wenn Clockflanke zu flach ist kann die Zeit 
zwischen den beiden Schaltpunkten größer sein als die Laufzeit des 
Flipflops.

von Jobst M. (jobstens-de)


Lesenswert?

HildeK schrieb:
> Ich hätte das jetzt genau anders herum erklärt. Die obere Schaltung
> ist save, die untere, mit der Takteinspeisung von hinten ist
> unbrauchbar.

Bei der oberen ist das vorherige Bit schon am nächsten FF bevor der Takt 
ankommt, wird dort übernommen und ist auch am nächsten FF, bevor der 
Takt ankommt.
Und es wandert so klicker-klacker bis zum Ende durch.

Bei der unteren Schaltung kommt der Takt am FF an, wenn das nächste FF 
schon ausgelesen wurde.

> Der Takt soll ja den alten Zustand des vorangegangenen FFs übernehmen.

Eben drum.


(prx) A. K. schrieb:
> Denksportaufgabe: Die detaillierte Innenschaltung des
> flankengetriggerten TTL Klassikers SN74LS74 verstehen.

Das fiese ist die Verriegelungsschaltung in der Mitte mit den 4 
Transistoren, von denen 2 Transistoren in Kaskode jeweils der Gegenseite 
das Signal an der Basis entziehen, wenn dies nicht rechtzeitig da war.
Noch bevor die Emitter der oberen Stufe ausreichend Strom bekommen, ist 
die gegenüberliegende Basis gesperrt.
Schon ein wenig tricky ...


Gruß
Jobst

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

HildeK schrieb:
> Ich hätte das jetzt genau anders herum erklärt. Die obere Schaltung
> ist save, die untere, mit der Takteinspeisung von hinten ist
> unbrauchbar.
Nein, beim oberen Bild hast du ein "fall thru", weil das jeweilige FF 
den Pegel des vorhergehenden FF den Wert jeweils schon übernommen hat 
und stabil ausgibt, der Takt aber erst 1 ns später kommt. Einfach mal 
von links nach rechts betrachtet mit Ausgangszustand "alle FF = 0/_, 
DataIn = 1, C1 = Clock, 1 Zeichen = 1ns, tsu=th=tco=0":
1
1 = # für Signale bzw * für Clock (zur besseren Unterscheidung)
2
0 = _
3
4
Din _#################________________________
5
C1  ___**********__________**********_________
6
Q1  ___####################___________________
7
D2  ____####################_________________
8
C2  _____**********__________**********_______
9
Q2  _____####################_________________
10
D3  ______####################_________________
11
C3  _______**********__________**********________
12
Q3  _______####################_________________
13
D4  ________####################_________________
14
C4  _________**********__________**********_______
15
Q4  _________####################_________________
Man sieht den Clock (Sternchen) mit 2ns Verzögerung von "links" 
durchlaufen, und schon nach dem Durchlauf des ersten Taktimpulses ist 
auch Q4 high. Das ist kein Schieberegister, sondern ein 
"Flutschregister".

> Der Takt soll ja den alten Zustand des vorangegangenen FFs übernehmen.
Richtig, und deshalb sollte "das nachfolgende FF" in der Kette "zuerst" 
getaktet werden, denn dann übernimmt es sicher den vorigen Zustand:
1
Q4  ______________________________________________________________
2
C4  _**********__________**********__________**********___________
3
D4  ____________________________________________####################__
4
Q3  ___________________________________________####################__
5
C3  ___**********__________**********__________**********________
6
D3  __________________________####################_________________
7
Q2  _________________________####################________
8
C2  _____**********__________**********__________**********_______
9
D2  ________####################__________________________________
10
Q1  _______####################____________________________________
11
C1  _______**********__________**********__________**********______
12
Din _____#################________________________________________
Der Takt (Sternchen) kommt zuletzt beim FF1 an, bis dahin hat jedes 
nachfolgende Flipflop sicher den alten Wert seines Vorgängers 
übernommen. Bei jedem nachfolgenden Taktimpuls wird die Information 
weiter durch die Kette geschoben.

jo schrieb:
> (Aber selbst da ist nichts mit "Durchrutschen")
Das "Durchrutschen" durch so ein Schieberegister passiert natürlich 
nicht am einzelnen Flipflop, sondern eben an der Kette, wenn der Takt 
nicht an allen FFs des Designs gleichzeitig anliegt.
Dieses Problem der Gleichzeitigkeit wird einem aber vom FPGA-Hersteller 
abgenommen. Der sorgt dafür, dass der Taktbaum ausbalanciert ist und 
jedes Flipflop zur gleichen Zeit die aktive Taktflanke sieht. Nur so 
können synchrone Designs überhaupt funktionieren.

sinapse schrieb:
> möchte ich mich in FPGAs einarbeiten.
Da ist Metastabilität bei üblichen Taktfrequenzen kein Thema. Du 
bekommst eigenartige Verhalten aber durch asynchrone Vorgänge und 
unterschiedliche Laufzeiten.

> - lese datenblätter statt internetbeiträge
Naja, trotzdem:
http://www.lothar-miller.de/s9y/categories/35-Einsynchronisieren

: Bearbeitet durch Moderator
von jo (Gast)


Lesenswert?

Lothar M. schrieb:
> jo schrieb:
>> (Aber selbst da ist nichts mit "Durchrutschen")
> Das "Durchrutschen" durch so ein Schieberegister passiert natürlich
> nicht am einzelnen Flipflop, sondern eben an der Kette, wenn der Takt
> nicht an allen FFs des Designs gleichzeitig anliegt.

Wir reden hier aber nicht von Sub-Nanosekunden-Schaltkreisen?
In 1 ns bewegt sich eine (Takt-)Flanke immerhin 20 cm weiter. Selbst bei 
einer GHz-getakteten Schaltung ist da noch seeehr viel Luft.

> Da ist Metastabilität bei üblichen Taktfrequenzen kein Thema. Du
> bekommst eigenartige Verhalten aber durch asynchrone Vorgänge und
> unterschiedliche Laufzeiten.

Die Metastabilität von Flip-Flops hat mit der Taktfrequenz zunächst mal 
nichts zu tun.

Ich erinnere mich an einen Serienfehler Ende der 80er. Ein in einem 
Busarbiter eingesetztes, mit 74HC00 aufgebautes FF, zeigte für mehrere 
zig ns Metastabilität. Da saß ich Wochen dran - erst ein gemieteter 
Dolch Atlas 9600 (300MHz) brachte das Problem ans Licht!

Takt der beteiligtenm uPs lag bei gerade mal 8MHz.

von jo (Gast)


Angehängte Dateien:

Lesenswert?

sinapse schrieb:
> Peter D. schrieb:
>> Jeder D-FF ist also intern als Master-Slave aufgebaut.
>> Nur D-Latches (74HC75) enthalten nur einen FF.
>
> aha, das war mir nicht bewusst. daher die verwirrung, ob das
> master-slave konstrukt bereits im FlipFlop vorhanden ist oder nicht.

Du solltest streng unterscheiden zwischen LATCH und FLIP-FLOP (*). Schau 
dir mal die Schaltkreise SN74373 und SN74374 an (Anlage - der Eingang 
OUTPUT-CONTROL braucht dich erst mal nicht jucken).

Der SN74373 ist ein LATCH, Pin 11 wird als G (enable) bezeichnet. 
Solange G  aktiv ist (H in diesem Fall), folgt der Ausgang Q dem Eingang 
D. Geht G nach inaktiv (L), wird der Zustand von Q eingefroren.

Der SN74374 ist ein FLIP-FLOP (master-slave, du erinnerst dich ...), an 
Pin 11 wird ein CLK gelegt. Der Ausgang Q ändert sich nur bei der 
Taktflanke CLR(L->H).

Bei einer Kette von LATCHES wird das Signal durchrutschen - bei 
FLIP-FLOPS mit jeder Taktflanke L->H jeweils um eine Stufe 
weitergereicht (Schieberegister).

(*) Ich bin mir nicht 100% sicher, ob die beiden Begriffe 100% genormt 
sind. Aber ich habe sie in vielen Berufsjahren nie anders verwendet...

TI (bei denen habe ich das Datenblatt in der Anlage gemops) verwendet 
die noch klareren Begriffe TRANSPARENT LATCH und EDGE-TRIGGERED 
FLIP-FLOP.

von HildeK (Gast)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Nein, beim oberen Bild hast du ein "fall thru", weil das jeweilige FF
> den Pegel des vorhergehenden FF den Wert jeweils schon übernommen hat
> und stabil ausgibt, der Takt aber erst 1 ns später kommt. Einfach mal
> von links nach rechts betrachtet mit Ausgangszustand "alle FF = 0/_,
> DataIn = 1, C1 = Clock, 1 Zeichen = 1ns, tsu=th=tco=0":

Danke für die Mühe, die du dir gemacht hast mit den Diagrammen. Ich kann 
die Argumentation natürlich nachvollziehen.

Du setzt hier aber unrealistische Zeiten voraus: tsu=th=tco=0"
Genau dem ist ja nicht so. Üblicherweise ist die Laufzeit des außen 
geführten Taktes wesentlich kleiner als die tco! Und Setup- und 
Holdzeiten sind darauf angepasst, teilweise ist die Holdzeit sogar 
negativ, Beispiel HC164, da ist der typische Wert -2ns! Ganz darauf 
abgestimmt, dass man von links den Takt einspeist.
Und tco ist typ 12ns (max. um die 30ns), das sind > 150cm, die die 
Taktleitung länger sein müsste, damit man in ein Problem läuft.
Und von dem HC164 als Beispiel habe ich ein Ausschnitt aus dem 
Datenblatt angehängt. Da wird der Takt links eingespeist - ich kenne das 
bisher nicht anders.
Auch in FPGAs mit den dezidierten und damit schnellen Taktnetzen dürfte 
das nicht anders sein; wobei ich mich mit denen nie beschäftigen musste 
😀

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

jo schrieb:
> Wir reden hier aber nicht von Sub-Nanosekunden-Schaltkreisen?
Nein, wir reden vom Prinzip, von Verhältnissen, davon, dass der 
Clock-Pfad schneller oder anders läuft als der Signalpfad. Deshalb habe 
ich auch die gesamten Flipflop-Timings sehr vereinfacht zu 0 angesetzt.
> In 1 ns bewegt sich eine (Takt-)Flanke immerhin 20 cm weiter.
Dann nimm halt 10ps oder sonst einen beliebig kleinen wert, der dir 
plausibel erscheint. Dieser Wert mit 1ns ist nur relativ zum Wert 2ns zu 
sehen.
> Selbst bei einer GHz-getakteten Schaltung ist da noch seeehr viel Luft.
Ohe Zweifel. Da geht es im internen Routing um ps.

HildeK schrieb:
> Du setzt hier aber unrealistische Zeiten voraus: tsu=th=tco=0"
> Genau dem ist ja nicht so.
Ja, richtig. Aber der Witz ist ja, dass es dadurch bestenfalls 
komplizierter wird.
Und ich hatte ja geschrieben, dass diskrete Logik hier viel zu langsam 
ist, als dass es in üblichen Aufbauten durch solcherartige 
"Asynchronitäten" zu Problemen kommen würde und man einen Taktbaum 
aufbauen oder die  "Einspeiserichtung" des Taktes beachten müsste.
Interessant wird es erst, wenn die Taktfrequenz und die Signallaufzeit 
in etwa in der gleichen Liga spielen.

> Und von dem HC164 als Beispiel habe ich ein Ausschnitt aus dem
> Datenblatt angehängt. Da wird der Takt links eingespeist
Und wenn da nichts passiert, dann nur, weil die ASIC-Designer das 
Bausteins natürlich ihre Hausaufgaben gemacht haben.
> Da wird der Takt links eingespeist - ich kenne das bisher nicht anders.
Mich würde da mal der reale Aufbau interessieren. Was wir im DB sehen 
ist ja nur ein interner Schaltplan. Und da ist die schönere Leserichtung 
eben "Eingänge links, Ausgänge rechts".

jo schrieb:
> Die Metastabilität von Flip-Flops hat mit der Taktfrequenz zunächst mal
> nichts zu tun.
> zeigte für mehrere zig ns Metastabilität.
In FPGAs ist dieser metastabile "Entscheidungsfindungsprozess" 
heutzutage in weniger als 1ns abgeschlossen, sodass man bis zu hohen 
Taktraten (auch zusammen mit der nachfoglenden tsu) keine Probleme mit 
der Metatstabilität bei einem asynchronen Eingang hat.

jo schrieb:
> Du solltest streng unterscheiden zwischen LATCH und FLIP-FLOP (*).
Wem Latches in seinem FPGA-Design gemeldet werden, der sollte genau 
nachschauen, ob er nicht zufällig eine kombinatorische Schleife 
eingebaut hat:
http://www.lothar-miller.de/s9y/archives/42-Kombinatorische-Schleifen.html

HildeK schrieb:
> Da wird der Takt links eingespeist - ich kenne das bisher nicht anders.

: Bearbeitet durch Moderator
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.