Skip to content

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

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

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.

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

No branches or pull requests

4 participants