anchor.diff:     BlueScopeEventPIOIndicationProxy blueScopeEventPIOIndicationProxy <- mkBlueScopeEventPIOIndicationProxy(BlueScopeEventPIOIndication);
      BlueScopeEventPIOControl#(32) bs <- mkBlueScopeEventPIO(`BlueScopeEventPIOSampleLength, blueScopeEventPIOIndicationProxy.ifc);
      BlueScopeEventPIORequestWrapper blueScopeEventPIORequestWrapper <- mkBlueScopeEventPIORequestWrapper(BlueScopeEventPIORequest,bs.requestIfc);
  +
  +`ifdef USE_FMC_I2C1
  +   Clock mainclock = host.ps7.fclkclk[0];
  +   Reset mainreset = host.ps7.fclkreset[0];
  +   let tscl1 <- mkIOBUF(~host.ps7.i2c[1].scltn, host.ps7.i2c[1].sclo, clocked_by mainclock, reset_by mainreset);
  +   let tsda1 <- mkIOBUF(~host.ps7.i2c[1].sdatn, host.ps7.i2c[1].sdao, clocked_by mainclock, reset_by mainreset);
  +   rule sdai1;
  +      host.ps7.i2c[1].sdai(tsda1.o);
  +      host.ps7.i2c[1].scli(tscl1.o);
  +   endrule
  +   rule watchi2c;
  +      let a = host.ps7.i2c[1].sclo();
  +      let b = host.ps7.i2c[1].scltn();
  +      let c = host.ps7.i2c[1].sdao();
  +      let d = host.ps7.i2c[1].sdatn();
  +      bs.bse.dataIn({a, b, tscl1.o, c, d, tsda1.o, 0});
  +   endrule
  +`endif
   
      FMComms1IndicationProxy fmcomms1IndicationProxy <- mkFMComms1IndicationProxy(FMComms1Indication);
      FMComms1 fmcomms1 <- mkFMComms1(fmcomms1IndicationProxy.ifc, dac.dac, adc.adc);
  
positive.code: import MMURequest::*;
  import MemServerIndication::*;
  import MMUIndication::*;
  
  // defined by user
  import XilinxCells::*;
  import ConnectalXilinxCells::*;
  import BlueScopeEventPIO::*;
  
  import FMComms1ADC::*;
  
negative.code:       ref_clk_wire <= ref_clk_as_bit.o();
     endrule
  
     
     DiffOut ref_clk <- mkxOBUFDS(ref_clk_wire);
  
     FMComms1ADC adc <- mkFMComms1ADC();
  