AI Engine Intrinsics User Guide  (AIE) v(2024.1)
 All Data Structures Namespaces Functions Variables Typedefs Groups Pages

Overview

These intrinsics enable the AI Engine to access the input/output streams. Some of these intrinsics are "blocking" and will stall the AIE when trying to read from an empty stream, or write to a full one. Non blocking intrinsics have "_nb" in their name.

Concerning performance :

See Also
Control register
Status register

Packet headers

These intrinsics are designed to facilitate the headers creation. They do not write directly to stream and should always be combined with a "put_ms" call.

unsigned int packet_header (unsigned dstID, unsigned pcktType)
 Generate a packet header.
 

Generate 32-bit Packet headers and Write to output stream port MS0 or MS1

These intrinsics are designed to facilitate the headers creation. They write directly to stream.

void put_ms_packet_header (int idx_ms, int tlast, unsigned dstID, unsigned pcktType)
 Generate a packet header and Write to 32-bit streams.
 
void put_ms_packet_header (int idx_ms, unsigned dstID, unsigned pcktType)
 Generate a packet header and Write to 32-bit streams.
 
unsigned int ctrl_packet_header (unsigned Addr, unsigned n_words, unsigned op_type, unsigned rspID)
 Generate a control packet header.
 
void put_ms_ctrl_packet_header (int idx_ms, int tlast, unsigned Addr, unsigned n_words, unsigned op_type, unsigned rspID)
 Generate a control packet header and Write to 32-bit streams.
 
void put_ms_ctrl_packet_header (int idx_ms, unsigned Addr, unsigned n_words, unsigned op_type, unsigned rspID)
 Generate a packet header and Write to 32-bit streams.
 

Unpack accumulator types into vectors after reading from cascade

v32int8 unpackb (v8acc48)
 Unpack a 256-bit vector received from the input cascade stream.
 
v32uint8 unpackub (v8acc48)
 Unpack a 256-bit vector received from the input cascade stream.
 
v16int16 unpack (v8acc48)
 Unpack a 256-bit vector received from the input cascade stream.
 
v8cint16 unpackc (v8acc48)
 Unpack a 256-bit vector received from the input cascade stream.
 
v8int32 unpackl (v8acc48)
 Unpack a 256-bit vector received from the input cascade stream.
 
v4cint32 unpacklc (v4cacc48)
 Unpack a 256-bit vector received from the input cascade stream.
 
v8float unpackf (v8acc48)
 Unpack a 256-bit vector received from the input cascade stream.
 
v4cfloat unpackfc (v4cacc48)
 Unpack a 256-bit vector received from the input cascade stream.
 

Read cascade stream

v8acc48 get_scd ()
 Read 384 bit data into accumulator from cascade stream.
 
v4cacc48 getc_scd ()
 Read 384 bit data into accumulator from cascade stream.
 
v4acc80 getl_scd ()
 Read 384 bit data into accumulator from cascade stream.
 
v2cacc80 getlc_scd ()
 Read 384 bit data into accumulator from cascade stream.
 
v8acc48 get_scd_v8acc48 ()
 Read 384 bit data into accumulator from cascade stream.
 
v4cacc48 get_scd_v4cacc48 ()
 Read 384 bit data into accumulator from cascade stream.
 
v4acc80 get_scd_v4acc80 ()
 Read 384 bit data into accumulator from cascade stream.
 
v2cacc80 get_scd_v2cacc80 ()
 Read 384 bit data into accumulator from cascade stream.
 
v32int8 get_scd_v32int8 ()
 Read 384 bit data into accumulator from cascade stream.
 
v32uint8 get_scd_v32uint8 ()
 Read 384 bit data into accumulator from cascade stream.
 
v16int16 get_scd_v16int16 ()
 Read 384 bit data into accumulator from cascade stream.
 
v8cint16 get_scd_v8cint16 ()
 Read 384 bit data into accumulator from cascade stream.
 
v8int32 get_scd_v8int32 ()
 Read 384 bit data into accumulator from cascade stream.
 
v4cint32 get_scd_v4cint32 ()
 Read 384 bit data into accumulator from cascade stream.
 
v8float get_scd_v8float ()
 Read 384 bit data into accumulator from cascade stream.
 
v4cfloat get_scd_v4cfloat ()
 Read 384 bit data into accumulator from cascade stream.
 

Pack vectors into accumulator types for cascade writing

v8acc48 packa (v32int8)
 Pack a 256-bit vector for sending via the output cascade stream.
 
v8acc48 packa (v32uint8)
 Pack a 256-bit vector for sending via the output cascade stream.
 
v8acc48 packa (v16int16)
 Pack a 256-bit vector for sending via the output cascade stream.
 
v8acc48 packa (v8cint16)
 Pack a 256-bit vector for sending via the output cascade stream.
 
v8acc48 packa (v8int32)
 Pack a 256-bit vector for sending via the output cascade stream.
 
v4cacc48 packa (v4cint32)
 Pack a 256-bit vector for sending via the output cascade stream.
 
v8acc48 packa (v8float)
 Pack a 256-bit vector for sending via the output cascade stream.
 
v4cacc48 packa (v4cfloat)
 Pack a 256-bit vector for sending via the output cascade stream.
 

Write cascade stream

void put_mcd (v8acc48 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v4cacc48 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v4acc80 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v2cacc80 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v32int8 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v32uint8 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v16int16 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v8cint16 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v8int32 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v4cint32 a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v8float a)
 Write 384 bit data out to cascade stream.
 
void put_mcd (v4cfloat a)
 Write 384 bit data out to cascade stream.
 

Write 32-bit streams

void put_ms (int idx_ms, int val, int tlast)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms_nb (int idx_ms, int val, int tlast)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms (int idx_ms, unsigned int a, int tlast)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms (int idx_ms, float a, int tlast)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms (int idx_ms, int a)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms (int idx_ms, unsigned int a)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms (int idx_ms, float a)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms_nb (int idx_ms, unsigned int a, int tlast)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms_nb (int idx_ms, float a, int tlast)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms_nb (int idx_ms, int a)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms_nb (int idx_ms, unsigned int a)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 
void put_ms_nb (int idx_ms, float a)
 Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.
 

Read 32-bit streams

int get_ss (int idx_ss)
 Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.
 
int get_ss_nb (int idx_ss)
 Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.
 
float getf_ss (int idx)
 Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.
 
float getf_ss_nb (int idx)
 Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.
 
cint16 getc_ss (int idx)
 Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.
 
cint16 getc_ss_nb (int idx)
 Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.
 

Read 128-bit streams

v4int32 getl_wss (int idx_ss)
 Reads a 128-bit vector from input stream port WSS0 or WSS1.
 
v16int8 getb_wss (int idx_ss)
 Reads a 128-bit vector from input stream port WSS0 or WSS1.
 
v16uint8 getub_wss (int idx_ss)
 Reads a 128-bit vector from input stream port WSS0 or WSS1.
 
v8int16 get_wss (int idx_ss)
 Reads a 128-bit vector from input stream port WSS0 or WSS1.
 
v4cint16 getc_wss (int idx_ss)
 Reads a 128-bit vector from input stream port WSS0 or WSS1.
 
v2cint32 getlc_wss (int idx_ss)
 Reads a 128-bit vector from input stream port WSS0 or WSS1.
 
v4float getf_wss (int idx_ss)
 Reads a 128-bit vector from input stream port WSS0 or WSS1.
 
v2cfloat getfc_wss (int idx_ss)
 Reads a 128-bit vector from input stream port WSS0 or WSS1.
 

Write 128-bit streams

void put_wms (int idx_ms, v4int32 val, int tlast)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v16int8 a, int tlast)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v16uint8 a, int tlast)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v8int16 a, int tlast)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v4cint16 a, int tlast)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v2cint32 a, int tlast)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v4float a, int tlast)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v2cfloat a, int tlast)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v16int8 a)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v16uint8 a)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v8int16 a)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v4cint16 a)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v4int32 a)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v2cint32 a)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v4float a)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 
void put_wms (int idx_ms, v2cfloat a)
 Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.
 

Function Documentation

unsigned int ctrl_packet_header ( unsigned  Addr,
unsigned  n_words,
unsigned  op_type,
unsigned  rspID 
)

Generate a control packet header.

Parameters
Addrunsigned Local Byte Address (two LSB not used). Accesses are 128 bit aligned.
n_wordsunsigned 2 bits. 1 to 4 words of 32 bit data to follow. This must be a compile time constant.
op_typeunsigned Operation modes - 2 bit (LSB). 3 modes. 0 - Write without return, 1 - Read with return, 2 - Write with return. The response to a read will be a packet switched stream header and 1 to 4 32 bit word data. The response to a write will be a packet switched stream header. This must be a compile time constant.
rspIDunsigned Response ID: 5 bit (LSB). Identifies the return destination for operation modes with a return. (The return packet's header's 'dstID' is set to this).

This intrinsic takes an address, number of words, operation type and response ID and returns a control packet header.

Note
Parameters 'n_words' and 'op_type' must be compile time constants.
Deprecated:
Please use 'void put_ms_ctrl_packet_header(int, int, unsigned, unsigned, unsigned, unsigned)' instead.
v8acc48 get_scd ( )

Read 384 bit data into accumulator from cascade stream.

v16int16 get_scd_v16int16 ( )

Read 384 bit data into accumulator from cascade stream.

v2cacc80 get_scd_v2cacc80 ( )

Read 384 bit data into accumulator from cascade stream.

v32int8 get_scd_v32int8 ( )

Read 384 bit data into accumulator from cascade stream.

v32uint8 get_scd_v32uint8 ( )

Read 384 bit data into accumulator from cascade stream.

v4acc80 get_scd_v4acc80 ( )

Read 384 bit data into accumulator from cascade stream.

v4cacc48 get_scd_v4cacc48 ( )

Read 384 bit data into accumulator from cascade stream.

v4cfloat get_scd_v4cfloat ( )

Read 384 bit data into accumulator from cascade stream.

v4cint32 get_scd_v4cint32 ( )

Read 384 bit data into accumulator from cascade stream.

v8acc48 get_scd_v8acc48 ( )

Read 384 bit data into accumulator from cascade stream.

v8cint16 get_scd_v8cint16 ( )

Read 384 bit data into accumulator from cascade stream.

v8float get_scd_v8float ( )

Read 384 bit data into accumulator from cascade stream.

v8int32 get_scd_v8int32 ( )

Read 384 bit data into accumulator from cascade stream.

int get_ss ( int  idx_ss)

Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.

int get_ss_nb ( int  idx_ss)

Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.

v8int16 get_wss ( int  idx_ss)

Reads a 128-bit vector from input stream port WSS0 or WSS1.

v16int8 getb_wss ( int  idx_ss)

Reads a 128-bit vector from input stream port WSS0 or WSS1.

v4cacc48 getc_scd ( )

Read 384 bit data into accumulator from cascade stream.

cint16 getc_ss ( int  idx)

Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.

cint16 getc_ss_nb ( int  idx)

Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.

v4cint16 getc_wss ( int  idx_ss)

Reads a 128-bit vector from input stream port WSS0 or WSS1.

float getf_ss ( int  idx)

Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.

float getf_ss_nb ( int  idx)

Read a 32-bit value from input stream port SS0 or SS1 Intrinsics suffixed with _nb perform a non-blocking read. All others are blocking.

v4float getf_wss ( int  idx_ss)

Reads a 128-bit vector from input stream port WSS0 or WSS1.

v2cfloat getfc_wss ( int  idx_ss)

Reads a 128-bit vector from input stream port WSS0 or WSS1.

v4acc80 getl_scd ( )

Read 384 bit data into accumulator from cascade stream.

v4int32 getl_wss ( int  idx_ss)

Reads a 128-bit vector from input stream port WSS0 or WSS1.

v2cacc80 getlc_scd ( )

Read 384 bit data into accumulator from cascade stream.

v2cint32 getlc_wss ( int  idx_ss)

Reads a 128-bit vector from input stream port WSS0 or WSS1.

v16uint8 getub_wss ( int  idx_ss)

Reads a 128-bit vector from input stream port WSS0 or WSS1.

v8acc48 packa ( v32int8  )

Pack a 256-bit vector for sending via the output cascade stream.

This intrinsic sign extends each 32bit word to 48bit and then assigns the result to a accumulator of the return type. This intrinsic can only be used coupled with put_mcd and cannot be used alone.

Deprecated:
Better use put_mcd(), which now supports all the datatypes that can be stored in an accumulator.
v8acc48 packa ( v32uint8  )

Pack a 256-bit vector for sending via the output cascade stream.

This intrinsic sign extends each 32bit word to 48bit and then assigns the result to a accumulator of the return type. This intrinsic can only be used coupled with put_mcd and cannot be used alone.

Deprecated:
Better use put_mcd(), which now supports all the datatypes that can be stored in an accumulator.
v8acc48 packa ( v16int16  )

Pack a 256-bit vector for sending via the output cascade stream.

This intrinsic sign extends each 32bit word to 48bit and then assigns the result to a accumulator of the return type. This intrinsic can only be used coupled with put_mcd and cannot be used alone.

Deprecated:
Better use put_mcd(), which now supports all the datatypes that can be stored in an accumulator.
v8acc48 packa ( v8cint16  )

Pack a 256-bit vector for sending via the output cascade stream.

This intrinsic sign extends each 32bit word to 48bit and then assigns the result to a accumulator of the return type. This intrinsic can only be used coupled with put_mcd and cannot be used alone.

Deprecated:
Better use put_mcd(), which now supports all the datatypes that can be stored in an accumulator.
v8acc48 packa ( v8int32  )

Pack a 256-bit vector for sending via the output cascade stream.

This intrinsic sign extends each 32bit word to 48bit and then assigns the result to a accumulator of the return type. This intrinsic can only be used coupled with put_mcd and cannot be used alone.

Deprecated:
Better use put_mcd(), which now supports all the datatypes that can be stored in an accumulator.
v4cacc48 packa ( v4cint32  )

Pack a 256-bit vector for sending via the output cascade stream.

This intrinsic sign extends each 32bit word to 48bit and then assigns the result to a accumulator of the return type. This intrinsic can only be used coupled with put_mcd and cannot be used alone.

Deprecated:
Better use put_mcd(), which now supports all the datatypes that can be stored in an accumulator.
v8acc48 packa ( v8float  )

Pack a 256-bit vector for sending via the output cascade stream.

This intrinsic sign extends each 32bit word to 48bit and then assigns the result to a accumulator of the return type. This intrinsic can only be used coupled with put_mcd and cannot be used alone.

Deprecated:
Better use put_mcd(), which now supports all the datatypes that can be stored in an accumulator.
v4cacc48 packa ( v4cfloat  )

Pack a 256-bit vector for sending via the output cascade stream.

This intrinsic sign extends each 32bit word to 48bit and then assigns the result to a accumulator of the return type. This intrinsic can only be used coupled with put_mcd and cannot be used alone.

Deprecated:
Better use put_mcd(), which now supports all the datatypes that can be stored in an accumulator.
unsigned int packet_header ( unsigned  dstID,
unsigned  pcktType 
)

Generate a packet header.

Parameters
dstIDunsigned 5 bit (LSB). Identifies the destination of the packet. Should be unique amongst all streams it shares ports with. Can be 32 destinations or more with nested headers.
pcktTypeunsigned 3 bit (LSB). Can be used to distinguish packets with the same source and destination. Control packets set this to 7 if there is an error. This must be a compile time constant.

This intrinsic takes a destination ID and a packet type and returns a packet header.

Note
Parameter 'pcktType' must be a compile time constant.
A packet with nested headers has a number of headers at the beginning (instead of the usual single header). For every level of header nesting, the number of possible destinations is multiplied by 32, thus for a two-nested header approach, the number of destinations is already 1024.
Deprecated:
Please use 'void put_ms_packet_header(int, int, unsigned, unsigned)' instead.
void put_mcd ( v8acc48  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v4cacc48  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v4acc80  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v2cacc80  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v32int8  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v32uint8  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v16int16  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v8cint16  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v8int32  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v4cint32  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v8float  a)

Write 384 bit data out to cascade stream.

void put_mcd ( v4cfloat  a)

Write 384 bit data out to cascade stream.

void put_ms ( int  idx_ms,
int  val,
int  tlast 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms ( int  idx_ms,
unsigned int  a,
int  tlast 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms ( int  idx_ms,
float  a,
int  tlast 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms ( int  idx_ms,
int  a 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms ( int  idx_ms,
unsigned int  a 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms ( int  idx_ms,
float  a 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms_ctrl_packet_header ( int  idx_ms,
int  tlast,
unsigned  Addr,
unsigned  n_words,
unsigned  op_type,
unsigned  rspID 
)

Generate a control packet header and Write to 32-bit streams.

Parameters
idx_msmaster ports
tlastThe optional tlast parameter indicates the last word in a packet and the default is false.
Addrunsigned Local Byte Address (two LSB not used). Accesses are 128 bit aligned.
n_wordsunsigned 2 bits. 1 to 4 words of 32 bit data to follow. This must be a compile time constant.
op_typeunsigned Operation modes - 2 bit (LSB). 3 modes. 0 - Write without return, 1 - Read with return, 2 - Write with return. The response to a read will be a packet switched stream header and 1 to 4 32 bit word data. The response to a write will be a packet switched stream header. This must be a compile time constant.
rspIDunsigned Response ID: 5 bit (LSB). Identifies the return destination for operation modes with a return. (The return packet's header's 'dstID' is set to this).

This intrinsic takes an address, number of words, operation type and response ID and returns a control packet header.

Note
Parameters 'n_words' and 'op_type' must be compile time constants.
void put_ms_ctrl_packet_header ( int  idx_ms,
unsigned  Addr,
unsigned  n_words,
unsigned  op_type,
unsigned  rspID 
)

Generate a packet header and Write to 32-bit streams.

Parameters
idx_msmaster ports
tlastThe optional tlast parameter indicates the last word in a packet and the default is false.
dstIDunsigned 5 bit (LSB). Identifies the destination of the packet. Should be unique amongst all streams it shares ports with. Can be 32 destinations or more with nested headers.
pcktTypeunsigned 3 bit (LSB). Can be used to distinguish packets with the same source and destination. Control packets set this to 7 if there is an error. This must be a compile time constant.

This intrinsic takes a destination ID and a packet type and returns a packet header.

Note
Parameter 'pcktType' must be a compile time constant.
A packet with nested headers has a number of headers at the beginning (instead of the usual single header). For every level of header nesting, the number of possible destinations is multiplied by 32, thus for a two-nested header approach, the number of destinations is already 1024.
void put_ms_nb ( int  idx_ms,
int  val,
int  tlast 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms_nb ( int  idx_ms,
unsigned int  a,
int  tlast 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms_nb ( int  idx_ms,
float  a,
int  tlast 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms_nb ( int  idx_ms,
int  a 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms_nb ( int  idx_ms,
unsigned int  a 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms_nb ( int  idx_ms,
float  a 
)

Write a 32-bit value to output stream port MS0 or MS1 The optional tlast parameter indicates the last word in a packet and the default is false. Intrinsics suffixed with _nb perform a non-blocking write. All others are blocking.

void put_ms_packet_header ( int  idx_ms,
int  tlast,
unsigned  dstID,
unsigned  pcktType 
)

Generate a packet header and Write to 32-bit streams.

Parameters
idx_msmaster ports
tlastThe optional tlast parameter indicates the last word in a packet and the default is false.
dstIDunsigned 5 bit (LSB). Identifies the destination of the packet. Should be unique amongst all streams it shares ports with. Can be 32 destinations or more with nested headers.
pcktTypeunsigned 3 bit (LSB). Can be used to distinguish packets with the same source and destination. Control packets set this to 7 if there is an error. This must be a compile time constant.

This intrinsic takes a destination ID and a packet type and returns a packet header.

Note
Parameter 'pcktType' must be a compile time constant.
A packet with nested headers has a number of headers at the beginning (instead of the usual single header). For every level of header nesting, the number of possible destinations is multiplied by 32, thus for a two-nested header approach, the number of destinations is already 1024.
void put_ms_packet_header ( int  idx_ms,
unsigned  dstID,
unsigned  pcktType 
)

Generate a packet header and Write to 32-bit streams.

Parameters
idx_msmaster ports
tlastThe optional tlast parameter indicates the last word in a packet and the default is false.
dstIDunsigned 5 bit (LSB). Identifies the destination of the packet. Should be unique amongst all streams it shares ports with. Can be 32 destinations or more with nested headers.
pcktTypeunsigned 3 bit (LSB). Can be used to distinguish packets with the same source and destination. Control packets set this to 7 if there is an error. This must be a compile time constant.

This intrinsic takes a destination ID and a packet type and returns a packet header.

Note
Parameter 'pcktType' must be a compile time constant.
A packet with nested headers has a number of headers at the beginning (instead of the usual single header). For every level of header nesting, the number of possible destinations is multiplied by 32, thus for a two-nested header approach, the number of destinations is already 1024.
void put_wms ( int  idx_ms,
v4int32  val,
int  tlast 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v16int8  a,
int  tlast 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v16uint8  a,
int  tlast 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v8int16  a,
int  tlast 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v4cint16  a,
int  tlast 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v2cint32  a,
int  tlast 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v4float  a,
int  tlast 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v2cfloat  a,
int  tlast 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v16int8  a 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v16uint8  a 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v8int16  a 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v4cint16  a 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v4int32  a 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v2cint32  a 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v4float  a 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

void put_wms ( int  idx_ms,
v2cfloat  a 
)

Writes a 128-bit vector to output stream port WMS0 or WMS1 The optional tlast parameter indicates the last word in a packet and the default is false.

v16int16 unpack ( v8acc48  )

Unpack a 256-bit vector received from the input cascade stream.

This intrinsic truncates each 48bit word to 32bit and then assigns the result to a vector of the result type This intrinsic can only be used coupled with a stream access (getxx_scd() )

Deprecated:
Better use get_scd_T() where T is the type you wish to obtain. E.g. get_scd_v32int8()
v32int8 unpackb ( v8acc48  )

Unpack a 256-bit vector received from the input cascade stream.

This intrinsic truncates each 48bit word to 32bit and then assigns the result to a vector of the result type This intrinsic can only be used coupled with a stream access (getxx_scd() )

Deprecated:
Better use get_scd_T() where T is the type you wish to obtain. E.g. get_scd_v32int8()
v8cint16 unpackc ( v8acc48  )

Unpack a 256-bit vector received from the input cascade stream.

This intrinsic truncates each 48bit word to 32bit and then assigns the result to a vector of the result type This intrinsic can only be used coupled with a stream access (getxx_scd() )

Deprecated:
Better use get_scd_T() where T is the type you wish to obtain. E.g. get_scd_v32int8()
v8float unpackf ( v8acc48  )

Unpack a 256-bit vector received from the input cascade stream.

This intrinsic truncates each 48bit word to 32bit and then assigns the result to a vector of the result type This intrinsic can only be used coupled with a stream access (getxx_scd() )

Deprecated:
Better use get_scd_T() where T is the type you wish to obtain. E.g. get_scd_v32int8()
v4cfloat unpackfc ( v4cacc48  )

Unpack a 256-bit vector received from the input cascade stream.

This intrinsic truncates each 48bit word to 32bit and then assigns the result to a vector of the result type This intrinsic can only be used coupled with a stream access (getxx_scd() )

Deprecated:
Better use get_scd_T() where T is the type you wish to obtain. E.g. get_scd_v32int8()
v8int32 unpackl ( v8acc48  )

Unpack a 256-bit vector received from the input cascade stream.

This intrinsic truncates each 48bit word to 32bit and then assigns the result to a vector of the result type This intrinsic can only be used coupled with a stream access (getxx_scd() )

Deprecated:
Better use get_scd_T() where T is the type you wish to obtain. E.g. get_scd_v32int8()
v4cint32 unpacklc ( v4cacc48  )

Unpack a 256-bit vector received from the input cascade stream.

This intrinsic truncates each 48bit word to 32bit and then assigns the result to a vector of the result type This intrinsic can only be used coupled with a stream access (getxx_scd() )

Deprecated:
Better use get_scd_T() where T is the type you wish to obtain. E.g. get_scd_v32int8()
v32uint8 unpackub ( v8acc48  )

Unpack a 256-bit vector received from the input cascade stream.

This intrinsic truncates each 48bit word to 32bit and then assigns the result to a vector of the result type This intrinsic can only be used coupled with a stream access (getxx_scd() )

Deprecated:
Better use get_scd_T() where T is the type you wish to obtain. E.g. get_scd_v32int8()