anchor.diff:          adder.request.put(tuple2(resp,temp));
       endrule
   
  -    rule storerule; // if (running);
  +    rule storerule if (running);
           let v <- toGet(lastFifo).get;
           match {.resp,.*} <- adder.response.get;
           temp <= resp;
           if (v) begin
  -            innerDone.enq(resp);
  -            running <= False;
  +            waitCount <= waitCount - 1;
  +            if (waitCount == 1) begin
  +                innerDone.enq(resp);
  +                running <= False;
  +            end
           end
       endrule
       interface sendPair = toPipeIn(dotFifo);
  
positive.code:     method Action init(Float atemp) if (!running);
          temp <= atemp;
          running <= True;
      endmethod
  endmodule
  
  
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;
  