aboutsummaryrefslogtreecommitdiff
path: root/test/chisel3/VendingMachine.fir
blob: 39723b05e8d217392ddf6b7a388c2cd58196774b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
; RUN: firrtl -i %s -o %s.v -X verilog -p c | tee %s.out | FileCheck %s
;CHECK: Done!

circuit VendingMachine : 
  module VendingMachine : 
    output valid : UInt<1>
    input nickel : UInt<1>
    input dime : UInt<1>
    
    reg state : UInt<3>
    on-reset state := UInt<3>(0)
    node T_22 = eq(state, UInt<3>(0))
    when T_22 : 
      when nickel : state := UInt<3>(1)
      when dime : state := UInt<3>(2)
    node T_23 = eq(state, UInt<3>(1))
    when T_23 : 
      when nickel : state := UInt<3>(2)
      when dime : state := UInt<3>(3)
    node T_24 = eq(state, UInt<3>(2))
    when T_24 : 
      when nickel : state := UInt<3>(3)
      when dime : state := UInt<3>(4)
    node T_25 = eq(state, UInt<3>(3))
    when T_25 : 
      when nickel : state := UInt<3>(4)
      when dime : state := UInt<3>(4)
    node T_26 = eq(state, UInt<3>(4))
    when T_26 : state := UInt<3>(0)
    node T_27 = eq(state, UInt<3>(4))
    valid := T_27