So, this FPGA has no dual-ported BRAM capabilities -- I found out trying to implement a J1 CPU (a minimal stack machine which issues simultaneous data and instruction reads using two ports).
On the Tang Nano 9K I've definitely been able to infer dual port BSRAMs with the Gowin tools.
As fas as I understand, there are two different parts that are both referred to as the GW1NR-9:
- the original GW1NR-9 (which doesn't support dual port BSRAMs)
- a newer GW1NR-9C that they then renamed to GW1NR-9 (which does support dual port BSRAMs)
This is really confusing!
In the Gowin project file, make sure the part is specified correctly:
Code: Select all
<Device name="GW1NR-9C" pn="GW1NR-LV9QN88PC6/I5">gw1nr9c-004</Device>
This is slightly clearer in later revisions of the datasheet:
https://cdn.gowinsemi.com.cn/DS117E.pdf
[1] For the GW1NR-9 devices, only the C version supports dual port mode.
The Tang Nano 9K has the 9C version.
Dave