anchor.diff: +//Top.bsv customized for Ring example
  +
   // bsv libraries
   import Vector::*;
   import FIFO::*;
  
positive.code: 
  
  // generated by tool
  import EchoIndicationProxy::*;
  import EchoRequestWrapper::*;
  import SwallowWrapper::*;
  
  // defined by user
  import Echo::*;
  import Swallow::*;
  
  module mkPortalTop(StdPortalTop);
  
     // instantiate user portals
     EchoIndicationProxy echoIndicationProxy <- mkEchoIndicationProxy(7);
     EchoRequestInternal echoRequestInternal <- mkEchoRequestInternal(echoIndicationProxy.ifc);
     EchoRequestWrapper echoRequestWrapper <- mkEchoRequestWrapper(1008,echoRequestInternal.ifc);
     
     Swallow swallow <- mkSwallow();
     SwallowWrapper swallowWrapper <- mkSwallowWrapper(1009, swallow);
     
     Vector#(3,StdPortal) portals;
     portals[0] = echoIndicationProxy.portalIfc;
     portals[1] = echoRequestWrapper.portalIfc; 
     portals[2] = swallowWrapper.portalIfc; 
     let interrupt_mux <- mkInterruptMux(portals);
     
     // instantiate system directory
  
negative.code:    
     interface ReadOnly interrupt = interrupt_mux;
     interface StdAxi3Slave ctrl = ctrl_mux;
  
  
  endmodule : mkPortalTop
  