Building gateware on Linux

Trying to build the gateware from the gitlab repo on linux using BUILD_BVF_GATEWARE.tcl script using the libero command from the readme in gateware/sources/FPGA-design. The cores for generating the project BVF_GATEWARE_025T are downloaded fine, the project file prjx shows up but four cores give errors on files copying from the microchip IP vault (where the cores get downloaded by libero) into the BVF_GATEWARE_025T location (that the FPGA project will use). Only a subset of the cores have issues, namely FIC0_INITIATOR, FIC3_INITIATOR, IHC_APB and GLITCHLESS_MUX. The error is the same, even though the core files (verilog, testbench .do, a bunch of other stuff) in the vault are fine and have non-zero size, the command create_and_configure_core fails internally and gives “ERROR: failed copy from …/microchip/common/vault/Components/Actel/DirectCore/… to …/BVF_GATEWARE_025T/component/Actel/DirectCore/…”. The files do exist in the latter but they have zero size. This makes the whole BUILD_BVF_GATEWARE.tcl script fail. Does anyone have any experience with this or a workaround? Some of the IP configuration is pretty involved hence I’d prefer the tcl way than using the libero GUI. Thanks!

I have ran in this issue on one Linux machine. Somehow it seems to depend on which disk I run the build scripts on. Everything runs fine if I run the scripts on the same disk as the one where Libero and the IP vault is installed but see a similar problem if building on another disk.

Thank you, this is very useful to know, I’ll give it try from same disk.

I have also issue when running the libero SCRIPT:BUILD_BVF_GATEWARE.tcl

I don’t know how to solve it

What command did you invoke to get this error? It looks like you are directly calling the Libero TCL script instead of the build-bitstream.py script. It also looks like you have some directory permission issues. Please check you can create a file in that directory.

Hi,

you were right saying that I didn’t have permissions on some folders and sub folders. I just change the ownership t $USER and the problem was solved!

thanks again for your reply.