-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refdesign-sim demo fails on Error: SIGNALS:: Unable to connect top.pcie_bridge.signals-master-tieoff_0.awvalid #18
Comments
Just an update. I was able to get passed the refdesign-sim errors that I reported in my initial post, but my workaround suggests there's something wrong with my setup/steps, but I'm not sure what exactly. After playing around with SystemC (apologies, but I'm a systemC noob), I realized that any sc_in/out will default to the generic names that I was seeing (i.e. port_0, port_1, etc...). As a side-note, I also moved to using SystemC 2.3.2, since that was in the instructions, and I wanted to rule that out as a cause (I hit the same initial refdesign-sim error with both 2.3.3 and 2.3.2). Looking at the verilated ep_bridge module (tests/rtl-bridges/pcie/obj_dir/Vpcie_ep.h), I could see that the ports do not have names, and the default SC_CTOR constructor is being used.
Unfortunately re-running make after obj_dir/Vpcie_ep.h source code changes was not possible, since this rebuilds the verilated source code Vpcie_ep.h/.cc, and clobbers any changes. Thus, I manually rebuild refdesign-sim by calling each relevant compile/link step separately, to pick up my manual verilated source code changes:
After this, I'm able to connect refdesign-sim to the Qemu VM:
And on the Qemu, after the device_add commands, I can see this device:
Note that this also shows "Kernel driver in use: vfio-pci", after the refdesign-sim steps on the Qemu guest:
However, when I go to run the test on the Qemu guest, the test hangs:
I get no further output after this. I've tried a few different times, including after adding ssh port forwarding to the qemu guest and running from an ssh/terminal (in case the stdio/serial port was somehow causing some issue). I do see refdesign-sim.vcd file increasing in size, since launching it. The Qemu quest just hangs and is non-responsive at this point. I can however Ctrl-C refdesign-sim and that seems to crash/kill the Qemu VM.
And qemu VM dies. So I'm hoping someone my have some clues/insights into what is going wrong for me here, or some debug tips. As I mentioned, the fact that I had to hack a workaround for the initial refdeisgn-sim error suggests to me that I must have something setup/configured wrong, or I'm missing a step. Thanks! |
Hi @gricardo99 , I got the same error. Have you got a chance to fix or workaround it ? Best regards :) Kevin |
Hi @kevinyuan |
Hi @gricardo99 , I found this error happens with verilator from Ubuntu repo, i.g. install via "apt install ..."; I tried to compile systemc + verilator from source, then the connection() error disappeared and double-checked by looking into debug message , i.e. there 's no port_0/1/2 anymore. However, another error happened with tye dynamic_cast<> which try to cast sc_object to sc_out. |
Hi @gricardo99 , I hit this error initially: Error: SIGNALS:: Unable to connect top.pcie_bridge.signals-master-tieoff_0.awvalid |
@gricardo99 Have you tried to install Verilator from source? Precompiled Verilator installation might conflict with gcc when compiling SystemC. You need to use the same gcc/g++ version for compiling Verilator and your project's SystemC code. |
I also encountered this error while using Verilator v4.038 on Ubuntu 22.04.5. Upgrading to Verilator v4.228 resolved the issue. Recompiling |
Hello,
I'm trying to run the refdesign-sim demo, connecting to the Xilinx QEMU VM. The QEMU is running and waiting for connection:
The host is:
g++ --version g++ (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0
SystemC 2.3.3
I get a strange error when running refdesign-sim on the host:
After some debug it appears this is from this line: refdesign-sim.cc
Where the verilated ep_bridge module (Vpcie_ep) seems to only return some generic port names for its child objects, which leads to this error.
For example, I print all child object names returned in the signal_find_child function, and the names are all of the form:
port_0
port_1
port_2
etc...
Looking at the Vpcie_ep.cpp/h files, and the module appears to have the correct SC ports, which should match with the refdesign-sim.cc code, if ep_bridge children returned the names of the SC module port variables.
Example: tests/rtl-bridges/pcie/obj_dir/Vpcie_ep.h, these should match the connections made in refdesign-sim.cc
Any ideas why the child names in ep_bridge are not matching, and seem to be generic port+number, such as 'port_0' etc..?
The text was updated successfully, but these errors were encountered: