anchor.diff:     mkConnection(memToRing.writeClient, outgoing_buff.writeServer);
   
      mkConnection(ringToMem.eventPktCommitted, memToRing.eventPktSend);
  +
  +   StoreAndFwdFromRingToMac ringToMac <- mkStoreAndFwdFromRingToMac(txClock, txReset);
  +
  +   mkConnection(ringToMac.readClient, outgoing_buff.readServer);
  +
  +`ifndef SIMULATION
  +   mkConnection(ringToMac.macTx, mac[0].packet_tx);
  +`else
  +   rule drain_mac;
  +      let v <- ringToMac.macTx.get;
  +      if (verbose) $display("tx data %h", v);
  +   endrule
  +`endif
   
      MemoryAPI api <- mkMemoryAPI(indication, incoming_buff);
   
  
positive.code: 
  `ifndef SIMULATION
     De5Clocks clocks <- mkDe5Clocks(clk_50_wire, clk_644_wire);
  `endif
  
  `ifndef SIMULATION
     Clock txClock = clocks.clock_156_25;
     Clock phyClock = clocks.clock_644_53;
     Clock mgmtClock = clocks.clock_50;
  
negative.code:    Reset phyReset <- mkSyncReset(2, defaultReset, phyClock);
     Reset mgmtReset <- mkSyncReset(2, defaultReset, mgmtClock);
  
  `ifndef SIMULATION
     // DE5 Pins
     De5Leds leds <- mkDe5Leds(defaultClock, txClock, mgmtClock, phyClock);
     De5SfpCtrl#(4) sfpctrl <- mkDe5SfpCtrl();
  