anchor.diff:        endinterface);
       mkConnectionWithClocks(dmaReadBuffer.dmaServer.readData, sink, defaultClock, defaultReset, hdmi_clock, hdmi_reset);
   
  -    rule vsyncrule if (vsyncPulse.pulse() && referenceReg >= 0);
  +    rule vsyncrule if (vsyncPulse.pulse() &&& referenceReg matches tagged Valid .reference);
          streamRdOff <= 0;
       endrule
   
  
positive.code:     Reg#(Bit#(8)) segmentIndexReg <- mkReg(0);
      Reg#(Bit#(24)) segmentOffsetReg <- mkReg(0);
  
      Reg#(ObjectPointer) referenceReg <- mkReg(-1);
      Reg#(Bit#(40)) streamRdOff <- mkReg(0);
  
      HdmiGenerator hdmiGen <- mkHdmiGenerator(defaultClock, defaultReset,
  					     vsyncPulse, hdmiInternalIndication, clocked_by hdmi_clock, reset_by hdmi_reset);
     
      DmaReadBuffer#(64, 1) dmaReadBuffer <- mkDmaReadBuffer();
      rule readReq if(referenceReg >= 0);
          streamRdOff <= streamRdOff + 16*8;
          dmaReadBuffer.dmaServer.readReq.put(ObjectRequest {pointer: referenceReg, offset: streamRdOff, burstLen: 16*8, tag: 0});
      endrule
     Put#(ObjectData#(64)) sink = (interface Put;
        method Action put(ObjectData#(64) dmadata);
  
negative.code:     interface HdmiControlRequest controlRequest;
  	method Action startFrameBuffer0(Int#(32) base);
  	    $display("startFrameBuffer %h", base);
              referenceReg <= tagged Valid truncate(pack(base));
  	    hdmiGen.control.setTestPattern(0);
  	endmethod
      endinterface: controlRequest
  