Electronic – How to design a clocked synchronous state machine for a combinational lock

diagramflipflopkarnaugh maplogic-gatesstate-machines

I need help in completing a task, I’m stuck on quite a few things. Since I’m very new to this topic on finite machines.

I’ve attempted the state diagram, state table, transition table, K-map values and the k-maps (Karnaugh – map) themselves. However, a lot of it is incomplete, because I don’t know how to continue.

Any hints or help is appreciated; I’m not asking for answers just guidance, I’ve tried for a whole week now but still failed to complete this.

You can read my task down below. And in my drawings are questions highlighted in yellow, showing where I’m stuck, or where I’m having the most trouble in figuring out a solution.

Task:
Design a clocked synchronous state machine for a combinational lock with two inputs (X and Y) and one output (Z).

Input ‘X’ is used to initialise the sequence entry. Input ‘Y’ is used to enter the binary sequence to unlock. Output ‘Z’ will be turned on if and only if the binary sequence is entered in proper order after the initialisation and must remain on as long as X input remains high.

This combinational lock operates as follows. Input ‘X’ must have changed from low to high in the previous clock period and should remain high afterwards (Initialisation). Entry of first binary digit must be done before the next clock cycle starts and entry of the remaining digits is done on the subsequent clocks.

If a wrong sequence is entered, it will require re-initialising to start entering the correct sequence.
enter image description here

My tables and drawings for this task:

State Diagram

State Table and Transition Table

K-Map Values

K-maps

UPDATE!

State diagram
State table

State Table
State diagram

Best Answer

enter image description here Here is a partial version of the table you need to make. There is 64 rows in total. You determine the Q3*(Q3+) and the others by thinking what is the next state if I am in the current state and looking at X, Y.

Take for example line 2 : Current state 0000(RESET) and X=1, Y=0 this means the next state is 0001 (UNLOCK). Also Z is 0 when I am in state 0000.

You then get the output logic for Q0* by taking all the 1s in your column Q0*. For example for now I have (\ means "not")

Q0*= \Q3\Q2\Q1\Q0X\Y + \Q3\Q2\Q1\Q0XY + \Q3\Q2\Q1Q0\X\Y + etc...

You can then most probably simplify this expression. You won't really be able to do Karnaugh tables because there is 4 states bit and 2 entries = 6 dimension. I suggest you use the cannonic method for the logic as I explained just before.

You can check here for more info : https://en.wikipedia.org/wiki/Canonical_normal_form