anchor.diff:        mimo.deq(16);
         bluescope.dataIn(v, v);
      endrule
  +`endif
   
      SyncFIFOIfc#(Bit#(64)) synchronizer <- mkSyncFIFO(32, defaultClock, defaultReset, hdmi_clock);
      rule fromMemread;
  
positive.code: endinterface
  
  interface HdmiDisplay;
     interface BlueScopeRequest  bluescopeRequest;
      interface HdmiDisplayRequest displayRequest;
      interface HdmiInternalRequest internalRequest;
      interface ObjectReadClient#(64) dmaClient;
     interface ObjectWriteClient#(64) bluescopeWriteClient;
      interface HDMI#(Bit#(HdmiBits)) hdmi;
      interface XADC xadc;
  endinterface
  
  module mkHdmiDisplay#(Clock hdmi_clock,
  		      HdmiDisplayIndication hdmiDisplayIndication,
  		      HdmiInternalIndication hdmiInternalIndication,
  		      BlueScopeIndication bluescopeIndication)(HdmiDisplay);
      Clock defaultClock <- exposeCurrentClock;
      Reset defaultReset <- exposeCurrentReset;
      Reset hdmi_reset <- mkAsyncReset(2, defaultReset, hdmi_clock);
  
negative.code: `else
     HDMI#(Bit#(HdmiBits)) hdmisignals <- mkHDMI(hdmiGen.rgb888, clocked_by hdmi_clock, reset_by hdmi_reset);
  `endif   
  `ifdef HDMI_BLUESCOPE
     let bluescope <- mkSyncBlueScope(65536, bluescopeIndication, hdmi_clock, hdmi_reset, defaultClock, defaultReset);
     MIMO#(1, 16, 64, Bit#(4)) mimo <- mkMIMO(MIMOConfiguration { unguarded: False, bram_based: False }, clocked_by hdmi_clock, reset_by hdmi_reset);
     Reg#(Bool) triggered <- mkReg(False, clocked_by hdmi_clock, reset_by hdmi_reset);
     rule toGearbox if ((hdmisignals.hdmi_vsync == 1) || triggered);
  