anchor.diff:  	 let b <- sourceB[k].finish();
         endrule
      end
  -   Vector#(J, FIFO#(void)) foo <- replicateM(mkFIFO);
  +   Vector#(J, FIFO#(void)) controlDependenceA <- replicateM(mkFIFO);
      for (Integer j = 0; j < jj; j = j + 1) begin
   
         int jint = fromInteger(j);
  
positive.code:       rule startSourceAndSink;
  	 
  	 if(j > 0)
  	    foo[j-1].deq;
  	 if(j < jj-1)
  	    foo[j].enq(?);
  	 
  	 Tuple2#(UInt#(addrwidth),UInt#(addrwidth)) index <- toGet(indexpipes[j+kk]).get();
  	 
  
negative.code:    Vector#(K, Reg#(UInt#(addrwidth))) startBOffset <- replicateM(mkReg(0));
     Vector#(J, Reg#(UInt#(addrwidth))) startCOffset <- replicateM(mkReg(0));
  
     Vector#(K, FIFO#(void)) controlDependenceB <- replicateM(mkFIFO);
     for (Integer k = 0; k < kk; k = k + 1) begin
        rule startSourceB;
  
  	 if(k > 0)
  	    controlDependenceB[k-1].deq;
  	 if(k < kk-1)
  	    controlDependenceB[k].enq(?);
  
  	 Tuple2#(UInt#(addrwidth),UInt#(addrwidth)) index <- toGet(indexpipes[k]).get();
  	 match { .unusedB, .startBBase } <- toGet(offsetpipesB[k]).get();
  