Vectorization — HLS
The HLS side is how a DataArray lowers to synthesizable Vitis C++: the packing factor pf and
lanes, the canonical lane loop (read_array_lane / read_array_slice), and the storage modes.
These pages cover the three modes — raw (a flat C array, explicit per-cycle control),
struct (a generated wrapper type), and complex (complex elements) —
each over a local array.
Moving an array over a real stream or m_axi port — the stream/TLAST variants and the
pipelined loop patterns over a port — is detailed in Interfaces.
Table of contents
- Vitis: raw arrays - Vectorized arrays in raw storage — a flat C array; the packing factor and lanes, read_array_slice over a local buffer, and the canonical lane loop (with the pf=0 wide-element case).
- Vitis: struct arrays - Vectorized arrays in struct storage — a generated per-array wrapper type carrying its own packing methods, the same lane layout behind an object interface.
- Vitis: complex arrays - Vectorized complex arrays in Vitis — the std::complex / wf_cint element storage and the lane loop over complex values, building on the raw-array pattern.