> wenn Ausgang Q1 eines DFFs zu einem anderen DFF an den Eingang D2 geht,
> dann muss doch immer gelten, dass t_dq > t_hold.
Ich drück es etwas genauer aus, damit es korrekt wird. t_dq gibt es in
DFFs nicht, dafür aber t_clk_q, also die Zeit zwischen einer
Clock-Flanke und dem Ändern des Ausgangs (Änderungen in d bewirken von
sich aus ja keine Änderung in q). Dann muss
t_clk_q_1 > t_hold_2
sein, wenn die Clock-Flanken gleichzeitig bei den DFFs ankommen
(andernfalls muss ein entsprechender Versatz addiert werden).
> Damit würde Q1 hold_time nach der Taktflanke weiterhin anliegen
Die hold_time bezieht sich auf das was sein muss (was du sicherstellen
musst), nicht auf das, was "automatisch so ist". Also eher
"Q1 muss hold_time nach der Taktflanke anliegen" (ohne Bachtung von
Versatz, komb. Logik und Signallaufzeiten).
> und D1 erscheint am Q1 erst nach t propagation delay von d nach q.
> Richtig so?
Der Teil stimmt so.
> Bevor nun 2-te Taktflanke kommen darf, muss einerseits der neue
> Wert durch die kombinatorische Logik durch zum D2(oder wenn direkt
> verbunden, einfach durch den Draht) und zum anderen ab diesem
> Zeitpunkt muss noch setup_time vergehen.
> Ist das korrekt?
Ja. Im Wesentlichen hast du damit zwei Vorgaben, die du erfüllen musst:
t_clk_to_q_1 + Logik + Leitung + t_setup_2 < Taktperiode
t_clk_to_q_1 + Logik + Leitung > t_hold_2