-
Notifications
You must be signed in to change notification settings - Fork 113
Support RW ports on BRAMs #1614
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Depends on how the failure manifests. In terms of concrete recommendation, here is what to check:
It is my belief the prjxray has the bits required for TDP BRAM36. I don't not believe we have fully debugged support for TDP BRAM36 in symbiflow-arch-defs. I found at least one bug earlier this week, see: https://github.com/SymbiFlow/symbiflow-arch-defs/pull/1612/files#diff-92df80b2f65bb8fef2dfa652e646d34e
|
See also YosysHQ/yosys#1959 |
@andrewb1999 Can you please see if you can replicate this issue? It may be fixed now? |
@litghost Looks like this issue has been fixed at least somewhat. I am able to map the provided verilog that I was unable to map before, I will try some more in depth tests soon. |
Example verilog that should be able to be mapped to a BRAM:
One potential issue is that the yosys bram map always maps the A port to read and the B port to write. TDP brams should be able to use either port as a read or a write, but my suspicion is that this is not supported by prjxray and symbiflow yet. Manually switching the read and write ports in the bram map resulted in a non working design for xc/xc7/tests/bram_test/bram_test_36, although it's very possible I switched polarities incorrectly.
RAMB36 TDP techmap before swapping ports:
After swapping ports:
Therefore, I think a first step in supporting RW ports is ensuring port A can be used as a write and port B can be used as a read. Could you give some input on whether prjxray and symbiflow support this functionality?
The text was updated successfully, but these errors were encountered: