anchor.diff:  
      Reg#(Bit#(8))  lwrite_port <- mkReg(0);
      Reg#(Bit#(53)) lwrite_timestamp <- mkReg(0);
  -   FIFOF#(void)    lwrite_cf <- mkSizedFIFOF(8);
  +   FIFOF#(BufData) lwrite_cf <- mkSizedFIFOF(8);
   
      Reg#(Bit#(8))  lread_port <- mkReg(0);
      FIFOF#(void)   lread_cf <- mkSizedFIFOF(8);
  
positive.code:       timestamp_reg <= v;
     endrule
  
     rule log_from_host (lwrite_cf.notEmpty);
        let v <- lwrite_cf.first;
        if (fromHostFifo[v.port_no].notFull) begin
           fromHostFifo[v.port_no].enq(truncate(v.data));
           lwrite_cf.deq;
        end
     endrule
  
     Probe#(Bit#(8))  debug_port_no <- mkProbe();
     Probe#(Bit#(53)) debug_host_timestamp <- mkProbe();
  
negative.code: 
  interface SonicUserRequest;
     method Action read_timestamp_req(Bit#(8) cmd);
     method Action log_write(Bit#(8) port_no, Bit#(64) local_cnt);
     method Action log_read_req(Bit#(8) port_no);
  endinterface
  