The slave will drop its req after the grant, which is delayed by 1 cycle. So the arbiter will grant 1 extra request. You can draw out the waveform if you don't see it intuitively.
Sorry, i didnt know how to better explain without drawing the waveform.
Typically, gnt signals are not flopped for this reason. if it is, you will end up with an extra grant on the last request, because the slave will keep req up until it sees grant. So for example, if slave wants to make 1 request, it will wait for grant, which is delayed by one. Once the slave sees this grant, it will drop the req, but the arbiter can grant 1 extra (2 grant total for 1 request) due to this.
So I wanted to know how we can avoid getting extra request. Any idea?
The slave will drop its req after the grant, which is delayed by 1 cycle. So the arbiter will grant 1 extra request. You can draw out the waveform if you don't see it intuitively.
Here is a figure to help. If we flop the grant, we would get 2 grants if we try to request only 1, because the requester would drop the req once it sees the flopped grant.
Here is a figure to help. If we flop the grant, we would get 2 grants if we try to request only 1, because the requester would drop the req once it sees the flopped grant.