We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Newbie ricvail
Registered: ‎06-27-2017

Our IP cores must be started 4 times before it produces output


We tried to design a system that is supposed to perform a matrix multiplication, but it is behaving wierdly and we can't figure out what's going on.

This is the HLS code of our cores: https://pastebin.com/6mxeksig
This is our block diagram: 


So, we tried executing this code from SDK: https://pastebin.com/DAEMtd9M

But we soon realized that this loop caused the program to get stuck:

while (!XMatrixjoiner_IsDone(&joiner));

Now, here comes the wierd part: if we launch 3 times the execution (as in we press 3 times the green button shown here:)


, the program just ends getting stuck on that loop, but the 4th time it somehow reaches the end of the main function and prints the correct results.

If we disable the cache (the commented lines) it stops working entirely.

Upon further examination, we fund out that if we put the two "start" calls in a loop that is executed 4 times (like this https://pastebin.com/uXbT2k5B ) then the program works every time.

So you could say that we did find a workaround, but this nonetheless is classified as unexpected behaviour, so I'd like to have some insight from the experts about what's going on.

0 Kudos
1 Reply
Teacher muzaffer
Registered: ‎03-31-2012

Re: Our IP cores must be started 4 times before it produces output

@ricvail does cosim pass for the IP ? Does PL timing checks fully clear? Have you tried to debug the issue by putting in an ILA to see what happens to do done signal?

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos