# Purpose

Experiment, have fun and learn.
What better than counting without a counter ?
In order to make a basic function (a decade counter) you need even more basic elements as : AND/OR Gates and J-K flip-flops.

# Basics

### What is a synchronous decade counter ?

A logical counter able to increment a 4 bits word at each clock tick from 0 to 9 in a loop.
The main component to make a counter is a J-K Flip Flop. Actually, one for each bit.
Otherwise, the decimal greatest number of a decade counter is 9 that is encoded by 1001 in binary code.
As a result, this counter will increment 4 bits from 0000 to 1001 so it requests 4 flip flops.

### What is a J-K Flip Flop ?

The JK flip-flop is a universal flip-flop, because it can be configured to work as an SR flip-flop, a D flip-flop, or a T flip-flop.

#### Truth Table

If J and K are tight together the JK flipflops will behave as a T flip-flop. This is to say : hold or toggle the Q output.
The main advantage of this it doesn’t need any input signal, it works on its own.

#### Synchronicity

There is two options to make a counter :

• Synchronously : the same clock is shared on each flip flop. Every flip-flop moves on the same top
• Asynchronously : each flip flop output is linked to the next flip flop clock. Each flip-flop waits for its predecessor

I choose the synchronous method to begin.

#### Synchronous up counter

Due to this 4 JK flip-flops synchronous mounting, two AND gates has to be added on FFB and FFC outputs. They will properly drive the J and K state to hold or toggle Q state in order to count each number between 0 and 9 as requested.