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.