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

32-bit LUT-RAM are not correctly implemented #1269

Open
acomodi opened this issue Jan 17, 2020 · 2 comments
Open

32-bit LUT-RAM are not correctly implemented #1269

acomodi opened this issue Jan 17, 2020 · 2 comments

Comments

@acomodi
Copy link
Contributor

acomodi commented Jan 17, 2020

Vendor tools dram tests were not enabled until #1234 got merged.

With #1268 I have temporarily disabled the vivado_targets, to let CI go green (as it has been red for too long now).

This issue is to keep track of the problem with DRAM evaluated on vendor tools with fasm2bels.

@litghost litghost changed the title Vendor tools CI failing on DRAM tests 32-bit LUT-RAM are not correctly implemented Jan 23, 2020
@litghost
Copy link
Contributor

litghost commented Jan 23, 2020

The current LUT-RAM implementation is likely wrong after #1267, but less wrong than before.

In particular:

  • RAM32X1S should be able to pack between 6-8 BELs in a SLICEM, currently only 4 are accomidated

For future work around this:

  • We need to consult the relevant documentation, and determine what are the valid packing schemes for 32-bit LUT-RAMs (using RAM32X1S, RAM32X1D and RAM32M).
  • Develop a set of Vivado mini-tests demonstrating the various packing options
  • Add those to symbiflow-arch-defs and verify that VPR can pack that tightly
  • Verify that fasm2bels can round trip those designs for analysis
  • Re-enable 32-bit LUT-RAM synthesis once previous steps are completed (e.g. enable inference for RAMB36E1 SymbiFlow/yosys#31)

@litghost
Copy link
Contributor

I've split the 32-bit LUT-RAM issues and 128/256 bit LUT-RAM issues into two seperate issues, with the 128/256 issues into #1275. This is because the fixes around the 128/256 is likely much less work than the fixes around the 32-bit LUT-RAM issues.

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

No branches or pull requests

2 participants