Continue to Site

# arbiter - flopping the grant signals

Status
Not open for further replies.

#### stanford

##### Full Member level 2
due to timing, if we need the arbiter to flop all its output, how can we make it work?

If we don't do anything, we could get 'extra' grants.

The grant signal of an arbiter is just a signal. You latch it like any other. There is no issue whatsoever

The grant signal of an arbiter is just a signal. You latch it like any other. There is no issue whatsoever
No, there is an issue.

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.

and the problem remains a trivial one, solved with a sequential piece of logic.

and the problem remains a trivial one, solved with a sequential piece of logic.
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.
Is it asking too much to expect a waveform drawing?

Is it asking too much to expect a waveform drawing?
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.

FvM

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.

View attachment 174533
Anyone familiar with arbiter design know how we can deal with flopped grant and what we typically do to avoid this problem?

Everything depends on the enviroment of your arbiter. A simple solution could be to AND the registered grant signal with the request.

Status
Not open for further replies.