Wie funktioniert der D Flip Flop und WARUM behält er seinen Wert?

Ich versuche, die Elektronik zu verstehen und zu verstehen, um mich hoffentlich zum Bau eines 8-Bit-Computers hochzuarbeiten.

Ich beschäftige mich derzeit eingehender mit Flip Flops, und anstatt davon auszugehen, dass sie "einfach funktionieren", könnte mir jemand erklären, WARUM Q & nicht Q ihre Werte basierend auf dem folgenden Schema halten?

Geben Sie hier die Bildbeschreibung ein

Ich habe diesen Schaltplan von Hand gezeichnet und ihm jedes Mal mit Eingaben gefolgt, beginnend mit 1 & 1 für D und CLK, dann CLK auf 0 entfernend, wenn seine Flanke ansteigt, aber ich komme immer mit 0 in meinen Handarbeiten heraus, wie auch immer ich haben die Schaltung physisch aufgebaut und sie funktioniert wie erwartet.

Kann also jemand erklären, WIE und WARUM Q seinen Wert behält?

Dein Diagramm ist falsch. Die rechten NAND-Gatter sollten NOR-Gatter sein. Außerdem ist das, was Sie als Takteingang anzeigen, kein Takt, sondern eine Freigabe. Dies ist kein D-Flip-Flop, sondern eher ein transparenter Riegel.
@ David Ich denke, das Diagramm ist richtig. Ich stimme zu, dass dies ein Riegel ist, kein FF, aber nicht jeder stimmt diesen Bedingungen zu.
@WoutervanOoijen Du hast Recht. Es gibt mehrere Möglichkeiten, dies zu tun. Eine Möglichkeit ist (von links nach rechts) UND + NOR, und die andere ist NAND + NAND. Ich brachte sie durcheinander.
Die allgemeine Konvention ist, dass FFs flankenempfindlich sind, während Latches pegelempfindlich sind. Das Diagramm in der Frage ist ein Gate-D-Latch und kein DFF. en.wikipedia.org/wiki/Flip-flop_(electronics)#Gated_D_latch Das Blockdiagramm sollte nicht das Uhrsymbol ">" haben, sondern ein "E" für Freigabe oder "C" für Steuerung.

Antworten (1)

Beachten Sie, dass ich dieses Zeug lehre, also anstatt Ihnen die Antwort zu geben, werde ich versuchen, Sie es selbst herausfinden zu lassen, was auf lange Sicht viel nützlicher ist. Ich hoffe, die anderen Antworten werden diesen Ansatz nicht verderben.

Versuchen Sie zuerst, die beiden NANDs auf der rechten Seite zu verstehen. Wenn beide Eingänge (S und R) 1 sind, was werden die Ausgänge sein? Probieren Sie es selbst aus. Angenommen, Q ist 1, ist das ein stabiler Zustand? Und ist Q = 0 ein stabiler Zustand?

Finden Sie nun heraus, was passiert, wenn S = 0 (R immer noch 1).

Und was passiert, wenn wir NACH S = 0 / R = 1 zu S = 0 / R = 0 zurückkehren.

Wenn Sie diesen Teil verstanden haben, werfen Sie einen Blick auf die beiden linken NANDs. Was sind ihre Ausgänge, wenn CLC = 0? Und was ist, wenn CLK = 1?

PS Zwei Studenten von mir haben gerade den Bau einer 16-Bit-CPU aus 74HC-Level-Chips abgeschlossen (sie verwendeten ALU-Chips, was meiner Meinung nach ein bisschen Betrug ist). Es dauerte ~ 6 Monate.

Unser Erstsemester-Low-Level-Computerkurs ließ uns eine 16-Bit-Mips-CPU in einem Logiksimulator entwerfen und einen Assembler dafür als Kursprojekt schreiben, um ihn anschließend auf ein FPGA zu übertragen, um zu sehen, dass es physisch funktionierte, was deutlich weniger Zeit in Anspruch nahm als es würde Nehmen Sie es mit 74xxx-Chips und (IMO) viel relevanter für modernes CS / EE, nur ein Vorschlag.
Wenn der Vorschlag an mich gerichtet ist: Diese Studenten haben das alleine gemacht, mit minimaler Unterstützung von mir. Verschiedene Schritte auf Simulationsebene waren Teil des Prozesses. Das Endziel war eine CPU mit physisch erkennbarer ALU, Registern, Sequenzer usw.