anchor.diff:     let page_shift4 = fromInteger(valueOf(SGListPageShift4));
      let page_shift8 = fromInteger(valueOf(SGListPageShift8));
      
  -   let ord0 = 32'd1 << page_shift0;
  -   let ord4 = 32'd1 << page_shift4;
  -   let ord8 = 32'd1 << page_shift8;
  +   let ord0 = 40'd1 << page_shift0;
  +   let ord4 = 40'd1 << page_shift4;
  +   let ord8 = 40'd1 << page_shift8;
   
      function BRAMServer#(Bit#(entryIdxSize), Page) portsel(int i);
         if(i==0)
  
positive.code: 		let off = tpl_2(req);
  		Offset o = ?;
  		Bit#(8) p = ?;
  		Bit#(40) barrier8 = extend(tpl_3(regions[ptr-1]))*extend(ord8);
  		Bit#(40) barrier4 = extend(tpl_2(regions[ptr-1]))*extend(ord4);
  		Bit#(40) barrier0 = extend(tpl_1(regions[ptr-1]))*extend(ord0);
  		if (off < barrier8) begin
  		   //$display("request: ptr=%h off=%h barrier8=%h", ptr, off, barrier8);
  		   o = tagged OOrd8 truncate(off);
  
negative.code: 	    Add#(c__, addrWidth, DmaOffsetSize));
  
     BRAM2Port#(Bit#(entryIdxSize), Page) pageTable <- mkBRAM2Server(defaultValue);
     Vector#(MaxNumSGLists, Reg#(Tuple3#(Bit#(40),Bit#(40),Bit#(40)))) regions <- replicateM(mkReg(unpack(0)));
     
     Vector#(2,FIFOF#(Offset))  offs <- replicateM(mkFIFOF);
     Reg#(Bit#(8))               idxReg  <- mkReg(0);
  