Hi Dan,
Some how I got the BP output in VCS. Now, I am planning to deploy this design in Virtex ML 507 board because we have this board in our lab. I am using vcs and vlogan to debug design after synthesis and implementation. What I did was, I generated netlist file for the top module and replaced all *.sv and *.v files in flist.vcs in vcs directory with top.v netlist file, I left other files for testbench as it is, like:
/home/lab/zynq-parrot/cosim/hammerblade-example/top.v #syntheiis netlist file
/home/lab/zynq-parrot/import/basejump_stl/bsg_test/
bsg_nonsynth_clock_gen.sv/home/lab/zynq-parrot/import/basejump_stl/bsg_test/
bsg_nonsynth_reset_gen.sv/home/lab/zynq-parrot/import/basejump_stl/bsg_test/
bsg_nonsynth_axi_mem.sv/home/lab/zynq-parrot/import/basejump_stl/bsg_test/bsg_nonsynth_dpi_clock_gen.cpp
/home/lab/zynq-parrot/import/basejump_stl/bsg_test/
bsg_nonsynth_dpi_clock_gen.sv/home/lab/zynq-parrot/import/basejump_stl/bsg_test/
bsg_nonsynth_dpi_gpio.sv/home/lab/zynq-parrot/cosim/v/
bsg_nonsynth_dpi_to_axil.sv/home/lab/zynq-parrot/cosim/v/
bsg_nonsynth_axil_to_dpi.sv/home/lab/zynq-parrot/cosim/v/
bsg_nonsynth_zynq_testbench.sv
When I execute make run after make simv, it is crashing after INFO: ps.cpp: reading three base registers as shown below
Instantiating AXIL at bsg_nonsynth_zynq_testbench.axil4
bsg_zynq_pl: Entering reset
__________ ___________ _______________________________
\______ \\_ _____/ / _____/\_ _____/\__ ___/
| _/ | __)_ \_____ \ | __)_ | |
| | \ | \ / \ | \ | | 1->0 time = 500000
|____|_ //_______ //_______ //_______ / |____|
ASYNC \/ \/ \/ \/
bsg_zynq_pl: Exiting reset
bsg_zynq_pl: Exiting reset
bsg_zynq_pl: Exiting reset
INFO: ps.cpp: reading three base registers
An unexpected termination has occurred in ./simv due to a signal: Segmentation fault
During DPI-C function call Function="cosim_main" from /home/lab/zynq-parrot/cosim/v/
bsg_nonsynth_zynq_testbench.sv, 470
Command line: ./simv +c_args=hello.hello_world.nbf +bsg_trace +vpdfilesize+512
--- Stack trace follows:
Dumping VCS Annotated Stack:
#0 0x00002aaab5a0960c in waitpid () from /lib64/libc.so.6
#1 0x00002aaab5986f62 in do_system () from /lib64/libc.so.6
#2 0x00002aaaaca475c0 in SNPSle_10ee25eff68cd8461c9146fa1d0b35e87067f3c8015b313e639d2928478c79b3f673f99203bcf8be64600612100082236bffb2007f1e0ef9 () from /home/lab/vcs/vcs/U-2023.03/linux64/lib/liberrorinf.so
#3 0x00002aaaaca4911c in SNPSle_10ee25eff68cd8461c9146fa1d0b35e87067f3c8015b313efba706aab251478fa49e66610e453774633a6c152e7ef778f93045171fb3645d () from /home/lab/vcs/vcs/U-2023.03/linux64/lib/liberrorinf.so
#4 0x00002aaaaca41363 in SNPSle_d35ca1ff70d465c2b9b1a72eee90a50630165806651fae96c1bbda5b5d02066c () from /home/lab/vcs/vcs/U-2023.03/linux64/lib/liberrorinf.so
#5 0x00002aaaaf1ddcbb in SNPSle_64133461705005bb725549e2e6fa1b3f () from /home/lab/vcs/vcs/U-2023.03/linux64/lib/libvcsnew.so
#6 0x00002aaaaee59edd in SNPSle_82244d58c54c18c70d63edc9becab634 () from /home/lab/vcs/vcs/U-2023.03/linux64/lib/libvcsnew.so
#8 0x000000000043af68 in boost::context::detail::invoke<boost::coroutines2::detail::pull_coroutine<void>::control_block::control_block<boost::context::basic_fixedsize_stack<boost::context::stack_traits>, bsg_zynq_pl_simulation::uart_read(int, unsigned long, std::function<void (int)>)::{lambda(boost::coroutines2::detail::push_coroutine<void>&)#1}>(boost::context::preallocated, boost::context::basic_fixedsize_stack<boost::context::stack_traits>&&, bsg_zynq_pl_simulation::uart_read(int, unsigned long, std::function<void (int)>)::{lambda(boost::coroutines2::detail::push_coroutine<void>&)#1}&&)::{lambda(boost::context::fiber&&)#1}&, bsg_zynq_pl_simulation::uart_read(int, unsigned long, std::function<void (int)>)::{lambda(boost::coroutines2::detail::push_coroutine<void>&)#1}&&> ()
#9 0x000000000043b39b in void boost::context::detail::fiber_entry<boost::context::detail::fiber_record<boost::context::fiber, boost::context::basic_fixedsize_stack<boost::context::stack_traits>, boost::coroutines2::detail::pull_coroutine<void>::control_block::control_block<boost::context::basic_fixedsize_stack<boost::context::stack_traits>, bsg_zynq_pl_simulation::uart_read(int, unsigned long, std::function<void (int)>)::{lambda(boost::coroutines2::detail::push_coroutine<void>&)#1}>(boost::context::preallocated, boost::context::basic_fixedsize_stack<boost::context::stack_traits>&&, bsg_zynq_pl_simulation::uart_read(int, unsigned long, std::function<void (int)>)::{lambda(boost::coroutines2::detail::push_coroutine<void>&)#1}&&)::{lambda(boost::context::fiber&&)#1}> >(boost::context::detail::transfer_t) ()
#10 0x000000000045e88f in make_fcontext ()
#11 0x0000000000000000 in ?? ()
Process VmPeak: 916872 kb, VmSize: 916868 kb
System Free Memory: 6250500 kb, System Free Swap: 32833532 kb
I am wondering where it is going wrong? I am curious, how did you debug the design for FPGA implementation especially after synthesis and implementation? It could be post synthesis functional simulation or post synthesis timing simulation similarly for implementation simulation.