Engee documentation

For Each Subsystem

A subsystem that processes each element of the input signal.

blockType: SubSystem

Path in the library:

/Basic/Ports & Subsystems/For Each Subsystem

Description

Block For Each Subsystem It is a pre-configured block. Subsystem, designed to create a subsystem that repeats execution during the simulation step for each element or subarray of the original signal or array of signal mask parameters. The execution is controlled by the block For Each inside the subsystem.

To set up the signal splitting (and thus determine the number of iterations), check the box Partition in the block settings In1 inside the subsystem and set the values for the parameters:

  • Partition Dimension — specify the dimension by which the input array will be split. For example, for the input matrix, the value 1 it will mean dividing by lines (one line will be considered as one element), and the value 2 — column division.

  • Partition Width — specify the number of items accepted at a time for entry. For example, if the input was a matrix of size 4×3, for the parameter Partition Dimension the value is specified 1, and for the parameter Partition Width the value is specified 2, then the first input element will represent the first two rows of the matrix, and the second will represent the next two;

  • Partition Offset — specify the offset for each element:

    • 0 — there is no offset between the elements;

    • a positive integer — the gap between the elements;

    • a negative integer — overlap between the elements. The sum of the parameter values Partition Offset and Partition Width must be a positive integer.

for each subsystem 1

A set of blocks inside a subsystem is an algorithm applied to a single element or a subarray of the original signal or an array of mask parameters. Within the subsystem, each stateful block maintains separate sets of states for each element or subarray that it processes. Therefore, the operation of this subsystem is similar to copying the contents of the subsystem for each element in the original input signal or array of mask parameters, and then processing each element using the corresponding copy of the subsystem. As elements or subarrays are processed by a set of blocks in a subsystem, the subsystem combines the results to form output signals.

For more information, see For Each (for each element).

Ports

Input

# In1 — the input signal to the subsystem
scalar | vector | the matrix

Details

Block placement In1 The subsystem adds an external input port. The port label matches the block name. In1.

Use blocks In1 to receive signals from the local environment.

Data types

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Complex numbers support

No

Output

# Out1 — the output signal from the subsystem
scalar | vector | the matrix

Details

Block placement Out1 The subsystem adds an external output port. The port label matches the block name. Out1.

Use blocks Out1 to send signals to the local environment.

Data types

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Complex numbers support

No

Additional options

C code generation: Yes

Verilog code generation: Yes