fusesoc/fusesoc-cores

Getting VPI failures after jtag_vpi upgrade (r3)

stffrdhrn opened this issue · 4 comments

fusesoc init -y
fusesoc library add mor1kx-generic https://github.com/stffrdhrn/mor1kx-generic.git
fusesoc library add intgen https://github.com/stffrdhrn/intgen.git
fusesoc library add mor1kx https://github.com/openrisc/mor1kx.git
$ fusesoc run --target mor1kx_tb ::mor1kx-generic:1.1

iverilog-vpi --name=elf-loader_1.0.2 -lelf -I../src/elf-loader_1.0.2/ ../src/elf-loader_1.0.2/elf-loader.c ../src/elf-loader_1.0.2/vpi_wrapper.c
Compiling ../src/elf-loader_1.0.2/elf-loader.c...
Compiling ../src/elf-loader_1.0.2/vpi_wrapper.c...
Making elf-loader_1.0.2.vpi from  elf-loader.o vpi_wrapper.o...
iverilog -sorpsoc_tb -c mor1kx-generic_1.1.scr -o mor1kx-generic_1.1 -DICARUS_SIM -DSIM -DSPEEDSIM
vvp -n -M. -l icarus.log -lxt2 -melf-loader_1.0.2 mor1kx-generic_1.1 
../src/jtag_vpi_0-r4/jtag_vpi.v:104: Error: System task/function $check_for_command() is not defined by any module.
../src/jtag_vpi_0-r4/jtag_vpi.v:131: Error: System task/function $send_result_to_server() is not defined by any module.
../src/jtag_vpi_0-r4/jtag_vpi.v:140: Error: System task/function $send_result_to_server() is not defined by any module.
mor1kx-generic_1.1: Program not runnable, 3 errors.

Notice that during the build we see it compiles elf-loader. But it doesn't compile the jtag_vpi. I am not sure why, the main difference from jtag-vpi r2 to jtag-vpi r3 is the core file version change to capi2 and support for verilator. Was any icarus test done after this?

Maybe the plusargs syntax changed?

Hi Stafford, I think we need help from @olofk.

olofk commented

Sorry for the bad quality control on my side. I pushed a new version with the fix you mentioned in fjullien/jtag_vpi#6 . Could you please check that it's working correctly now?

It's working for me