anchor.diff:     provisos (Bits#(dtype, dataWidth));
      module mkConnection#(AxiStreamMaster#(dataWidth) from, Put#(dtype) to)(Empty);
         FIFOF#(Bit#(dataWidth)) asputfifo <- mkFIFOF();
  +`ifdef GET_PUT_WITH_CLOCKS_USE_XILINX_FIFO
  +      getProbe <- mkProbe;
  +      putProbe <- mkProbe;
  +`endif
         rule rl_ready;
   	 from.tready(pack(asputfifo.notFull));
         endrule
         rule rl_enq if (from.tvalid == 1);
  +`ifdef GET_PUT_WITH_CLOCKS_USE_XILINX_FIFO
  +	 getProbe <= from.tdata;
  +`endif
   	 asputfifo.enq(from.tdata);
         endrule
         rule rl_put;
   	 let v <- toGet(asputfifo).get();
  +`ifdef GET_PUT_WITH_CLOCKS_USE_XILINX_FIFO
  +	 putProbe <= v;
  +`endif
   	 to.put(unpack(v));
         endrule
      endmodule
  
positive.code: import FIFOF::*;
  import GetPut::*;
  import GetPutM::*;
  
  (* always_ready, always_enabled *)
  interface AxiStreamMaster#(numeric type dsz);
  
negative.code: 	 to.tvalid(pack(asgetfifo.notEmpty));
        endrule
        rule rl_deq if (to.tready == 1);
  `ifdef GET_PUT_WITH_CLOCKS_USE_XILINX_FIFO
  	 putProbe <= asgetfifo.first();
  `endif
  	 asgetfifo.deq();
        endrule
     endmodule
  