Bei einem taktgesteuerten D-Flipflop liegt am Ausgang Q das Eingangssignal D an, wenn am Takteingang eine 1 anliegt. egal ob taktzustands- oder taktflankengesteuert
wenn ich jetzt wie im Bild gezeigt ein Schieberegister aus hintereinander geschalteten n solcher Flipflops (im Bild taktflankengesteuert) nehme,
dann würde doch bei Clock = 1 sofort der Eingangswert des ersten D-FF ganz links (Data in) sofort nach ganz rechts Q4 durchrauschen, weil alle Qn gleichzeitig =Dn gesetzt werden? (abhängig von der Schaltgeschwindigkeit der D-FF) 🤔
So krieg ich doch kein Schieberegister zusammen...
In keinem Buch, weder Limann/Pelka, noch Beuth/Schmusch noch im Tietze/Schenk wird im entsprechenden Abschnitt erwähnt, dass man solche FF anscheinend nur mit einem ganz bestimmten Timingverhältnis fahren kann, wie es in der Wiki beschrieben wird
nämlich so, dass jedes FF zwar am Eingang auf Clock reagiert, aber nicht schnell genug ist damit während C=1 auch Dn am Qn landen kann sondern erst dann wenn C schon wieder auf 0 abgefallen ist, wo Dn+1 aber Qn erst im nächsten Takt "sieht"
Kann doch nicht sein, dass alle diese Fachbücher diesen wichtigen Umstand nicht im entsprechenden Abschnitt erwähnen... 🤷🏻♂️
Das macht einen Unterschied, natürlich kann man Scheiberegister nur aus
taktflankengesteuerten FlipFlops bauen, möglichst Masted-Slave.
hätte ich auch gedacht
aber schau mal die Wahrheitstabellen beider Typen im Wiki an:
sowohl bei C=1 als auch bei C->1 (steigende Taktflanke) wird Q=D=1 angegeben
und im Taktzustandsgesteuerten Teil ist das Bild eines Master-Slave-FF dargestellt...
Im Limann/Pelka "Elektronik ohne Ballast" und im Beuth/Schmusch "Band 4 Digitaltechnik" wird direkt von D-Flipfliops ins einfache Schieberegister weitergeleitet und nur bei JK-FF von Master-slave gesprochen.
Bei Beuth ist wenigstens noch ein Zeit-Diagramm dabei, wo die Umschaltung mit sehr kurzen C-Pulsen/C=1-Zuständen gezeigt wird,
aber es wird nicht erwähnt, dass das zwangsweise so sein MUSS, damit es überhaupt funktioniert...
wobei auch da C=1 -> D1=Q1 zu erkennen ist, aber nicht wieso D2 nicht sofort sondern erst beim nächsten Takt bei C=1 Q1 übernimmt.
Sämtliche weiteren Ausführungen in diesen Büchern zu den Schiebregistern stellen diesen Umstand nicht dar...
Irgendwas übersehe ich doch hier...
Damit keine Unklarheiten aufkommen, weil die jeweilige Software das D-FF eventuell unterschiedlich interpretieren könnte, sollte man es zuvor aus NANDs (oder NORs) aufbauen.
Ich denke, das ist dann in jeder Umgebung absolut eindeutig.
Bei einem taktgesteuerten D-Flipflop liegt am Ausgang Q das
Eingangssignal D an, wenn am Takteingang eine 1 anliegt. egal ob
taktzustands- oder taktflankengesteuert
Nein, das stimmt nicht. Es gibt taktflankengesteuerte FFs und es gibt taktzustandsgesteuerte FFs (nennt man normalerweise Latches). FFs ändern ihren Ausgangszustand nur bei einer Flanke, Latches ändern ihn nur bei aktivem Taktzustand. Bei FFs muss man die Setup- und Haltezeiten zur aktiven Taktflanke einhalten, sonst kommt was unbestimmtes heraus.
wenn ich mir die Timings in den bei Beuth dargstellten Datenblättern der FLJ-151 bzw. FZJ-131 (uralt) anschaue liegen die unteren Grenzen der Takzustandsdauern bei 20ns bzw. 500µs.
Damit reichen sie bei beiden Varianten (zustand/flanke) deutlich in die Signallaufzeit D nach Q hinein, so dass man anhand der Zeiten davon ausgehen muss, dass C=1 schon im ersten Takt Q=D bewirkt.
Fragen über Fragen
Vor allem, wenn ich das nicht aus NAND/NOR-Chips zusammenstecke sondern auf DTL-Ebene zusammenlöte.
Solch kurze Clock-Pulse mit ausreichend Amplitude für C bekomme ich gar nicht mit Differenziergliedern dargestellt, dass nicht D (bzw S bei SR-FF) sofort nach Q durch fliegt.
hätte ich auch gedacht
aber schau mal die Wahrheitstabellen beider Typen im Wiki an:
sowohl bei C=1 als auch bei C->1 (steigende Taktflanke) wird Q=D=1
angegeben
Das Bild im verlinkten Wiki-Artikel zeigt deutlich dass beim flankengesteuerten FlipFlop der Eingang sich ändern darf wahrend das Taktsignal high ist, ohne dass das Auswirkungen auf den Ausgangszustand hat.
Nur um die steigende Flanke muss eine setup und hold Zeit eingehalten werden.
wird direkt von D-Flipfliops ins einfache Schieberegister weitergeleitet
und nur bei JK-FF von Master-slave gesprochen.
Ein D-FF ist ein JK mit verschalteten JK Eingängen. Es gibt also beide, wobei für Schieberegister dank der Durchlaufverzögerung einfache reichen wenn die hold zeit gering genug ist oder sogar negativ.
Das Bild im verlinkten Wiki-Artikel zeigt deutlich dass beim
flankengesteuerten FlipFlop der Eingang sich ändern darf wahrend das
Taktsignal high ist, ohne dass das Auswirkungen auf den Ausgangszustand
hat.
Welches Bild hast du da genau im Blick, sehe nicht welches du meinst.
Das D beim D-Flipflop bedeutet Delay.
Also Verzögerung.
Deshalb wird das Eingangssignal einer Kette von D-Flipflops
nicht gleich bis zum Ausgang des letzten Flipflops durchgeschoben,
sondern das passiert schrittweise immer mit der Taktflanke.
Das D beim D-Flipflop bedeutet Delay.
Also Verzögerung.
Deshalb wird das Eingangssignal einer Kette von D-Flipflops
nicht gleich bis zum Ausgang des letzten Flipflops durchgeschoben,
sondern das passiert schrittweise immer mit der Taktflanke.
so hatte ich das ursprünglich auch mal verstanden, nur zeigt die Fachliteratur was anderes oder eben gar nix dazu:
Beuth Band 4 Digitaltechnik 7.4.4.
"Das taktzustandsgesteuerte D-Flipflop heißt auch Delay-FF oder Verzögerungs-FF. Es dient dazu, ein Eingangssignal so lange zu verzögern, bis das Taktsignal kommt. Dann wird das Eingangssignal an den Ausgang Q1 weitergegeben. Ein 1-Signal am D-Eingang setzt Q1 auf 1."
weiter
12.1.1 Schiebregister
"Ein einfaches Schieberegister ... aus D-FF, die mit ansteigender Taktflanke schalten.
...
Liegt 1-Signal am Eingang E und ändert sich das Taktsignal von 0 nach 1 so wird das FF gesetzt. An seinem Ausgang Q erscheint 1."
"
Information at input D is transferred to the Q output on the positive-going edge of the clock pulse. Clock triggering occurs at a voltage level of the clock pulse and is not directly related to the transition time of the positive-going pulse. When the clock input is at either the high or low level, the D-input signal has no effect.
"
Inhalt:
Das Standard-Werk zur Digitaltechnik kann sowohl unterrichtsbegleidend als auch im Selbststudium eingesetzt werden.
Die Digitaltechnik wird umfassend, übersichtlich und leicht verständlich dargestellt. Ausgehend von den Grundlagen werden die Strukturen schrittweise entwickelt, wesentliche Inhalte hervorgehoben und Zusammenhänge erläutert. Das Werk kann sowohl unterrichtsbegleitend als auch im Selbststudium eingesetzt werden. Lernziel-Tests zu jedem Kapitel überprüfen den Wissensstand. - Logische Verknüpfungen- Schaltungsanalyse, -synthese, Schaltalgebra- Binäre Schaltungen, Codes und Zahlensysteme- Digitale Schaltungen, sequenzielle Logik, Rechenschaltungen- Zähler und Frequenzteiler- Digital-Analog- und Analog-Digital-Umsetzer- Mikroprozessoren und Mikrocomputer- Programmierbare Logikschaltungen
wenn ich jetzt wie im Bild gezeigt ein Schieberegister aus
hintereinander geschalteten n solcher Flipflops (im Bild
taktflankengesteuert) nehme,
dann würde doch bei Clock = 1 sofort der Eingangswert des ersten D-FF
ganz links (Data in) sofort nach ganz rechts Q4 durchrauschen, weil alle
Qn gleichzeitig =Dn gesetzt werden?
Damit das nicht passiert muss die Taktflanke steiler sein als die Verzögerungszeit zwischen Clock und Q.
Bei einen flachen Flanke und unterschiedlichen Schaltschwellen der Flipflops kann das durchaus passieren.
wenn ich jetzt wie im Bild gezeigt ein Schieberegister aus
hintereinander geschalteten n solcher Flipflops (im Bild
taktflankengesteuert) nehme,
dann würde doch bei Clock = 1 sofort der Eingangswert des ersten D-FF
ganz links (Data in) sofort nach ganz rechts Q4 durchrauschen, weil alle
Qn gleichzeitig =Dn gesetzt werden?
Entscheidend ist, dass die Taktflanke den C-Eingang des zweiten FF (C2)
erreicht, /bevor/ der Pegel am D-Eingang des ersten FF (D1) den
D-Eingang des zweiten FF (D2) erreicht. Dann ist garantiert, dass FF2
nicht den neuen, sondern immer den alten Zustand von FF1 übernimmt.
Zwischen C1 und C2 liegt nur ein Stückchen Leiterbahn, zwischen C1 und
D2 aber die interne Logik von FF1 (von C1 nach Q1) plus ein Stückchen
Leiterbahn (von Q1 nach D2), weswegen die Laufzeit von C1 nach C2
i.Allg. deutlich kürzer als diejenige von C1 nach D2 ist. Damit ist die
obige Bedingung locker erfüllt.
Du kannst das Schicksal natürlich auch herausfordern: Wenn du die
Leiterbahn zwischen Q1 und D2 nur ein paar Zentimeter, diejenige von C1
nach C2 aber ein paar Meter lang machst, kann das von dir befürchtete
"Durchrauschen" tatsächlich eintreten. Dann bist du aber selber schuld
:)
wieso ist die Min-pulse width im Datenblatt immer um ein vielfaches
höher als als die typ-pulse width?
Das ist in der Timing-Tabelle des NXP-Datenblatt etwas missverständlich
angegeben. In der Spalte "PARAMETER" sollte nicht "clock pulse width",
sondern " /minimum/ clock pulse width" stehen, und die Werte in der
Spalte "MIN." sollten stattdessen in der Spalte "MAX." stehen.
Dann können die MAX- und TYP-Angaben für VCC = 4,5 V wie folgt gelesen
werden:
Der kürzeste Puls, der vom FF gerade noch registriert wird, ist
selbst bei einem schlechten Exemplar höchstens 20 ns lang (deswegen ist
das ein Maximalwert). Für die meisten Exemplar reichen aber schon 7 ns
(deswegen ist das ein typischer Wert).
Einen längsten Puls, der vom FF gerade noch registriert wir, gibt es
nicht. Der Puls darf auch ein paar Jahre lang sein, ohne dass dadurch
die Funktion des FF (oder eines damit aufgebauten Schieberegisters)
beeinträchtigt wird.
Entscheidend ist, dass die Taktflanke den C-Eingang des zweiten FF (C2)
erreicht, bevor der Pegel am D-Eingang des ersten FF (D1) den
D-Eingang des zweiten FF (D2) erreicht. Dann ist garantiert, dass FF2
nicht den neuen, sondern immer den alten Zustand von FF1 übernimmt.
Und das genau ist der Punkt: In den meisten Einführungen zur Digitaltechnik wird nicht auf die erforderliche Einhaltung von Signallaufzeiten hingewiesen.
Digitaltechnik in der realen Welt hat Signallaufzeiten und Schaltpegel. In der Realität ist Digitaltechnik analog aufgebaut und ohne die Einhaltung der analogen Randbedingungen funktionieren digitale Schaltungen nicht. Mich hatte es einige Jahre gekostet, das vollständig zu verstehen und empfehle, ein Flankengetriggertes D-FF mit Relais oder Transistoren aufzubauen.
Oft wird zum Beispiel wird das angehängte Ersatzschaltbild eines D-FF angeben. Es ist aber völlig unzureichend, da es den mathematischen Grenzfall "unendlich kurz" erklären müsste (die theoretisch Anstiegszeit der Signalflanke)
Entscheidend ist, dass die Taktflanke den C-Eingang des zweiten FF (C2)
erreicht, /bevor/ der Pegel am D-Eingang des ersten FF (D1) den
D-Eingang des zweiten FF (D2) erreicht. Dann ist garantiert, dass FF2
nicht den neuen, sondern immer den alten Zustand von FF1 übernimmt.
ein simpel gelötetes DTL-FF reagiert auf den Spannungspegel, egal ob Taktzustand oder Flanke, oder?
Also wäre demnach doch bei noch anstehendem C=C2=1 und dem etwas später eintreffenden Q1=D2=1 unvermeidlich, dass auch das zweite FF die 1 aufnimmt.
Wäre es nicht richtiger zu sagen, dass C bereits wieder abgefallen sein muss, "/bevor/ der Pegel am D-Eingang des ersten FF (D1) den D-Eingang des zweiten FF (D2) erreicht" ?
Zwischen C1 und C2 liegt nur ein Stückchen Leiterbahn, zwischen C1 und
D2 aber die interne Logik von FF1 (von C1 nach Q1) plus ein Stückchen
Leiterbahn (von Q1 nach D2), weswegen die Laufzeit von C1 nach C2
i.Allg. deutlich kürzer als diejenige von C1 nach D2 ist.
wieso ist die Min-pulse width im Datenblatt immer um ein vielfaches
höher als als die typ-pulse width?
Das ist in der Timing-Tabelle des NXP-Datenblatt etwas missverständlich
angegeben. In der Spalte "PARAMETER" sollte nicht "clock pulse width",
sondern " /minimum/ clock pulse width" stehen, und die Werte in der
Spalte "MIN." sollten stattdessen in der Spalte "MAX." stehen.
Bin ich der erste, dem diese merkwürdige Lesbarkeit auffällt? hihi
Und das genau ist der Punkt: In den meisten Einführungen zur
Digitaltechnik wird nicht auf die erforderliche Einhaltung von
Signallaufzeiten hingewiesen.
Digitaltechnik in der realen Welt hat Signallaufzeiten und Schaltpegel.
In der Realität ist Digitaltechnik analog aufgebaut und ohne die
Einhaltung der analogen Randbedingungen funktionieren digitale
Schaltungen nicht. Mich hatte es einige Jahre gekostet, das vollständig
zu verstehen und empfehle, ein Flankengetriggertes D-FF mit Relais oder
Transistoren aufzubauen.
Oft wird zum Beispiel wird das angehängte Ersatzschaltbild eines D-FF
angeben. Es ist aber völlig unzureichend, da es den mathematischen
Grenzfall "unendlich kurz" erklären müsste (die theoretisch Anstiegszeit
der Signalflanke)
Auch wenn Tietze/Schenk stellenweise marginal tiefer geht (und dafür die FF in ihrer Breite weglässt) ist es auch hier wie du sagst nur sehr schwer nachvollziehbar, wie man aus den Wertetabellen oder dem Schaltplan (selbst auf Gatter-ebene) auf das exakte Zeitverhalten der FF und vice versa kommt.
Da nehmen sich diese ganze Literatur, die wiki und auch das Elektronik-Kompendium nicht viel.
Das einzige was im Tietze/Schenk zusätzlich dargestellt ist, ist der Unterschied zwischen einem einflanken- und einem zweiflangengetriggertem FF. Zu letzterem zeigt er ein Zeit-Diagramm, wo der Q des FF erst auf die fallende Taktflanke von C reagiert und den Wert innerhalb des FF am Ausgang bereitstellt.
Dies wäre m.M.n. eine der brauchbaren FF-Arten für ein Schieberegister (u.ä.), WENN während C=1 noch immer der alte FF-Wert am Q auslesbar ist.
Bei FFs muss man die Setup- und Haltezeiten zur
aktiven Taktflanke einhalten, sonst kommt was unbestimmtes heraus.
Mich verwunderte, dass die Fachliteratur da nicht drauf verweist und
dies gar nicht/absolut unzureichend beschreibt.
Dann ist es keine Fachliteratur sondern lediglich ein Block aus Papierblättern zum A* abwischen. Naja, offensichtlich ist nicht bei jedem die Fähigkeit zur Unterscheidung zwischen diesen vorhanden.
Bei FFs muss man die Setup- und Haltezeiten zur
aktiven Taktflanke einhalten, sonst kommt was unbestimmtes heraus.
Mich verwunderte, dass die Fachliteratur da nicht drauf verweist und
dies gar nicht/absolut unzureichend beschreibt.
Dann ist es keine Fachliteratur sondern lediglich ein Block aus
Papierblättern zum A* abwischen. Naja, offensichtlich ist nicht bei
jedem die Fähigkeit zur Unterscheidung zwischen diesen vorhanden.
in dem von dir gezeigten Auszug (danke für die Mühe) ist in der Wertetabelle in 7.15 ebenfalls Q = D AND (C->1) ersichtlich.
7.16 und 7.17 zeigen clock-Halte-Zeiten, die deutlich über die tpLH hinausgehen.
Auch hier wäre die Schlussfolgerung, dies FF für ein Schiebregister nutzen zu können, falsch.
Müsste man natürlich sehen, was dein Buch da zu simplen shift-registern sagt, welches Symbol dort angegeben ist.
Ob die Fachwelt deiner Einschätzung folgt, die erwähnten drei Bücher seien "ein Block aus Papierblättern zum A* abwischen" ? lol
Im Onsemi Datenblatt ist es schön erklärt, wie ein D-FF auf Clock
reagiert.
soweit ist das verstanden, jetzt fehlt aber die Nutzung dieses FF innerhalb eines shift-registers, das war ja die EIngangsfrage
Man beachte die 3 Zeilen "No Change".
wobei SR HH "üblicherweise" nicht definiert ist,
auch wenn es dazu teilweise Abhandlungen gibt steht überall, dass dieser Eingangszustand von vornherein vermieden werden sollte.
Gleichzeitig Set und Reset triggern ist, als würdest du gleichzeitig voll auf Gas und Bremse steigen...
ein simpel gelötetes DTL-FF reagiert auf den Spannungspegel, egal ob
Taktzustand oder Flanke, oder?
Das ist nicht egal. Bei Flankensteuerung fordert die interne Logik des FFs, dass der Taktzustand sich ändert.
Also wäre demnach doch bei noch anstehendem C=C2=1 und dem etwas
später eintreffenden Q1=D2=1 unvermeidlich, dass auch das zweite FF die
1 aufnimmt.
Nein, denn da ist die Änderung des Taktzustandes schon vorbei. Und die Änderung ist Voraussetzung, dass D2 übernommen wird.
Deshalb auch meine Aussage vom 08.12.2024 15:53:
"Daher muss die Taktflanke steiler sein als die Verzögerungszeit zwischen Clock und Q"
Wäre es nicht richtiger zu sagen, dass C bereits wieder abgefallen sein
muss, "/bevor/ der Pegel am D-Eingang des ersten FF (D1) den D-Eingang
des zweiten FF (D2) erreicht" ?
Das wäre so bei einem nicht flankengesteuerten FF. Allerdings wird man so etwas bei einer realen Schaltung kaum oder garnicht einhalten können. Somit ist dieser Fall in der Praxis uninteressant.
(...) dann würde doch bei Clock = 1 sofort der Eingangswert des ersten D-FF
ganz links (Data in) sofort nach ganz rechts Q4 durchrauschen (...)
Das einzige, was hier am Durchrauschen ist, ist wieder einmal das Halbwissen der User im Thread – es wäre auch schlimm, wenn es nicht wie vorgesehen funktionieren würde, denn getaktete Stufen aus Flipflops aller Art sind quasi die Grundlage aller Computer oder generell einer komplexeren Digitalschaltung und dazu gehört nun mal ein Mikroprozessor oder Mikrocontroller. NAND- und NOR-Gatter lassen wir jetzt mal gedanklich beiseite, denn auch diese sind eigentlich extrem wichtig bzw. essenziell. Warum das so ist, weiß man, wenn man sich damit ausgiebig beschäftigt hat – also real in der Theorie & Praxis und nicht nur über Gedichte aus Wikipedia und Erzählungen von ChatGPT & Co. Man könnte sich die 2 bis 4 ICs kaufen (Kostenpunkt 1 Euro), es ordentlich nachbauen und sich selbst von der entsprechenden Funktionalität eines solchen Konstrukts überzeugen, aber selbst das scheint in der heutigen Zeit ein ernsthaftes Problem zu sein, denn dazu muss einem erstmal einer wieder stundenlang erzählen und erklären, wie man solche einfachen ICs verbinden und inbetriebnehmen sollte, damit es überhaupt funktionieren kann. Eine Simulation am PC wird den realen Aufbau leider nicht ersetzen, sie kann aber durchaus beim realen Aufbau unterstützend wirken, diese Wirkung kann sich aber nur dann voll entfalten, wenn man sich bereits ein solides Grundwissen erarbeitet und praxisnahe Erfahrungen gemacht hat, ansonsten bleibt es nur bei einer sinnlosen Klickerei mit der Maus – ist nun mal so, ohne Fleiß kein Preis.
(...) dann würde doch bei Clock = 1 sofort der Eingangswert des ersten D-FF
ganz links (Data in) sofort nach ganz rechts Q4 durchrauschen (...)
Gedichte aus Wikipedia und Erzählungen von ChatGPT & Co.
chatgpt nicht genutzt ^^
Man könnte sich die 2 bis 4 ICs kaufen (Kostenpunkt 1 Euro), es
ordentlich nachbauen und sich selbst von der entsprechenden
Funktionalität eines solchen Konstrukts überzeugen
from scratch, auf dtl-Ebene ein SR zusammenlöten und dann zum shift-register erweitern
wenn schon verstehen wollen dann besser nicht nur IC-s zusammensteckern
Das ist nicht egal. Bei Flankensteuerung fordert die interne Logik des
FFs, dass der Taktzustand sich ändert.
da hab ich dann keine "interne Logik", die das auf die Taktflanken reduziert
später würde ich mittels Differenziergliedern auf die Flanken prüfen
aber erstmal auf Taktzustandssteuerung bauen
und da versagt anscheinend die Literatur, die du @Gregor weggelassen hast
p.s. du musst nicht immer gleich mit der großen "Dumm"-Keule kommen, wenn jemand versucht was zu verstehen
Noch länger isses her:
Ich habe noch den gelben TI Pocket Guide vom April 1973.
Darin das einzige zum Thema sind die Taktanstiegszeiten.
Das andere ist aus der 2.Auflage 1977, (1.Auflage 1973) des TI-TTL-Databooks
Es gab mal den SN7472 als zustandsgesteuerten JK-MS FF.
Solange CLK high war, konnte der Master durch kurze Störungen an J oder K kippen und mit CLK low wurde das dann vom Slave übernommen.
Im Datenblatt ist daher auch der Puls und keine Flanke angegeben. Es sind auch schön im Schaltplan die beiden kreuzgekoppelten FFs zu erkennen.
Alle neueren JK-FF sind flankengetriggert und damit weniger störanfällig. Es gibt keinen Master mit eigener Rückführung. Die Speicherung vor der Taktflanke erfolgt nur durch die Gatterlaufzeiten.
SN7476 (Dual JK mit asynch. S&R) oder
SN7474 (Dual D-Type)
SN74198 war ein Highlight...da man ihn parallel und seriell laden konnte...
Nebenbei:
Irgendwann hatte ich mir diese "Regel" aufgestellt, siehe Bild:
Tauscht man ein AND gegen ein OR oder umgekehrt, dann muss man dabei alle Ein- und Ausgänge invertieren. Das war die Regel....ein mal im Kopf, konnte man damit ganz einfach durch alle Schaltpläne fegen und hat ruck zuck alles auf eine Gatterform umgestellt, egal was es war...
Später erst die Schultheorie dazu gelernt...(Morgan)
Wir haben damals im Studium noch Zähler mit Hilfe von KV-Diagrannen berechnet... das war eine tolle Sache.
Es war kein Geld für solche Bücher da, wir hatten nicht viel... zudem war das Taschengeld mit 13/14 Jahren sehr begrenzt...die nächste Möglichkeit wäre eine Universitätsbücherei gewesen... Aber 30 Min. Fahrt mit dem Auto weg, meine Eltern hatten andere Dinge auf dem Plan...mit Fahrrad zu nicht undenkbar, aber auch nicht um die Ecke.
Ein ehemaliger Bekannter von mir hat später das Ding:
gebaut. Der war auch echt verrückt. Eine VGA Graka fast komplett aus TTL Chips muss man erstmal bringen :-) Anbei das beste Bild überhaupt. Der Rechner läuft mit 1 MHz meine ich. CPU hat einen eigenen Microcode und ein eigenes OS mit u.a. Basic Interpreter...
Aber das gehört nicht so wirklich hier her, auch wenn er ein Meister des Timings war.
gebaut. Der war auch echt verrückt. Eine VGA Graka fast komplett aus TTL
Chips muss man erstmal bringen :-) Anbei das beste Bild überhaupt. Der
Rechner läuft mit 1 MHz meine ich. CPU hat einen eigenen Microcode und
ein eigenes OS mit u.a. Basic Interpreter...
Genau das (rein aus 74*) bringt dieses Projekt eben nicht. Wenn ich mich recht erinnere wird die ALU mit einen (P)ROM aufgebaut und eben nicht als TTL-Gatter-Grab.
Da mal eine "verrückte" Sache, ein intel 4004 Nachbau aus knapp 4000 diskreten Transistoren: https://4004.com/hackaday23/
Bei einem taktgesteuerten D-Flipflop liegt am Ausgang Q das
Eingangssignal D an, wenn am Takteingang eine 1 anliegt. egal ob
taktzustands- oder taktflankengesteuert
Bei einem taktgesteuerten D-Flipflop liegt am Ausgang Q das
Eingangssignal D an, wenn am Takteingang eine 1 anliegt. egal ob
taktzustands- oder taktflankengesteuert
Die Zeitablaufdiagramme zum einflankengesteuerten SR- oder D-Flipflop zeigen:
Liegt D (bzw. S) auf 1 und geht Clock auf 1 geht Q instant auf 1.
und weiter unten in einem Diagramm wo C und D mit unterschiedlichen Takten laufen
Liegt C auf 1 und geht D (bzw. S) auf 1 so geht Q nicht auf 1, das ist die preparation-Time, da D "vorbereitet sein" also anliegen muss.
hier "instant" weil Verzögerungen im ns-Bereich nicht dargestellt werden
allerdings auch hier alles schon auf gate-IC-Ebene, nicht auf dtl-Ebene wie unterm link im post zuvor gezeigt.
denn dazu muss einem erstmal einer wieder
stundenlang erzählen und erklären, wie man solche einfachen ICs
verbinden und inbetriebnehmen sollte, damit es überhaupt funktionieren
kann.
So einen großen Haufen Schaltkreise muss man erstmal zum laufen bekommen, das ist eine echte Herausforderung, gespickt mit stundenlanger Sucherei usw..
So einen großen Haufen Schaltkreise muss man erstmal zum laufen
bekommen, das ist eine echte Herausforderung, gespickt mit stundenlanger
Sucherei usw..
Wem sagst du das ..
Gerade eben habe ich mal ein Flankengetriggertes FlipFlop aus Nand-Gattern nach dem oben erwähnten Esel-Taktprinzip aufgebaut.
Auf der Platine sind:
1x74HC14 als Taktgenerator
2xHC4011 Nand Gatter
Man braucht ein ganzes HC4011 IC für einen D-FF, daher 2 ICs für nur ein Flankengetriggertes D-FF.
Der Taktgenerator blinkt mit ca. 0.5Hz und der D-FF habe ich als Teiler durch 2 (!Q->D) geschaltet, sodass die LED mit 1Hz blinkt.
Eigentlich wollte ich ein 4Bit Schieberegister machen, aber der Lötaufwand mit 8xHC4011 ist doch etwas viel.
Leider hat das Video ca. 26MB, so dass es vermutlich etwas zu groß für diesen Thread ist.
Man braucht ein ganzes HC4011 IC für einen D-FF, daher 2 ICs für nur ein
Flankengetriggertes D-FF.
Zum Üben und für Verständnisgewinn kann man sich ein Flipflop aus Gattern basteln, für eine ordentliche, richtige Schaltung sollte man immer einen Baustein mit fertigen Flipflops wie z.B. 7474 usw. nehmen, da hier sichergestellt ist, dass das mit dem Timinig aus dem Datenblatt übereinstimmt und dementsprechend auch sicher innerhalb dieser Parameter funktioniert. Ein Schieberegister oder einen Binärzähler kann man aus solchen fertigen Flipflops durchaus auch nachbauen, aber auch hier sollte man später in der endgültigen Fassung möglichst zu fertigen Schieberegister-ICs oder Zählern greifen – in der Regel ist alles in sehr vielen Varianten und Gehäuseformen immer noch verfügbar, z.B. 74164, 74165, 7493, 74393, 74192, 74193 usw. Viele dieser ICs gibt es heute sogar in noch kleineren Gehäusetypen wie TSSOP oder SO, weil die Technologie es jetzt möglich macht, auch diese relativ günstig herzustellen. Wenn man das ganze in einem FPGA als Schaltplan auf der untersten Hardwareebene malt, nimmt man auch fertige Flipflops oder generell Bausteine/Objekte, den Rest muss man dann über einzelne Gatter oder selbstkreierte Blöcke aus Gattern erledigen – da kann man sich die ganzen absurden, gestapelten Platinen und sonstige Konstruktionen sparen, dafür muss man sich allerdings mit FPGAs und Digitaltechnik bereits bestens auskennen, also irgendwie vorher das ganze schon real an Gattern und ICs lange geübt haben. Wenn man nicht weiß, wie ein Gatter, ein Flipflop, ein Register oder eine Verzögerungsstufe in einem IC funktioniert, wird man es beim Entwurf eines FPGAs als Schaltplan auch nicht wissen und verstehen – erst das Verständnis aller möglichen ICs aus der TTL-Reihe ermöglicht so einen Aufbau bzw. Nachbau dieser in einem FPGA ohne sie real löten zu müssen, aber zu diesem Luxus muss man erstmal gelangen und das geht leider nur mit harter Arbeit und viel Fleiß. Ein netter Nebeneffekt solcher jahrelangen Übungen ist auch, dass man viele Nummern der 74-Reihe dann quasi unbeabsichtigt auswendig kennt, genauso wie man z.B. den Widerstandswert anhand des einfachen Farbcodes auf Widerständen sofort auf den ersten Blick ohne es zu berechnen erkennt, wenn man Tausende davon beim Basteln gesucht und verlötet hat.
Man braucht ein ganzes HC4011 IC für einen D-FF, daher 2 ICs für nur ein
Flankengetriggertes D-FF.
Man kommt mit einem halben 7400 je Teilerstufe aus. Die Schaltung entspricht quasi einer Zählstufe aus 2 Transistoren, d.h. die Kopplung erfolgt über 2 Kondensatoren, die unterschiedlich vorgeladen werden.
Ist aber schon verblüffend, wie altes Wissen wieder verschwindet, diese Schaltung kann ich nirgends mehr finden. Es gab Bauanleitungen für Digitaluhren nur mit 7400.
Schöne Schaltung, die werde ich mal in mein "Repertoir" aufnehmen.
Man kommt mit einem halben 7400 je Teilerstufe aus.
Der Thread heißt ja D-FlipFlop und Schieberegister. Mein Ziel war "Schiebregister" aber jetzt bin ich zu faul, die restlichen 3 Bits zu löten, deshalb habe ich das D-FlipFlop als Teiler verwendet, um zu zeigen, dass es geht. Selbst wenn man das heute (oder besser gesagt seit 45 Jahren) nicht mehr so macht, ist es trotzdem ziemlich lehrreich. Ich denke, das Problem wird von den meisten hier als "trivial" unterschätzt. Im speziellen Fall hier hat es mich einige Tricks beim "Taktgenerator" gekostet. Wer's nicht glaubt: einfach mal aufbauen und sehen, ob's läuft.
kein funktionierendes Schieberegister aufbauen lässt, obwohl die Schaltung eines einfachen seriellen Schieberegisters dies überall so darstellen.
Im Video des bloggers
https://0creativeengineering0.blogspot.com/2019/03/what-is-d-flip-flop-using-discrete.html
sieht man ja, dass dieser Aufbau die Wahrheitstabelle
Q = D AND (Clock->1)
ohne sichtbare Verzögerung ausführt,
so dass das (innerhalb eines shiftregisters) zweite derartige D-FF an seinem D1 nahezu sofort den Q0 des vorgehenden D-FF sieht und mit demselben Clock->1 der data-Eingangswert am D0 quasi durch mindestens mehrere derartige D-FF eines Schieberegisters durchläuft bis clock->0 geht.
In IC gegossene FF sind quasi schon maßgeschneidert und bedürfen exakten Timings was D und Clock angeht, um korrekt zu funktionieren.
Ein Zusammenstecken von ICs wäre jetzt nicht das Problem gewesen, ich war aber verständnismäßig auf der Ebene der diskreten Schaltung hin zu einem shiftregister unterwegs.
(weil ich es auf diskretem level verstehen und benutzen möchte)
Ein Zusammenstecken von ICs wäre jetzt nicht das Problem gewesen, ich
war aber verständnismäßig auf der Ebene der diskreten Schaltung hin zu
einem shiftregister unterwegs.
(weil ich es auf diskretem level verstehen und benutzen möchte)
Der diskrete Level ist allerdings Transistor- oder eher Dotierungs-Layout-Level und nicht NAND-Gatter oder 74xx-Primizive. Nach kurzer Durchsicht, finden sich für integrierte Schieberegister eher Strukturen wie zusammengefasst 6T 1bit-SRAM oder Transfergates an invertierenden Takten. CCD Eimerkette wäre auch eine Variante.
In modernen FPGAs findet man auch kaum diskrete NAND-Gatter sondern LookUpTable's und konfgurierbare FF. Und um diese zu nutzen, sollte man mit einer Hardwarebeschreibungssprache wie ABEL, AHDL, VHDL, Verilog oder HLS-Ansatz umgehen können, wobei in diesem Fall die structural-Beschreibung genügt.
Der diskrete Level ist allerdings Transistor- oder eher
Dotierungs-Layout-Level und nicht NAND-Gatter oder 74xx-Primizive. Nach
kurzer Durchsicht, finden sich für integrierte Schieberegister eher
Strukturen wie zusammengefasst 6T 1bit-SRAM oder Transfergates an
invertierenden Takten. CCD Eimerkette wäre auch eine Variante.
In modernen FPGAs findet man auch kaum diskrete NAND-Gatter sondern
LookUpTable's und konfgurierbare FF.
Oder kürzer ausgedrückt: Du weißt nicht, wie man ein funktionierendes, diskretes, flankengetriggertes FlipFlip aufbaut und auf was es dabei ankommt und schreibst gerne was über Software.
Ausgangspunkt des threads war ja eher, dass in der "Fach"literatur
anscheinend nicht/schwer ablesbar ist,
....
Im Video des bloggers
https://0creativeengineering0.blogspot.com/2019/03/what-is-d-flip-flop-
using-discrete.html
sieht man ja, dass dieser Aufbau die Wahrheitstabelle
Q = D AND (Clock->1)
ohne sichtbare Verzögerung ausführt,
so dass das (innerhalb eines shiftregisters) zweite derartige D-FF an
seinem D1 nahezu sofort den Q0 des vorgehenden D-FF sieht und mit
demselben Clock->1 der data-Eingangswert am D0 quasi durch mindestens
mehrere derartige D-FF eines Schieberegisters durchläuft bis clock->0
geht.
Das Problem der verwendeten Schaltung ist, dass sie nur ein statisches D-FF enthält. Für ein flankengetriggertes D-FF, das für ein Schieberegister geeignet ist, braucht es aber 2 D-FF. Außerdem müssen die Taktsignale der beiden D-FF bestimmte Randbedingungen einhalten.
Lustigerweise scheint das so gut wie kein Beitrag richtig erklären zu können. Selbst der Link von Bradward, scheint den wesentlichen Kern nicht verstanden zu haben und verpackt alten Wein in neuen Schläuchen: https://youtu.be/J3h6ZZ_4pa0
Ich habe noch den gelben TI Pocket Guide vom April 1973.
Darin das einzige zum Thema sind die Taktanstiegszeiten.
Also "propagation delay" resp. "Durchlaufverzögerung pro Gatter" wird ebenfalls erwähnt.
Das andere ist aus der 2.Auflage 1977, (1.Auflage 1973) des
TI-TTL-Databooks
Was nicht explizit erwähnt wird, ist clock skew und wie man auf diesen durch Aufbau eines clock-trees einwirkt.
Probleme/Anforderungen bei Kaskadierung von 74xxx-chips werden auch nicht bei der Beschreibung der einzelnen IC-Typen wiederholt. Da sollte man vielleicht mal die Applikation-Note zur Familie lesen.
Taktdistribution/Kaskadierung ist ja auch weniger ein Aspekt der Schaltungstechnik des einzelnen Gatters als des Layouts/Architektur der Gesamtschaltung/-aufbau.
Anhang aus Dr. sc. techn. Eberhard Kühn: "Handbuch TTL und CMOS-Schaltkreise", 1985
Am einfachsten kannst du zeigen, dass du es verstanden hast, indem du die Schaltung zur Takterzeugung mit dem 74HC14 zeichnest, wie ich es hier aufgebaut habe:
Beitrag "Re: D-FlipFlop und Schieberegister"
Am einfachsten kannst du zeigen, dass du es verstanden hast, indem du
die Schaltung zur Takterzeugung mit dem 74HC14 zeichnest, wie ich es
hier aufgebaut habe:
Wer von einer Prüfungskommision nach eigenhändiger Erstellung und Verteidigung einer Arbeit zum digitalen Schaltkreisentwurf eine Diplomurkunde überreicht bekam, muß keinem Dahergelaufenen seine Qualifikation auf diesem Gebiet nochmals beweisen.
Wer hier dicke Freund mit ChatGTP ist, kann sich doch von dem seine Wunschzeichnung zusammen-prompten.
Wer von einer Prüfungskommision nach eigenhändiger Erstellung und
Verteidigung einer Arbeit zum digitalen Schaltkreisentwurf eine
Diplomurkunde überreicht bekam, muß keinem Dahergelaufenen seine
Qualifikation auf diesem Gebiet nochmals beweisen.
Bei mir wärst du durchgefallen aufgrund der mangelnden Fähigkeit, gelerntes zu abstrahieren und anzuwenden.
Der Schlüssel zur Lösung liegt in der Unterscheidung zwischen taktflanken- und taktzustandsgesteuerten Flipflops sowie im Timing der Schaltung.
In einem Schieberegister mit taktflankengesteuerten Flipflops wird der Eingangswert von D beim ersten Flipflop auf Q1 übertragen, erst bei der nächsten Taktflanke von Q1 auf Q2 usw. Da die Flipflops nur auf Flanken reagieren, bleibt der Wert eines Flipflops konstant, bis die nächste Taktflanke anliegt. Dadurch wird ein "Durchrauschen" verhindert.
In einem Schieberegister mit taktflankengesteuerten Flipflops wird der
Eingangswert von D beim ersten Flipflop auf Q1 übertragen, erst bei der
nächsten Taktflanke von Q1 auf Q2 usw. Da die Flipflops nur auf Flanken
reagieren, bleibt der Wert eines Flipflops konstant, bis die nächste
Taktflanke anliegt. Dadurch wird ein "Durchrauschen" verhindert.
Was das Schieberegister betrifft, hast du schon recht. Es ist allerdings eine gewisse Herausforderung die flankengetriggerten D-FF aus einfacheren Bauteilen zu realisieren.
Apropos: Hat jemand zufällig den Schaltplan für ein ECL D-FF ? Es wäre spannend herauszufinden, welche Geschwindigkeit man erreichen kann, wenn man ein D-FF in ECL manuell aufbaut.
Es ist allerdings
eine gewisse Herausforderung die flankengetriggerten D-FF aus
einfacheren Bauteilen zu realisieren.
Apropos: Hat jemand zufällig den Schaltplan für ein ECL D-FF ? Es wäre
spannend herauszufinden, welche Geschwindigkeit man erreichen kann, wenn
man ein D-FF in ECL manuell aufbaut.
Beim Hintereinanderschalten (Kaskadierung) von FF wird neben Setup- und Hold- Zeit auch das "propagation delay" wichtig. Das ist die zeit zwischen aktiver Flanke clock und Aktuallisierung Q-Ausgang., t_PD, gelegentlich auch Clock to Output oder Register-to-Output genannt. Im genannten Datenblatt wird diese Zeit auch genannt, aber vielleicht nicht narrensicher erklärt.
DIese Betrachtung des Timings von sequentieller Logik wird auch unter dem Begriff "Statische Timing Analyse" (STA) behandelt, im deutschsprachigen Bereich als "Berechnung des kritischen Pfades".
Bei der Hintereinanderschaltung von FF ist eben dieses Propagation delay mit die Ursache dafür, das ein nach-geschaltess FF den Q-Zustand des vorgeschalteten FF bei der Flanke zum Zeitpunkt t-1 und eben nicht zum aktuellen Zeitpunkt t sieht.
Schaltungstechnisch wird dieses Edge-triggerung durch Implementierung zweier Schaltstufen ("Master"-Slave) erreicht. Vielleicht wurde ja die beschreibung dieser Struktur in den aktuellen Ausgaben der Fachliteratur gestrichen, in "meiner" Fachliteratur findet sie sich jedenfalls.
Wirklich erstaunlich: Der gepostete Schaltplan stellt die eigentliche Problematik wieder nicht dar. Du scheinst Dinge aus dem Internet zu kopieren, aber nicht zu verstehen, um was es geht. Das entspricht ziemlich genau dem aktuellen Vorgehen der heutigen KIs.
Der gepostete Schaltplan stellt die eigentliche
Problematik wieder nicht dar.
Aus Forumssicht wurden hier:
von mehrenen Personen mehrere Schaltvorschläge gepostet
es wurden meherere Fachbücher genannt und auszugsweise als Scans gezeigt
es wurden konkrete Hinweise gegeben auf was beim Aufbau zu achten ist
auf tools zur Vermeidung von Aufbau und Dimensinierungsfehler wurde auch verwiesen.
Da wäre es doch wirklich für den Fragesteller an der Zeit, ganz nach den Grundsätzen eines DIY-Forums ("Do it yourself") mal mit der Realisierung zu beginnen.
Aber manche scheinen ein DIY-Forum mit dem Weihnachtspostamt zu verwechseln, bei dem man seinen Wunschzettel in krakeliger Schrift abgibt und davon ausgeht, das der Weihnachtsmann das Gewünschte zum Heiligabend mit roter Scheife drum auf den Gabentisch des Jüngelchens legt ...
Da wäre es doch wirklich für den Fragesteller an der Zeit, ganz nach den
Grundsätzen eines DIY-Forums ("Do it yourself") mal mit der Realisierung
zu beginnen.
Jawohl, hab ich verstanden!
Werde ich auch machen, habe ich fest vor.
Geht los, aber die Umsetzung hat neben reallife und allem anderen eher nachrangige Priorität.
"später"
Zumindest meine ich es jetzt theoretisch kapiert zu haben, willl nur mal sehen wie es sich praktisch umgesetzt verhält.
Wäre dann die nächste Frage, wie man die Funktion oberhalb einiger Hz Taktfrequenz dann überprüft, selbst mit optischer Überprüfung mittels LEDs wirds bei nem shiftregister schwierig.
Da wäre es doch wirklich für den Fragesteller an der Zeit, ganz nach den
Grundsätzen eines DIY-Forums ("Do it yourself") mal mit der Realisierung
zu beginnen.
Interessanterweise würde eine KI genau so handeln: Da sie ja keine realen Schaltungen aufbauen kann, muss sie Menschen davon überzeugen, dass sie es tun.
Die bisherigen Beiträge von Bradward würde dem Stile der aktuellen KIs entsprechen.
Im Moment geht meine Einschätzung zu 75% für KI und 25% gegen KI. Ich denke, man kann sich mit dem Gedanken vertraut machen, dass sich zunehmend ChatBots in den Foren herumtreiben.
Wäre dann die nächste Frage, wie man die Funktion oberhalb einiger Hz
Taktfrequenz dann überprüft, selbst mit optischer Überprüfung mittels
LEDs wirds bei nem shiftregister schwierig.
Die DFF eines Schieberegisters werden üblicherweise mit einem gemeinsamen Takt versorgt. Der gezeigte Zähler ist kein Synchronzähler (kein gemeinsamer Takt). Ich vermute stark, dass sich mit dem gezeigten Transistor DFF kein funktionierendes Schieberegister bauen lässt. Das sieht man aber dann am praktischen Versuchsaufbau.
Die DFF eines Schieberegisters werden üblicherweise mit einem
gemeinsamen Takt versorgt.
Nicht nur "üblicherweise" sondern zwingend, siehe Problematik "clock skew"
und eben die Ausführungen zu "Ansteuerbedingungen bei Schieberegistern" aus Scan oben.
Das
sieht man aber dann am praktischen Versuchsaufbau.
Oder schneller/sicherer an einer Spice-Simulation, die solche Aufbau-Fehler wie "Wackelkontakt im Steckbrett" oder "skew wegen unbeachteten parasitären Kapazitäten, Leitungsführung" ausschliesst.
Oder schneller/sicherer an einer Spice-Simulation, die solche
Aufbau-Fehler wie "Wackelkontakt im Steckbrett" oder "skew wegen
unbeachteten parasitären Kapazitäten, Leitungsführung" ausschliesst.
So ist es. Jetzt zeig mal, was du kannst. Kleiner Tipp: KI's können noch kein LtSpice.
Hier noch der Toggle-FF mit 1/2 * 74HC00.
CMOS schaltet recht genau bei VCC/2 um.
Die Spannungsteiler R2, R3 bzw. R4, R5 sorgen dafür, daß VCC oder 2/3VCC anliegen. R1 bildet wiederum mit R2..5 einen Spannungsteiler, der den Hub an den Kondensatoren auf 1/3VCC reduziert. Damit schaltet nur das Gatter um, das schon auf 2/3*VCC vorgespannt war. Das andere sieht weiterhin high.
Ja, das Grundlagenwissen scheint sich zunehmend aus dem Netz zu
verflüchtigen. Die Schaltpläne sind nur noch schwer zu finden.
Was nie "im Netz war", kann sich auch nicht verflüchtigen.
Und nicht nur deshalb hat der Profi-Entwickler 'ne gepflegte Handbibliothek auch älterer Bücher, aus denen man bei Bedarf ein paar Seiten Grundlagenwissen scannen kann.
Wobei Germanium-Transistoren auch für mich zu obsolete sind als dass man dafür gross Literatur vorhält.
Wem es um diskrete Logik-Schaltungen geht, kann ja auch bei den IC-Vorläufern, den Hybrid-Dünnschicht-Modulen reinschauen, bspw. der KME3 Bausteinen: https://www.u-r-rennert.de/dig/kme3.html