Instruction/Operator Explanation - 2023.2 English

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 English

The following table offers a definition of some of the operators used in HLS compiler. Standard llvm instruction can be found here: https://llvm.org/docs/LangRef.html#instruction-reference

Name Description
FSqrt Compute the square root of float
FRSqrt Compute the reciprocal of square root of float
FRecip Compute the reciprocal of float
FLog Compute the Logarithmic of float
FExp Compute the exponential of float
DSqrt Compute the square root of double
DRSqrt Compute the reciprocal of square root of double
DRecip Compute the reciprocal of double
DLog Compute the Logarithmic of double
DExp Compute the exponential of double
BlackBox Instantiate a blackbox function
BitSelect Select a single bit of a variable
BitSet Set a single bit of a variable
PartSelect Select a range of bits of a variable
PartSet Set a range of bits of a variable
BitConcatenate Concatenate two variables
XorReduce Compute XOR reduce of a variable defined by xor_reduce() in ap_(u)int types
XnorReduce Compute XNOR reduce of a variable defined by xnor_reduce() in ap_(u)int types
AndReduce Compute AND reduce of a variable defined by and_reduce() in ap_(u)int types
NandReduce Compute NAND reduce of a variable defined by nand_reduce() in ap_(u)int types
OrReduce Compute OR reduce of a variable defined by or_reduce() in ap_(u)int types
NorReduce Compute NOR reduce of a variable defined by nor_reduce() in ap_(u)int types
Read Read a value from an interface
Write Write a value to an interface
NbRead Non-block read a value from an interface
NbWrite non-block write a value to an interface
ReadReq Send a read request to a bus. Only available for m_axi.
WriteReq Send a write request to a bus. Only available for m_axi.
WriteResp Receive a write respond from a bus. Only for m_axi.
MemShiftRead Shift the registers of SRL primitive
Mux Select a value from multiple values