Vending Machine Controller

Vending Machine Controller Overview

Inputs: clock, reset, hard_reset, start, set N, D, Q, funct, prod

Outputs: change0, change1, change2, runTotal0, runTotal1, runTotal2, total0, total1, total2, finished

States: idle, hardReset, program, display, vend, free

The vending machine controller (VMC) is a sequential, active-high circuit. The VMC may be set to a certain

mode using the “Start” input, simultaneously applied with a “funct” (Function) input code. Accordingly,

the start input signal will initiate the VMC to enter the “funct” specified mode of operation. The funct

mode encodings are as follows:

0) Program Mode: program the price of a given product (operator)

1) Display Mode: display the price of a product (operator/user)

2) Vending Mode: purchase the selected product (user)

3) Free Mode: dispenses the selected product for free (operator)

When the VMC isset into the vending or program mode, the user specifies the product using input “prod”,

and the controller thereafter accepts three types of coins: Nickels (N), Dimes (D) and Quarters (Q). The N,

D, and Q coins each have their own input slot in the vending machine, and hence the coins may be input

simultaneously or individually by the user. An input called “set” applied during program mode will signal

to the VMC that the user has finished inserting coins.

The outputs of the VMC will present the user with an indication of how much a product costs (total0-2),

the running total (runTotal0-2 i.e. coins inserted into the VMC), and change (change0-2) returned to the

user. A “finished” signal will be output to the user to indicate that the operation has been successfully

completed, and that the product has been dispensed (if applicable). For the sake of simplicity, we will

allow our VMC to support up to four products only.

Program Mode

Display Mode

System Specifications

The vending machine will consist of 5 main components depending on your implementation:

program_unit, sram, convert2bcd, vend_unit, and the FSM required to control the VMC’s operational

modes. You will be required to determine any specifications that have been purposely left out, such as

port/signal datawidths and types. The rest of the implementation is up to you; you must have a

justification for your design choices. The following outlines specifications for each unit:

A) Program Unit – implements the VMC’s program mode

Inputs: clock, reset, hard reset, set, enable, product, NDQ

Outputs: data_mem, addr_out, done, wen

States: idle, adding, mem_writing

Display Mode

Design choice: This mode may be implemented within the top-level vending machine, or as a separate

component integrated into the VMC. When the user specifies display mode, the product specified is read

from the on-chip memory. Accordingly, the product number is applied to the address input, and the read

enable signal is asserted.

Once the data is read, the done signal must be asserted in sync with the read data output from the VMC

system, displayed on the total0..3 output segment display. Hint: ensure you thoroughly test the memory

unit before proceeding to code the display mode functionality.

) Vending unit (vend_unit) –implements vending mode

Inputs: clock, reset, enable, price_in, NDQ

Outputs: change, insert_out, done

States: idle, calculating, convert

Other components: convert2bcd (accumulator optional)

The vend_unit implements vending mode functionality. The unit is enabled whenever enable = ‘1’. The

price_in input provides the selected product’s price which is read from memory, and therefore the FSM

in the top-level (vending_machine) must ensure that all signals are synced when vend mode is activated,

such that enable and price_in are aligned with respect to time. i.e. when vending_unit is enabled, price_in

is reflective of the product’s price.

Compétences : Verilog / VHDL, QuarkXpress, Programmation C++, Statistiques SPSS, Programmation C

en voir plus : need best designed and colour packaging photo for engine oil packing of 1 lit, prime no 1, prime number 1, prime numbers 1, prime numbers 1 10, prime numbers 1 12, prime numbers 1 40, prime numbers 1 6, prime numbers 1 to 10, the shop on blossom street bk 1, Design only banners for No 1-5 and depending on these I will decide., Steel design based on Eurocode 1993-3-1, how to sell on amazon prime, lesson plan on weather for grade 1, find the mode. 19, 1, 17, 19, 3, 20, 5, 2, commentary on acts 19 1 20, homily on mt 18:21-19:1, reflection on matthew 18:21, 19:1, for the given table, which point lies on the residual plot? (1, 26) (2, 18.3) (3, 4.6) (4, 19), for the given table, which point lies on the residual plot?(1, 26)(2, 18.3)(3, 4.6)(4, 19)

Concernant l'employeur :
( 624 commentaires ) Bangalore, India

Nº du projet : #26603981

7 freelances font une offre moyenne de 76 $ pour ce travail


Dear sir I have more than 10 years experience in digital design using Quartus please message me so that we can discuss

%bids___i_sum_sub_32% %project_currencyDetails_sign_sub_33% AUD en 1 jour
(433 Commentaires)

Hi, I am Ibrahim, and I am a data scientist, I have both experience of more than fifteen years and completed more 150+ projects in SPSS Statistics. would love to discuss the rest in chat. Regards, Ibrahim Anjum

%bids___i_sum_sub_35% %project_currencyDetails_sign_sub_36% AUD en 3 jours
(33 Commentaires)

Greetings!, I can make the task. I am an electronic engineer with experience in design and development of embedded systems with PIC, PLD and FPGA controllers; industrial systems with Siemens, Allen-Bradley, and Schne Plus

%bids___i_sum_sub_35% %project_currencyDetails_sign_sub_36% AUD en 7 jours
(2 Commentaires)

hi, i have 4 year experience in vhdl, i read your requirement. i think i can do it, so what is ur FPGA part no or Board name? please contact me for further discussion

%bids___i_sum_sub_35% %project_currencyDetails_sign_sub_36% AUD en 7 jours
(7 Commentaires)

Hello I am new user of Freelancer.com but I have 5 years experience on digital design and VHDL. I've designed a vending machine similar to this one before. It is very easy to complete this project for me! I can imple Plus

%bids___i_sum_sub_35% %project_currencyDetails_sign_sub_36% AUD en 4 jours
(0 Commentaires)

Hi! I am Carlos, a young Systems Electronics Engineer. I am sure I can help you with this project because of my experience in this kind of designs. Some of my main skills are: • Digital systems design with VHDL. • Emb Plus

%bids___i_sum_sub_35% %project_currencyDetails_sign_sub_36% AUD en 7 jours
(0 Commentaires)

Dear Sir or Madam, I hope my proposal finds you well. Please accept my proposal for your project. I am Computer Engineer which has experience on VHDL and Verilog FPGA designs. For more information please contact me Plus

%bids___i_sum_sub_35% %project_currencyDetails_sign_sub_36% AUD en 4 jours
(0 Commentaires)