A finite-state machine determines its outputs and its next state from its current inputs and current state. A synchronous finite state machine changes state only when the appropriate clock edge occurs.

The following diagram shows a sequential circuit that consists of a combinational logic block and a memory block. For simplicity, we limit the design to one input and 2 JK flip flops. You will learn to derive the combination logic that meets the design specifications.

The steps to design a Synchronous Counter using JK flip flops are:

- Describe a general sequential circuit in terms of its basic parts and its input and outputs.
Design a 2 bit up/down counter with an input D which determines the up/down function. Thus when D=0, the count sequence is 00,01,10,11,00 ... when D=1, the count sequence is 00,11,10,01,00 ...
- Draw the state diagram for the given sequence.
- Develop a next-state table for the specific counter sequence. Using the state diagram as a reference, fill up the present state and next state (yellow) columns. For this interactive table, you can modify the next state. After you have changed the values, press the
**Calculate**button. Press the**Reset**button to reset the page to the initial data. - Next, the FF transition table (blue) is completed using data from the respective present state, next state and the JK flip flop transition table below. Click on any blue cell to understand how its value is obtained.
JK Flip Flop Truth TableJK Flip Flop Transition TableThe JK flip flop truth table is not required in the design procedure but has been included to explain how the JK flip flop transition table is obtained. Click on any green cell of the JK flip flop transition table to learn how its value has been derived.
- Use K-map to derive the logic equations.
J
_{A}K_{A}J_{B}K_{B} - Use the boolean expressions to implement the counter.
Simulate and Breadboard the Up Down Counter circuit.

With advertising revenues falling despite increasing numbers of visitors, we need your help to maintain and improve this site, which takes time, money and hard work. Thanks to the generosity of our visitors who gave earlier, you are able to use this site at no charge.

If you have benefited from this site and are able, please
**give $10 via Paypal**. It will allow us
continue into the future. It only takes a minute. Thanks!