Problem: This semester you will realize a Moore finite state machine for implementing the tail lights of a prototype car using four different design tools:
• Discrete logic using NAND gates and D-type flip-flops
• A complex programmable logic device using hardware descriptive language
• The myDAQ using the LabVIEW programming environment
• An embedded microcontroller programmed using the C programming language
This problem provides design specifications and requires you to represent the finite state machine using a state diagram and state table. The tail light system has four output signals defined in Table 1.
Signal
|
Symbol
|
Description
|
Left outer tail light
|
Lo
|
True when lit
|
Left inner tail light
|
Li
|
True when lit
|
Right inner tail light
|
Ri
|
True when lit
|
Right outer tail light
|
Ro
|
True when lit
|
Table 1: Output signals
The finite state machine has the four input signals defined in Table 2. The input signals L, R and H are observed synchronously with respect to a Hz clock signal, while B is an asynchronous input.
Signal
|
Symbol
|
Description
|
Left turn signal switch
|
L
|
True when the left turn signal switch is activated
|
Right turn signal switch
|
R
|
True when the right turn signal switch is activated
|
Hazard flasher switch
|
H
|
True when the hazard flasher switch is activated
|
Brake switch
|
B
|
True when the brake switch is activated
|
Table 2: Input signals.
The finite state machine has six states defined in Table 3.
state
|
QA
|
QB
|
QC
|
Description
|
S0
|
0
|
0
|
0
|
All tail lights on
|
S1
|
1
|
1
|
0
|
Left outer tail light on
|
S2
|
1
|
0
|
1
|
Left inner tail light on
|
S3
|
1
|
0
|
0
|
Right outer tail light on
|
S4
|
0
|
1
|
1
|
Right inner tail light on
|
S5
|
1
|
1
|
1
|
All tail lights of
|
Table 3: State assignments
The system has the following desired behavior.
• The inputs L and R are exclusive, like they are in other cars you have driven. That is, L and R cannot be true simultaneously.
• When the L is true, the left outer tail light is illuminated for one clock cycle. If L remains true, the left outer and left inner tail lights should alternately light on subsequent clock cycles. When L returns to false, all lights should turn off.
• When R is true, the behavior should be similar to the left signal.
• When H is true, all the tail lights should illuminate for one clock cycle. If H remains true, all the lights should should alternately light on subsequent clock cycles. Hazard flashers are more important than turn signals so they are activated regardless of the L and R inputs.
• When B is true, all the tail lights should illuminate until B is false. As the input B is more important than turn signals and hazard flashers, this behavior must hold regardless of the other inputs and current state.