Vending Machine
University of Texas at El Paso
Electrical and Computer Engineering Department
EE 2169 –Laboratory for Digital Systems Design I
Lab Final – Algorithmic State Machine – The Burrito Vending Machine
Due Dates
Prelab: 7/3/2017
Demonstration 7/6/2017
Design Package: 7/9/2017 1:00 pm
You are tasked with designing the digital system of a burrito vending machine. The vending machine will be rolled out
all over UTEP campus by the beginning of the 2018 Fall term, so the design package (which should contain your ASM
chart, Verilog module (.V), user constraints (.UCF), programing (.BIT) files, team members, and conclusions) is due by
Sunday, July 6 at 1:00 pm.
The vending machine is designed to hold three different types of burritos: Bean, Steak, and Chicken. It only accepts US
coin denominations of 5, 10, and 25 cents. The price of each burrito is based on your student ID number but has to be a
multiple of 5 (you may round to nearest power of 5 achieve this restriction). For Example, if a student engineer has the
ID number 80-205288, the bean burrito should be priced at $0.20, the chicken burrito at $0.50 and the steak burrito at
$0.90. The steak burrito should be the most expensive of the three. The bean burrito should be the cheapest. You may
decide the prices based on your student ID in the report document and use them as constants when describing the system.
Design the vending machine so that it displays the balance on the two seven-segment displays at all times. When initially
programed or reset; the machine should have a “00” balance. Assign the buttons on the DFEB as follows.
BTN3 = $0.05 inserted
BTN2 = $0.10 inserted
BTN1 = $0.25 inserted
BTN0 = reset machine
To vend the burrito, the balance displayed should greater than or equal to the price of each burrito (the vending machine
doesn’t give any change back). Use the switches to choose each burrito as follows:
SW7 = Bean Burrito
SW6 = Chicken Burrito
SW5 = Steak Burrito
When vending: All the LEDs (LD7 through LD0) should turn on and the seven-segment display should show which
burrito it is vending. Use “BB” for Bean, “CB” for chicken, and “SB” for steak. After one clock pulse the vending
machine should go back to the initial “00” state and wait for the next customer.
A few notes on the implementation:
1. Assume that only one button or switch can and will be pressed at a time. No need to account for multiple inputs being on.
2. Assume you will not insert more that $1.00 in coins. 3. If amount of money inserted is not greater than or equal the price of the selected burrito, no action is required
from the vending machine. Feel free, however to include some kind of indication that there’s not enough
money in the vending machine to buy a particular burrito.
4. Use the CLK signal with (1Hz) frequency as your synchronizing clock.
Pre-Lab Draw the Algorithmic State Machine (ASM) chart that describes your design for the burrito vending machine.
This is YOUR design, there’s no right or wrong answer, just the one that works correctly. Draw the ASM chart
completely as possible, reference chapter 8 in Mano & Ciletti.
Lab Email your design package as a compressed folder (.zip) to [email protected] by Sunday Jul 6, 1:00 pm. Name the folder as follows: EE2169_Lastname_Firstname. Your design package should include the following
files:
ASM Chart in PDF or Word format
Verilog module (.v)
User Constrains file (.ucf)
FPGA Programing file (.bit)
Names of the team members.
Notes & Conclusions.
You are encouraged to work in teams. Each team may consist of 2 and only 2 students.
If the working vending machine is demonstrated by July 5th a 10% extra credit will be assign to the burrito machine grade.
If the design package is turned in after the due date, a deduction to the burrito machine grade will be made.