watchall set e.out[0].a 0 set e.out[1].a 0 set e.out[2].a 0 set e.out[3].a 0 set e.out[4].a 0 set e.out[5].a 0 set e.out[6].a 0 set e.out[7].a 0 cycle set e.dly_cfg[0] 0 set e.dly_cfg[1] 0 set e.dly_cfg[2] 0 set e.dly_cfg[3] 0 set e.hs_en 1 set e.ack_disable 0 set-qdi-channel-neutral "e.in" 3 set Reset 1 cycle mode run system "echo '[] Set reset 0'" status X set Reset 0 cycle system "echo '[] Sending in a 7 packet'" set-qdi-channel-valid "e.in" 3 7 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 1 assert e.in.a 1 assert e.in.v 1 system "echo '[] Removing input'" set-qdi-channel-neutral "e.in" 3 system "echo '[] Synapse [7] gives ack'" set e.out[7].a 1 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 0 assert e.in.a 0 assert e.in.v 0 set e.out[0].a 0 set e.out[1].a 0 set e.out[2].a 0 set e.out[3].a 0 set e.out[4].a 0 set e.out[5].a 0 set e.out[6].a 0 set e.out[7].a 0 cycle system "echo '[] Sending in a 5 packet'" set-qdi-channel-valid "e.in" 3 5 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 1 assert e.out[6].r 0 assert e.out[7].r 0 assert e.in.a 1 assert e.in.v 1 system "echo '[] Removing input'" set-qdi-channel-neutral "e.in" 3 system "echo '[] Synapse [5] gives ack'" set e.out[5].a 1 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 0 assert e.in.a 0 assert e.in.v 0 set e.out[0].a 0 set e.out[1].a 0 set e.out[2].a 0 set e.out[3].a 0 set e.out[4].a 0 set e.out[5].a 0 set e.out[6].a 0 set e.out[7].a 0 cycle system "echo '[] Sending in a 1 packet'" set-qdi-channel-valid "e.in" 3 1 cycle assert e.out[0].r 0 assert e.out[1].r 1 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 0 assert e.in.a 1 assert e.in.v 1 system "echo '[] Synapse [1] gives ack'" set e.out[1].a 1 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 0 set e.out[0].a 0 set e.out[1].a 0 set e.out[2].a 0 set e.out[3].a 0 set e.out[4].a 0 set e.out[5].a 0 set e.out[6].a 0 set e.out[7].a 0 cycle assert e.in.a 1 assert e.in.v 1 system "echo '[] Removing input, enabling delays'" set-qdi-channel-neutral "e.in" 3 cycle assert e.in.a 0 assert e.in.v 0 system "echo '[] Enabling delays'" cycle set e.dly_cfg[0] 1 set e.dly_cfg[1] 1 set e.dly_cfg[2] 1 set e.dly_cfg[3] 1 system "echo '[] Sending in a 7 packet, with delays'" set-qdi-channel-valid "e.in" 3 7 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 1 assert e.in.a 1 assert e.in.v 1 system "echo '[] Removing input'" set-qdi-channel-neutral "e.in" 3 system "echo '[] Synapse [7] gives ack'" set e.out[7].a 1 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 0 assert e.in.a 0 assert e.in.v 0 set e.out[0].a 0 set e.out[1].a 0 set e.out[2].a 0 set e.out[3].a 0 set e.out[4].a 0 set e.out[5].a 0 set e.out[6].a 0 set e.out[7].a 0 cycle system "echo '[] Sending in a 5 packet'" set-qdi-channel-valid "e.in" 3 5 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 1 assert e.out[6].r 0 assert e.out[7].r 0 assert e.in.a 1 assert e.in.v 1 system "echo '[] Removing input'" set-qdi-channel-neutral "e.in" 3 system "echo '[] Synapse [5] gives ack'" set e.out[5].a 1 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 0 assert e.in.a 0 assert e.in.v 0 set e.out[0].a 0 set e.out[1].a 0 set e.out[2].a 0 set e.out[3].a 0 set e.out[4].a 0 set e.out[5].a 0 set e.out[6].a 0 set e.out[7].a 0 cycle system "echo '[] Sending in a 1 packet'" set-qdi-channel-valid "e.in" 3 1 cycle assert e.out[0].r 0 assert e.out[1].r 1 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 0 assert e.in.a 1 assert e.in.v 1 system "echo '[] Synapse [1] gives ack'" set e.out[1].a 1 cycle assert e.out[0].r 0 assert e.out[1].r 0 assert e.out[2].r 0 assert e.out[3].r 0 assert e.out[4].r 0 assert e.out[5].r 0 assert e.out[6].r 0 assert e.out[7].r 0 set e.out[0].a 0 set e.out[1].a 0 set e.out[2].a 0 set e.out[3].a 0 set e.out[4].a 0 set e.out[5].a 0 set e.out[6].a 0 set e.out[7].a 0 cycle assert e.in.a 1 assert e.in.v 1 system "echo '[] Removing input, disabling handshaking'" set-qdi-channel-neutral "e.in" 3 cycle assert e.in.a 0 assert e.in.v 0 set e.hs_en 0 cycle system "echo '[] Sending in a 0, handshaking disabled'" set-qdi-channel-valid "e.in" 3 0 cycle assert e.in.a 1 assert e.in.v 1 system "echo '[] Removing input'" set-qdi-channel-neutral "e.in" 3 cycle assert e.in.a 0 assert e.in.v 0 system "echo '[] Sending in a 7, handshaking disabled'" set-qdi-channel-valid "e.in" 3 7 cycle assert e.in.a 1 assert e.in.v 1 system "echo '[] Removing input'" set-qdi-channel-neutral "e.in" 3 cycle assert e.in.a 0 assert e.in.v 0 system "echo '[] Sending in a 5, handshaking disabled'" set-qdi-channel-valid "e.in" 3 5 cycle assert e.in.a 1 assert e.in.v 1 system "echo '[] Removing input'" set-qdi-channel-neutral "e.in" 3 cycle assert e.in.a 0 assert e.in.v 0