Skip to content
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

Support BRAM_Rs #1684

Open
andrewb1999 opened this issue Sep 30, 2020 · 3 comments
Open

Support BRAM_Rs #1684

andrewb1999 opened this issue Sep 30, 2020 · 3 comments

Comments

@andrewb1999
Copy link
Collaborator

Is there anything major holding back enabling BRAM_Rs? Losing half of the BRAMs available on a chip has become a significant limitation of how large the designs I can map through symbiflow are.

I am willing to put in some time to add this support, but I'm not entirely sure why they are disabled in the first place.

@andrewb1999
Copy link
Collaborator Author

@litghost Can you give some advice on this when you have a chance?

@litghost
Copy link
Contributor

litghost commented Sep 30, 2020

This is actually pretty straight forward to fix, but it will require some fixes and a bunch of testing.

  1. Need to properly fix Missing INIT string data in FASM for selected BRAM sites prjxray#1285 . @tmichalak has proposed a couple fixes, but it is unclear if the fixes are generally safe and structurely true to the underlying bitstream.
  2. Update symbiflow-arch-defs to add the BRAM_R.
GitHub
FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs
GitHub
FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs
GitHub
FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs
GitHub
FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs
GitHub
FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs

@andrewb1999
Copy link
Collaborator Author

This is actually pretty straight forward to fix, but it will require some fixes and a bunch of testing.

1. Need to properly fix [SymbiFlow/prjxray#1285](https://github.com/SymbiFlow/prjxray/issues/1285) . @tmichalak has proposed a couple fixes, but it is unclear if the fixes are generally safe and structurely true to the underlying bitstream.

2. Update symbiflow-arch-defs to add the BRAM_R.


* Make sure https://github.com/SymbiFlow/symbiflow-arch-defs/tree/master/xc/common/primitives/bram_r is in sync with https://github.com/SymbiFlow/symbiflow-arch-defs/tree/master/xc/common/primitives/bram_l

* Update https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc/xc7/archs/artix7/devices/xc7a50t-virt/CMakeLists.txt and equivalent devices to add BRAM_R

* Add cluster equivalence to https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc/xc7/archs/artix7/tiles/bram_r/CMakeLists.txt and https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc/xc7/archs/artix7/tiles/bram_l/CMakeLists.txt

* Add tests confirming that BRAM_L clusters can be placed in BRAM_R and vise versa

* Add tests filling all BRAM's in the fabric and checking the init in hardware, and via fasm2bels, etc

GitHub**SymbiFlow/symbiflow-arch-defs**FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs

GitHub**SymbiFlow/symbiflow-arch-defs**FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs

GitHub**SymbiFlow/symbiflow-arch-defs**FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs

GitHub**SymbiFlow/symbiflow-arch-defs**FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs

GitHub**SymbiFlow/symbiflow-arch-defs**FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs

Sounds good. How can we determine if @tmichalak 's fixes are correct? Testing?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants