Function-Call Split

Provide junction for splitting function-call signal


Ports & Subsystems


The Function-Call Split block allows a function-call signal to branch and connect to several function-call subsystems and models.

A Function-Call Split outputs multiple function-call outputs to create multiple branches for a function-call signal. In some cases, when you use this block, you do not need the initiator block to create multiple function-call signals to invoke a set of function-call subsystems or models.

Function-call subsystems or models connected to the output port of the Function-Call Split block that are marked with a dot execute before the subsystems or models connected to other output ports. If any data dependencies between these subsystems (or between models) do not support the specified execution order, the block returns an error. To eliminate this error, consider turning on Latch input for feedback signals of function-call subsystem outputs on one or more Inport blocks of the function-call subsystems (or models) involved in a data-dependency loop. Turning on this option delays the corresponding input signal, thereby eliminating the data-dependency loop.

For a model to contain Function-Call Split blocks, you must set the following diagnostic to error: Model Configuration Parameters > Diagnostics > Connectivity > Invalid function-call connection.

If you turn on the model option Format > Block Displays > Sorted Order, then the execution order of function-call subsystems connected to branches of a given function-call signal appears on the blocks . Each subsystem has an execution order of the form S:B#{C}. Here, # is a number that ranges from 0 to one less than the total number of subsystems (or models) connected to branches of a given signal. The subsystems execute in ascending order based on this number.

The Function-Call Split block supports signal label propagation.


The Function-Call Split block has these limitations.

  • All function-call subsystems and models connected to a given function-call signal must reside within the same nonvirtual layer of the model hierarchy.

  • You cannot connect branched function-call subsystems (or models) and their children directly back to the initiator.

  • Function-call subsystems and models connected to branches of a function-call signal cannot have multiple (muxed) initiators.

  • A Function-Call Split block cannot have its input from a signal with multiple function-call elements.

Data Type Support

The Function-Call Split block accepts periodic and asynchronous function-call signals only.


Icon shape

Choose the shape of the icon. Set the icon shape to round for a circular block icon, or to distinctive.

Number of output ports

Select the number of output function-call signals.

Output port layout

Choose the layout of the output ports.


The following model shows how to apply the Latch input for feedback signals of function-call subsystem outputs parameter to work around a data-dependency error caused by using a Function-Call Split block. By turning this parameter on in the f1 subsystem Inport block, the Function-Call Split block ignores the data dependency of signal b. The block breaks the loop of data dependencies between subsystems f1 and g1. The model achieves the behavior of consistently calling f1 to execute before g1. For a given execution step, subsystem f1 uses the g1 output computed at the previous execution step.


Data Types


Sample Time

Inherited from the block driving the function-call split

Multidimensional Signals


Variable-Size Signals


Code Generation


Introduced in R2010a

Was this topic helpful?