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

System Verilog support is broken due to compilation error in F4PGA plugin #2821

Open
MohamedElgammal opened this issue Nov 21, 2024 · 7 comments
Assignees

Comments

@MohamedElgammal
Copy link
Contributor

MohamedElgammal commented Nov 21, 2024

The System Verilog support is broken as it requires enabling YOSYS_F4PGA_PLUGINS and doing so gets a compilation error as follows:

vtr-verilog-to-routing/libs/EXTERNAL/yosys-f4pga-plugins/systemverilog-plugin/third_party/yosys/simplify.cc:155:8: error: ‘struct Yosys::AST::AstNode’ has no member named ‘multirange_dimensions’ 155 | node->multirange_dimensions.push_back(rnode->range_right); | ^~~~~~~~~~~~~~~~~~~~~ .../vtr-verilog-to-routing/libs/EXTERNAL/yosys-f4pga-plugins/systemverilog-plugin/third_party/yosys/simplify.cc:156:8: error: ‘struct Yosys::AST::AstNode’ has no member named ‘multirange_dimensions’

@vaughnbetz
Copy link
Contributor

@soheilshahrouz : in case you feel like a tour of some yosys + C++ stuff ...

@hzeller
Copy link
Contributor

hzeller commented Nov 25, 2024

Isn't the systemverilog plugin called synlig for a while now ? I suspect this pulls in a somewhat old version...

@amirarjmand93
Copy link
Contributor

I have been testing Synlig for integration, and so far it appears to be a suitable tool for SystemVerilog, rather than using it as just a standalone parser and elaborator, like Surlog. I will provide updates here along with some screenshots of my progress asap.

@amirarjmand93
Copy link
Contributor

image_2024-11-24_13-59-09

@vaughnbetz I executed some SystemVerilog designs of the VTR flow benchmark. It passed from Synlig, Parmys, Yosys, and VPR end-to-end successfully. It seems OK, but it takes more time to integrate fully. I am trying to solve it.

@vaughnbetz
Copy link
Contributor

That's good news! Thanks @amirarjmand93.

@amirarjmand93
Copy link
Contributor

I am writing to provide an update regarding the integration of Synlig.

#1
It seems that a race condition is causing a nondeterministic situation, leading to errors with some nested submodules during the synchronization and update process. In some cases, I encounter no errors with the same configuration.

#2
Sometimes, I encounter the error (RPC failed) and similar issues when cloning(non-fatal error), even though the network is functioning well and the Postbuffer size has been increased.

image_2024-12-03_14-20-21

It's in progress.

@vaughnbetz
Copy link
Contributor

The clone error sounds like a timeout/disconnect issue with the chipsalliance repo. Adding @hzeller in case he knows why that repo is disconnecting before the clone is done. @amirarjmand93 : I imagine we could switch from a submodule to a subtree for this dependency if necessary, as I believe a subtree would actually put the files in the VTR repo, and hence cloning should happen from our repo and hopefully be robust.

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