anchor.diff:     FIFOF#(Float)     gFifo <- mkSizedFIFOF(kk);
      Reg#(Bit#(16))  lastCnt <- mkReg(0);
      Reg#(Bit#(16))gatherCnt <- mkReg(0);
  +   Reg#(Bool) gather_phase <- mkReg(0);
  +   //invariant: gather_phase = lastCnt == fromInteger(kk);
   
      FIFOF#(Tuple2#(Bool,Bool))    flFifo <- mkSizedFIFOF(ub_MulLat);
      Vector#(K,FIFOF#(MmToken))    dotfifos <- replicateM(mkFIFOF1);
  
positive.code:       adder.request.put(tuple2(resp,acc));
        if(last) begin
  	 lastCnt <= lastCnt+1;
        end
  `ifdef TAGGED_TOKENS
        let row = rowReg;
  
negative.code:    Reg#(Bit#(32)) lastGather <- mkReg(0);
     Reg#(Bit#(32)) macs <- mkReg(0);
     
     
     (* fire_when_enabled *)
     rule connect_adder_buffer;
  