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)));
  -      indexpipeifc.start(indexcfg);
  +      if (timing || verbose || tagging)
  +	 indexpipeifc.start(indexcfg);
         offsetpipeA.start(offsetcfgA);
         offsetpipeB.start(offsetcfgB);
         offsetpipeC.start(offsetcfgC);
  
positive.code: 	 if(k < kk-1)
  	    controlDependenceB[k].enq(?);
  
  	 Tuple2#(UInt#(addrwidth),UInt#(addrwidth)) index <- toGet(indexpipes[k]).get();
  	 match { .unusedB, .startBBase } <- toGet(offsetpipesB[k]).get();
  
  	 int kint = fromInteger(k);
  
  	 let row = tpl_1(index);
  	 let col = tpl_2(index)+fromInteger(k);
  
  	 let startB = startBBase + startBOffset[k];
  	 
  	 lastStartBs[k] <= cycles;
  	 let interval = cycles-lastStartBs[k];
  
  	 if (timing || verbose) $display($format(fshow(interval)+fshow("    startB index=")+fshow(tuple2(row,col))
  	    +fshow(" startB=")+fshow(startB)
  	    +fshow(" k=")+fshow(kint)));
  
  	 if (verbose || verbose1) $display($format(fshow(cycles)+fshow("    sourceB[")+fshow(kint)+fshow("].start")+fshow(startB)));
  
  	 sourceB[k].start(descriptorB.pointer, pack(extend(startB>>nshift)), pack(extend(descriptorB.numColumns>>nshift)), extend(col));
  
  
negative.code:       rule finishSink;
  	 $dumpoff();
  	 // each time we write a burst of k values via sinks
  	 let b <- sinks[j].finish();
  	 let c = dotprodCount-fromInteger(kk);
  	 int jint = fromInteger(j);
  