There is a mistake in your logic's approach to a dual buffer.
For now, please just launch the LPM_DP_RAM megafunction generator and place in the parameters your want. (IE: Dual port memory, SC or DC)
IE: 4096 bits (2 line buffer), or 8192 bits (4 line buffer).
8 bit write port, 1 bit read port.
Or, if your MCU interface is serial and you can stream 2048 bits in 1 go:
1 bit write port and 1 bit read port. (IE write each bit as it comes in.)
Then, look for the generated source .v, take it out and just copy & paste into your code.
Remember to use your main single 25MHz clock for everything.
Also remember that having a registered address in and registered data out grants the best performance, though 25MHz wont need it, it is still best to learn now how to deal with the 2 clock delay on the read side as this would be needed if you want to bump your source clock up to 200MHz.
Inferring ram in verilog can be done, however, there are some rules to follow and you might not get what you want when the compiler tries compile it.
I hope you didn't make a complete mess of thing since the last bit of sim code.