You have the following external inputs:


1.) 8 data lines, x = x7, x6, x5, ... , x0

2.) A single line ENTER, which is 1 for one clock-pulse whenever data is entered from the keyboard.


You also have these packages:


1.) A pre-programmed, 64 Word by 8 Bit ROM. Each address of the ROM corresponds to a userid, and the 8-bit binary number at an address is the passcode for that user.

2.) A 3-minute timer. Make Start on the timer 1 for a single clock-pulse to start it. 3 minutes later, the timer's output, Done, is 1 for a single clock-pulse when the time is up. The timer also has a clock input which must be connected to the system clock.


The circuit has 2 outputs:


1.) Unlock, which is 0 for a locked door and should be made 1 for a single clock-pulse to unlock the door.

2.) Warn, which is 0 when the warning LED is off (normal operation), and 1 when it is on (bad passcode entered).


How the circuit is to operate:


1.) Wait for a first ENTER signal, at which time 6 bits of data (a userid) are available on x5, x4, ... , x0 (the upper 2 bits of x are unused).

2.) Wait for a second ENTER signal, at which time 8 bits of data (the entered passcode) are available on x = x7, x6, x5, ..., x0.

3.) Compare the known (ROM) and entered passcodes. If the passcode agrees, then set Unlock to 1 for a single clock-pulse then go back to waiting for another userid. If the passcode does not agree, then set Warn to 1 and then wait for another ENTER signal which will indicate that the user has entered another passcode. The user gets 3 tries to enter the passcode successfully. If the user succeeds within 3 tries, unlock the door as above. If not, start the 3-minute timer, and during the 3-minutes, ignore all new keyboard data (ENTER signals). After the 3 minutes are up, return to waiting for another userid.


BE SURE the circuit is synchronous sequential.


INCLUDE state diagrams (there must be 4 states), and the circuit diagram.


DO NOT gate the clock inputs!


NOTE: Possibly use two 8-bit registers (one for the userid, and one for the password). Send the data to the pre-programmed ROM, and then from the ROM, send the data to a comparator...


ALSO NOTE: The ROM is pre-programmed, and the 3-minute timer doesn't need to be designed; just use a box with a Start pulse coming in, and after 3 minutes, a Done pulse leaving.

Want an answer?

No answer yet. Submit this
question to the community.