1. Plug your transmitter board into a PC serial port and see if the received characters are correct.
2. Plug your receiver board into a PC and transmit serial port characters and see if the FPGA board works correctly.
Either (1) or (2) will fail to work.
Debug the failing board :)
Other things to consider;
3. Try a lower baud rate.
4. Are the reference clocks on the two boards the same? What is the baud rate error, i.e., how different from 115200 are the signal bit times? Look with a scope. Use SignalTap at the transmitter and receiver and look at the signals (sampled at say 50MHz).
5. How are you capturing the data? Are you running the asynchronous signal through a synchronizer, oversampling the baudrate by 16x (or so) and 'filtering' each bit, i.e.. looking for the same logic level on multiple oversampled samples?
If your UART is too simple, it might work in Modelsim, but not in hardware.
Cheers,
Dave