verilog-to-routing / vtr-verilog-to-routing

Verilog to Routing -- Open Source CAD Flow for FPGA Research
https://verilogtorouting.org
Other
1.02k stars 395 forks source link

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

Open MohamedElgammal opened 5 days ago

MohamedElgammal commented 5 days ago

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 commented 1 day ago

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

hzeller commented 1 day ago

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

amirarjmand93 commented 1 day ago

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 commented 1 day ago

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 commented 1 day ago

That's good news! Thanks @amirarjmand93.