The Port element allows you to exchange data.
All types of the Port elements share the following set of properties:
- Name - The port name. The name must be a valid C identifier, must be unique and
can't exceed 63 characters.
- Alias - Additional port name.
- Port Type - The port type: IN (input) or OUT (output).
- Memory Part - The memory part: VEC (vector) or SCL (scalar).
- Data Tiling - The data tiling: NONSTATIC or STATIC.
- Data Scale - The data scale: NONFIXED or FIXED.
- NONFIXED: chunk size is regular (i.e. same for all iterations and/or processors) but
scalable.
- FIXED: chunk size is regular (i.e. same for all iterations and/or processors) but
NOT scalable (e.g. kernel only accepts input size of 8x8 due to implementation
details).
ATTR_NONFIXED = 0 << 3
ATTR_FIXED = 1 << 3
- Chunk Size - The chunk size: REG or FIFO.
Note: the following attribute may
eventually be more than 1 bit to express other corner type cases that are harder to
classify/express.
- REG: chunk size is regular and defined by e0&ek (i.e. same for all iterations
and/or processors).
- FIFO: chunk size is variable and e0&ek defines 'worst case' chunk size (i.e.
between iterations or processors the chunk size may vary between 0 and the worst case).
Also, data output becomes 1D and the order is not guaranteed (i.e. output resembles a
fifo). This should be used when each CU is producing a 1D variable size output and the
user wishes to collect/reduce all sub-lists to a single 1D final list in external
memory.
ATTR_REG = 0 << 4
ATTR_FIFO = 1 << 4
- Spatial dependencies (left, right, top, bottom) - Number of neighbouring e0
elements to complete the processing of chunk-border elements.
- Element Data Type - the data type. The following types are available:
- d08u - unsigned 8-bit data
- d08s - signed 8-bit data
- d16u - unsigned 16-bit data
- d16s - signed 16-bit data
- d32u - unsigned 32-bit data
- d32s - signed 32-bit data
- e0SizeX - The smallest width of a processing element <0> (or e0) needed by
the kernel.
- e0SizeY - The smallest height of a processing element <0> (or e0) needed by
the kernel.
- eKSizeX - The smallest width of a group of elements (or ek) needed by the
kernel.
- eKSizeY - The smallest height of a group of elements (or ek) needed by the
kernel.
Refer to ACF User Guide for more information about e0 and eK.