anchor.diff:     Reg#(a) xstep <- mkReg(0);
      // inclusive limit
      Reg#(a) xlimit <- mkReg(0);
  -   Reg#(a) xdown <- mkReg(0);
      Reg#(Bool) first <- mkReg(False);
      Reg#(Bool) last <- mkReg(False);
      Reg#(Bool) idle <- mkReg(True);
  
positive.code:       xbase <= cfg.xbase;
        xstep <= cfg.xstep;
        xlimit <= cfg.xlimit;
        xdown <= cfg.xlimit - cfg.xbase;
  
        first <= True;
        last <= (cfg.xbase+cfg.xstep >= cfg.xlimit);
  
negative.code: 	 countReg <= countReg + 1;
  	 x <= x + xstep;
  	 first <= False;
  	 last <= (x + xstep*2 >= xlimit);
  	 idle <= last;
        endmethod
        method Bool notEmpty();
  	 return !idle;
        endmethod
     endinterface
     interface PipeOut ivpipe;
  