Single Clock FIFO with Single Port RAM
You can use 2 single port RAM to build a synchronous FIFO. All the even address goes to RAM0, and all the odd Address goes to the RAM1.
When you want to read and write at the same cycle, make sure the address 0 are not the same.
Else you have to give priority to Wite (or Read), and wait for the next cycle