• A group of flip flops connected together form a register
• A register is used solely for storing and shifting data which is in the form of 1s and 0s • It has no specific sequence • A counter is a register capable of counting the number of clock pulses arrived. • On arrival of each clock pulse the counter is incremented by 1, incase of down counter it is decremented by 1. Asynchronous counters • This is also called as ripple counter. • In ripple counters the flip flops within the counter are not made to change the states at exactly the same time. • This is because the FFs are not triggered simultaneously. • The clock does not directly control the time at which every stage changes state. • The Asynchronous counters mainly used T- FF, otherwise we can use J-K and D also. Synchronous counters • Synchronous counters are clocked such that each FF in the counter is triggered at the same time. • Synchronous counters are faster than Asynchronous counters because the propagation delay is less. Design of Modulo-N counter • These are the steps we have to follow while designing a Synchronous counter. 1. number of flip flops needed N<= 2^n where n = no of flipflops 2. State diagram 3. Choice of flip flops and excitation table 4. Minimal expressions for excitations (k-map) 5. Logic diagram. Synchronous 3-bit up-down counter Synchronous mod-10 up-down counter Synchronous modulo-6 gray code counter Design of synchronous BCD counter using J-K FFs Logic diagram Synchronous Mod-6 counter using J-K 2-bit asynchronous up counter Asynchronous Mod-6 using T f/f Mod 10 Buffer Register Controlled buffer register Data transmission in shift registers Bi-directional shift register Universal shift register