anchor.diff:           pktCount <= 1;
            infiniteLoop <= True;
         end
  -      $display("Pktgen:: start %h %h", pc, ipg);
  +      if (verbose) $display("Pktgen:: start %h %h", pc, ipg);
      endmethod
      method Action stop();
         infiniteLoop <= False;
  
positive.code:       interface Put writeData;
           method Action put (EtherData d);
              buff.writeServer.writeData.put(d);
              $display("Pktgen:: write data", fshow(d));
              if (d.eop) begin
                 traceLen <= traceLen + 1;
              end
  
negative.code:    rule cleanup if (pktCount==0 && traceLen>0 && started);
        let pktLen <- buff.readServer.readLen.get;
        buff.readServer.readReq.put(EtherReq{len: pktLen});
        if (verbose) $display("Pktgen:: drain buffer");
     endrule
  
     rule drainBufferPayload if (pktCount==0 && traceLen>0 && started);
        let data <- buff.readServer.readData.get;
        // do nothing
        if (verbose) $display("Pktgen:: drain buffer payload");
        if (data.eop) begin
           traceLen <= traceLen - 1;
        end
  