anchor.diff:     end
   
      rule dotProdValue;
  -      Tuple2#(UInt#(addrwidth),UInt#(addrwidth)) xy = xypipes[k].first;
  -      xypipes[k].deq;
  +      Tuple2#(UInt#(addrwidth),UInt#(addrwidth)) xy = indexpipes[k].first;
  +      indexpipes[k].deq;
         Vector#(K,Float) vs;
         for (Integer i = 0; i < k; i = i + 1) begin
   	 let v = fxdotprods[i].pipe.first;
  
positive.code:    MIMO#(K,N,K,Float) dfifo <- mkMIMO(mimoCfg);
     let sinkC <- mkSink(toPipeOut(dfifo));
  
     XYRangePipeIfc#(UInt#(addrwidth)) xypipeifc <- mkXYRangePipeOut();
  
     Vector#(TAdd#(K,2), PipeOut#(Tuple2#(UInt#(addrwidth),UInt#(addrwidth)))) xypipes <- mkForkVector(xypipeifc.pipe);
  
     Reg#(Bool) running <- mkReg(False);
     FIFOF#(Bool) doneFifo <- mkFIFOF();
  
negative.code:       FIFO#(UInt#(addrwidth)) startCFifo <- mkFIFO();
        FIFO#(UInt#(addrwidth))    colFifo <- mkFIFO();
        rule startDotProd1;
  	 Tuple2#(UInt#(addrwidth),UInt#(addrwidth)) xy = indexpipes[i].first;
  	 indexpipes[i].deq();
  	 
  	 let row = tpl_1(xy);
  	 let col = tpl_2(xy)+fromInteger(i);
  