TAMS / Java / Hades / applets: contents | previous | next | ||||
Hades Applets contents visual index introduction std_logic_1164 gatelevel circuits delay models gate vs. wir... gate delay d... ring oscillator hazards NAND-chain D-flipflop h... clock-doubler 2-phase cloc... flipflops adders and arithm... counters LFSR and selftest memories programmable logic state-machine editor misc. demos I/O and displays DCF-77 clock relays (switch-le... CMOS circuits (sw... RTLIB logic RTLIB registers Prima processor D*CORE MicroJava Pic16 cosimulation Mips R3000 cosimu... Intel MCS4 (i4004) image processing ... [Sch04] Codeumsetzer [Sch04] Addierer [Sch04] Flipflops [Sch04] Schaltwerke [Sch04] RALU, Min... [Fer05] State-Mac... [Fer05] PIC16F84/... [Fer05] Miscellan... [Fer05] Femtojava FreeTTS | D-flipflop hazards demo Circuit Description This circuit demonstrates that hazards have to be considered very carefully for the design of flipflops and latches. As the two AND gates together with the OR gate and the inverter form a 2:1 multiplexer, this circuit is also called a multiplexer flipflop (or rather, multiplexer latch). The value on the clock input decides whether the output of the OR-gate is driven by the data input (when the clock signal is high) or the delayed feedback output of the flipflop (when the clock is low). The problem with this type of circuit is its sensitivity to the propagation-delays of the individual gates. The initial values (values shown in the frills) in the upper flipflop are chosen to ensure that the flipflop works. The main point here is that the delay through the DATA-to-Q path must be larger than the delay through the feedback-to-Q path. You may want to play a little with the data and clock inputs to verify the the flipflop behaves as expected for a standard D-type latch. However, even a small change in the propagation-delays can introduce a hazard. This is demonstrated by the second flipflop, where the DATA-to-Q delay is slightly smaller than the feedback-to-Q delay. When both inputs are high, and then the clock changes to low, a hazard occurs at the OR-gate input. In the discrete event driven simulation, this results in circuit oscillations, as the hazard propagates through the feedback path and results in new events. In the actual circuit, the flipflop state will depend on the exact values of all relevant physical quantities (temperature, voltages, currents, incoming radiation, etc.) and will be undefined. You can also change the propagation delay of the other gates and experiment with the circuit. | |||
Print version | Run this demo in the Hades editor (via Java WebStart) | ||||
Usage | FAQ | About | License | Feedback | Tutorial (PDF) | Referenzkarte (PDF, in German) | ||||
Impressum | http://tams.informatik.uni-hamburg.de/applets/hades/webdemos/12-gatedelay/30-hazards/mux-flipflop.html |