anchor.diff:     Vector#(K, Reg#(Bit#(32))) lastMulin <- replicateM(mkReg(0));
      Vector#(12, Reg#(Bool))   latencyReported <- replicateM(mkReg(False));
   
  +   Reg#(Bool) initialized <- mkReg(False);
  +   rule init if (!initialized);
  +      for (Integer chan = 0; chan < valueOf(K); chan = chan + 1)
  +	 accumFifos[chan].enq(unpack(0));
  +      initialized <= True;
  +   endrule
  +
   //   (* descending_urgency = "mulin,accout" *)
      rule mulin;
         let chan = chanReg;
  
positive.code:       adder.request.put(tuple2(resp,acc));
     endrule
  
     rule accout;
        let chan <- toGet(chanFifos[1]).get();
        //if (label == 0) $display("%08d label=%d accout chan=%d", cycles, label, chan);
        let last <- toGet(lastPipe).get;
        match {.acc,.*} <- adder.response.get();
        if (last)
  	 dotfifos[chan].enq(acc);
        else
  	 accumFifos[chan].enq(acc);
     endrule
  
     Vector#(K,PipeOut#(Float)) dotpipes = map(toPipeOut, dotfifos);
  
negative.code:       endrule
  
        rule sinkDone;
  	 $dumpoff();
  	 // each time we write a burst of k values via sinks
  	 //let index <- toGet(indexpipes[jj+kk+1]).get();
  	 let b <- sinks[j].vector.finish();
  