====== 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}}