====== Toggle-FF ======
===== Overview =====
T=J=K
{{:courses:system_design:synthesis:master-slave_flip-flop:folie342_toggleffblock.svg?nolink&400|Toggle-FF Block}}
^ T ^ C ^ Q(t+1) ^ state ^
| 1 | ↑ | Q'(t) | invert |
| 0 | ↑ | Q(t) | hold |
↑ = rising edge of clock
* Q(t+1)=[(Q' and T) or (Q and T')](t) = Q(t) xor T(t)
===== Asynchronous 4 bit binary counter =====
{{:courses:system_design:synthesis:master-slave_flip-flop:folie343_asynchronous4bitbinarycounterblockcircuit.svg?nolink&600|Asynchronous 4 bit binary counter block diagram}}
{{:courses:system_design:synthesis:master-slave_flip-flop:folie343_timingbehavior.svg?nolink&600|Asynchronous 4 bit binary counter timing behaviour}}
simple structure - but problems by application because of real runtimes!!!!
===== Synchronous 4 bit binary counter =====
**JK-FF with Reset:**
U_D_MS: D_MS
port map (CLK, D, Q, Qn);
D <= '0' when RESET = '1'
else (Qn and J) or (Q and not K);
{{:courses:system_design:synthesis:master-slave_flip-flop:folie345_jkcounterwithreset.svg?nolink&700|Synchronous 4 bit binary counter with Reset}}
{{:courses:system_design:synthesis:master-slave_flip-flop:folie345_timingbehavior.svg?nolink&700|Timing Behaviour}}