anchor.diff:  endmodule
   `endif //FLUTE
   
  -instance ToAxi4SlaveBits#(Axi4SlaveLiteBits#(12,32), TrimodemacbviS_axi);
  -   function Axi4SlaveLiteBits#(12,32) toAxi4SlaveBits(TrimodemacbviS_axi s);
  +instance ToAxi4SlaveBits#(Axi4SlaveLiteBits#(12,32), TrimodemacS_axi);
  +   function Axi4SlaveLiteBits#(12,32) toAxi4SlaveBits(TrimodemacS_axi s);
         return (interface Axi4SlaveLiteBits#(12,32);
   	 method araddr = compose(s.araddr, extend);
   	 method arready = s.arready;
  
positive.code:     endinterface
      method speedis100 speedis100();
      method speedis10100 speedis10100();
      interface TrimodemacbviTx     tx;
          method ifg_delay(tx_ifg_delay) enable((*inhigh*) EN_tx_ifg_delay);
          output_clock mac_aclk(tx_mac_aclk);
          output_reset reset(tx_reset);
          method tx_statistics_valid statistics_valid();
          method tx_statistics_vector statistics_vector();
      endinterface
      interface AxiStreamSlave#(8)     tx_axis_mac;
          method tdata(tx_axis_mac_tdata) enable((*inhigh*) EN_tx_axis_mac_tdata) clocked_by (s_axi_aclk) reset_by (tx_axi_rstn);
          method tlast(tx_axis_mac_tlast) enable((*inhigh*) EN_tx_axis_mac_tlast) clocked_by (s_axi_aclk) reset_by (tx_axi_rstn);
          method tx_axis_mac_tready tready() clocked_by (s_axi_aclk) reset_by (tx_axi_rstn);
          method tuser(tx_axis_mac_tuser) enable((*inhigh*) EN_tx_axis_mac_tuser) clocked_by (s_axi_aclk) reset_by (tx_axi_rstn);
          method tvalid(tx_axis_mac_tvalid) enable((*inhigh*) EN_tx_axis_mac_tvalid) clocked_by (s_axi_aclk) reset_by (tx_axi_rstn);
      endinterface
      schedule (gmii.rx_dv, gmii.rx_er, gmii.rxd, gmii.tx_en, gmii.tx_er, gmii.txd, mac.irq, mdc, mdio.i, mdio.o, mdio.t, pause.req, pause.val, rx.axis_filter_tuser, rx.statistics_valid, rx.statistics_vector, rx_axis_mac.tdata, rx_axis_mac.tlast, rx_axis_mac.tuser, rx_axis_mac.tvalid, s_axi.araddr, s_axi.arready, s_axi.arvalid, s_axi.awaddr, s_axi.awready, s_axi.awvalid, s_axi.bready, s_axi.bresp, s_axi.bvalid, s_axi.rdata, s_axi.rready, s_axi.rresp, s_axi.rvalid, s_axi.wdata, s_axi.wready, s_axi.wvalid, speedis100, speedis10100, tx.ifg_delay, tx.statistics_valid, tx.statistics_vector, tx_axis_mac.tdata, tx_axis_mac.tlast, tx_axis_mac.tready, tx_axis_mac.tuser, tx_axis_mac.tvalid) CF (gmii.rx_dv, gmii.rx_er, gmii.rxd, gmii.tx_en, gmii.tx_er, gmii.txd, mac.irq, mdc, mdio.i, mdio.o, mdio.t, pause.req, pause.val, rx.axis_filter_tuser, rx.statistics_valid, rx.statistics_vector, rx_axis_mac.tdata, rx_axis_mac.tlast, rx_axis_mac.tuser, rx_axis_mac.tvalid, s_axi.araddr, s_axi.arready, s_axi.arvalid, s_axi.awaddr, s_axi.awready, s_axi.awvalid, s_axi.bready, s_axi.bresp, s_axi.bvalid, s_axi.rdata, s_axi.rready, s_axi.rresp, s_axi.rvalid, s_axi.wdata, s_axi.wready, s_axi.wvalid, speedis100, speedis10100, tx.ifg_delay, tx.statistics_valid, tx.statistics_vector, tx_axis_mac.tdata, tx_axis_mac.tlast, tx_axis_mac.tready, tx_axis_mac.tuser, tx_axis_mac.tvalid);
  endmodule
  
  instance Connectable#(TrimodemacbviGmii,GigethpcspmabviGmii);
     module mkConnection#(TrimodemacbviGmii mac, GigethpcspmabviGmii phy)(Empty);
        rule rx;
  	 mac.rx_dv(phy.rx_dv());
  	 mac.rx_er(phy.rx_er());
  	 mac.rxd(phy.rxd());
        endrule
        rule tx;
  	 phy.tx_en(mac.tx_en());
  	 phy.tx_er(mac.tx_er());
  	 phy.txd(mac.txd());
        endrule
     endmodule
  endinstance
  
  instance Connectable#(TrimodemacbviMdio,GigethpcspmabviMdio);
     module mkConnection#(TrimodemacbviMdio macMdio, GigethpcspmabviMdio phyMdio)(Empty);
        rule rl_mdio;
  	 macMdio.i(phyMdio.o());
  	 phyMdio.i(macMdio.o());
        endrule
     endmodule
  endinstance
  
  `ifdef FLUTE
  import TLM3         :: *;
  import Axi4         :: *;
  import AxiDefines   ::*;
  
  instance ToAxi4LRdWrSlave#(TrimodemacbviS_axi);
     function Axi4LRdWrSlave#(`SoC_PRM) toAxi4LRdWrSlave(TrimodemacbviS_axi s);
        return (interface Axi4LRdWrSlave#(`SoC_PRM);
           interface Axi4LRdSlave read;
  	    method Action arADDR(AxiAddr#(`SoC_PRM) addr); s.araddr(truncate(addr)); endmethod
  
negative.code:         method gmii_tx_er tx_er();
          method gmii_txd txd();
      endinterface
      interface TrimodemacMac     mac;
          method mac_irq irq() clocked_by (s_axi_aclk) reset_by (s_axi_resetn);
      endinterface
      method mdc mdc();
      interface TrimodemacMdio     mdio;
          method i(mdio_i) enable((*inhigh*) EN_mdio_i);
          method mdio_o o();
          method mdio_t t();
      endinterface
      interface TrimodemacRx     rx;
          output_clock mac_aclk(rx_mac_aclk);
          output_reset reset(rx_reset) clocked_by (rx_mac_aclk);
          method rx_axis_filter_tuser axis_filter_tuser() clocked_by (rx_mac_aclk) reset_by (rx_reset);
          method rx_statistics_valid statistics_valid() clocked_by (rx_mac_aclk) reset_by (rx_reset);
          method rx_statistics_vector statistics_vector() clocked_by (rx_mac_aclk) reset_by (rx_reset);
      endinterface
      interface TrimodemacRx_axis_mac rx_axis_mac;
         method rx_axis_mac_tdata tdata() clocked_by (rx_mac_aclk) reset_by (rx_reset);
         method rx_axis_mac_tlast tlast() clocked_by (rx_mac_aclk) reset_by (rx_reset);
         method rx_axis_mac_tuser tuser() clocked_by (rx_mac_aclk) reset_by (rx_reset);
         method rx_axis_mac_tvalid tvalid() clocked_by (rx_mac_aclk) reset_by (rx_reset);
      endinterface
      interface TrimodemacS_axi     s_axi;
          method araddr(s_axi_araddr) clocked_by (s_axi_aclk) reset_by (s_axi_resetn) enable((*inhigh*) EN_s_axi_araddr);
          method s_axi_arready arready() clocked_by (s_axi_aclk) reset_by (s_axi_resetn);
          method arvalid(s_axi_arvalid) clocked_by (s_axi_aclk) reset_by (s_axi_resetn) enable((*inhigh*) EN_s_axi_arvalid);
  