anchor.diff:        arb <= arb+1;
      endrule
      
  -   for(Integer i = 0; i < valueOf(numServers); i=i+1)
  -      addrServers[i] = 
  +   function Server#(AddrTransRequest,Bit#(addrWidth)) arbitratedServer(Integer i);
  +   return
         (interface Server#(AddrTransRequest,Bit#(addrWidth));
   	  interface Put request;
   	     method Action put(AddrTransRequest req) if (arb == fromInteger(i));
  
positive.code: 	     endmethod
  	  endinterface
         endinterface);
  
     interface servers = addrServers;
  
  endmodule
  
negative.code: module mkArbitratedMMU#(Server#(AddrTransRequest,Bit#(addrWidth)) server) (ArbitratedMMU#(addrWidth,numServers));
     
     FIFOF#(Bit#(TAdd#(1,TLog#(numServers)))) tokFifo <- mkSizedFIFOF(9);
     Reg#(Bit#(TLog#(numServers))) arb <- mkReg(0);
  
     // this is a very crude arbiter.  something more sophisticated may be required (mdk)
  