anchor.diff:     endmethod
      
      method ActionValue#(Bit#(40)) addrResp();
  -      ids.deq;
  -      offs.deq;
  -      let mrv <- pageTables[ids.first].portA.response.get;
  -      let rv = fromMaybe(?,mrv);
  -      if (!isValid(mrv))
  -	 $display("mkSGListMMU::addrResp has gone off the reservation");
  -      return {rv,offs.first};
  +      respFifo.deq();
  +      return respFifo.first();
      endmethod
      
   endmodule
  
positive.code: // if this structure becomes too expensive, we can switch to a multi-level structure
  module mkSGListMMU(SGListMMU);
  
     Vector#(NumSGLists, BRAM1Port#(PageIdx, Maybe#(Bit#(TSub#(40,SGListPageShift))))) pageTables <- replicateM(mkBRAM1Server(defaultValue));
     FIFOF#(Bit#(SGListPageShift)) offs <- mkFIFOF;
     FIFOF#(SGListId) ids  <- mkFIFOF;
     Reg#(Bool) initialized <- mkReg(False);
     
     let page_shift = fromInteger(valueOf(SGListPageShift));
     
     mkAutoFSM(
        seq
     	 initialized <= True;
        endseq
        );
     
     method Action page(SGListId id, Bit#(32) off, Bit#(40) addr);
        pageTables[id].portA.request.put(BRAMRequest{write:True, responseOnWrite:False, address:truncate(off), datain:tagged Valid truncate(addr)});
     endmethod
  
  
negative.code: // SOFTWARE.
  
  // BSV Libraries
  import RegFile::*;
  import FIFOF::*;
  import Vector::*;
  import GetPut::*;
  