anchor.diff:  
      MatchTable#(id, depth, keySz, actionSz) ret_ifc;
   `ifdef SIMULATION
  -   ret_ifc <- mkMatchTableBluesim();
  +   ret_ifc <- mkMatchTableBluesim(name);
   `else
      ret_ifc <- mkMatchTableSynth();
   `endif
  
positive.code:    function Action matchtable_write(Bit#(id) v, Bit#(ksz) key, Bit#(vsz) data);
  endtypeclass
  
  module mkMatchTable(MatchTable#(id, depth, keySz, actionSz))
     provisos(Mul#(c__, 256, d__),
              Add#(c__, 7, TLog#(depth)),
              Log#(d__, TLog#(depth)),
  
negative.code:          readDataFifo.enq(tagged Invalid);
     endrule
  
     Reg#(Bit#(8)) fsmIndex <- mkReg(0);
  
     rule do_init (fsmIndex < fromInteger(List::length(entryList)));
        $display("insert entry ", fromInteger(List::length(entryList)));
        Bit#(keySz) key = tpl_1(entryList[fsmIndex]);
        Bit#(actionSz) v = tpl_2(entryList[fsmIndex]);
        Bit#(id) tid = 0;
        matchtable_write(tid, key, v);
        fsmIndex <= fsmIndex + 1;
        $display("finished insert entry ", fromInteger(List::length(entryList)));
     endrule
  
     rule finish_init(fsmIndex == fromInteger(List::length(entryList)));
        isInitialized <= True;
     endrule
  
     interface Server lookupPort;
  