anchor.diff:  import YUV::*;
   
   interface HdmiDisplayRequest;
  -    method Action startFrameBuffer0(Int#(32) base);
  +   method Action startFrameBuffer0(Int#(32) base);
  +   method Action getTransferStats();
   endinterface
   interface HdmiDisplayIndication;
      method Action transferStarted(Bit#(32) count);
  +   method Action transferFinished(Bit#(32) count);
  +   method Action transferStats(Bit#(32) count, Bit#(32) transferCycles, Bit#(64) sumOfCycles);
   endinterface
   
   interface HdmiDisplay;
  
positive.code:             referenceReg <= tagged Valid truncate(pack(base));
  	    hdmiGen.control.setTestPattern(0);
  	endmethod
      endinterface: displayRequest
  
      interface ObjectReadClient dmaClient = memreadEngine.dmaClient;
  
negative.code: 	 vsyncFifo.enq(True);
     endrule
     Reg#(Bit#(32)) transferCount <- mkReg(0);
     Reg#(Bit#(32)) transferCycles <- mkReg(0);
     Reg#(Bit#(48)) transferSumOfCycles<- mkReg(0);
  
     rule notransfer if (referenceReg matches tagged Invalid);
        vsyncFifo.deq();
     endrule
     rule startTransfer if (referenceReg matches tagged Valid .reference);
        //memreadEngine.start(reference, 0, (1080*1920)*4, 8);
        memreadEngine.start(reference, 0, (64800)*4, 8);
        hdmiDisplayIndication.transferStarted(transferCount);
        transferCycles <= 0;
        vsyncFifo.deq();
     endrule
     rule countCycles;
        transferCycles <= transferCycles + 1;
     endrule
     rule finishTransferRule;
        let b <- memreadEngine.finish();
        transferCount <= transferCount + 1;
        transferSumOfCycles <= transferSumOfCycles + extend(transferCycles);
        hdmiDisplayIndication.transferFinished(transferCount);
     endrule
  
      rule bozobit_rule;
  