anchor.diff:  	    resultFifos[i].enq(vi);
   	    if (verbose) $display(fshow("label=")+fshow(label)+fshow(" isLast=")+fshow(isLast)+fshow(" mul=") + fshow(vi));
   	 end
  -      end
  -   endrule
  +      endrule
  +   end
   
      Vector#(N, PipeOut#(Float)) resultPipes = map(toPipeOut, resultFifos);
      PipeOut#(Vector#(N,Float)) resultPipe <- mkJoinVector(id, resultPipes);
  
positive.code: 	    accum = tagged Valid accumFifo[i].first();
  	    accumFifo[i].deq();
  	 end
              macs[i].request.put(tuple4(accum, x, y, defaultValue));
  	 if (verbose) $display($format(fshow("label=")+fshow(label)+fshow(" dotprod x=") + fshow(x) + fshow(" y=") + fshow(y)
  				       + fshow(" isFirst=") + fshow(isFirst) + fshow(" accum=")+fshow(pack(accum))));
        end
     endrule
  
     rule macout;
        let isLast = lastFifo.first();
        lastFifo.deq();
        for (Integer i = 0; i < valueOf(N); i = i + 1) begin
  	 Float vi;
  	 let resp <- macs[i].response.get();
  	 vi = tpl_1(resp);
  
negative.code: 	    let avec = tpl_1(tpl);
  	    let bvec = tpl_2(tpl);
  	    abfifos[i].enq(tuple3(isFirst,avec[i], bvec[i]));
  	    lastFifos[i].enq(isLast);
  	 end
        endmethod
     endinterface : request
     interface PipeOut pipe = dotpipe;
  