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 |