Single output connected to a single input.
signal Block_1 {}
signal Block_2 {}
Block_1 >> Block_2;
Single output connected to two outputs.
signal Block_1 {}
signal Block_2 [2] {}
Block_1 >> Block_2;
The following is the equivalent connection:
Block_1 >> Block_2[1];
Block_1 >> Block_2[2];
Single output connected to N outputs.
constant N {
value: 8
meta: 'Size of Block_2 signal bundle'
}
signal Block_1 {}
signal Block_2 [N] {}
Block_1 >> Block_2;
Many to many connections when the number of output and input ports match.
signal Block_1 [2] {}
signal Block_2 [2] {}
Block_1 >> Block_2;
Block_1[1] >> Block_2[1];
Block_1[2] >> Block_2[2];
Many to many connections is also possible when the number of input ports is an integer multiple of the number of output ports.
signal Block_1 [2] {}
signal Block_2 [4] {}
# Interger multiple of 2
Block_1 >> Block_2;
This is how the actual connection would be:
Block_1[1] >> Block_2[1];
Block_1[2] >> Block_2[2];
Block_1[1] >> Block_2[3];
Block_1[2] >> Block_2[4];
Many to one connections are possible through processor blocks which accept multiple inputs.
signal Block_1 [2] {}
signal Block_2 {}
Block_1 >> Pan ( position: 0.0 ) >> Block_2;
[Block_1[1], Block_1[2]] >> Pan ( position: 0.0 ) >> Block_2;
Case 1: (1-1-1)
constant GainValue {
value: 2.0
}
signal Input {}
signal Output {}
Input >> Level ( gain: GainValue) >> Output;
Case 2: (1-1-2)
constant GainValue {
value: 2.0
}
signal Input {}
signal Output [2] {}
Input >> Level ( gain: GainValue) >> Output;
Equivalent code:
Input >> Level ( gain: GainValue) >> Output[1];
Input >> Level ( gain: GainValue) >> Output[2];
Case 3: (2-1-2)
constant GainValue {
value: 2.0
}
signal Input [2] {}
signal Output [2] {}
Input >> Level ( gain: GainValue) >> Output;
Equivalent code:
Input[1] >> Level ( gain: GainValue) >> Output[1];
Input[2] >> Level ( gain: GainValue) >> Output[2];
Case 4: (2-2-2)
constant GainValue [2] {
value: [2.0, 2.0]
}
signal Input [2] {}
signal Output [2] {}
Input >> Level ( gain: GainValue) >> Output;
Equivalent code:
constant GainValue [2] {
value: 2.0
}
Input[1] >> Level ( gain: GainValue[1]) >> Output[1];
Input[2] >> Level ( gain: GainValue[2]) >> Output[2];
Many to one connections are not possible in case of signal and control blocks.
signal Block_1 {}
signal Block_2 [2] {}
# This will result in a compile time error
Block_2 >> Block_1;
# This will also result in a compile time error
Block_2[1] >> Block_1;
Block_2[2] >> Block_1;