How to read hexadecimal data from text file and write in into memory in verilog?
Xilinx presented this use case in the Synthesis User Guide for Vivado UG901 on page 126. This example also works for the Xilinx ISE tool chain, but I don't know the User Guide number.

The essential part of code is this:

reg [31:0] ram [0:63];

initial begin
  $readmemh("rams_init_file.data", ram);
end


There are two read functions:
 - $readmemb -> binary
 - $readmemh -> hexadecimal