arnaucube
arnaucube/grapevine-sonobePublic Self-hosted repository
grapevine-sonobe/circom/node_modules/circomlib/test/circuits/mux4_1.circom
circom/node_modules/circomlib/test/circuits/mux4_1.circomRaw
 1pragma circom 2.0.0;
 2
 3include "../../circuits/mux4.circom";
 4include "../../circuits/bitify.circom";
 5
 6
 7template Constants() {
 8    var i;
 9    signal output out[16];
10
11    out[0] <== 123;
12    out[1] <== 456;
13    out[2] <== 789;
14    out[3] <== 012;
15    out[4] <== 111;
16    out[5] <== 222;
17    out[6] <== 333;
18    out[7] <== 4546;
19    out[8] <== 134523;
20    out[9] <== 44356;
21    out[10] <== 15623;
22    out[11] <== 4566;
23    out[12] <== 1223;
24    out[13] <== 4546;
25    out[14] <== 4256;
26    out[15] <== 4456;
27
28/*
29    for (i=0;i<16; i++) {
30        out[i] <== i*2+100;
31    }
32*/
33
34}
35
36template Main() {
37    var i;
38    signal input selector;//private
39    signal output out;
40
41    component mux = Mux4();
42    component n2b = Num2Bits(4);
43    component cst = Constants();
44
45    selector ==> n2b.in;
46    for (i=0; i<4; i++) {
47        n2b.out[i] ==> mux.s[i];
48    }
49    for (i=0; i<16; i++) {
50        cst.out[i] ==> mux.c[i];
51    }
52
53    mux.out ==> out;
54}
55
56component main = Main();