AI Engine API User Guide (AIE-API) 2024.1
Loading...
Searching...
No Matches
Interoperability with Adaptive Data Flow (ADF) Graph Abstractions

Overview

ADF graphs use data flow abstractions to read input data and write output data.

AIE API extends such abstractions to work with its aie::vector and aie::accum data types.

Concepts

concept  aie::TLast
 Concept for tlast objects passed to << and >> operators with streams.
 

Classes

struct  aie::tlast< T, Bool >
 Type used to wrap objects read/written from/to streams that also encapsulates TLAST information. More...
 

Functions

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin (adf::io_buffer< T, Dir, Config > &port)
 Returns a foward iterator over given io buffer.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin (const adf::io_buffer< T, Dir, Config > &port)
 Returns a foward const iterator over given io buffer.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_circular (adf::io_buffer< T, Dir, Config > &port)
 Returns a foward circular iterator over given io buffer.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_circular (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const foward circular iterator over given io buffer.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_random_circular (adf::io_buffer< T, Dir, Config > &port)
 Returns a random iterator over given io buffer.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_random_circular (const adf::io_buffer< T, Dir, Config > &port)
 Returns a random const iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_restrict_vector (adf::io_buffer< T, Dir, Config > &port)
 Returns a restrict vector iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_restrict_vector (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const restrict vector iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector (adf::io_buffer< T, Dir, Config > &port)
 Returns a vector iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const vector iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector_circular (adf::io_buffer< T, Dir, Config > &port)
 Returns a vector circular iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector_circular (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const vector circular iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector_random_circular (adf::io_buffer< T, Dir, Config > &port)
 Returns a vector random circular iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector_random_circular (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const vector random circular iterator over given io buffer.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin (const adf::io_buffer< T, Dir, Config > &port)
 Returns a foward const iterator over given io buffer.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_circular (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const foward iterator over given io buffer.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_random_circular (const adf::io_buffer< T, Dir, Config > &port)
 Returns a random const iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_restrict_vector (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const restrict vector iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_vector (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const vector iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_vector_circular (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const vector circular iterator over given io buffer.
 
template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_vector_random_circular (const adf::io_buffer< T, Dir, Config > &port)
 Returns a const vector random circular iterator over given io buffer.
 
template<aie::AccumElemBaseType T, unsigned N>
constexpr output_cascade< T > & operator<< (output_cascade< T > &w, const aie::accum< T, N > &acc)
 Writes an accumulator into the output cascade stream.
 
template<aie::AccumElemBaseType T, unsigned N>
constexpr output_cascade< T > * operator<< (output_cascade< T > *w, const aie::accum< T, N > &acc)
 Writes an accumulator into the output cascade stream.
 
template<aie::AccumElemBaseType T, unsigned N>
constexpr output_stream< T > & operator<< (output_stream< T > &w, const aie::accum< T, N > &acc)
 Writes an accumulator into the output cascade stream.
 
template<typename T , unsigned N>
constexpr output_stream< T > & operator<< (output_stream< T > &w, const aie::vector< T, N > &v)
 Writes a vector into the output AXI stream.
 
template<typename T >
constexpr output_stream< T > & operator<< (output_stream< T > &w, const T &v)
 Writes a value into the output AXI stream.
 
template<typename T , aie::TLast< T > TL>
constexpr output_stream< T > & operator<< (output_stream< T > &w, const TL &tl)
 Writes a value or vector into the output AXI stream.
 
template<aie::AccumElemBaseType T, unsigned N>
constexpr output_stream< T > * operator<< (output_stream< T > *w, const aie::accum< T, N > &acc)
 Writes an accumulator into the output cascade stream.
 
template<typename T , unsigned N>
constexpr output_stream< T > * operator<< (output_stream< T > *w, const aie::vector< T, N > &v)
 Writes a vector into the output AXI stream.
 
template<typename T >
constexpr output_stream< T > & operator<< (output_stream< T > *w, const T &v)
 Writes a value into the output AXI stream.
 
template<typename T , aie::TLast< T > TL>
constexpr output_stream< T > * operator<< (output_stream< T > *w, const TL &tl)
 Writes a value into the output AXI stream.
 
template<unsigned N, aie::AccumElemBaseType T>
constexpr input_cascade< T > & operator>> (input_cascade< T > &w, aie::accum< T, N > &acc)
 Reads an accumulator from the input cascade stream.
 
template<unsigned N, aie::AccumElemBaseType T>
constexpr input_cascade< T > * operator>> (input_cascade< T > *w, aie::accum< T, N > &acc)
 Reads an accumulator from the input cascade stream.
 
template<unsigned N, aie::AccumElemBaseType T>
constexpr input_stream< T > & operator>> (input_stream< T > &w, aie::accum< T, N > &acc)
 Reads an accumulator from the input cascade stream.
 
template<unsigned N, typename T >
constexpr input_stream< T > & operator>> (input_stream< T > &w, aie::vector< T, N > &v)
 Reads a vector from the input AXI stream.
 
template<typename T , aie::TLast< T > TL>
constexpr input_stream< T > & operator>> (input_stream< T > &w, const TL &tl)
 Reads a value or vector from the input AXI stream.
 
template<typename T >
constexpr input_stream< T > & operator>> (input_stream< T > &w, T &v)
 Reads a value from the input AXI stream.
 
template<unsigned N, aie::AccumElemBaseType T>
constexpr input_stream< T > * operator>> (input_stream< T > *w, aie::accum< T, N > &acc)
 Reads an accumulator from the input cascade stream.
 
template<unsigned N, typename T >
constexpr input_stream< T > * operator>> (input_stream< T > *w, aie::vector< T, N > &v)
 Reads a vector from the input AXI stream.
 
template<typename T , aie::TLast< T > TL>
constexpr input_stream< T > * operator>> (input_stream< T > *w, const TL &tl)
 Reads a value or vector from the input AXI stream.
 
template<typename T >
constexpr input_stream< T > & operator>> (input_stream< T > *w, T &v)
 Reads a value from the input AXI stream.
 
template<unsigned N, aie::AccumElemBaseType T>
aie::accum< T, N > readincr_v (input_cascade< T > *w)
 Reads an accumulator from the input cascade stream.
 
template<unsigned N, aie_stream_resource_in Resource = aie_stream_resource_in::none, typename T >
aie::vector< T, N > readincr_v (input_stream< T > *w)
 Reads a vector from the input AXI stream.
 
template<unsigned N, aie::AccumElemBaseType T>
aie::accum< T, N > readincr_v (input_stream< T > *w)
 Reads an accumulator from the input cascade stream.
 
template<unsigned N, aie_stream_resource_in Resource = aie_stream_resource_in::none, typename T >
aie::vector< T, N > readincr_v (input_stream< T > *w, bool &tlast)
 Reads a vector from the input AXI stream and returns whether TLAST has been asserted.
 
template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
aie::vector< T, N > window_read_v (input_window< T > *w)
 Read a vector from an input window.
 
template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
void window_read_v (input_window< T > *w, aie::vector< T, N > &value)
 Read a vector from an input window.
 
template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
aie::vector< T, N > window_readdecr_v (input_window< T > *w)
 Read a vector from an input window and decrement the window pointer.
 
template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
void window_readdecr_v (input_window< T > *w, aie::vector< T, N > &value)
 Read a vector from an input window and decrement the window pointer.
 
template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
aie::vector< T, N > window_readincr_v (input_window< T > *w)
 Read a vector from an input window and increment the window pointer.
 
template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
void window_readincr_v (input_window< T > *w, aie::vector< T, N > &value)
 Read a vector from an input window and increment the window pointer.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , unsigned N>
void window_write (output_window< T > *w, const aie::vector< T, N > &value)
 Write a vector into an output window.
 
template<aie_dm_resource Resource = aie_dm_resource::none, typename T , unsigned N>
void window_writeincr (output_window< T > *w, const aie::vector< T, N > &value)
 Write a vector into an output window and increment the window pointer.
 
template<aie::AccumElemBaseType T, unsigned N>
void writeincr (output_cascade< T > *w, const aie::accum< T, N > &value)
 Writes an accumulator into the output cascade stream.
 
template<aie::AccumElemBaseType T, unsigned N>
void writeincr (output_stream< T > *w, const aie::accum< T, N > &value)
 Writes an accumulator into the output cascade stream.
 
template<aie_stream_resource_out Resource = aie_stream_resource_out::none, typename T , unsigned N>
void writeincr (output_stream< T > *w, const aie::vector< T, N > &value)
 Writes a vector into the output AXI stream.
 
template<aie_stream_resource_out Resource = aie_stream_resource_out::none, typename T , unsigned N>
void writeincr (output_stream< T > *w, const aie::vector< T, N > &value, bool tlast)
 Writes a vector into the output AXI stream.
 

Class Documentation

◆ aie::tlast

struct aie::tlast
template<typename T, typename Bool>
struct aie::tlast< T, Bool >

Type used to wrap objects read/written from/to streams that also encapsulates TLAST information.

When passed into output AXI streams, this object will say whether TLAST is asserted after the write operation. When read from input AXI streams, the object will say whether TLAST was asserted by the writer.

Public Types

using value_type = T
 

Public Member Functions

 tlast (const tlast &)=delete
 
constexpr tlast (T value, Bool t_last)
 Constructor used to initialize the object.
 
tlastoperator= (const tlast &)=delete
 

Public Attributes

Bool t_last
 
value
 

Member Typedef Documentation

◆ value_type

template<typename T , typename Bool >
using aie::tlast< T, Bool >::value_type = T

Constructor & Destructor Documentation

◆ tlast() [1/2]

template<typename T , typename Bool >
aie::tlast< T, Bool >::tlast ( const tlast< T, Bool > &  )
delete

◆ tlast() [2/2]

template<typename T , typename Bool >
constexpr aie::tlast< T, Bool >::tlast ( value,
Bool  t_last 
)
inlineconstexpr

Constructor used to initialize the object.

For input AXI streams, both arguments are references to the variables where to store the read value and TLAST. For output AXI streams, these are the value and TLAST to be written.

Member Function Documentation

◆ operator=()

template<typename T , typename Bool >
tlast & aie::tlast< T, Bool >::operator= ( const tlast< T, Bool > &  )
delete

Member Data Documentation

◆ t_last

template<typename T , typename Bool >
Bool aie::tlast< T, Bool >::t_last

◆ value

template<typename T , typename Bool >
T aie::tlast< T, Bool >::value

Function Documentation

◆ begin() [1/2]

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin ( adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a foward iterator over given io buffer.

Requires given io buffer to have linear addressing mode.

Template Parameters
Resource
Parameters
portThe io buffer

◆ begin() [2/2]

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a foward const iterator over given io buffer.

Requires given buffer port to have linear addressing mode.

Template Parameters
Resource
Parameters
portThe io buffer

◆ begin_circular() [1/2]

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_circular ( adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a foward circular iterator over given io buffer.

Template Parameters
Resource
Parameters
portThe io buffer

◆ begin_circular() [2/2]

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_circular ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const foward circular iterator over given io buffer.

Template Parameters
Resource
Parameters
portThe io buffer

◆ begin_random_circular() [1/2]

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_random_circular ( adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a random iterator over given io buffer.

If the port has circular addressing the iterator is a circular random iterator.

Template Parameters
Resource
Parameters
portThe io buffer

◆ begin_random_circular() [2/2]

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_random_circular ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a random const iterator over given io buffer.

If the port has circular addressing the iterator is a circular random const iterator.

Template Parameters
Resource
Parameters
portThe io buffer

◆ begin_restrict_vector() [1/2]

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_restrict_vector ( adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a restrict vector iterator over given io buffer.

Requires given io buffer to have linear addressing mode.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ begin_restrict_vector() [2/2]

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_restrict_vector ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const restrict vector iterator over given io buffer.

Requires given buffer port to have linear addressing mode.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ begin_vector() [1/2]

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector ( adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a vector iterator over given io buffer.

Requires given io buffer to have linear addressing mode.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ begin_vector() [2/2]

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const vector iterator over given io buffer.

Requires given buffer port to have linear addressing mode.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ begin_vector_circular() [1/2]

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector_circular ( adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a vector circular iterator over given io buffer.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ begin_vector_circular() [2/2]

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector_circular ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const vector circular iterator over given io buffer.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ begin_vector_random_circular() [1/2]

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector_random_circular ( adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a vector random circular iterator over given io buffer.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ begin_vector_random_circular() [2/2]

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::begin_vector_random_circular ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const vector random circular iterator over given io buffer.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ cbegin()

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a foward const iterator over given io buffer.

Requires given buffer port to have linear addressing mode.

Template Parameters
Resource
Parameters
portThe io buffer

◆ cbegin_circular()

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_circular ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const foward iterator over given io buffer.

Template Parameters
Resource
Parameters
portThe io buffer

◆ cbegin_random_circular()

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_random_circular ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a random const iterator over given io buffer.

If the port has circular addressing the iterator is a circular random const iterator.

Template Parameters
Resource
Parameters
portThe io buffer

◆ cbegin_restrict_vector()

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_restrict_vector ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const restrict vector iterator over given io buffer.

Requires given buffer port to have linear addressing mode.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ cbegin_vector()

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_vector ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const vector iterator over given io buffer.

Requires given buffer port to have linear addressing mode.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ cbegin_vector_circular()

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_vector_circular ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const vector circular iterator over given io buffer.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ cbegin_vector_random_circular()

template<unsigned Elems, aie_dm_resource Resource = aie_dm_resource::none, typename T , typename Dir , typename Config >
constexpr auto aie::cbegin_vector_random_circular ( const adf::io_buffer< T, Dir, Config > &  port)
constexpr

Returns a const vector random circular iterator over given io buffer.

Template Parameters
ElemsThe size of the vector
ResourceBank annotation
Parameters
portThe io buffer

◆ operator<<() [1/10]

template<aie::AccumElemBaseType T, unsigned N>
constexpr output_cascade< T > & operator<< ( output_cascade< T > &  w,
const aie::accum< T, N > &  acc 
)
constexpr

Writes an accumulator into the output cascade stream.

Parameters
wOutput cascade stream
accAccumulator to be written

◆ operator<<() [2/10]

template<aie::AccumElemBaseType T, unsigned N>
constexpr output_cascade< T > * operator<< ( output_cascade< T > *  w,
const aie::accum< T, N > &  acc 
)
constexpr

Writes an accumulator into the output cascade stream.

Parameters
wOutput cascade stream
accAccumulator to be written

◆ operator<<() [3/10]

template<aie::AccumElemBaseType T, unsigned N>
constexpr output_stream< T > & operator<< ( output_stream< T > &  w,
const aie::accum< T, N > &  acc 
)
constexpr

Writes an accumulator into the output cascade stream.

Parameters
wOutput stream
accAccumulator to be written

◆ operator<<() [4/10]

template<typename T , unsigned N>
constexpr output_stream< T > & operator<< ( output_stream< T > &  w,
const aie::vector< T, N > &  v 
)
constexpr

Writes a vector into the output AXI stream.

TLAST is not asserted.

Parameters
wOutput stream
vVector to be written

◆ operator<<() [5/10]

template<typename T >
constexpr output_stream< T > & operator<< ( output_stream< T > &  w,
const T &  v 
)
constexpr

Writes a value into the output AXI stream.

TLAST is not asserted.

Parameters
wOutput stream
vValue to be written

◆ operator<<() [6/10]

template<typename T , aie::TLast< T > TL>
constexpr output_stream< T > & operator<< ( output_stream< T > &  w,
const TL &  tl 
)
constexpr

Writes a value or vector into the output AXI stream.

The tlast object says whether TLAST is asserted.

Parameters
wOutput stream
tlObject that contains the value or vector to be written and whether TLAST is asserted.

◆ operator<<() [7/10]

template<aie::AccumElemBaseType T, unsigned N>
constexpr output_stream< T > * operator<< ( output_stream< T > *  w,
const aie::accum< T, N > &  acc 
)
constexpr

Writes an accumulator into the output cascade stream.

Parameters
wOutput stream
accAccumulator to be written

◆ operator<<() [8/10]

template<typename T , unsigned N>
constexpr output_stream< T > * operator<< ( output_stream< T > *  w,
const aie::vector< T, N > &  v 
)
constexpr

Writes a vector into the output AXI stream.

TLAST is not asserted.

Parameters
wOutput stream
vVector to be written

◆ operator<<() [9/10]

template<typename T >
constexpr output_stream< T > & operator<< ( output_stream< T > *  w,
const T &  v 
)
constexpr

Writes a value into the output AXI stream.

TLAST is not asserted.

Parameters
wOutput stream
vValue to be written

◆ operator<<() [10/10]

template<typename T , aie::TLast< T > TL>
constexpr output_stream< T > * operator<< ( output_stream< T > *  w,
const TL &  tl 
)
constexpr

Writes a value into the output AXI stream.

The tlast object says whether TLAST is asserted.

Parameters
wOutput stream
tlObject that contains the value to be written and whether TLAST is asserted.

◆ operator>>() [1/10]

template<unsigned N, aie::AccumElemBaseType T>
constexpr input_cascade< T > & operator>> ( input_cascade< T > &  w,
aie::accum< T, N > &  acc 
)
constexpr

Reads an accumulator from the input cascade stream.

Parameters
wInput cascade stream
accAccumulator read from stream. Output argument.

◆ operator>>() [2/10]

template<unsigned N, aie::AccumElemBaseType T>
constexpr input_cascade< T > * operator>> ( input_cascade< T > *  w,
aie::accum< T, N > &  acc 
)
constexpr

Reads an accumulator from the input cascade stream.

Parameters
wInput cascade stream
accAccumulator read from stream. Output argument.

◆ operator>>() [3/10]

template<unsigned N, aie::AccumElemBaseType T>
constexpr input_stream< T > & operator>> ( input_stream< T > &  w,
aie::accum< T, N > &  acc 
)
constexpr

Reads an accumulator from the input cascade stream.

Parameters
wInput stream
accAccumulator read from stream. Output argument.

◆ operator>>() [4/10]

template<unsigned N, typename T >
constexpr input_stream< T > & operator>> ( input_stream< T > &  w,
aie::vector< T, N > &  v 
)
constexpr

Reads a vector from the input AXI stream.

Parameters
wInput stream
vVector read from stream. Output argument.

◆ operator>>() [5/10]

template<typename T , aie::TLast< T > TL>
constexpr input_stream< T > & operator>> ( input_stream< T > &  w,
const TL &  tl 
)
constexpr

Reads a value or vector from the input AXI stream.

The tlast object says whether TLAST is asserted.

Parameters
wInput stream
tlObject that contains the value or vector read from stream. Output argument.

◆ operator>>() [6/10]

template<typename T >
constexpr input_stream< T > & operator>> ( input_stream< T > &  w,
T &  v 
)
constexpr

Reads a value from the input AXI stream.

Parameters
wInput stream
vValue read from stream. Output argument.

◆ operator>>() [7/10]

template<unsigned N, aie::AccumElemBaseType T>
constexpr input_stream< T > * operator>> ( input_stream< T > *  w,
aie::accum< T, N > &  acc 
)
constexpr

Reads an accumulator from the input cascade stream.

Parameters
wInput stream
accAccumulator read from stream. Output argument.

◆ operator>>() [8/10]

template<unsigned N, typename T >
constexpr input_stream< T > * operator>> ( input_stream< T > *  w,
aie::vector< T, N > &  v 
)
constexpr

Reads a vector from the input AXI stream.

Parameters
wInput stream
vVector read from stream. Output argument.

◆ operator>>() [9/10]

template<typename T , aie::TLast< T > TL>
constexpr input_stream< T > * operator>> ( input_stream< T > *  w,
const TL &  tl 
)
constexpr

Reads a value or vector from the input AXI stream.

The tlast object says whether TLAST is asserted.

Parameters
wInput stream
tlObject that contains the value or vector read from stream. Output argument.

◆ operator>>() [10/10]

template<typename T >
constexpr input_stream< T > & operator>> ( input_stream< T > *  w,
T &  v 
)
constexpr

Reads a value from the input AXI stream.

Parameters
wInput stream
vValue read from stream. Output argument.

◆ readincr_v() [1/4]

template<unsigned N, aie::AccumElemBaseType T>
aie::accum< T, N > readincr_v ( input_cascade< T > *  w)

Reads an accumulator from the input cascade stream.

Parameters
wInput cascade stream

◆ readincr_v() [2/4]

template<unsigned N, aie_stream_resource_in Resource = aie_stream_resource_in::none, typename T >
aie::vector< T, N > readincr_v ( input_stream< T > *  w)

Reads a vector from the input AXI stream.

Template Parameters
NSize of the vector to be read
ResourceStream in resource. This information can be leveraged by the compiler to schedule stream reads in parallel when possible
Parameters
wInput stream

◆ readincr_v() [3/4]

template<unsigned N, aie::AccumElemBaseType T>
aie::accum< T, N > readincr_v ( input_stream< T > *  w)

Reads an accumulator from the input cascade stream.

Parameters
wInput stream

◆ readincr_v() [4/4]

template<unsigned N, aie_stream_resource_in Resource = aie_stream_resource_in::none, typename T >
aie::vector< T, N > readincr_v ( input_stream< T > *  w,
bool &  tlast 
)

Reads a vector from the input AXI stream and returns whether TLAST has been asserted.

Template Parameters
NSize of the vector to be read
ResourceStream in resource. This information can be leveraged by the compiler to schedule stream reads in parallel when possible
Parameters
wInput stream
tlastOutput argument that tells whether TLAST has been asserted.

◆ window_read_v() [1/2]

template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
aie::vector< T, N > window_read_v ( input_window< T > *  w)

Read a vector from an input window.

Template Parameters
NSize of the vector to be read
Parameters
wInput window

◆ window_read_v() [2/2]

template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
void window_read_v ( input_window< T > *  w,
aie::vector< T, N > &  value 
)

Read a vector from an input window.

Parameters
wInput window
valueOutput parameter that contains the read vector

◆ window_readdecr_v() [1/2]

template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
aie::vector< T, N > window_readdecr_v ( input_window< T > *  w)

Read a vector from an input window and decrement the window pointer.

Template Parameters
NSize of the vector to be read
Parameters
wInput window

◆ window_readdecr_v() [2/2]

template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
void window_readdecr_v ( input_window< T > *  w,
aie::vector< T, N > &  value 
)

Read a vector from an input window and decrement the window pointer.

Parameters
wInput window
valueOutput parameter that contains the read vector

◆ window_readincr_v() [1/2]

template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
aie::vector< T, N > window_readincr_v ( input_window< T > *  w)

Read a vector from an input window and increment the window pointer.

Template Parameters
NSize of the vector to be read
Parameters
wInput window

◆ window_readincr_v() [2/2]

template<unsigned N, aie_dm_resource Resource = aie_dm_resource::none, typename T >
void window_readincr_v ( input_window< T > *  w,
aie::vector< T, N > &  value 
)

Read a vector from an input window and increment the window pointer.

Parameters
wInput window
valueOutput parameter that contains the read vector

◆ window_write()

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , unsigned N>
void window_write ( output_window< T > *  w,
const aie::vector< T, N > &  value 
)

Write a vector into an output window.

Parameters
wOutput window
valueVector to be written

◆ window_writeincr()

template<aie_dm_resource Resource = aie_dm_resource::none, typename T , unsigned N>
void window_writeincr ( output_window< T > *  w,
const aie::vector< T, N > &  value 
)

Write a vector into an output window and increment the window pointer.

Parameters
wOutput window
valueVector to be written

◆ writeincr() [1/4]

template<aie::AccumElemBaseType T, unsigned N>
void writeincr ( output_cascade< T > *  w,
const aie::accum< T, N > &  value 
)

Writes an accumulator into the output cascade stream.

Parameters
wOutput cascade stream
valueAccumulator to be written

◆ writeincr() [2/4]

template<aie::AccumElemBaseType T, unsigned N>
void writeincr ( output_stream< T > *  w,
const aie::accum< T, N > &  value 
)

Writes an accumulator into the output cascade stream.

Parameters
wOutput stream
valueAccumulator to be written

◆ writeincr() [3/4]

template<aie_stream_resource_out Resource = aie_stream_resource_out::none, typename T , unsigned N>
void writeincr ( output_stream< T > *  w,
const aie::vector< T, N > &  value 
)

Writes a vector into the output AXI stream.

TLAST is not asserted.

Template Parameters
ResourceStream out resource. This information can be leveraged by the compiler to schedule stream writes in parallel when possible
Parameters
wOutput stream
valueVector to be written

◆ writeincr() [4/4]

template<aie_stream_resource_out Resource = aie_stream_resource_out::none, typename T , unsigned N>
void writeincr ( output_stream< T > *  w,
const aie::vector< T, N > &  value,
bool  tlast 
)

Writes a vector into the output AXI stream.

An additional argument says whether TLAST is asserted.

Template Parameters
ResourceStream out resource. This information can be leveraged by the compiler to schedule stream writes in parallel when possible
Parameters
wOutput stream
valueVector to be written
tlastTLAST is asserted if true