This error occurs when the .do file generated by Vivado points to the 64-bit version of libxil_vsim.dll as shown below:
vsim -voptargs="+acc" -t 1ps -pli "C:/Xilinx/Vivado/2013.4/ids_lite/ISE/lib/nt64/libxil_vsim.dll" -L unisims_ver -L unimacro_ver -L secureip -lib work cdn_axi_bfm_0 glbl.
If you use the 32-bit version of ModelSim, the .do file has to point to 32-bit version of the DLL file.
Starting from Vivado 2013.3, you can use the below Tcl command to tell the tool that the ModelSim version being used is 32-bit.
set_property MODELSIM.64BIT 0 [current_fileset -simset]
If this does not work, an alternative work-around to try is to replace the above line in the .do file with the following:
vsim -voptargs="+acc" -t 1ps -pli "C:/Xilinx/Vivado/2013.4/ids_lite/ISE/lib/nt/libxil_vsim.dll" -L unisims_ver -L unimacro_ver -L secureip -lib work cdn_axi_bfm_0 glbl.
After editing the .do file, follow the below process:
1. Open a cmd prompt.
2. Run the following command:
3. Launch 32-bit ModelSim from the command prompt.
4. Run the modified .do file in the console of ModelSim using the following command: