anchor.diff:        end
   
         chanFifos[0].enq(chan);
  -      chanFifos[1].enq(chan);
         chanReg <= (chan + 1);
         let a <- toGet(aFunnel).get();
         let b <- toGet(bFunnel).get();
   
         let first <- toGet(firstPipe).get();
  -      if (first)
  -	 accumFifos[chan].enq(unpack(0));
         //if (label == 0) $display("%08d label=%d mulin chan=%d first=%d", cycles, label, chan, first);
         mul.request.put(tuple2(a, b));
      endrule
   
      rule mulout;
         let chan <- toGet(chanFifos[0]).get();
  +      chanFifos[1].enq(chan);
         //if (label == 0) $display("%08d label=%d mulout chan=%d", cycles, label, chan);
         match {.resp,.*} <- mul.response.get();
         let acc <- toGet(accumFifos[chan]).get();
  
positive.code:    Vector#(K, Reg#(Bit#(32))) lastMulin <- replicateM(mkReg(0));
     Vector#(12, Reg#(Bool))   latencyReported <- replicateM(mkReg(False));
  
  //   (* descending_urgency = "mulin,accout" *)
     rule mulin;
        let chan = chanReg;
  
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();
  