anchor.diff:  import FIFOF::*;
   import ConnectableWithTrace::*;
   import CtrlMux::*;
  +import AxiMasterSlave    :: *;
  +import AxiDma            :: *;
   
   (* always_ready, always_enabled *)
   interface ZynqTop#(type pins);
  
positive.code:    interface Reset unused_reset;
  endinterface
  
  typedef (function Module#(PortalTop#(32, 64, ipins)) mkpt()) MkPortalTop#(type ipins);
  
  module [Module] mkZynqTopFromPortal#(MkPortalTop#(ipins) constructor)(ZynqTop#(ipins));
     PS7 ps7 <- mkPS7();
     Clock mainclock = ps7.fclkclk[0];
     Reset mainreset = ps7.fclkreset[0];
  
     let top <- constructor(clocked_by mainclock, reset_by mainreset);
     
     mkConnection(ps7.m_axi_gp[0].client, top.ctrl, clocked_by mainclock, reset_by mainreset);
     mkConnectionWithTrace(top.m_axi, ps7.s_axi_hp[0].axi.server, clocked_by mainclock, reset_by mainreset);
     
     let intr_mux <- mkInterruptMux(top.interrupt);
     rule send_int_rule;
  
negative.code: import Portal            :: *;
  import Leds              :: *;
  import Top               :: *;
  import XbsvXilinxCells   :: *;
  import PS7LIB::*;
  import PPS7LIB::*;
  