Notifications
Clear all

[Solved] Problem with rvfpgasoc

 

(@ndbeser)
Active Member
Joined: 3 years ago
Posts: 3
Topic starter  

I have two students in my computer architecture class that are attempting to run  the rvFPGASOC project and have run into some errors. They followed the directions in the lab1 file exactly, and when they attempt to build the bitstream they get the errors. They are using Vivado 2022.1 executing on windows. I observed them attempting the install via a zoom session, and i believe they followed the documentation exactly.

errormessage
blockdesign

 

I am including the snapshots they sent me and a message from vivado:

[filemgmt 56-585] Internal Data Exception: HDDASrcFileProxy::HDDASrcFileProxy: Given Source File 'C:/computerArchitecture/RVfpgaSoC/Labs/LabResources/Lab1/src/SweRVolfSoC/SweRVEh1CoreComplex/include/global.h' needs to be addded to the project in order to use it as an RTL module

Please let me know if you have seen these error before. 

Thank-you,

Nick Beser

 


   
Quote
Topic Tags
(@zubairlk)
Member Admin
Joined: 3 years ago
Posts: 9
 

Hi Nick,

 

Thank you for reaching out.

 

I notice you are trying to run RVfpga SoC on Vivado 2022.1
RVfpga SoC is designed for Vivado 2019.2

 

Whenever Vivado does significant upgrades, there are always subtleties and steps that don't work that well.

We recommend trying Vivado 2019.2 and see how that goes
That should work ok.

Let me know if you still face issues.

 

Thanks
Zubair


   
ReplyQuote
(@ndbeser)
Active Member
Joined: 3 years ago
Posts: 3
Topic starter  

@zubairlk I recommended to my students that they try 2019.2. They also tried lab 3 which used fusesoc. They ran into the following weird error:

 

Traceback (most recent call last):

  File "/usr/local/bin/fusesoc", line 8, in <module>

    sys.exit(main())

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/main.py", line 766, in main

    fusesoc(args)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/main.py", line 756, in fusesoc

    args.func(cm, args)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/main.py", line 293, in run

    run_backend(

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/main.py", line 415, in run_backend

    edam = edalizer.run()

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/edalizer.py", line 96, in run

    self.setup_cores()

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/edalizer.py", line 119, in setup_cores

    for core in self.cores:

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/edalizer.py", line 71, in cores

    return self.resolved_cores

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/edalizer.py", line 77, in resolved_cores

    return self.core_manager.get_depends(self.toplevel, self.flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/coremanager.py", line 362, in get_depends

    deps = self.db.solve(resolved_core.name, flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/coremanager.py", line 114, in solve

    return self._solve(top_core, flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/coremanager.py", line 161, in _solve

    _depends = core.get_depends(_flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/capi2/core.py", line 251, in get_depends

    for fs in self._get_filesets(flags):

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/capi2/core.py", line 606, in _get_filesets

    cd_filesets = self._coredata.get_filesets(flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/capi2/coredata.py", line 160, in get_filesets

    self._setup_fileset(fs, flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/capi2/coredata.py", line 132, in _setup_fileset

    self._expand_use(fs, flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/capi2/coredata.py", line 37, in _expand_use

    self._expand_use(data[k], flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/capi2/coredata.py", line 55, in _expand_use

    self._expand_use(i, flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/capi2/coredata.py", line 29, in _expand_use

    expanded_k = Exprs(k).expand(flags)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/capi2/exprs.py", line 154, in __init__

    self.ast = _parse(string)

  File "/usr/local/lib/python3.8/dist-packages/fusesoc/capi2/exprs.py", line 143, in _parse

    raise ValueError(

ValueError: Invalid syntax for string: Expected end of text, found '('  (at char 1), (line:1, col:2). Parsed text was '$(XILINX_VIVADO)/data/verilog/src/glbl.v'.

 

One of their classmates was able to use a newer version of vivado with fusesoc to complete the linux lab. Any ideas about the error?


   
ReplyQuote
(@zubairlk)
Member Admin
Joined: 3 years ago
Posts: 9
 

Found a subtle issue which we'll fix.

 

Can you please either temporarily downgrade FuseSoC to version 2.0 with "pip install --upgrade fusesoc==2.0"

or remove the problematic line (this one https://github.com/chipsalliance/Cores-SweRVolf/blob/master/cores/litedram/litedram.core%23L22&source=gmail&ust=1682341904834000&usg=AOvVaw0Cc0bY0UupLZU_iDw8ML_ P"> https://github.com/chipsalliance/Cores-SweRVolf/blob/master/cores/litedram/litedram.core#L22  ).

It is not used in this context and can therefore be safely removed.

 

Thanks

ZubairLK


   
ReplyQuote
(@olofk)
New Member
Joined: 3 years ago
Posts: 2
 

@ndbeser I have confrimed this is an issue with FuseSoC 2.2. I just released FuseSoC 2.2.1 to fix this issue. Please upgrade with "pip install -U fusesoc". Hope this helps


   
ReplyQuote