# Gottcha anti theft machine

Problem Statement: The “Gottcha Anti-Theft” Machine
There are many anti-theft devices on the market that attempt to foil a would-be robber from
starting your car and driving off with it. One popular item has a keypad like a touch-tone
telephone. In order to start your car, you must key in a secret four digit decimal code, such
as ‘3719’. It only “remembers” the most recent four digits you have keyed in. Thus the
sequence ‘3723719’ will let you start your car.
For simplicity here we use a code based on a sequence of eight bits, and use two push
buttons to enter a sequence serially. Each press of a button enters the corresponding digit.

Figure 1. The Gottcha machine in action.
As you key in the bits in sequence, the device outputs E = 0 until the most recent eight bits
agree with a built-in secret code byte. Then E switches to 1.
The shut-off gottcha: If 16 bits are toggled in without the secret code being observed, the
system shuts off and won’t accept any more bits. Add a reset button to the system that
presumably only the owner could control: when RESET is pressed the system is again
enabled and can accept bits.
Design and test (on LogicWorks) the miracle Gottcha machine. Do this in two different
ways (thus designing and simulating two different circuits):
1) The Factory Preset Model: The specific secret byte preset at the factory MUST be one
of your team members’ secret keys. For groups with single member, please use your
assigned secret key. A table of secret key corresponding to each student’s RedID is attached to this document. You can find your secret key from the table. All groups, please explicitly
receive zero point if you don’t follow this key use policy specified above. Do not use
registers: solve for the finite state machine with the fewest states and flip-flops possible.
Some Hints:
1) These systems have no actual clock – the release of either pushbutton produces a
transition that is used to trigger the flip flops involved. The main flip flops in the circuit
are triggered by this transition.
2) You might put the outputs of the two pushbuttons into asynchronous inputs of a flip
flop, which therefore instantly stores the value (i.e. informs “which” pushbutton was
pressed) of the newest input bit. The output of this flip flop is then used as the actual “input”
value.
3) Use a shift register in part 2 to store the most recently received bits. Compare the shift
register output to the programmed code word. (So part 2 is very simple.)
Submission Instructions:
a) A one-student group only needs to complete the Factory Preset Model. A two-student
group needs to accomplish both the Factory Preset Model and the User-Programmable
Model. For one-student groups: please find out your assigned 8-bit binary secrete key
associated to your SDSU RedID in the table attached to this document. For two-student
groups: please use an 8-bit binary secrete key assigned to one of your members in the table
attached; Please tell us which member’s secrete key is used.
b) Write a Readme text file that includes (1) your group member names and the
contribution of each member (who did what); (2) list each file enclosed in your submission
package and briefly explain its function and usage.
c) A brief description of the design process you used to obtain the circuits. Be sure to point
out why you chose a particular design, along with the steps you took to minimize the
amount of hardware required in each case.
(.clf). In your .cct file, please document each section using the Text tool (Ctrl_E) so that
the grader knows how it works. Note that documentation is essential for full credit.
e) Zip all your LogicWorks files and the Readme text file into one document and name it
using the first initial and the last name of one of your group members (e.g., assume that