anchor.diff:     interface Get writeReq;
         method ActionValue#(MemRequest) get;
   	 let req <- writer.writeReq.get;
  -	 Bit#(4) lsb = req.tag[3:0];
  -	 Bit#(2) msb = req.tag[5:4];
  -	 if(msb != 0) begin
  -	    $display("renameWrites tile tag out of range: %h", req.tag);
  +	 Bit#(TSub#(MemTagSize,2)) lsb = tagLsb(req.tag);
  +	 Bit#(2) msb = tagMsb(req.tag);
  +	 if(req.tag != extend(lsb)) begin
  +	    $display("renameWrites tile tag out of range: 'h%h", req.tag);
   	    err.error(extend(pack(DmaErrorTileTagOutOfRange)), req.sglId, extend(req.tag), fromInteger(tile));
   	 end
   	 req.tag = {fromInteger(tile),lsb};
  
positive.code:    interface `PinType pins;
  endinterface
  
  module renameReads#(Integer tile, MemReadClient#(DataBusWidth) reader, MemServerIndication err)(MemReadClient#(DataBusWidth));
     interface Get readReq;
        method ActionValue#(MemRequest) get;
  	 let req <- reader.readReq.get;
  	 Bit#(4) lsb = req.tag[3:0];
  	 Bit#(2) msb = req.tag[5:4];
  	 if(msb != 0) begin
  	    $display("renameReads tile tag out of range: %h", req.tag);
  	    err.error(extend(pack(DmaErrorTileTagOutOfRange)), req.sglId, extend(req.tag), fromInteger(tile));
  	 end
  	 req.tag = {fromInteger(tile),lsb};
  
negative.code:    endinterface
     interface Put readData;
        method Action put(MemData#(DataBusWidth) v);
  	 reader.readData.put(MemData{data:v.data, tag:{0,tagLsb(v.tag)}, last:v.last});
        endmethod
     endinterface
  endmodule
  