#skip #ship alu3 : Alu3 #ship lut3 : Lut3 #ship bitfifo : BitFifo #ship debug : Debug #ship fifo : Fifo #ship rotator : Rotator #expect -66848683 #expect 18682 // 0: 100100100111110000000 // sel 011110100001001000000 // 1: 111000101000011000011 // r: 111000100110111000000 bitfifo.in: deliver; // deliver a junk word set word= 10000; set ilc=37; deliver; // deliver it 37 times (once per bit) set word= 0; set ilc=38; deliver; // deliver it 37 times // insert bits in lsb order bitfifo.inOp: set word= BitFifo.inOp[lsbFirst,take=37]; set ilc=*; deliver; // toss out 37 bits, take one, repeat. sign extend the result bitfifo.outOp: set word= BitFifo.outOp[drop=37,take=1,signExtend]; set ilc=*; deliver; bitfifo.out: set ilc=*; recv token, take, send to lut3.in2; lut3.in2: set ilc=4; send token to bitfifo.out; set ilc=63; take, deliver, send token to bitfifo.out; set ilc=11; take, deliver, send token to bitfifo.out; // mux on second input lut3.inLut: set word= 226; set ilc=*; deliver; lut3.in1: set word= 18683; set ilc=37; deliver; set word= 0; set ilc=37; deliver; lut3.in3: set word= 12000; set ilc=37; deliver; set word= 0; set ilc=37; deliver; lut3.out: set ilc=*; recv token, take, send to alu3.in2; alu3.in1: set word= 0; deliver; set ilc=*; take, deliver; alu3.in2: send token to lut3.out; set ilc=*; take, deliver, send token to lut3.out; alu3.in3: set word= 0; deliver; set ilc=*; take, deliver; alu3.outBits: set ilc=*; take, send to debug.in; alu3.out1: set ilc=*; take, send to alu3.in1; alu3.out2: set ilc=*; take, send to alu3.in3; debug.in: set ilc=*; take, deliver;