Vielen Dank, Thomas!
Um mir das selbst zu erklären und vielleicht für die Nachwelt, folgende
Erläuterung zu deiner Schaltung (korrigiert mich bitte, falls ich
Fehlinformationen verbreite):
Du hast also ein RS-Latch aus 4 NORs vor dem eigentlichen D-Latch
eingefügt.
Die zwei ersten NORs vor dem RS-Latch sorgen dafür, dass wenn Clock=1
ist, (R, S)=(0, 0) erzwingt wird, also der aktuelle Wert für den Eingang
des D-Latches gehalten wird. D.h. keine Änderung von Data wird
irgendetwas verändern, solange Clock=1 ist.
Nur wenn Clock=0 ist, wird in das RS-Latch genau (R, S)=(!Data, Data)
gespeist, sodass jegliche Änderung von Data 1:1 für den Eingang des
D-Latches übernommen wird.
Wenn nun Clock=1 ist, übernimmt das D-Latch den Wert des Eingangs; da
sich dieser Wert nur zum Pegel Clock=1 verändert haben kann, bildet die
ganze Schaltung effektiv ein D-Flipflop.