anchor.diff:        endmethod
      endinterface);
   
  +`ifdef SYNTHESIS
      interface rx_clkout = pma4.rx_clkout;
      interface tx_clkout = pma4.tx_clkout;
      method serial_tx = pma4.serial_tx;
      method serial_rx = pma4.serial_rx;
  +   interface led_rx_ready = pma4.rx_ready;
  +`else  
  +    interface rx_clkout = replicate(clk_156_25);
  +    interface tx_clkout = replicate(clk_156_25);
  +`endif
      interface rx = vRxPipeOut;
      interface tx = vTxPipeIn;
  -   interface led_rx_ready = pma4.rx_ready;
   
      interface api = vapi;
      interface switchMode = toPipeIn(switchModeFifo);
  
positive.code:           mkConnection(dtp_tx[i].dtpTxOut, pcs_tx[i].dtpTxOut);
        end
  
        // debugging
        phyRxDebug[i] <- mkSyncFIFO(4, pma4.rx_clkout[i], pma4.rx_reset[i], clk_156_25); 
        rule update_rx_debug;
  
negative.code:       vTxPipeOut[i] = toPipeOut(txFifo[i]);
  
        // Gearbox Level Loopback FIFO
        lpbkSyncFifo[i] <- mkSyncFIFO(10, clk_156_25, rst_156_25_n, rxClock);//, pma4.rx_reset[i]);
        lpbkSyncPipeOut[i] = toPipeOut(lpbkSyncFifo[i]);
        lpbkSyncPipeIn[i] = toPipeIn(lpbkSyncFifo[i]);
  
        pcs_rx[i]    <- mkEthPcsRxTop(clocked_by rxClock, reset_by rxReset);
        pcs_tx[i]    <- mkEthPcsTxTop(clocked_by clk_156_25, reset_by rst_156_25_n);
        dtp_rx[i]    <- mkDtpRxTop(clocked_by rxClock, reset_by rxReset);
        dtp_tx[i]    <- mkDtpTxTop(clocked_by clk_156_25, reset_by rst_156_25_n);
  
        dtpEventFifo[i] <- mkSyncFIFO(10, rxClock, rxReset, clk_156_25);//, rst_156_25_n);
        //dtpEventFifo[i] <- mkDtpDCFifo(pma4.rx_clkout[i], pma4.rx_reset[i], clk_156_25);//, rst_156_25_n);
        dtpEventOut[i] = toPipeOut(dtpEventFifo[i]);
        dtpEventIn[i]  = toPipeIn(dtpEventFifo[i]);
  
        dtpErrCntFifo[i] <- mkSyncFIFO(10, rxClock, rxReset, clk_156_25);//, rst_156_25_n);
        dtpErrCntOut[i] = toPipeOut(dtpErrCntFifo[i]);
        dtpErrCntIn[i]  = toPipeIn(dtpErrCntFifo[i]);
  
  