data.fifo.array

An array of fifos


template <
    typename T,
    auto Depth,
    auto ArraySize,
    template <typename, auto> typename FifoType = FIFO
    >
class fifo_array §source

An array of FIFOs.

Parameters

  • typename T
    

    Datatype stored in each FIFO.

  • auto Depth
    

    Number of elements stored in each FIFO.

  • auto ArraySize
    

    The number of FIFOs.

  • template <typename, auto> typename FifoType = FIFO
    

    Type of FIFO to use.

Aliases

  • using fifo_index_t = index_t<ArraySize> §source
    

    Index that identifies one FIFO.

Methods

  • template <fifo_array::fifo_index_t FifoIndex>
    void enqueue_one(T value) §source
    

    Enqueue a value into specified FIFO.

    Parameters

    Arguments

    • T value
      

      Value to store into the selected FIFO.

  • void enqueue_many(optional<T>[ArraySize] values) §source
    

    Enqueue zero or one values into each FIFO.

    Arguments

    • optional<T>[ArraySize] values
      

      Array of values to store. is_valid indicates if value should be stored.

  • void enqueue_all(T[ArraySize] values) §source
    

    Enqueue one value into each FIFO.

    Arguments

    • T[ArraySize] values
      

      Array of values to store.

  • template <fifo_array::fifo_index_t FifoIndex>
    T dequeue_one() §source
    

    Dequeue a value from specified FIFO.

    Parameters

  • optional<T>[ArraySize] dequeue_many(bool[ArraySize] mask) §source
    

    Dequeue zero or one values from each FIFO.

    Arguments

    • bool[ArraySize] mask
      

      An array of boolean values, one per FIFO. If mask[i] == true, then an element will be dequeued from FIFO i and stored in the result array at index i. If mask[i] == false, then element i in the result is undefined.

  • T[ArraySize] dequeue_all() §source
    

    Dequeue one values from each FIFO.