watchall

system "echo '[] setting channels neutral'"

set t.in[0].r 0
set t.in[1].r 0
set t.in[2].r 0
set t.in[3].r 0
set t.in[4].r 0
set t.out.a 0

cycle
mode run
assert t.out.r 0

assert t.in[0].a 0
assert t.in[1].a 0
assert t.in[2].a 0
assert t.in[3].a 0
assert t.in[4].a 0



system "echo '[] setting some reqs high'"
set t.in[0].r 1
set t.in[1].r 1
set t.in[2].r 1
cycle
assert t.out.r 1

system "echo '[] receiving ack'"
set t.out.a 1
cycle
assert t.in.a 1

system "echo '[] removing first req (guess)'"
set t.in[0].r 0
cycle
assert t.out.r




# set t.in[0] 0
# set t.in[1] 0
# set t.in[2] 0
# set t.in[3] 0
# set t.in[4] 0

# system "echo '1'"

# cycle
# mode run

# # assert t.out 0


# system "echo '[] setting all low'"
# set t.in[0] 0
# set t.in[1] 0
# set t.in[2] 0
# set t.in[3] 0
# set t.in[4] 0
# cycle

# system "echo '[] setting bit 0 high'"
# set t.in[0] 1
# cycle


# system "echo '[] setting all low'"
# set t.in[0] 0
# set t.in[1] 0
# set t.in[2] 0
# set t.in[3] 0
# set t.in[4] 0
# cycle


# system "echo '[] setting bit 1 high'"
# set t.in[0] 0
# set t.in[1] 1
# cycle


# system "echo '[] setting all low'"
# set t.in[0] 0
# set t.in[1] 0
# set t.in[2] 0
# set t.in[3] 0
# set t.in[4] 0
# cycle


# system "echo '[] setting bit 2 high'"
# set t.in[1] 0
# set t.in[2] 1
# cycle


# system "echo '[] setting all low'"
# set t.in[0] 0
# set t.in[1] 0
# set t.in[2] 0
# set t.in[3] 0
# set t.in[4] 0
# cycle


# system "echo '[] setting bit 3 high'"
# set t.in[2] 0
# set t.in[3] 1
# cycle


# system "echo '[] setting all low'"
# set t.in[0] 0
# set t.in[1] 0
# set t.in[2] 0
# set t.in[3] 0
# set t.in[4] 0
# cycle

# system "echo '[] setting bit 4 high'"
# set t.in[3] 0
# set t.in[4] 1
# cycle