SDBP is Semi Dual Port BSRAM (one write port and one read port)
DPB is true Dual Port BSRAM (two independant read/write ports)
This example is from AtomFPGA, where the true dual port RAM is the 8KB frame buffer, hence it using four BSRAMs (16Kbit each).
Now, it turns out in this case I ended up instantiating this using the DPB primitive, rather than inferring it:
https://github.com/hoglet67/AtomFpga/bl ... ram_8k.vhd
I don't remember why, but possibly because trying to infer it didn't work.
But anyway, I'm pretty convinced the device does have dual port BSRAMs, and it's the tools that are being problematic.
Dave