Entity fifo_cc_got_tempgot
The specified depth (MIN_DEPTH
) is rounded up to the next suitable value.
As uncommitted reads occupy FIFO space that is not yet available for
writing, an instance of this FIFO can, indeed, report full
and not vld
at the same time. While a commit
would eventually make space available for
writing (not ful
), a rollback
would re-iterate data for reading
(vld
).
commit
and rollback
are inclusive and apply to all reads (got
) since
the previous commit
or rollback
up to and including a potentially
simultaneous read.
The FIFO state upon a simultaneous assertion of commit
and rollback
is
undefined!
*STATE_*_BITS
defines the granularity of the fill state indicator
*state_*
. fstate_rd
is associated with the read clock domain and outputs
the guaranteed number of words available in the FIFO. estate_wr
is
associated with the write clock domain and outputs the number of words that
is guaranteed to be accepted by the FIFO without a capacity overflow. Note
that both these indicators cannot replace the full
or valid
outputs as
they may be implemented as giving pessimistic bounds that are minimally off
the true fill state.
If a fill state is not of interest, set *STATE_*_BITS = 0
.
fstate_rd
and estate_wr
are combinatorial outputs and include an address
comparator (subtractor) in their path.
Examples:
FSTATE_RD_BITS = 1:
fstate_rd == 0 => 0/2 full
fstate_rd == 1 => 1/2 full (half full)
FSTATE_RD_BITS = 2:
fstate_rd == 0 => 0/4 full
fstate_rd == 1 => 1/4 full
fstate_rd == 2 => 2/4 full
fstate_rd == 3 => 3/4 full
Name |
Type |
Default |
Description |
---|---|---|---|
D_BITS |
positive |
|
|
MIN_DEPTH |
positive |
|
|
DATA_REG |
boolean |
false |
|
STATE_REG |
boolean |
false |
|
OUTPUT_REG |
boolean |
false |
|
ESTATE_WR_BITS |
natural |
0 |
|
FSTATE_RD_BITS |
natural |
0 |
Full State Bits |
Name |
Type |
Direction |
Description |
---|---|---|---|
rst |
std_logic |
in |
|
clk |
std_logic |
in |
|
put |
std_logic |
in |
|
din |
std_logic_vector |
in |
|
full |
std_logic |
out |
|
estate_wr |
std_logic_vector |
out |
|
got |
std_logic |
in |
|
dout |
std_logic_vector |
out |
|
valid |
std_logic |
out |
|
fstate_rd |
std_logic_vector |
out |
|
commit |
std_logic |
in |
|
rollback |
std_logic |
in |