AI Engine Intrinsics User Guide
(AIE) v(2024.1)
|
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 :
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. | |
unsigned int ctrl_packet_header | ( | unsigned | Addr, |
unsigned | n_words, | ||
unsigned | op_type, | ||
unsigned | rspID | ||
) |
Generate a control packet header.
Addr | unsigned Local Byte Address (two LSB not used). Accesses are 128 bit aligned. |
n_words | unsigned 2 bits. 1 to 4 words of 32 bit data to follow. This must be a compile time constant. |
op_type | unsigned 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. |
rspID | unsigned 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.
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.
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.
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.
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.
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.
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.
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.
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.
unsigned int packet_header | ( | unsigned | dstID, |
unsigned | pcktType | ||
) |
Generate a packet header.
dstID | unsigned 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. |
pcktType | unsigned 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.
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.
idx_ms | master ports |
tlast | The optional tlast parameter indicates the last word in a packet and the default is false. |
Addr | unsigned Local Byte Address (two LSB not used). Accesses are 128 bit aligned. |
n_words | unsigned 2 bits. 1 to 4 words of 32 bit data to follow. This must be a compile time constant. |
op_type | unsigned 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. |
rspID | unsigned 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.
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.
idx_ms | master ports |
tlast | The optional tlast parameter indicates the last word in a packet and the default is false. |
dstID | unsigned 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. |
pcktType | unsigned 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.
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.
idx_ms | master ports |
tlast | The optional tlast parameter indicates the last word in a packet and the default is false. |
dstID | unsigned 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. |
pcktType | unsigned 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.
void put_ms_packet_header | ( | int | idx_ms, |
unsigned | dstID, | ||
unsigned | pcktType | ||
) |
Generate a packet header and Write to 32-bit streams.
idx_ms | master ports |
tlast | The optional tlast parameter indicates the last word in a packet and the default is false. |
dstID | unsigned 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. |
pcktType | unsigned 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.
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() )
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() )
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() )
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() )
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() )
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() )
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() )
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() )