anchor.diff:     Reg#(Bool)               inited <- mkReg(False);
      FIFO#(Bit#(tsz))      comp_fifo <- mkFIFO;
      Reg#(Bit#(numTags))  comp_state <- mkReg(0);
  +   ConfigCounter#(TAdd#(tsz,1)) counter <- mkConfigCounter(fromInteger(valueOf(numTags)));
      
      let retFifo <- mkFIFO;
      let tagFifo <- mkFIFO;
  
positive.code: // CONNECTAL Libraries
  import MemTypes::*;
  import ConnectalMemory::*;
  
  interface TagGen#(numeric type numTags);
     method ActionValue#(Bit#(TLog#(numTags))) getTag;
  
negative.code:       let rv = tags[tail_ptr];
        if (!rv) begin
  	 tail_ptr <= tail_ptr+1;
  	 counter.increment(1);
  	 comp_state <= comp_state >> 1;
  	 comp_fifo.enq(tail_ptr);
        end
  