Open mhayat-10xe opened 7 months ago
Hi @niwis, is this a bug or there is a problem in my understanding?
Hi @hayat10x, according to the signal description, valid_i
should be deasserted during flush_i
. Is this the case in your counterexample?
https://github.com/pulp-platform/common_cells/blob/69d40a536665ab9c8f0066ee48b139579df7fccd/src/stream_xbar.sv#L57-L61
Also, note that flush_i
only resets the internal state of the round-robin arbiter. If this is misleading, feel free to propose a different solution.
yes, valid_i is deasserted in the case when flush_i is asserted. I wrote the assumption for flush_i as follows:
assmp5_flush_i: // flush should only be asserted if there is no active valid_i
assume property(flush_i |-> valid_i == 0 );
could you share a waveform? Also, to clarify, flush_i only resets the internal state of the round-robin arbiter, which determines which input is being served in the following cycles.
So when the internal state of the arbiter is reset, won't it affect ready_o? Here is the waveform where you can see that valid_i = 0, and all other ready_o indexes are flushed except ready_o[31].
@hayat10x we would need more visibility to debug this. could you share a reproducible testbench or a data format containing all internal signals? Adding @thommythomaso to the discussion
Hi @niwis, I apologize for the delayed response. Unfortunately, access to the JasperGold license has been discontinued. I will provide all the internal signals once it becomes available again. Thanks
I wrote this assertion and it is failing.
It passes for all other ready_o, but fails for ready_o[31].