Forum Discussion
Ric2
New Contributor
2 years agoDeadlock while filling pipe for simulation
Hi, following best practice as descibed here we run into trouble with stalled writes. When you create a testbench for a oneAPI kernel that you intend to compile as an IP core, write all your data...
Ric2
New Contributor
2 years agoHaving modified the write command to be non-blocking I notice that the command still blocks (the if condition is never satisfied):
bool success = false; InPixelPipe::write(q, in_beat, success); if (!success){ sleep(1); std::cerr << i << "### STALL ###\n"; }
Documentation reads this:
Non-blocking writes add a bool argument in both host and device APIs that is passed by reference and returns true in this argument if the write was successful, and false if it was unsuccessful. On the host: // attempt non-blocking write from host to pipe until successful while (!success) MyPipeInstance::write(q, data_element, success);
Remember, it's while running simulation. In emulation, the pipe is never stalling.
Btw, with i++ HLS we didn't run in this problem, even with very large simulation data sets.
Any advice? Thanks!