CIRCT 23.0.0git
Loading...
Searching...
No Matches
Functions
esiaccel.components.flow Namespace Reference

Functions

type["MaxOutstandingLimiterImpl"] MaxOutstandingLimiter (Type data_type, int max_outstanding)
 

Function Documentation

◆ MaxOutstandingLimiter()

type["MaxOutstandingLimiterImpl"] esiaccel.components.flow.MaxOutstandingLimiter ( Type  data_type,
int  max_outstanding 
)
Rate-limit a channel to at most `max_outstanding` outstanding
transactions. A transaction becomes outstanding when a message is accepted
on `in_` and remains outstanding until `complete` is pulsed. `in_` is
stalled whenever `max_outstanding` transactions are already outstanding.

`complete` must pulse for exactly one cycle per completed transaction and
must not pulse while zero transactions are outstanding; the module does not
check this. When an input transaction and a `complete` pulse occur on the
same cycle the outstanding count is left unchanged.

Definition at line 21 of file flow.py.