-
Notifications
You must be signed in to change notification settings - Fork 263
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
Wishbone master gives pop from empty queue error
in Modelsim
#692
Comments
Fails on modelsim, but working properly on ghdl.
It seems yours wb slave use combinatorial ack response? I reproduced it, but only on modelsim. Ghdl does not need fix. It looks like race condition, but according to it should never happen in VHDL? So one of the simulator is wrong, question is which one. Moreover I remember I had some ghdl/modlesim mismatches in my testbenches, but couldn't figure out the source of problems. This issue might prove something is wrong with delta cycles ordering. |
My wb slave is generated with Cheby generator I'm not sure if this really shouldn't happen. ACK and STALL should be asserted in the same delta cycle. |
What I'm not sure about is if VHDL LRM permits implementation dependent behavior - which we see in this case as modelsim gives different result than ghdl. Anyway, does the fix in slaweksiluk@91b7790 work for you? |
Yes, it fixed this problem. Thank you! Now I see another problem. It seems that WB master is dropping transactions if I queue them without any pause in-between: write_bus(...);
read_bus(...);
write_bus(...);
(...) But it works properly if I add |
ok great, please close this issue and do not hesitate to open new one when more bugs found |
I have a problem driving simple Wishbone slave from VUnit WB master. It fails already on the first transaction with message
Error: Pop from empty queue
. Waveform of faulty behaviour looks like this:After a bit of investigating I've found out that error comes this process:
https://github.com/VUnit/vunit/blob/master/vunit/vhdl/verification_components/src/wishbone_master.vhd#L146
which is receiving message sent here:
https://github.com/VUnit/vunit/blob/master/vunit/vhdl/verification_components/src/wishbone_master.vhd#L97
I think that the problem is connected with delta cycles. My WB slave logic looks like this:
The
wb_o.ack
andwb_o.stall
signals are set in the same delta cycle. But it looks like WB master expects thatack
should be set at least one delta cycle later (assuming that I correctly understand how VUnit message passing works).@slaweksiluk is my reasoning correct?
VUnit 4.4.0
Modelsim SE (Linux) 10.7a
The text was updated successfully, but these errors were encountered: