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
AXI Stream Slave issue? - ModelSim Microsemi Pro 2020.3 Crash #861
Comments
@mkuklewski Sounds like you're running out of memory. Can you print the output when calling the |
|
Is there any workaround to manually deallocate memory? |
@mkuklewski I thought about this a bit more and I was wrong in my previous statement. That doesn't explain why there is a memory leak. If I for example have a a stream master and a slave and let them send data between each other then RivieraPro shows constant memory usage if I look in the task manager. In my test I have 1 million transactions, each one byte. There is no fundamental leak in the code. If I use ModelSim I see that the memory usage is constantly increasing during the simulation, same thing with GHDL. Hard to say if this is the cause of your problem or if there is something else in your testbench, Also hard to say what's causing this. Does it have to do with how these simulators handles VUnit or is it something else. I think I would need a minimal working example from you to understand what is happening. |
@LarsAsplund With this testbench it takes quite long time to actually fail. Probably it would fail faster if more com transactions would be used.
|
@mkuklewski When running your example I see the same behavior as before. Riviera-PRO use constant memory while the other simulators constantly require more memory. There is a difference between the example and the original code though. In the example I see that the number of allocated vectors in the data structure settles at 703 ( This means that all but the 703 first indices in It looks like there are two issues here.
What is causing your testbench to run out of memory is hard to tell but I would start investigating what that other thing is. I suggest that you run your testbench for a short while so that those allocating constant memory have done that. Then set a breakpoint here:
That line should be executed continuously by the code allocating more memory. Step out of the function to see where the calls come from. |
@LarsAsplund As you can see idx value constantly increase and I can confirm, that this call stack is consistent -> no other function calls it. |
Hello,
In my project I want to receive large amount of AXI4 Stream transactions (to validate my IP Cores).
In my test bench I am receiving data by using axi_stream_slave entity and pop_axi_stream() function.
After more than 65 536 transactions - but less than 131 072 (I think), ModelSim completely crashes (without any error) and inside output.txt file I find following message:
Also, when it happens ModelSim takes over 4GB of memory.
The text was updated successfully, but these errors were encountered: