anchor.diff:     Vector#(numPorts, DtpRx)    dtp_rx = newVector;
      Vector#(numPorts, DtpTx)    dtp_tx = newVector;
   
  +
  +`ifdef SYNTHESIS
      EthSonicPma#(numPorts)      pma4 <- mkEthSonicPma(mgmt_clk, clk_644, clk_156_25, rst_50_n, clocked_by mgmt_clk, reset_by rst_50_n);
  -
      Vector#(numPorts, ReadOnly#(Bool)) rx_ready_tx;
      Vector#(numPorts, ReadOnly#(Bool)) tx_ready_tx;
      Vector#(numPorts, ReadOnly#(Bool)) rx_ready_rx;
  
positive.code:          dtp_tx[i].tx_ready(tx_ready_tx[i]);
           dtp_tx[i].rx_ready(rx_ready_tx[i]);
           dtp_tx[i].switch_mode(switch_en_tx);
           dtp_tx[i].bsync_lock(lock_tx[i].crossed);
        endrule
        rule dtp_rx_every1;
           dtp_rx[i].rx_ready(rx_ready_rx[i]);
  
negative.code:           mkConnection(dtp_tx[i].dtpTxOut, pcs_tx[i].dtpTxOut);
        end
  
  `ifdef SYNTHESIS
        // debugging
        phyRxDebug[i] <- mkSyncFIFO(4, pma4.rx_clkout[i], pma4.rx_reset[i], clk_156_25); 
        rule update_rx_debug;
  