#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 literal 10000; load repeat counter with 37; deliver; // deliver it 37 times (once per bit) literal 0; load repeat counter with 38; deliver; // deliver it 37 times // insert bits in lsb order bitfifo.inOp: literal BitFifo.inOp[lsbFirst,take=37]; [*] deliver; // toss out 37 bits, take one, repeat. sign extend the result bitfifo.outOp: literal BitFifo.outOp[drop=37,take=1,signExtend]; [*] deliver; bitfifo.out: [*] wait, take, sendto lut3.in2; lut3.in2: load repeat counter with 4; notify bitfifo.out; load repeat counter with 63; take, deliver, notify bitfifo.out; load repeat counter with 11; take, deliver, notify bitfifo.out; // mux on second input lut3.inLut: literal 226; [*] deliver; lut3.in1: literal 18683; load repeat counter with 37; deliver; literal 0; load repeat counter with 37; deliver; lut3.in3: literal 12000; load repeat counter with 37; deliver; literal 0; load repeat counter with 37; deliver; lut3.out: [*] wait, take, sendto alu3.in2; alu3.in1: literal 0; deliver; [*] take, deliver; alu3.in2: notify lut3.out; [*] take, deliver, notify lut3.out; alu3.in3: literal 0; deliver; [*] take, deliver; alu3.outBits: [*] take, sendto debug.in; alu3.out1: [*] take, sendto alu3.in1; alu3.out2: [*] take, sendto alu3.in3; debug.in: [*] take, deliver;