anchor.diff:      interface PipeIn#(DotType) sendPair;
       interface PipeOut#(Float)   done;
       method Action init(Float atemp);
  +    method Action incrementWait();
   endinterface
   
   (* synthesize *)
  
positive.code: 
      rule finishProcessing;
          let v <- toGet(dotp.done).get;
          waitFinish <= waitFinish - 1;
          if (waitFinish == 1) begin
              // Write convolution result into output (image, channel, y, x)
              //  *CACCESS(outputp) = v;
              indication.outputp(outputp, v);
              fsmRunning <= False;
          end
      endrule
  
      FSM fsm <- mkFSM(seq
  
negative.code:     FloatAlu mul <- mkFloatMultiplier(defaultValue);
      Reg#(Float)    temp <- mkReg(0);
      Reg#(Bool)     running <- mkReg(False);
      Reg#(Bit#(32))  waitCount <- mkReg(0);
  
      rule dotrule;
          let v <- toGet(dotFifo).get;
  