template Internal() {
|
|
signal input in1;
|
|
signal input in2[2];
|
|
signal input in3[3][2];
|
|
|
|
signal output out1;
|
|
signal output out2[2];
|
|
signal output out3[3][2];
|
|
|
|
out1 <== in1;
|
|
out2[0] <== in2[0];
|
|
out2[1] <== in2[1];
|
|
|
|
out3[0][0] <== in3[0][0];
|
|
out3[0][1] <== in3[0][1];
|
|
out3[1][0] <== in3[1][0];
|
|
out3[1][1] <== in3[1][1];
|
|
out3[2][0] <== in3[2][0];
|
|
out3[2][1] <== in3[2][1];
|
|
}
|
|
|
|
template InOut() {
|
|
signal input in1;
|
|
signal input in2[2];
|
|
signal input in3[3][2];
|
|
|
|
signal output out1;
|
|
signal output out2[2];
|
|
signal output out3[3][2];
|
|
|
|
component internal = Internal();
|
|
|
|
internal.in1 <== in1;
|
|
internal.in2[0] <== in2[0];
|
|
internal.in2[1] <== in2[1];
|
|
internal.in3[0][0] <== in3[0][0];
|
|
internal.in3[0][1] <== in3[0][1];
|
|
internal.in3[1][0] <== in3[1][0];
|
|
internal.in3[1][1] <== in3[1][1];
|
|
internal.in3[2][0] <== in3[2][0];
|
|
internal.in3[2][1] <== in3[2][1];
|
|
|
|
internal.out1 ==> out1;
|
|
internal.out2[0] ==> out2[0];
|
|
internal.out2[1] ==> out2[1];
|
|
internal.out3[0][0] ==> out3[0][0];
|
|
internal.out3[0][1] ==> out3[0][1];
|
|
internal.out3[1][0] ==> out3[1][0];
|
|
internal.out3[1][1] ==> out3[1][1];
|
|
internal.out3[2][0] ==> out3[2][0];
|
|
internal.out3[2][1] ==> out3[2][1];
|
|
}
|
|
|
|
component main = InOut();
|