anchor.diff:        if (verbose) $display("mm pointerA=%d pointerB=%d pointerC=%d\n", pointerA, pointerB, pointerC);
         if (verbose) $display("mm.start ra=%d ca=%d rb=%d cb=%d dotprodCount=%d", numRowsA, numColumnsA, numRowsB, numColumnsB, dotprodCount);
         if (verbose) $display($format(fshow("mm.start ")+fshow(indexcfg)));
  -      if (timing || verbose || tagging)
  -	 indexpipeifc.start(indexcfg);
  +      indexpipeifc.start(indexcfg);
         offsetpipeA.start(offsetcfgA);
         offsetpipeB.start(offsetcfgB);
         offsetpipeC.start(offsetcfgC);
  
positive.code:    
     zipWithM(mkConnection, fxpipes, map(getRowColSinkPipe, sinks));
     
     XYRangePipeIfc#(UInt#(addrwidth)) indexpipeifc;
     XYRangePipeIfc#(UInt#(addrwidth)) offsetpipeA <- mkXYRangePipeOut();
     XYRangePipeIfc#(UInt#(addrwidth)) offsetpipeB <- mkXYRangePipeOut();
     XYRangePipeIfc#(UInt#(addrwidth)) offsetpipeC <- mkXYRangePipeOut();
  
     Vector#(TAdd#(J,K), PipeOut#(Tuple2#(UInt#(addrwidth),UInt#(addrwidth)))) indexpipes;
     if (timing || verbose || tagging) begin
        indexpipeifc <- mkXYRangePipeOut();
        indexpipes <- mkForkVector(indexpipeifc.pipe);
     end
     Vector#(J, PipeOut#(Tuple2#(UInt#(addrwidth),UInt#(addrwidth))))        offsetpipesA <- mkForkVector(offsetpipeA.pipe);
     Vector#(K, PipeOut#(Tuple2#(UInt#(addrwidth),UInt#(addrwidth))))        offsetpipesB <- mkForkVector(offsetpipeB.pipe);
     Vector#(J, PipeOut#(Tuple2#(UInt#(addrwidth),UInt#(addrwidth))))        offsetpipesC <- mkForkVector(offsetpipeC.pipe);
  
negative.code: 	 if(j < jj-1)
  	    controlDependenceA[j].enq(?);
  	 
  	 Tuple2#(UInt#(addrwidth),UInt#(addrwidth)) index <- toGet(indexpipes[j+kk]).get();
  	 
  	 let row = tpl_1(index)+fromInteger(j);
  	 let col = tpl_2(index);
  	 
  	 match { .startABase, .unusedA } <- toGet(offsetpipesA[j]).get();
  	 match { .startCBase, .offsetC } <- toGet(offsetpipesC[j]).get();
  	 let startA = startABase + startAOffset[j];
  	 let startC = startCBase + startCOffset[j] + offsetC;
  	 
  	 int jint = fromInteger(j);
  	 if (timing || verbose) $display($format(fshow(cycles)+fshow("    start A index=")+fshow(tuple2(row,col))
  						 +fshow(" startA=")+fshow(startA)
  						 +fshow(" startC=")+fshow(startC)
  						 +fshow(" j=")+fshow(jint)));
  	 
  	 sourceA[j].start(descriptorA.pointer, pack(extend(startA>>nshift)), pack(extend(descriptorA.numColumns>>nshift)), extend(row));
  	 if (verbose || verbose1) $display($format(fshow(cycles)+fshow("    sourceA[")+fshow(jint)+fshow("].start")+fshow(startA)));
  	 sinks[j].start(descriptorC.pointer, pack(extend(startC>>nshift)), fromInteger(kk/n));
  