Design, program and verify a Vending Machine Controller using verilog
Design, program and verify a Vending Machine Controller using verilog
-Develop, model and verify the system behavior
-Ensure system is fully synchronous, even though the inputs are asynchronous
-Ensure system is a Moore machine
Digital System Design
Design-based Assignment
Objective
Design, program and verify a Vending Machine Controller.
As a design engineer, you are required to design, program and test a Vending Control System. Your work will include the following key tasks.
Develop, model and verify the system behavior
Ensure system is fully synchronous, even though the inputs are asynchronous
Ensure system is a Moore machine
System Specifications
The Vending Machine System is shown in Figure 1. The controller portion of the system can be implemented as a state machine. You just need to design the controller block, and can assume that the coin-box, dispenser and indicator box components are already available and functioning properly.
Figure 1: The Vending Machine System
The machine accepts 10, 20 and 50 sen coins. Each time a 10 sen coin is dropped into the coin box, a 10ms pulse is sent down the i_coin signal line. Similarly, when a 20 sen or a 50 sen coin is inserted, a pulse of duration 20 and 30ms respectively will be sent down i_coin.
Two types of drinks are available, one costing 60 sens, and the other 80 sens. When 60 or more sens are deposited, a pulse of 10 ms is sent down the o_indicate signal line. The indicator box circuit will then light up an LED to show the customer that they can choose the 60 sen drink. When 80 or more sens are deposited, a 20 ms pulse is sent down the o_indicate line, and two LEDs will be lit to show that both the 60 and 80 sen drinks can be chosen.
If the customer chooses the 60 sen drink, a 10 ms pulse is sent down the i_choose signal line. The controller will then send a 10 ms pulse to the o_release signal line and the dispenser will then release a 60 sen drink. If an 80 sen drink is chosen, a 20 ms pulse is sent down the i_choose line, and the controller then sends a 20 ms pulse to the o_release line to release an 80 sen drink.
If the amount of money deposited is more than the cost of the drink chosen, the…
Attachments:
Is this the question you were looking for? If so, place your order here to get started!