Design & Implementation of a Master/Slave J-K Flip-Flop

 


Objective

To design and build a S-R latch, and then use 2 of them to build a J-K M/S Flip-flop

 

Input/Outputs

For the SR Latch

Two one-bit inputs (S, R)

One one-bit enable line (ENABLE)

Two one-bit outputs (Q, Q’)

For the JK Flip-Flop

Two one-bit inputs (J, K)

One one-bit clock line (CLK)

Two one-bit outputs (Q, Q’)

Truth Tables

For the SR Latch

NOTE: Q* is defined as the next state of Q, while Q is the present state of Q.
 

INPUTS

OUTPUTS

ENABLE

Q

S

R

Q*

Q*’

Notes

0

X

X

X

Previous Q

Previous Q’

Circuit Not Enabled

1

0

0

0

0

1

No Change

1

0

0

1

0

1

Reset

1

0

1

0

1

0

Set

1

0

1

1

0

0

Undesired Condition

1

1

0

0

1

0

No Change

1

1

0

1

0

1

Reset

1

1

1

0

1

0

Set

1

1

1

1

0

0

Undesired Condition

 

 

For the JK Flip-Flop

NOTE: Q* is defined as the next state of Q, while Q is the present state of Q. The flip-flop we designed is negative-edge triggered. Thus, Q*/Q*’ will only change on the falling edge of the clock cycle.
 

INPUTS

OUTPUTS

Q

J

K

Q*

Q*’

Notes

0

0

0

0

1

No Change

0

0

1

0

1

Reset

0

1

0

1

0

Set

0

1

1

1

0

Toggle the output

1

0

0

1

0

No Change

1

0

1

0

1

Reset

1

1

0

1

0

Set

1

1

1

0

1

Toggle the output

 

For the JK Master/Slave Flip-Flop

NOTE: Q* is defined as the next state of Q, while Q is the present state of Q.
 

INPUTS

OUTPUTS

J

K

Q*

Q*’

X

X

Previous Q

Previous Q’


0

0

Previous Q

Previous Q’


0

1

0

1


0

0

1

0


0

1

Previous Q’

Previous Q

 

 

Karnaugh Maps

For the SR Latch
 

Q*

 

 

Q

 

S R

0 0

0 1

1 1

1 0

0

   

XX

1

1

1

 

XX

1

XX= Undesired condition

Q* = S + Q . R’

For the JK Flip-Flop
 

Q*

 

 

Q

 

J K

0 0

0 1

1 1

1 0

0

   

1

1

1

1

   

1

Q* = Q . K’ + Q . J

 

Circuit Implementation