Vending machine
William Sandqvist william@kth.se
Vending machine A design-example by Ingo Sander William Sandqvist - - PowerPoint PPT Presentation
Vending machine A design-example by Ingo Sander William Sandqvist william@kth.se System Control We will design the block System Control COIN_PRESENT DROP COIN DROP BOTTLE RECEIVER GT_1_EURO DROP_READY SYSTEM EQ_1_EURO CONTROL
William Sandqvist william@kth.se
COIN RECEIVER
COIN_PRESENT GT_1_EURO EQ_1_EURO LT_1_EURO DEC_ACC CLR_ACC
SYSTEM CONTROL
DROP DROP_READY CHANGER_READY RETURN_10_CENT
DROP BOTTLE COIN RETURN
William Sandqvist william@kth.se
ACCUMU- LATOR
COIN RECEIVER
COIN_PRESENT GT_1_EURO EQ_1_EURO LT_1_EURO DEC_ACC CLR_ACC
SYSTEM CONTROL
William Sandqvist william@kth.se
ACCUMU- LATOR
A ACCUMULATOR counts up the amount of paid coins.
indicated by the signals GT_1_EURO, EQ_1_EURO, LT_1_EURO.
reduce the amount by 10 cents, or reset the ACCUMULATOR.
William Sandqvist william@kth.se
SYSTEM CONTROL
CHANGER_READY RETURN_10_CENT
COIN RETURN
William Sandqvist william@kth.se
SYSTEM CONTROL
DROP DROP_READY
DROP BOTTLE
COIN RECEIVER
COIN_PRESENT GT_1_EURO EQ_1_EURO LT_1_EURO DEC_ACC CLR_ACC
SYSTEM CONTROL
DROP DROP_READY CHANGER_READY RETURN_10_CENT
DROP BOTTLE COIN RETURN
for several clock periods:
COIN_PRESENT ( active for several clockperiods after the coin is inserted ) DROP_READY ( active for several clockperiods at bottle ejection ) CHANGER_READY ( inactive for several clockperiods at coin ejection )
William Sandqvist william@kth.se NEXT STATE DECODER STATE REGISTER OUTPUT DECODER State
Clk
Input- signals Output- signals
William Sandqvist william@kth.se
Reset Myntinkast registrerat? Summa? Mata ut flaskan Nollställ summan Retur 10 Cent Nej Ja Sum < 1€ Sum= 1€ Sum > 1€ Minska summan
– 10 Cent, 50 Cent, 1 Euro
– 10 Cent
– 1 Euro
no yes
(a) (b) (c) (d) (e) (f) (g) READY CHANGER _ CENT RETURN _ 10 _ READY CHANGER _ EURO GT _ 1 _ PRESENT COIN _ PRESENT COIN _ PRESENT COIN _ PRESENT COIN _ EURO LT _ 1 _ EURO EQ _ 1 _ READY DROP _ DROP READY DROP _ ACC CLR _ ACC DEC _
(a) Wait for coin input (b) Register coin? (c) Coin is registered (3 cases) (d) Eject bottle (e) Reset sum (f) Return 10 Cent (g) Decrease sum 10 Cent
William Sandqvist william@kth.se
William Sandqvist william@kth.se
D D D Next State Decoder
COIN_PRESENT LT_I_EURO EQ_I_EURO GT_I_EURO DROP_READY CHANGER_READY A B C DA DB DC A B C
Output Decoder
DROP CLR_ACC DEC_ACC Clk Clk Clk RETURN_I0_CENT
William Sandqvist william@kth.se
AB 00 01 11 10 C a Ø d f 1 b c e g
(Ø = don’t care)
(a) (b) (c) (d) (e) (f) (g) READY CHANGER _ CENT RETURN _ 10 _ READY CHANGER _ EURO GT _ 1 _ PRESENT COIN _ PRESENT COIN _ PRESENT COIN _ PRESENT COIN _ EURO LT _ 1 _ EURO EQ _ 1 _ READY DROP _ DROP READY DROP _ ACC CLR _ ACC DEC _ 000
001
011 100 110 111 101 State variable ABC, eg. in state (c) is A = 0, B = 1 and C = 1 C B A
AB 00 01 11 10 C a Ø d f 1 b c e g (Ø = don’t care)
William Sandqvist william@kth.se
William Sandqvist william@kth.se
A+ DA AB 00 01 11 10 C Ø 1 1 1 EQ + GT
Variable-Entered Mapping can be helpful when you need Karnaugh diagrams with many
William Sandqvist william@kth.se
A+ DA AB 00 01 11 10 C Ø 1 1 1 EQ + GT
EQ : EQ_1_EURO GT : GT_1_EURO C A GT B A EQ B A D A
A
⋅ + ⋅ ⋅ + ⋅ ⋅ = =
+
William Sandqvist william@kth.se
B+ DB AB 00 01 11 10 C Ø 1 1 CP EQ 1
EQ : EQ_1_EURO CP : COIN_PRESENT C B A CP C B C B EQ B A D B
B
⋅ ⋅ + ⋅ ⋅ + ⋅ + ⋅ ⋅ = =
+
William Sandqvist william@kth.se
C+ DC AB 00 01 11 10 C CP Ø DR CR 1 1 1
CP : COIN_PRESENT DR: DROP_READY CR: CHANGER_READY C B CR B A DR C B CP C A D C
C
⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ = =
+
William Sandqvist william@kth.se
C B A ACC DEC C B A CENT RETURN ABC ACC CLR C AB DROP = = = = _ _ 10 _ _
William Sandqvist william@kth.se
William Sandqvist william@kth.se
William Sandqvist william@kth.se
AB 00 01 11 10 C a Ø d f 1 b c e g
ABC
) 010 ( = Φ
GT EQ GT EQ A C A GT B A EQ B A A
ABC
+ = ⋅ + ⋅ ⋅ + ⋅ ⋅ = ⇒ ⋅ + ⋅ ⋅ + ⋅ ⋅ =
+ +
1 1 1 1 1 ) 010 ( e c d C B A , , , 111 , 011 , 110 , 010 1 Φ → = − − =
+ + +
Φ
1 ... 1 1 1 1 ) 010 ( = + ⋅ + ⋅ ⋅ = ⇒ ⋅ ⋅ + ⋅ ⋅ + ⋅ + ⋅ ⋅ =
+ +
EQ B C B A CP C B C B EQ B A B
ABC
DR CP CR DR CP C C B CR B A DR C B CP C A C
ABC
+ = ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ = ⇒ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ =
+ +
1 1 1 1 ) 010 (
William Sandqvist william@kth.se
e c d C B A , , , 111 , 011 , 110 , 010 1 Φ → = − − =
+ + +
Φ
RESET-generator
William Sandqvist william@kth.se