comm reset
  assign false /drink/nickel_in
  assign false /drink/dime_in
  assign false /drink/quarter_in
  assign '0'   /drink/reset
  run 100
end comm

comm nickel
  assign true  /drink/nickel_in
  assign false /drink/dime_in
  assign false /drink/quarter_in
  assign '1'   /drink/reset
  assign '0'   /drink/clk
  run 25
  assign '1'   /drink/clk
  run 25
  assign false /drink/nickel_in
  run 25
  assign '0'   /drink/clk
  run 25
end comm

comm dime
  assign false /drink/nickel_in
  assign true  /drink/dime_in
  assign false /drink/quarter_in
  assign '1'   /drink/reset
  assign '0'   /drink/clk
  run 25
  assign '1'   /drink/clk
  run 25
  assign false /drink/dime_in
  run 25
  assign '0'   /drink/clk
  run 25
end comm

comm quarter
  assign false /drink/nickel_in
  assign false /drink/dime_in
  assign true  /drink/quarter_in
  assign '1'   /drink/reset
  assign '0'   /drink/clk
  run 25
  assign '1'   /drink/clk
  run 25
  assign false /drink/quarter_in
  run 25
  assign '0'   /drink/clk
  run 25
end comm

comm clock
  assign false /drink/nickel_in
  assign false /drink/dime_in
  assign false /drink/quarter_in
  assign '1'   /drink/reset
  assign '0'   /drink/clk
  run 25
  assign '1'   /drink/clk
  run 50
  assign '0'   /drink/clk
  run 25
end comm

comm show_drink
  open -p1,1,35,5 Drink-FSM
  echo Inserted:> Drink-FSM(1,4)
  echo Received:> Drink-FSM(3,4)
  monitor event /drink/clk
    edit $last_name
    cd /drink
    if (clk = '1') then
      if (next_state = idle) then
        echo ^ 0^>Drink-FSM(1,14)
      else
      if (next_state = five) then
        echo ^ 5^>Drink-FSM(1,14)
      else
      if (next_state = ten) then
        echo ^10^>Drink-FSM(1,14)
      else
      if (next_state = fifteen) then
        echo ^15^>Drink-FSM(1,14)
      else
      if (next_state = twenty) then
        echo ^20^>Drink-FSM(1,14)
      else
      if (next_state = twenty_five) then
        echo ^25^>Drink-FSM(1,14)
      else
      if (next_state = thirty) then
        echo ^30^>Drink-FSM(1,14)
      else
      if (next_state = owe_dime) then
        echo ^+0^>Drink-FSM(1,14)
      end if
      end if
      end if
      end if
      end if
      end if
      end if
      end if
      if /drink/nickel_out then
        echo ^ 5^>Drink-FSM(3,14)
      else
        echo ^  ^>Drink-FSM(3,14)
      end if
      if /drink/dime_out then
        echo ^10^>Drink-FSM(4,14)
      else
        echo ^  ^>Drink-FSM(4,14)
      end if
      if /drink/dispense then
        echo DRINK>Drink-FSM(3,20)
      else
        echo ^     ^>Drink-FSM(3,20)
      end if
    end if
  end
end comm


<div align="center"><br /><script type="text/javascript"><!--
google_ad_client = "pub-7293844627074885";
//468x60, Created at 07. 11. 25
google_ad_slot = "8619794253";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />&nbsp;</div>