anchor.diff:        endmethod
      endinterface
      method Action start(XYRangeConfig#(a) cfg) if (x >= xlimit);
  +      $display("XYRangePipe x=%d xlimit=%d xstep=%d y=%d ylimit=%d ystep=%d", cfg.xbase, cfg.xlimit, cfg.xstep, cfg.ybase, cfg.ylimit, cfg.ystep);
         x <= cfg.xbase;
         y <= cfg.ybase;
         xbase <= cfg.xbase;
  
positive.code:       Tuple2#(UInt#(addrwidth),UInt#(addrwidth)) xy = xypipes[n].first;
        xypipes[n].deq;
        Vector#(N,Float) vs;
        for (Integer i = 0; i < k; i = i + 1) begin
  	 let v = fxdotprods[i].first;
  	 fxdotprods[i].deq;
  	 let xyi = tuple2(tpl_1(xy), tpl_2(xy)+fromInteger(i));
  	 if (verbose) $display($format(fshow("dotprodvalue xy=")+fshow(xyi)+fshow(" dotprod=")+fshow(v)));
  	 vs[i] = v;
        end
        dfifo.enq(vs);
  
negative.code:    rule sinkDone;
        // each time we write a burst of k values via sinkC
        let b <- sinkC.vector.finish();
        let c = dotprodCount-fromInteger(n);
        $display($format(fshow(cycles)+fshow("    sinkDone c")+fshow(c)));
        dotprodCount <= c;
        if (c == 0) begin
  	 running <= False;
  	 doneFifo.enq(?);
  