====== D-FF ======
===== Overview =====
{{:courses:system_design:synthesis:master-slave_flip-flop:folie334_dffcircuit.svg?nolink&600|D-FF Circuit}}
^ D ^ C ^ Q(t+1) ^
| 1 | ↑ | 1 |
| 0 | ↑ | 0 |
↑ = rising edge of clock
* **transmission-gates = simple switch:**
{{:courses:system_design:synthesis:master-slave_flip-flop:folie334_transmissiongate.svg?nolink&200|Transmission Gate}}
* 2 complementary D-Latches are state controlled by clock
{{:courses:system_design:synthesis:master-slave_flip-flop:folie334_dffblock.svg?nolink&100|D-FF Block}}
* C=0: master is transparent, following the input level, slave is locked (holds)
* C=1: Master is blocking, feeds immediately to the pos. edge of clock and the value seen on D is on the output immediately, Slave is transparent
Positive edge: Q = D standard FF in CMOS-ASIC design!!
{{:courses:system_design:synthesis:master-slave_flip-flop:folie335_dffsimulationflow.svg?nolink&700|D-FF Simulation Flow}}
===== D-FF in VHDL =====
D_FF: process (CLK)
begin
if CLK'event and CLK='1' then
Q <= D;
end if;
end process;
D_LATCH: process (CLK, D)
begin
if CLK='1' then
Q <= D;
end if;
end process;
=== Notes ===
Here, a D-flip-flop controlled by a clock pulse edge is described. If an event occurs at the clock signal and this event has the value ONE, the value of the pin D will be transferred to the pin Q. (You could also await the negative clock pulse edge, then must be: CLK='0').