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

DataBusWidth=256 support #186

Open
RadhikaG opened this issue Nov 10, 2021 · 8 comments
Open

DataBusWidth=256 support #186

RadhikaG opened this issue Nov 10, 2021 · 8 comments

Comments

@RadhikaG
Copy link

RadhikaG commented Nov 10, 2021

For our accelerator design interfaced with Connectal, we've temporarily downgraded our interface to work with DataBusWidth=128 (it used to work with DataBusWidth=256 at some point with some ancient branch of Connectal and closed-source Bluespec...).

What's the best way to get DataBusWidth=256 working again? Is there a particular branch I should be looking at, or some patches I need to apply?

Tool versions

  • bsc: master
  • Connectal: master
  • bsc-contrib: master
  • Vivado: v.2020.1
  • Hardware target: vcu118
@jameyhicks-cmt
Copy link

If you know which version of Connectal and Bluespec it was working with, that would help in finding a solution.

@threonorm
Copy link
Contributor

Hi @RadhikaG @jameyhicks-cmt ,

On the previous version of the design that @RadhikaG is working on, I just remembered that I was actually not using upstream connectal, but Shuotao's fork:
https://github.com/xushuotao/connectal

(Sorry Radhika, I just remembered that yesterday, I had forgotten about it)

That version of connectal + some version of open source bluespec + vivado 2019.*, was allowing to compile the design with 256 width, I believe. But I am not sure it would still work.

@RadhikaG
Copy link
Author

RadhikaG commented Nov 10, 2021

ref xushuotao's fork: we were using that up till very recently; 256-width was not compiling with that either, it gave me the error below (the same one as issue #185):

Error: "<path>/connectal/bsv/PcieHost.bsv", line 87, column 8: (T0031)
  The provisos for this expression could not be resolved because there are no
  instances of the form:
    Add#(0, 16, 32)
  The proviso was implied by expressions at the following positions:
    "<path>/connectal/bsv/PcieHost.bsv", line 88, column 26
Error: "<path>/connectal/bsv/PcieHost.bsv", line 127, column 4: (T0031)
  The provisos for this expression could not be resolved because there are no
  instances of the form:
    Connectable::Connectable#(ClientServer::Server#(PCIE::TLPData#(16), PCIE::TLPData#(16)), ClientServer::Client#(PCIE::TLPData#(32), PCIE::TLPData#(32)))
obj/Makefile:384: recipe for target 'obj/PcieHost.bo' failed

I moved onto upstream connectal master, since Shuotao's fork was giving us trouble with open source bluespec (which makes sense since the fork is relatively old) and I saw that current master supports the vcu118 as well.

Really what I'm trying to figure out, is whether this issue is related to missing libraries on the open source bsc/bsc-contrib side (I'm suspicious of this, since we've encountered missing libraries before in issue #185), or something I'm missing on the connectal side (less suspicious of this, since neither xushuotao's fork nor upstream connectal are compiling for 256-wide PCIe right now and xushuotao's fork used to at some point). The error above can be reproduced by compiling examples/memread256 or examples/memwrite256.

@jameyhicks
Copy link
Member

jameyhicks commented Nov 10, 2021 via email

@RadhikaG
Copy link
Author

RadhikaG commented Nov 10, 2021

(to be clear, I personally never got Shuotao's branch working with closed source bluespec for DataBusWidth=256 for the vcu118
since I don't have access to closed source Bluespec; I just know that @threonorm got it working at some point)

@jameyhicks-cmt
Copy link

I think there are two sets of changes missing. Shuotao's branch has Ultrascale PCIE3 support and some level of DataBusWidth=256 support. The databuswidth256 branch enables full transfer rate.

@jameyhicks
Copy link
Member

Please try this branch: #187

@RadhikaG I could add you as a reviewer if you like.

@jameyhicks
Copy link
Member

I haven't looked at the file, but probably should be using https://github.com/GaloisInc/BESSPIN-BSC/blob/master/src/lib/BSVSource/Xilinx/XilinxVirtexUltraScalePCIE.bsv on UltraScale devices.

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

4 participants