anchor.diff:     interface Put#(Bit#(EtherLen)) readReq;
   endinterface
   
  -interface PacketBuffer#(numeric type n);
  +interface PacketBuffer#(numeric type n, numeric type depth);
      interface PipeIn#(ByteStream#(n)) writeServer;
      interface PktReadServer#(n) readServer;
      method PktBuffDbgRec dbg;
      method Action set_verbosity (int verbosity);
   endinterface
   
  -instance SetVerbosity#(PacketBuffer#(n));
  -   function Action set_verbosity(PacketBuffer#(n) t, int verbosity);
  +instance SetVerbosity#(PacketBuffer#(n, depth));
  +   function Action set_verbosity(PacketBuffer#(n, depth) t, int verbosity);
         action
            t.set_verbosity(verbosity);
         endaction
  
positive.code:    endmethod
  endmodule
  
  `SynthBuildModule1(mkPacketBuffer, String, PacketBuffer#(8), mkPacketBuffer_8)
  `SynthBuildModule1(mkPacketBuffer, String, PacketBuffer#(16), mkPacketBuffer_16)
  `SynthBuildModule1(mkPacketBuffer, String, PacketBuffer#(64), mkPacketBuffer_64)
  
  endpackage: PacketBuffer
  
negative.code:    endrule
  
     rule enqueue_next_beat(!fifoEop.notEmpty && inPacket);
        ReqT#(n, depth) req <- toGet(incomingReqs).get;
        dbprint(3, $format("%s enqueue_next_beat ", msg, fshow(req)));
        memBuffer.portA.request.put(BRAMRequest{write:True, responseOnWrite:False,
           address:req.addr, datain:req.data});
     endrule
  
     rule commit_packet(fifoEop.notEmpty && inPacket);
        ReqT#(n, depth) req <- toGet(incomingReqs).get;
        dbprint(3, $format("%s commit_packet ", msg, fshow(req)));
        memBuffer.portA.request.put(BRAMRequest{write:True, responseOnWrite:False,
           address:req.addr, datain:req.data});
  