pulp-platform / pulpissimo

This is the top-level project for the PULPissimo Platform. It instantiates a PULPissimo open-source system with a PULP SoC domain, but no cluster.
Other
389 stars 169 forks source link

Synthesis error on soc_interconnect.sv:277 (board: nexys4DDR and nexys_Video) #354

Closed yadi14 closed 2 years ago

yadi14 commented 2 years ago

I am new to pulpissimo and try to run the bitstream generation with "make " command. I tried both nexys4DDR and nexys_Video options but facing the same error as shown below. I also tried on two version of Vivado, 2019.2 and 2022.1, both give the same message.

ERROR: [Synth 8-9123] an enum variable may only be assigned the same enum typed variable or one of its values [.../pulpissimo/.bender/git/checkouts/pulp_soc-125142425fefd4e5/rtl/pulp_soc/soc_interconnect.sv:277]

Is there any workaround way to this enum variable issue? Greatly appreciate your help!

tgouss commented 2 years ago

Hello @yadi14, I also have to tackle this issue. I solve it by insert before line 388 in ./ips/axi/axi/src/axi_pkg.sv MY_CUT = MuxAw | MuxAr | MuxW,

After that, I rewrite the line 277 in ./ips/pulp_soc/rtl/pulp_soc/soc_interconnect.sv LatencyMode: axi_pkg::MY_CUT,

It looks like Vivado wasn't able to understand that it is a correct assignment by the previous way. I wonder if there is not a solution by keeping axi_pkg::CUT_MST_AX | axi_pkg::MuxW and just editing the rest of the line 279.

@bluewww maybe there is more elegant way to solve it?

Hope this will help you,

yadi14 commented 2 years ago

Thanks, @tgouss ! It works! Greatly appreciate your help!

tgouss commented 2 years ago

Your welcome! This fix could be implemented cleanly on a next PR.

davidp135 commented 1 year ago

Hi, it looks like this issue still exists when building the nexys video in Vivado 2022.2. Is there a plan to merge the changes above into pulpissimo? I am happy to help if the changes above are acceptable.

haresh-seenivasagan commented 1 year ago

hi @tgouss @yadi14 on what file are these changes supposed to be made ? . i am not able to find ./ips/axi/axi/src/axi_pkg.sv on the pulpissimo repo. sorry for the dumb question !

tgouss commented 1 year ago

Hi @haresh-seenivasagan,

You should first execute ./update-ips which clone axi IP.

If you get No module named 'ipstools' error, please first build ipstools by running make ipstools.

from ipstools import ipstools
ModuleNotFoundError: No module named 'ipstools'

Note: I used v7.0.0 release.

I hope it helps you.