FIFO |
This device handles a queue of data using the FIFO ( FIRST IN FIRST OUT ) method. This kind of data structure is known also as CIRCULAR QUEUE. The FIFO device allows you to store a lot of data and retrieve it in reverse order. The queue can handle words of 8 or 16 bits with user definable stack-depth. Keep in mind that in some versions of the software the maximum size of the queue is function of the current memory model. For further information about this argument refer to the section MEMORY MODELS .
The FIFO functionality is explained below :
The data present on the IN plug is inserted in the queue on the raising-edge of the PUSH signal. The OUT signal always gives the value of the first data available. Data can be sequentially retrieved in reverse order applying signals on the PULL signal. When the PULL signal is applied the OUT plug will give the value for the next data available. In the case of the queue being empty the OUT plug will supply zero. Two pins are available to check the FIFO status. The EMPTY signal is true when the queue is empty and the FULL signal is true when the queue is FULL.
PUSH and PULL signals are sampled simultaineously. If a transition is detected on both the signals, PUSH has precedence respect to PULL.
Property settings
Parameter |
Description |
DEPTH |
The queue depth |
|
|
DATA SIZE |
The word size for the queue ( BYTE / WORD ) |
Net plugs
Plug |
Description |
IN |
Data input |
|
|
OUT |
Data output |
|
|
PUSH |
This signal pushes data in the queue |
|
|
PULL |
This signal pulls data from the queue |
|
|
FULL |
This signal become true when the queue is full |
|
|
EMPTY |
This signal becomes true when the queue is empty |
See also : LIFO