Design and Verify an “Elevator controller”.
Inputs:
oor[3:0] -> 16 buttons to select 1 to 16 oors, only 1 oor can be pressed at any time (cycle), but
multiple can be pressed 1 after the other
open -> button inside the lift to open the door
close -> button inside the lift to close the door
up -> button outside the lift to call the lift to go to higher oors
down -> button outside the lift to call the lift to go to lower oors
Outputs:
dir -> signal to tell the lift whether it should go up or down
move -> signal to tell the lift whether it should move or stop
open -> open the door
close -> close the door
Algorithm:
1. When both up and down oors are selected (either using oor buttons from inside or up/down
buttons from outside), the lift should rst move to the nearest oor and then cover all the
oors pressed in that direction before reversing.
2. The lift should not stop at a oor if the up button is pressed and the lift is going down and the
oor is not selected inside.
Please submit the below:
1. Document with state machine and assumptions made.
2. RTL code (in verilog or system verilog)
3. Testbench (in verilog or system verilog or UVM)
4. List of Testcases and their description
fl
fl
fl
fl
fl
fi
fl
fl
fl
fl
fl
fl