# Bus Split

Description of the Bus Split components in Schematic Editor, which are used to split vectors from its input, convert vectors into scalars, or make vectors on its outputs.

## Description

This component splits a vector input signal into scalar or vector outputs.

The Number of outputs property dictates how the input signal will be spit. This property can be an integer or a list.

If you define the value of Number of outputs property with O and the dimension of input signal with I, the rules can be specified as in Table 1.

Table 1. Bus Split rules for splitting the input vector.
O value Description Example
O is integer O = I

Number of outputs is the same as the input signal dimension.

The input signal is split into O scalars.

I = 3, O = 3

O < I

I/O is a round number

Number of outputs is smaller than input signal dimension and the result of I/O is a round number.

Number of output terminals is O and length of each terminal is I/O.

I = 6, O = 3

O/I = 2

O < I

I/O is not a round number

Number of outputs is smaller than input signal dimension and the result of I/O is not a round number.

Number of output terminals is O where first m terminals have dimension I/O+1 and the rest have I/O where m is the reminder of I/O.

I = 10, O = 4

O/I = 2, m = 2

O > I

Number of outputs is greater than dimension of input signal.

This is an invalid case and it will cause an error.

O is a list

sum(O) = I

none of elements in O is -1

Sum of all elements in the O list is equal to input signal dimension and none of the elements is -1.

Number of output terminals is the number of elements in O. Each terminal has dimension as specified in the O list.

I = 9, O = [1, 5, 3]

sum(O) = I

some elements in O are -1

Sum of all elements in the O list is equal to input signal dimension and some elements are -1.

The -1 value is for dynamical calculation of dimension. If sum(O) = I, all -1 values are calculated as 1 and the effect is the same as in case above.

I = 9, O = [-1, 5, 3]

sum(O) < I

none of elements in O is -1

Sum of all elements in the O list is less than input signal dimension and none of the elements is -1.

This is an invalid case and it will cause an error.

sum(O) < I

some elements in O are -1

Sum of all elements in the O list is less than input signal dimension and some elements are -1.

Number of output terminals is the number of elements in O. Each value in the list that is not -1 represents the dimension for that terminal. The -1 value is for dynamical calculation of dimensions.

I = 17, O=[2,-1,4,-1]

sum(O) >I

Sum of all elements in the O list is greater than input signal dimension.

This is an invalid case and it will cause an error.

## Ports

• Input(in)
• The input of the component. It is the vector signal to be split into scalars or smaller vectors.
• Supported types: uint, int and real.
• Vector support: yes.
• Output (outX)
• The output of the component, i.e. the elements of the input signal.
• Supported types: uint, int and real.
• The output type is inherited from the input signal.
• Vector support: yes

## Properties

• Number of outputs
• Type in the number of output ports the component will have.
• Execution rate
• Type in the desired signal processing execution rate. This value must be compatible with other signal processing components of the same circuit: the value must be a multiple of the fastest execution rate in the circuit. There can be up to four different execution rates, but they must all be multiple of the basic simulation timestep. To specify the execution rate, you can use either decimal (e.g. 0.001) or exponential values (e.g. 1e-3) in seconds. Alternatively, you can type in â€˜inheritâ€™ in which case the component will be assigned execution rate based on the execution rate of the components it is receiving input from.