diff --git a/dataflow_neuro/primitives.act b/dataflow_neuro/primitives.act index 9724355..db12997 100644 --- a/dataflow_neuro/primitives.act +++ b/dataflow_neuro/primitives.act @@ -116,7 +116,7 @@ namespace tmpl { //validity bool _in_v; - ctree vc(.in=in.d,.out=_in_v,.supply=supply); + vtree vc(.in=in.d,.out=_in_v,.supply=supply); BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss); //function @@ -167,7 +167,7 @@ namespace tmpl { sigbuf c_buf_f(.in=cond.d.d[0].f, .out=_c_f_buf); OR2_X1 c_f_c_t_or(.a=cond.d.d[0].t, .b=cond.d.d[0].f, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss); - ctree vc(.in=in.d,.out=_in_v,.supply=supply); + vtree vc(.in=in.d,.out=_in_v,.supply=supply); A_2C_B_X1 c_el(.c1=_c_v, .c2=_in_v, .y=_in_c_v_,.vdd=supply.vdd,.vss=supply.vss); BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss); @@ -251,7 +251,7 @@ namespace tmpl { //validity bool _in_v; - ctree vc(.in=in.d,.out=_in_v,.supply=supply); + vtree vc(.in=in.d,.out=_in_v,.supply=supply); BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss); //function @@ -312,107 +312,80 @@ namespace tmpl { } - export template - defproc demux_td (avMx1of2 in; avMx1of2 out1; avMx1of2<1> token; bool? reset_B; avMx1of2<1> cond; power supply) { - //control - bool _en, _reset_BX,_reset_BXX[2*N], _out_v, _in_c_v_; + // export template + // defproc demux_td (avMx1of2 in; avMx1of2 out1; avMx1of2<1> token; bool? reset_B; avMx1of2<1> cond; power supply) { + // //control + // bool _en, _reset_BX,_reset_BXX[2*N], _out_v, _in_c_v_; - OR2_X1 out_or(.a=out1.v, .b=out2.v, .y=_out_v,.vdd=supply.vdd,.vss=supply.vss); - A_3C_RB_X4 inack_ctl(.c1=_en,.c2=_in_c_v_,.c3= _out_v,.y=in.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); - A_1C1P_X1 en_ctl(.c1=in.a,.p1=_out_v,.y=_en,.vdd=supply.vdd,.vss=supply.vss); - BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); - sigbuf<2*N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX); - //validity - bool _in_v, _c_f_buf[N], _c_t_buf[N], _c_v; + // OR2_X1 out_or(.a=out1.v, .b=out2.v, .y=_out_v,.vdd=supply.vdd,.vss=supply.vss); + // A_3C_RB_X4 inack_ctl(.c1=_en,.c2=_in_c_v_,.c3= _out_v,.y=in.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); + // A_1C1P_X1 en_ctl(.c1=in.a,.p1=_out_v,.y=_en,.vdd=supply.vdd,.vss=supply.vss); + // BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); + // sigbuf<2*N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX); + // //validity + // bool _in_v, _c_f_buf[N], _c_t_buf[N], _c_v; - sigbuf c_buf_t(.in=cond.d.d[0].t, .out=_c_t_buf); - sigbuf c_buf_f(.in=cond.d.d[0].f, .out=_c_f_buf); + // sigbuf c_buf_t(.in=cond.d.d[0].t, .out=_c_t_buf); + // sigbuf c_buf_f(.in=cond.d.d[0].f, .out=_c_f_buf); - //orientation of condition - [ invout < 0 -> - OR2_X1 c_f_c_t_or(.a=cond.d.d[0].t, .b=cond.d.d[0].f, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss); - [] invout > 0 -> - OR2_X1 c_f_c_t_or(.a=cond.d.d[0].f, .b=cond.d.d[0].t, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss); - ] + // //orientation of condition + // [ invout < 0 -> + // OR2_X1 c_f_c_t_or(.a=cond.d.d[0].t, .b=cond.d.d[0].f, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss); + // [] invout > 0 -> + // OR2_X1 c_f_c_t_or(.a=cond.d.d[0].f, .b=cond.d.d[0].t, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss); + // ] - ctree vc(.in=in.d,.out=_in_v,.supply=supply); + // vtree vc(.in=in.d,.out=_in_v,.supply=supply); - A_2C_B_X1 c_el(.c1=_c_v, .c2=_in_v, .y=_in_c_v_,.vdd=supply.vdd,.vss=supply.vss); - BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss); + // A_2C_B_X1 c_el(.c1=_c_v, .c2=_in_v, .y=_in_c_v_,.vdd=supply.vdd,.vss=supply.vss); + // BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss); - //function - //func buffer out1 - bool _out1_a_BX_t[N],_out1_a_BX_f[N],_out1_a_B,_en1_X_t[N],_en1_X_f[N]; - A_2C2N_RB_X4 out1_f_buf_func[N]; - A_2C2N_RB_X4 out1_t_buf_func[N]; - sigbuf out1_en_buf_t(.in=_en, .out=_en1_X_t, .supply=supply); - sigbuf out1_en_buf_f(.in=_en, .out=_en1_X_f, .supply=supply); - INV_X1 out1_a_inv(.a=out1.a,.y=_out1_a_B); - sigbuf out1_a_B_buf_f(.in=_out1_a_B,.out=_out1_a_BX_t); - sigbuf out1_a_B_buf_t(.in=_out1_a_B,.out=_out1_a_BX_f); - (i:N: - out1_f_buf_func[i].y=out1.d.d[i].f; - out1_t_buf_func[i].y=out1.d.d[i].t; - out1_f_buf_func[i].c1=_en1_X_f[i]; - out1_t_buf_func[i].c1=_en1_X_t[i]; - out1_f_buf_func[i].c2=_out1_a_BX_f[i]; - out1_t_buf_func[i].c2=_out1_a_BX_t[i]; - out1_f_buf_func[i].n1=in.d.d[i].f; - out1_t_buf_func[i].n1=in.d.d[i].t; - out1_f_buf_func[i].vdd=supply.vdd; - out1_t_buf_func[i].vdd=supply.vdd; - out1_f_buf_func[i].vss=supply.vss; - out1_t_buf_func[i].vss=supply.vss; - out1_t_buf_func[i].pr_B = _reset_BXX[i]; - out1_t_buf_func[i].sr_B = _reset_BXX[i]; - out1_f_buf_func[i].pr_B = _reset_BXX[i]; - out1_f_buf_func[i].sr_B = _reset_BXX[i]; - out1_f_buf_func[i].n2=_c_t_buf[i]; - out1_t_buf_func[i].n2=_c_t_buf[i]; - ) + // //function + // //func buffer out1 + // bool _out1_a_BX_t[N],_out1_a_BX_f[N],_out1_a_B,_en1_X_t[N],_en1_X_f[N]; + // A_2C2N_RB_X4 out1_f_buf_func[N]; + // A_2C2N_RB_X4 out1_t_buf_func[N]; + // sigbuf out1_en_buf_t(.in=_en, .out=_en1_X_t, .supply=supply); + // sigbuf out1_en_buf_f(.in=_en, .out=_en1_X_f, .supply=supply); + // INV_X1 out1_a_inv(.a=out1.a,.y=_out1_a_B); + // sigbuf out1_a_B_buf_f(.in=_out1_a_B,.out=_out1_a_BX_t); + // sigbuf out1_a_B_buf_t(.in=_out1_a_B,.out=_out1_a_BX_f); + // (i:N: + // out1_f_buf_func[i].y=out1.d.d[i].f; + // out1_t_buf_func[i].y=out1.d.d[i].t; + // out1_f_buf_func[i].c1=_en1_X_f[i]; + // out1_t_buf_func[i].c1=_en1_X_t[i]; + // out1_f_buf_func[i].c2=_out1_a_BX_f[i]; + // out1_t_buf_func[i].c2=_out1_a_BX_t[i]; + // out1_f_buf_func[i].n1=in.d.d[i].f; + // out1_t_buf_func[i].n1=in.d.d[i].t; + // out1_f_buf_func[i].vdd=supply.vdd; + // out1_t_buf_func[i].vdd=supply.vdd; + // out1_f_buf_func[i].vss=supply.vss; + // out1_t_buf_func[i].vss=supply.vss; + // out1_t_buf_func[i].pr_B = _reset_BXX[i]; + // out1_t_buf_func[i].sr_B = _reset_BXX[i]; + // out1_f_buf_func[i].pr_B = _reset_BXX[i]; + // out1_f_buf_func[i].sr_B = _reset_BXX[i]; + // out1_f_buf_func[i].n2=_c_t_buf[i]; + // out1_t_buf_func[i].n2=_c_t_buf[i]; + // ) - //token out + // //token out - A_2C2N_RB_X4 token_buf; + // A_2C2N_RB_X4 token_buf; - token_buf.y = ; - token_buf.c1 = ; - token_buf.c2 = ; - token_buf.n1 = ; - token_buf.n2 = ; - token_buf.vdd = supply.vdd; - token_buf.vss = supply.vss; - token_buf.pr_B ; - token_buf.sr_b ; - } - - // export template - // defproc merge (avMx1of2 in1; avMx1of2 in2; avMx1of2 out ; bool? reset_B; power supply) { - - // //control - // bool _en, _reset_BX,_reset_BXX[N]; - // A_4C_RB_X4 in1ack_ctl(.c1=in1arb,.c2=_en,.c3=in1.v,.c4=out.v,.y=in1.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); - // A_4C_RB_X4 in2ack_ctl(.c1=in2arb,.c2=_en,.c3=in2.v,.c4=out.v,.y=in2.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); - // A_4P_1N1N en_ctl(.p1 = in1.a,.p2=in2.a,.p3=out_a_X,.p4 = out.v, .n1 = in1.a,.y = _en,.vdd=supply.vdd,.vss=supply.vss); - - // //reset_buffers - // BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); - // sigbuf reset_bufarray(.in=_reset_BX, .out=_reset_BXX); - - // //validity - // bool _in1_v,_in2_v; - // a1of1 _in1_temp,_in2_temp,_out_temp; - // ctree vc1(.in=in1.d,.out=in1.v,.supply=supply); - // ctree vc2(.in=in2.d,.out=in2.v,.supply=supply); - // arbiter_handshake validity_arb(.in1 = _in1_temp,.in2 = _in2_temp,.out =_out_temp) - // _in1_temp.r = in1.v - // _in2_temp.r = in2.v - // _in1_temp.a = - // _in1_temp.a = - // _out_temp.r = _out_temp.a - //function + // token_buf.y = ; + // token_buf.c1 = ; + // token_buf.c2 = ; + // token_buf.n1 = ; + // token_buf.n2 = ; + // token_buf.vdd = supply.vdd; + // token_buf.vss = supply.vss; + // token_buf.pr_B ; + // token_buf.sr_b ; // } export defproc arbiter_handshake(a1of1 in1; a1of1 in2; a1of1 out; power supply) @@ -466,8 +439,8 @@ namespace tmpl { bool _in1_arb2function,_in2_arb2function; bool _in1_arb2function_X[2*N],_in2_arb2function_X[2*N]; - valtree vc1(.in=in1.d,.out=in1.v,.supply=supply); - valtree vc2(.in=in2.d,.out=in2.v,.supply=supply); + vtree vc1(.in=in1.d,.out=in1.v,.supply=supply); + vtree vc2(.in=in2.d,.out=in2.v,.supply=supply); arbiter_handshake validity_arb(.in1 = _in1_temp,.in2 = _in2_temp,.out =_out_temp); _in1_temp.r = in1.v; _in2_temp.r = in2.v; diff --git a/dataflow_neuro/treegates.act b/dataflow_neuro/treegates.act index 7a7a7fb..eac8c89 100644 --- a/dataflow_neuro/treegates.act +++ b/dataflow_neuro/treegates.act @@ -151,7 +151,7 @@ defproc ortree (bool? in[N]; bool! out; power supply) * C-elements */ export template -defproc ctree (std::data::Mx1of2? in; bool! out; power supply) +defproc ctree (bool? in[N]; bool! out; power supply) { bool tout; @@ -187,19 +187,11 @@ defproc ctree (std::data::Mx1of2? in; bool! out; power supply) /* array that holds ALL the nodes in the completion tree */ bool tmp[end+1]; - // OR layer for making OR between true and false of in (they are then sent to Ctree) - OR2_X1 OR2_tf[N]; + + // Connecting the first nodes to the input (l:N: - OR2_tf[l].a = in.d[l].t; - OR2_tf[l].b = in.d[l].f; - OR2_tf[l].y = tmp[l]; - // OR2_tf[i].a = supply.vdd; - // OR2_tf[i].b = supply.vdd; - // OR2_tf[i].y = supply.vdd; - OR2_tf[l].vdd = supply.vdd; - OR2_tf[l].vss = supply.vss; - ) - //(k:N:tmp[k] = in[k];) + tmp[l] = in[l]; + ) /* array to hold the actual C-elments, either A2C or A3C */ [lenTree2Count > 0 -> @@ -271,6 +263,22 @@ defproc ctree (std::data::Mx1of2? in; bool! out; power supply) } +export template +defproc vtree (std::data::Mx1of2? in; bool! out; power supply) +{ + // OR layer for making OR between true and false of in (they are then sent to Ctree) + OR2_X1 OR2_tf[N]; + ctree myctree; + (l:N: + OR2_tf[l].a = in.d[l].t; + OR2_tf[l].b = in.d[l].f; + OR2_tf[l].y = myctree.in[l]; + OR2_tf[l].vdd = supply.vdd; + OR2_tf[l].vss = supply.vss; + ) + myctree.supply = supply; + out = myctree.out; +} export template defproc sigbuf (bool? in; bool! out[N]; power supply) { diff --git a/test/unit_tests/ctree_15/run/prsim.out b/test/unit_tests/ctree_15/run/prsim.out index 17cdbe6..e9b0a1b 100644 --- a/test/unit_tests/ctree_15/run/prsim.out +++ b/test/unit_tests/ctree_15/run/prsim.out @@ -1,3 +1,4 @@ t.ctree_test.tmp[22] t.ctree_test.C2Els[0]._y t.ctree_test.tmp[17] t.in[14] t.in[4] t.in[2] t.in[8] t.in[13] t.ctree_test.tmp[21] t.ctree_test.tmp[23] t.out t.in[12] t.in[6] t.in[7] t.in[10] t.in[5] t.ctree_test.tmp[19] t.ctree_test.tmp[18] t.ctree_test.C3Els[0]._y t.in[3] t.ctree_test.tmp[24] t.ctree_test.C3Els[2]._y t.ctree_test.C2Els[4]._y t.in[0] t.in[1] t.ctree_test.tmp[15] t.ctree_test.tmp[16] t.in[11] t.ctree_test.tmp[20] t.ctree_test.C2Els[7]._y t.in[9] t.ctree_test.C2Els[2]._y t.ctree_test.C2Els[1]._y t.ctree_test.C2Els[6]._y t.ctree_test.C2Els[5]._y t.ctree_test.C2Els[3]._y t.ctree_test.C3Els[1]._y -0 -1 +[0] starting test all 1 +[1] starting test all 0 +[2] testing state holding diff --git a/test/unit_tests/ctree_15/test.prsim b/test/unit_tests/ctree_15/test.prsim index 2829168..e1ad9c8 100644 --- a/test/unit_tests/ctree_15/test.prsim +++ b/test/unit_tests/ctree_15/test.prsim @@ -1,5 +1,5 @@ -system "echo '0'" +system "echo '[0] starting test all 1'" set t.in[0] 1 set t.in[1] 1 @@ -16,12 +16,47 @@ set t.in[11] 1 set t.in[12] 1 set t.in[13] 1 set t.in[14] 1 - - -system "echo '1'" - cycle mode run assert t.out 1 +system "echo '[1] starting test all 0'" +set t.in[0] 0 +set t.in[1] 0 +set t.in[2] 0 +set t.in[3] 0 +set t.in[4] 0 +set t.in[5] 0 +set t.in[6] 0 +set t.in[7] 0 +set t.in[8] 0 +set t.in[9] 0 +set t.in[10] 0 +set t.in[11] 0 +set t.in[12] 0 +set t.in[13] 0 +set t.in[14] 0 +cycle +mode run +assert t.out 0 +system "echo '[2] testing state holding'" + +set t.in[0] 0 +set t.in[1] 0 +set t.in[2] 0 +set t.in[3] 0 +set t.in[4] 0 +set t.in[5] 1 +set t.in[6] 0 +set t.in[7] 0 +set t.in[8] 0 +set t.in[9] 0 +set t.in[10] 0 +set t.in[11] 0 +set t.in[12] 0 +set t.in[13] 0 +set t.in[14] 0 +cycle +mode run +assert t.out 0 \ No newline at end of file diff --git a/test/unit_tests/vtree_15/run/prsim.out b/test/unit_tests/vtree_15/run/prsim.out new file mode 100644 index 0000000..1403a2b --- /dev/null +++ b/test/unit_tests/vtree_15/run/prsim.out @@ -0,0 +1,6 @@ +t.in.d[13].t t.in.d[9].t t.in.d[1].t t.vtree_test.myctree.C2Els[6]._y t.in.d[14].f t.vtree_test.OR2_tf[7].y t.in.d[6].f t.in.d[7].t t.vtree_test.myctree.C2Els[5]._y t.in.d[3].t t.in.d[12].t t.out t.in.d[7].f t.in.d[5].f t.in.d[12].f t.in.d[14].t t.in.d[3].f t.in.d[10].t t.in.d[4].f t.in.d[0].t t.vtree_test.OR2_tf[8].y t.vtree_test.OR2_tf[0].y t.vtree_test.myctree.C2Els[0]._y t.vtree_test.OR2_tf[11].y t.vtree_test.myctree.tmp[16] t.in.d[2].t t.in.d[11].t t.in.d[1].f t.vtree_test.myctree.tmp[19] t.in.d[9].f t.vtree_test.OR2_tf[14].y t.vtree_test.myctree.tmp[21] t.vtree_test.myctree.tmp[17] t.vtree_test.myctree.tmp[15] t.in.d[8].t t.in.d[4].t t.in.d[0].f t.vtree_test.OR2_tf[6].y t.vtree_test.OR2_tf[12].y t.vtree_test.OR2_tf[4].y t.vtree_test.OR2_tf[6]._y t.vtree_test.OR2_tf[10].y t.vtree_test.OR2_tf[13].y t.vtree_test.myctree.tmp[23] t.vtree_test.OR2_tf[9].y t.vtree_test.OR2_tf[5].y t.vtree_test.myctree.tmp[22] t.in.d[5].t t.vtree_test.OR2_tf[2].y t.in.d[13].f t.vtree_test.OR2_tf[3]._y t.vtree_test.OR2_tf[3].y t.in.d[10].f t.vtree_test.myctree.C2Els[2]._y t.in.d[8].f t.vtree_test.OR2_tf[14]._y t.vtree_test.myctree.C2Els[7]._y t.vtree_test.myctree.tmp[24] t.vtree_test.myctree.tmp[18] t.vtree_test.myctree.tmp[20] t.in.d[6].t t.vtree_test.OR2_tf[1].y t.vtree_test.OR2_tf[7]._y t.vtree_test.OR2_tf[13]._y t.vtree_test.OR2_tf[10]._y t.vtree_test.OR2_tf[4]._y t.in.d[11].f t.vtree_test.OR2_tf[0]._y t.in.d[2].f t.vtree_test.myctree.C3Els[0]._y t.vtree_test.OR2_tf[11]._y t.vtree_test.OR2_tf[9]._y t.vtree_test.OR2_tf[5]._y t.vtree_test.myctree.C3Els[2]._y t.vtree_test.OR2_tf[8]._y t.vtree_test.myctree.C2Els[3]._y t.vtree_test.myctree.C3Els[1]._y t.vtree_test.OR2_tf[2]._y t.vtree_test.OR2_tf[12]._y t.vtree_test.myctree.C2Els[4]._y t.vtree_test.OR2_tf[1]._y t.vtree_test.myctree.C2Els[1]._y +[0] starting test true high +[1] cleaning input +[2] starting test false high +[2] testing state holding +WRONG ASSERT: "t.out" has value 1 and not 0. diff --git a/test/unit_tests/vtree_15/run/test.prs b/test/unit_tests/vtree_15/run/test.prs new file mode 100644 index 0000000..635ea14 --- /dev/null +++ b/test/unit_tests/vtree_15/run/test.prs @@ -0,0 +1,502 @@ += "GND" "GND" += "Vdd" "Vdd" += "Reset" "Reset" +~"t.vtree_test.myctree.C2Els[0].c1"&~"t.vtree_test.myctree.C2Els[0].c2"->"t.vtree_test.myctree.C2Els[0]._y"+ +"t.vtree_test.myctree.C2Els[0].c1"&"t.vtree_test.myctree.C2Els[0].c2"->"t.vtree_test.myctree.C2Els[0]._y"- +"t.vtree_test.myctree.C2Els[0]._y"->"t.vtree_test.myctree.C2Els[0].y"- +~("t.vtree_test.myctree.C2Els[0]._y")->"t.vtree_test.myctree.C2Els[0].y"+ +~"t.vtree_test.myctree.C2Els[1].c1"&~"t.vtree_test.myctree.C2Els[1].c2"->"t.vtree_test.myctree.C2Els[1]._y"+ +"t.vtree_test.myctree.C2Els[1].c1"&"t.vtree_test.myctree.C2Els[1].c2"->"t.vtree_test.myctree.C2Els[1]._y"- +"t.vtree_test.myctree.C2Els[1]._y"->"t.vtree_test.myctree.C2Els[1].y"- +~("t.vtree_test.myctree.C2Els[1]._y")->"t.vtree_test.myctree.C2Els[1].y"+ +~"t.vtree_test.myctree.C2Els[2].c1"&~"t.vtree_test.myctree.C2Els[2].c2"->"t.vtree_test.myctree.C2Els[2]._y"+ +"t.vtree_test.myctree.C2Els[2].c1"&"t.vtree_test.myctree.C2Els[2].c2"->"t.vtree_test.myctree.C2Els[2]._y"- +"t.vtree_test.myctree.C2Els[2]._y"->"t.vtree_test.myctree.C2Els[2].y"- +~("t.vtree_test.myctree.C2Els[2]._y")->"t.vtree_test.myctree.C2Els[2].y"+ +~"t.vtree_test.myctree.C2Els[3].c1"&~"t.vtree_test.myctree.C2Els[3].c2"->"t.vtree_test.myctree.C2Els[3]._y"+ +"t.vtree_test.myctree.C2Els[3].c1"&"t.vtree_test.myctree.C2Els[3].c2"->"t.vtree_test.myctree.C2Els[3]._y"- +"t.vtree_test.myctree.C2Els[3]._y"->"t.vtree_test.myctree.C2Els[3].y"- +~("t.vtree_test.myctree.C2Els[3]._y")->"t.vtree_test.myctree.C2Els[3].y"+ +~"t.vtree_test.myctree.C2Els[4].c1"&~"t.vtree_test.myctree.C2Els[4].c2"->"t.vtree_test.myctree.C2Els[4]._y"+ +"t.vtree_test.myctree.C2Els[4].c1"&"t.vtree_test.myctree.C2Els[4].c2"->"t.vtree_test.myctree.C2Els[4]._y"- +"t.vtree_test.myctree.C2Els[4]._y"->"t.vtree_test.myctree.C2Els[4].y"- +~("t.vtree_test.myctree.C2Els[4]._y")->"t.vtree_test.myctree.C2Els[4].y"+ +~"t.vtree_test.myctree.C2Els[5].c1"&~"t.vtree_test.myctree.C2Els[5].c2"->"t.vtree_test.myctree.C2Els[5]._y"+ +"t.vtree_test.myctree.C2Els[5].c1"&"t.vtree_test.myctree.C2Els[5].c2"->"t.vtree_test.myctree.C2Els[5]._y"- +"t.vtree_test.myctree.C2Els[5]._y"->"t.vtree_test.myctree.C2Els[5].y"- +~("t.vtree_test.myctree.C2Els[5]._y")->"t.vtree_test.myctree.C2Els[5].y"+ +~"t.vtree_test.myctree.C2Els[6].c1"&~"t.vtree_test.myctree.C2Els[6].c2"->"t.vtree_test.myctree.C2Els[6]._y"+ +"t.vtree_test.myctree.C2Els[6].c1"&"t.vtree_test.myctree.C2Els[6].c2"->"t.vtree_test.myctree.C2Els[6]._y"- +"t.vtree_test.myctree.C2Els[6]._y"->"t.vtree_test.myctree.C2Els[6].y"- +~("t.vtree_test.myctree.C2Els[6]._y")->"t.vtree_test.myctree.C2Els[6].y"+ +~"t.vtree_test.myctree.C2Els[7].c1"&~"t.vtree_test.myctree.C2Els[7].c2"->"t.vtree_test.myctree.C2Els[7]._y"+ +"t.vtree_test.myctree.C2Els[7].c1"&"t.vtree_test.myctree.C2Els[7].c2"->"t.vtree_test.myctree.C2Els[7]._y"- +"t.vtree_test.myctree.C2Els[7]._y"->"t.vtree_test.myctree.C2Els[7].y"- +~("t.vtree_test.myctree.C2Els[7]._y")->"t.vtree_test.myctree.C2Els[7].y"+ +~"t.vtree_test.myctree.C3Els[0].c1"&~"t.vtree_test.myctree.C3Els[0].c2"&~"t.vtree_test.myctree.C3Els[0].c3"->"t.vtree_test.myctree.C3Els[0]._y"+ +"t.vtree_test.myctree.C3Els[0].c1"&"t.vtree_test.myctree.C3Els[0].c2"&"t.vtree_test.myctree.C3Els[0].c3"->"t.vtree_test.myctree.C3Els[0]._y"- +"t.vtree_test.myctree.C3Els[0]._y"->"t.vtree_test.myctree.C3Els[0].y"- +~("t.vtree_test.myctree.C3Els[0]._y")->"t.vtree_test.myctree.C3Els[0].y"+ +~"t.vtree_test.myctree.C3Els[1].c1"&~"t.vtree_test.myctree.C3Els[1].c2"&~"t.vtree_test.myctree.C3Els[1].c3"->"t.vtree_test.myctree.C3Els[1]._y"+ +"t.vtree_test.myctree.C3Els[1].c1"&"t.vtree_test.myctree.C3Els[1].c2"&"t.vtree_test.myctree.C3Els[1].c3"->"t.vtree_test.myctree.C3Els[1]._y"- +"t.vtree_test.myctree.C3Els[1]._y"->"t.vtree_test.myctree.C3Els[1].y"- +~("t.vtree_test.myctree.C3Els[1]._y")->"t.vtree_test.myctree.C3Els[1].y"+ +~"t.vtree_test.myctree.C3Els[2].c1"&~"t.vtree_test.myctree.C3Els[2].c2"&~"t.vtree_test.myctree.C3Els[2].c3"->"t.vtree_test.myctree.C3Els[2]._y"+ +"t.vtree_test.myctree.C3Els[2].c1"&"t.vtree_test.myctree.C3Els[2].c2"&"t.vtree_test.myctree.C3Els[2].c3"->"t.vtree_test.myctree.C3Els[2]._y"- +"t.vtree_test.myctree.C3Els[2]._y"->"t.vtree_test.myctree.C3Els[2].y"- +~("t.vtree_test.myctree.C3Els[2]._y")->"t.vtree_test.myctree.C3Els[2].y"+ += "t.vtree_test.myctree.tmp[15]" "t.vtree_test.myctree.C2Els[6].c1" += "t.vtree_test.myctree.tmp[15]" "t.vtree_test.myctree.C2Els[0].y" += "t.vtree_test.myctree.tmp[16]" "t.vtree_test.myctree.C2Els[6].c2" += "t.vtree_test.myctree.tmp[16]" "t.vtree_test.myctree.C2Els[1].y" += "t.vtree_test.myctree.tmp[17]" "t.vtree_test.myctree.C2Els[7].c1" += "t.vtree_test.myctree.tmp[17]" "t.vtree_test.myctree.C2Els[2].y" += "t.vtree_test.myctree.tmp[18]" "t.vtree_test.myctree.C2Els[7].c2" += "t.vtree_test.myctree.tmp[18]" "t.vtree_test.myctree.C2Els[3].y" += "t.vtree_test.myctree.tmp[19]" "t.vtree_test.myctree.C3Els[1].c1" += "t.vtree_test.myctree.tmp[19]" "t.vtree_test.myctree.C2Els[4].y" += "t.vtree_test.myctree.tmp[20]" "t.vtree_test.myctree.C3Els[1].c2" += "t.vtree_test.myctree.tmp[20]" "t.vtree_test.myctree.C2Els[5].y" += "t.vtree_test.myctree.tmp[21]" "t.vtree_test.myctree.C3Els[1].c3" += "t.vtree_test.myctree.tmp[21]" "t.vtree_test.myctree.C3Els[0].y" += "t.vtree_test.myctree.tmp[22]" "t.vtree_test.myctree.C3Els[2].c1" += "t.vtree_test.myctree.tmp[22]" "t.vtree_test.myctree.C2Els[6].y" += "t.vtree_test.myctree.tmp[23]" "t.vtree_test.myctree.C3Els[2].c2" += "t.vtree_test.myctree.tmp[23]" "t.vtree_test.myctree.C2Els[7].y" += "t.vtree_test.myctree.tmp[24]" "t.vtree_test.myctree.C3Els[2].c3" += "t.vtree_test.myctree.tmp[24]" "t.vtree_test.myctree.C3Els[1].y" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C3Els[2].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C3Els[1].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C3Els[0].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[7].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[6].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[5].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[4].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[3].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[2].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[1].vdd" += "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[0].vdd" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C3Els[2].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C3Els[1].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C3Els[0].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[7].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[6].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[5].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[4].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[3].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[2].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[1].vss" += "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[0].vss" += "t.vtree_test.myctree.in[0]" "t.vtree_test.myctree.C2Els[0].c1" += "t.vtree_test.myctree.in[0]" "t.vtree_test.myctree.tmp[0]" += "t.vtree_test.myctree.in[1]" "t.vtree_test.myctree.C2Els[0].c2" += "t.vtree_test.myctree.in[1]" "t.vtree_test.myctree.tmp[1]" += "t.vtree_test.myctree.in[2]" "t.vtree_test.myctree.C2Els[1].c1" += "t.vtree_test.myctree.in[2]" "t.vtree_test.myctree.tmp[2]" += "t.vtree_test.myctree.in[3]" "t.vtree_test.myctree.C2Els[1].c2" += "t.vtree_test.myctree.in[3]" "t.vtree_test.myctree.tmp[3]" += "t.vtree_test.myctree.in[4]" "t.vtree_test.myctree.C2Els[2].c1" += "t.vtree_test.myctree.in[4]" "t.vtree_test.myctree.tmp[4]" += "t.vtree_test.myctree.in[5]" "t.vtree_test.myctree.C2Els[2].c2" += "t.vtree_test.myctree.in[5]" "t.vtree_test.myctree.tmp[5]" += "t.vtree_test.myctree.in[6]" "t.vtree_test.myctree.C2Els[3].c1" += "t.vtree_test.myctree.in[6]" "t.vtree_test.myctree.tmp[6]" += "t.vtree_test.myctree.in[7]" "t.vtree_test.myctree.C2Els[3].c2" += "t.vtree_test.myctree.in[7]" "t.vtree_test.myctree.tmp[7]" += "t.vtree_test.myctree.in[8]" "t.vtree_test.myctree.C2Els[4].c1" += "t.vtree_test.myctree.in[8]" "t.vtree_test.myctree.tmp[8]" += "t.vtree_test.myctree.in[9]" "t.vtree_test.myctree.C2Els[4].c2" += "t.vtree_test.myctree.in[9]" "t.vtree_test.myctree.tmp[9]" += "t.vtree_test.myctree.in[10]" "t.vtree_test.myctree.C2Els[5].c1" += "t.vtree_test.myctree.in[10]" "t.vtree_test.myctree.tmp[10]" += "t.vtree_test.myctree.in[11]" "t.vtree_test.myctree.C2Els[5].c2" += "t.vtree_test.myctree.in[11]" "t.vtree_test.myctree.tmp[11]" += "t.vtree_test.myctree.in[12]" "t.vtree_test.myctree.C3Els[0].c1" += "t.vtree_test.myctree.in[12]" "t.vtree_test.myctree.tmp[12]" += "t.vtree_test.myctree.in[13]" "t.vtree_test.myctree.C3Els[0].c2" += "t.vtree_test.myctree.in[13]" "t.vtree_test.myctree.tmp[13]" += "t.vtree_test.myctree.in[14]" "t.vtree_test.myctree.C3Els[0].c3" += "t.vtree_test.myctree.in[14]" "t.vtree_test.myctree.tmp[14]" += "t.vtree_test.myctree.out" "t.vtree_test.myctree.C3Els[2].y" += "t.vtree_test.myctree.out" "t.vtree_test.myctree.tmp[25]" +"t.vtree_test.OR2_tf[0].a"|"t.vtree_test.OR2_tf[0].b"->"t.vtree_test.OR2_tf[0]._y"- +~("t.vtree_test.OR2_tf[0].a"|"t.vtree_test.OR2_tf[0].b")->"t.vtree_test.OR2_tf[0]._y"+ +"t.vtree_test.OR2_tf[0]._y"->"t.vtree_test.OR2_tf[0].y"- +~("t.vtree_test.OR2_tf[0]._y")->"t.vtree_test.OR2_tf[0].y"+ +"t.vtree_test.OR2_tf[1].a"|"t.vtree_test.OR2_tf[1].b"->"t.vtree_test.OR2_tf[1]._y"- +~("t.vtree_test.OR2_tf[1].a"|"t.vtree_test.OR2_tf[1].b")->"t.vtree_test.OR2_tf[1]._y"+ +"t.vtree_test.OR2_tf[1]._y"->"t.vtree_test.OR2_tf[1].y"- +~("t.vtree_test.OR2_tf[1]._y")->"t.vtree_test.OR2_tf[1].y"+ +"t.vtree_test.OR2_tf[2].a"|"t.vtree_test.OR2_tf[2].b"->"t.vtree_test.OR2_tf[2]._y"- +~("t.vtree_test.OR2_tf[2].a"|"t.vtree_test.OR2_tf[2].b")->"t.vtree_test.OR2_tf[2]._y"+ +"t.vtree_test.OR2_tf[2]._y"->"t.vtree_test.OR2_tf[2].y"- +~("t.vtree_test.OR2_tf[2]._y")->"t.vtree_test.OR2_tf[2].y"+ +"t.vtree_test.OR2_tf[3].a"|"t.vtree_test.OR2_tf[3].b"->"t.vtree_test.OR2_tf[3]._y"- +~("t.vtree_test.OR2_tf[3].a"|"t.vtree_test.OR2_tf[3].b")->"t.vtree_test.OR2_tf[3]._y"+ +"t.vtree_test.OR2_tf[3]._y"->"t.vtree_test.OR2_tf[3].y"- +~("t.vtree_test.OR2_tf[3]._y")->"t.vtree_test.OR2_tf[3].y"+ +"t.vtree_test.OR2_tf[4].a"|"t.vtree_test.OR2_tf[4].b"->"t.vtree_test.OR2_tf[4]._y"- +~("t.vtree_test.OR2_tf[4].a"|"t.vtree_test.OR2_tf[4].b")->"t.vtree_test.OR2_tf[4]._y"+ +"t.vtree_test.OR2_tf[4]._y"->"t.vtree_test.OR2_tf[4].y"- +~("t.vtree_test.OR2_tf[4]._y")->"t.vtree_test.OR2_tf[4].y"+ +"t.vtree_test.OR2_tf[5].a"|"t.vtree_test.OR2_tf[5].b"->"t.vtree_test.OR2_tf[5]._y"- +~("t.vtree_test.OR2_tf[5].a"|"t.vtree_test.OR2_tf[5].b")->"t.vtree_test.OR2_tf[5]._y"+ +"t.vtree_test.OR2_tf[5]._y"->"t.vtree_test.OR2_tf[5].y"- +~("t.vtree_test.OR2_tf[5]._y")->"t.vtree_test.OR2_tf[5].y"+ +"t.vtree_test.OR2_tf[6].a"|"t.vtree_test.OR2_tf[6].b"->"t.vtree_test.OR2_tf[6]._y"- +~("t.vtree_test.OR2_tf[6].a"|"t.vtree_test.OR2_tf[6].b")->"t.vtree_test.OR2_tf[6]._y"+ +"t.vtree_test.OR2_tf[6]._y"->"t.vtree_test.OR2_tf[6].y"- +~("t.vtree_test.OR2_tf[6]._y")->"t.vtree_test.OR2_tf[6].y"+ +"t.vtree_test.OR2_tf[7].a"|"t.vtree_test.OR2_tf[7].b"->"t.vtree_test.OR2_tf[7]._y"- +~("t.vtree_test.OR2_tf[7].a"|"t.vtree_test.OR2_tf[7].b")->"t.vtree_test.OR2_tf[7]._y"+ +"t.vtree_test.OR2_tf[7]._y"->"t.vtree_test.OR2_tf[7].y"- +~("t.vtree_test.OR2_tf[7]._y")->"t.vtree_test.OR2_tf[7].y"+ +"t.vtree_test.OR2_tf[8].a"|"t.vtree_test.OR2_tf[8].b"->"t.vtree_test.OR2_tf[8]._y"- +~("t.vtree_test.OR2_tf[8].a"|"t.vtree_test.OR2_tf[8].b")->"t.vtree_test.OR2_tf[8]._y"+ +"t.vtree_test.OR2_tf[8]._y"->"t.vtree_test.OR2_tf[8].y"- +~("t.vtree_test.OR2_tf[8]._y")->"t.vtree_test.OR2_tf[8].y"+ +"t.vtree_test.OR2_tf[9].a"|"t.vtree_test.OR2_tf[9].b"->"t.vtree_test.OR2_tf[9]._y"- +~("t.vtree_test.OR2_tf[9].a"|"t.vtree_test.OR2_tf[9].b")->"t.vtree_test.OR2_tf[9]._y"+ +"t.vtree_test.OR2_tf[9]._y"->"t.vtree_test.OR2_tf[9].y"- +~("t.vtree_test.OR2_tf[9]._y")->"t.vtree_test.OR2_tf[9].y"+ +"t.vtree_test.OR2_tf[10].a"|"t.vtree_test.OR2_tf[10].b"->"t.vtree_test.OR2_tf[10]._y"- +~("t.vtree_test.OR2_tf[10].a"|"t.vtree_test.OR2_tf[10].b")->"t.vtree_test.OR2_tf[10]._y"+ +"t.vtree_test.OR2_tf[10]._y"->"t.vtree_test.OR2_tf[10].y"- +~("t.vtree_test.OR2_tf[10]._y")->"t.vtree_test.OR2_tf[10].y"+ +"t.vtree_test.OR2_tf[11].a"|"t.vtree_test.OR2_tf[11].b"->"t.vtree_test.OR2_tf[11]._y"- +~("t.vtree_test.OR2_tf[11].a"|"t.vtree_test.OR2_tf[11].b")->"t.vtree_test.OR2_tf[11]._y"+ +"t.vtree_test.OR2_tf[11]._y"->"t.vtree_test.OR2_tf[11].y"- +~("t.vtree_test.OR2_tf[11]._y")->"t.vtree_test.OR2_tf[11].y"+ +"t.vtree_test.OR2_tf[12].a"|"t.vtree_test.OR2_tf[12].b"->"t.vtree_test.OR2_tf[12]._y"- +~("t.vtree_test.OR2_tf[12].a"|"t.vtree_test.OR2_tf[12].b")->"t.vtree_test.OR2_tf[12]._y"+ +"t.vtree_test.OR2_tf[12]._y"->"t.vtree_test.OR2_tf[12].y"- +~("t.vtree_test.OR2_tf[12]._y")->"t.vtree_test.OR2_tf[12].y"+ +"t.vtree_test.OR2_tf[13].a"|"t.vtree_test.OR2_tf[13].b"->"t.vtree_test.OR2_tf[13]._y"- +~("t.vtree_test.OR2_tf[13].a"|"t.vtree_test.OR2_tf[13].b")->"t.vtree_test.OR2_tf[13]._y"+ +"t.vtree_test.OR2_tf[13]._y"->"t.vtree_test.OR2_tf[13].y"- +~("t.vtree_test.OR2_tf[13]._y")->"t.vtree_test.OR2_tf[13].y"+ +"t.vtree_test.OR2_tf[14].a"|"t.vtree_test.OR2_tf[14].b"->"t.vtree_test.OR2_tf[14]._y"- +~("t.vtree_test.OR2_tf[14].a"|"t.vtree_test.OR2_tf[14].b")->"t.vtree_test.OR2_tf[14]._y"+ +"t.vtree_test.OR2_tf[14]._y"->"t.vtree_test.OR2_tf[14].y"- +~("t.vtree_test.OR2_tf[14]._y")->"t.vtree_test.OR2_tf[14].y"+ += "t.vtree_test.OR2_tf[14].y" "t.vtree_test.myctree.in[14]" += "t.vtree_test.OR2_tf[13].y" "t.vtree_test.myctree.in[13]" += "t.vtree_test.OR2_tf[12].y" "t.vtree_test.myctree.in[12]" += "t.vtree_test.OR2_tf[11].y" "t.vtree_test.myctree.in[11]" += "t.vtree_test.OR2_tf[10].y" "t.vtree_test.myctree.in[10]" += "t.vtree_test.OR2_tf[9].y" "t.vtree_test.myctree.in[9]" += "t.vtree_test.OR2_tf[8].y" "t.vtree_test.myctree.in[8]" += "t.vtree_test.OR2_tf[7].y" "t.vtree_test.myctree.in[7]" += "t.vtree_test.OR2_tf[6].y" "t.vtree_test.myctree.in[6]" += "t.vtree_test.OR2_tf[5].y" "t.vtree_test.myctree.in[5]" += "t.vtree_test.OR2_tf[4].y" "t.vtree_test.myctree.in[4]" += "t.vtree_test.OR2_tf[3].y" "t.vtree_test.myctree.in[3]" += "t.vtree_test.OR2_tf[2].y" "t.vtree_test.myctree.in[2]" += "t.vtree_test.OR2_tf[1].y" "t.vtree_test.myctree.in[1]" += "t.vtree_test.OR2_tf[0].y" "t.vtree_test.myctree.in[0]" += "t.vtree_test.supply.vss" "t.vtree_test.myctree.supply.vss" += "t.vtree_test.supply.vdd" "t.vtree_test.myctree.supply.vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[14].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[13].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[12].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[11].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[10].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[9].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[8].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[7].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[6].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[5].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[4].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[3].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[2].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[1].vdd" += "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[0].vdd" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[14].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[13].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[12].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[11].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[10].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[9].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[8].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[7].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[6].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[5].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[4].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[3].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[2].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[1].vss" += "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[0].vss" += "t.vtree_test.out" "t.vtree_test.myctree.out" += "t.vtree_test.in.d[0].d[0]" "t.vtree_test.in.d[0].f" += "t.vtree_test.in.d[0].d[1]" "t.vtree_test.in.d[0].t" += "t.vtree_test.in.d[1].d[0]" "t.vtree_test.in.d[1].f" += "t.vtree_test.in.d[1].d[1]" "t.vtree_test.in.d[1].t" += "t.vtree_test.in.d[2].d[0]" "t.vtree_test.in.d[2].f" += "t.vtree_test.in.d[2].d[1]" "t.vtree_test.in.d[2].t" += "t.vtree_test.in.d[3].d[0]" "t.vtree_test.in.d[3].f" += "t.vtree_test.in.d[3].d[1]" "t.vtree_test.in.d[3].t" += "t.vtree_test.in.d[4].d[0]" "t.vtree_test.in.d[4].f" += "t.vtree_test.in.d[4].d[1]" "t.vtree_test.in.d[4].t" += "t.vtree_test.in.d[5].d[0]" "t.vtree_test.in.d[5].f" += "t.vtree_test.in.d[5].d[1]" "t.vtree_test.in.d[5].t" += "t.vtree_test.in.d[6].d[0]" "t.vtree_test.in.d[6].f" += "t.vtree_test.in.d[6].d[1]" "t.vtree_test.in.d[6].t" += "t.vtree_test.in.d[7].d[0]" "t.vtree_test.in.d[7].f" += "t.vtree_test.in.d[7].d[1]" "t.vtree_test.in.d[7].t" += "t.vtree_test.in.d[8].d[0]" "t.vtree_test.in.d[8].f" += "t.vtree_test.in.d[8].d[1]" "t.vtree_test.in.d[8].t" += "t.vtree_test.in.d[9].d[0]" "t.vtree_test.in.d[9].f" += "t.vtree_test.in.d[9].d[1]" "t.vtree_test.in.d[9].t" += "t.vtree_test.in.d[10].d[0]" "t.vtree_test.in.d[10].f" += "t.vtree_test.in.d[10].d[1]" "t.vtree_test.in.d[10].t" += "t.vtree_test.in.d[11].d[0]" "t.vtree_test.in.d[11].f" += "t.vtree_test.in.d[11].d[1]" "t.vtree_test.in.d[11].t" += "t.vtree_test.in.d[12].d[0]" "t.vtree_test.in.d[12].f" += "t.vtree_test.in.d[12].d[1]" "t.vtree_test.in.d[12].t" += "t.vtree_test.in.d[13].d[0]" "t.vtree_test.in.d[13].f" += "t.vtree_test.in.d[13].d[1]" "t.vtree_test.in.d[13].t" += "t.vtree_test.in.d[14].d[0]" "t.vtree_test.in.d[14].f" += "t.vtree_test.in.d[14].d[1]" "t.vtree_test.in.d[14].t" += "t.vtree_test.in.d[14].d[0]" "t.vtree_test.in.d[14].f" += "t.vtree_test.in.d[14].d[1]" "t.vtree_test.in.d[14].t" += "t.vtree_test.in.d[13].d[0]" "t.vtree_test.in.d[13].f" += "t.vtree_test.in.d[13].d[1]" "t.vtree_test.in.d[13].t" += "t.vtree_test.in.d[12].d[0]" "t.vtree_test.in.d[12].f" += "t.vtree_test.in.d[12].d[1]" "t.vtree_test.in.d[12].t" += "t.vtree_test.in.d[11].d[0]" "t.vtree_test.in.d[11].f" += "t.vtree_test.in.d[11].d[1]" "t.vtree_test.in.d[11].t" += "t.vtree_test.in.d[10].d[0]" "t.vtree_test.in.d[10].f" += "t.vtree_test.in.d[10].d[1]" "t.vtree_test.in.d[10].t" += "t.vtree_test.in.d[9].d[0]" "t.vtree_test.in.d[9].f" += "t.vtree_test.in.d[9].d[1]" "t.vtree_test.in.d[9].t" += "t.vtree_test.in.d[8].d[0]" "t.vtree_test.in.d[8].f" += "t.vtree_test.in.d[8].d[1]" "t.vtree_test.in.d[8].t" += "t.vtree_test.in.d[7].d[0]" "t.vtree_test.in.d[7].f" += "t.vtree_test.in.d[7].d[1]" "t.vtree_test.in.d[7].t" += "t.vtree_test.in.d[6].d[0]" "t.vtree_test.in.d[6].f" += "t.vtree_test.in.d[6].d[1]" "t.vtree_test.in.d[6].t" += "t.vtree_test.in.d[5].d[0]" "t.vtree_test.in.d[5].f" += "t.vtree_test.in.d[5].d[1]" "t.vtree_test.in.d[5].t" += "t.vtree_test.in.d[4].d[0]" "t.vtree_test.in.d[4].f" += "t.vtree_test.in.d[4].d[1]" "t.vtree_test.in.d[4].t" += "t.vtree_test.in.d[3].d[0]" "t.vtree_test.in.d[3].f" += "t.vtree_test.in.d[3].d[1]" "t.vtree_test.in.d[3].t" += "t.vtree_test.in.d[2].d[0]" "t.vtree_test.in.d[2].f" += "t.vtree_test.in.d[2].d[1]" "t.vtree_test.in.d[2].t" += "t.vtree_test.in.d[1].d[0]" "t.vtree_test.in.d[1].f" += "t.vtree_test.in.d[1].d[1]" "t.vtree_test.in.d[1].t" += "t.vtree_test.in.d[0].d[0]" "t.vtree_test.in.d[0].f" += "t.vtree_test.in.d[0].d[1]" "t.vtree_test.in.d[0].t" += "t.vtree_test.in.d[14].d[0]" "t.vtree_test.OR2_tf[14].b" += "t.vtree_test.in.d[14].d[0]" "t.vtree_test.in.d[14].f" += "t.vtree_test.in.d[14].d[1]" "t.vtree_test.OR2_tf[14].a" += "t.vtree_test.in.d[14].d[1]" "t.vtree_test.in.d[14].t" += "t.vtree_test.in.d[13].d[0]" "t.vtree_test.OR2_tf[13].b" += "t.vtree_test.in.d[13].d[0]" "t.vtree_test.in.d[13].f" += "t.vtree_test.in.d[13].d[1]" "t.vtree_test.OR2_tf[13].a" += "t.vtree_test.in.d[13].d[1]" "t.vtree_test.in.d[13].t" += "t.vtree_test.in.d[12].d[0]" "t.vtree_test.OR2_tf[12].b" += "t.vtree_test.in.d[12].d[0]" "t.vtree_test.in.d[12].f" += "t.vtree_test.in.d[12].d[1]" "t.vtree_test.OR2_tf[12].a" += "t.vtree_test.in.d[12].d[1]" "t.vtree_test.in.d[12].t" += "t.vtree_test.in.d[11].d[0]" "t.vtree_test.OR2_tf[11].b" += "t.vtree_test.in.d[11].d[0]" "t.vtree_test.in.d[11].f" += "t.vtree_test.in.d[11].d[1]" "t.vtree_test.OR2_tf[11].a" += "t.vtree_test.in.d[11].d[1]" "t.vtree_test.in.d[11].t" += "t.vtree_test.in.d[10].d[0]" "t.vtree_test.OR2_tf[10].b" += "t.vtree_test.in.d[10].d[0]" "t.vtree_test.in.d[10].f" += "t.vtree_test.in.d[10].d[1]" "t.vtree_test.OR2_tf[10].a" += "t.vtree_test.in.d[10].d[1]" "t.vtree_test.in.d[10].t" += "t.vtree_test.in.d[9].d[0]" "t.vtree_test.OR2_tf[9].b" += "t.vtree_test.in.d[9].d[0]" "t.vtree_test.in.d[9].f" += "t.vtree_test.in.d[9].d[1]" "t.vtree_test.OR2_tf[9].a" += "t.vtree_test.in.d[9].d[1]" "t.vtree_test.in.d[9].t" += "t.vtree_test.in.d[8].d[0]" "t.vtree_test.OR2_tf[8].b" += "t.vtree_test.in.d[8].d[0]" "t.vtree_test.in.d[8].f" += "t.vtree_test.in.d[8].d[1]" "t.vtree_test.OR2_tf[8].a" += "t.vtree_test.in.d[8].d[1]" "t.vtree_test.in.d[8].t" += "t.vtree_test.in.d[7].d[0]" "t.vtree_test.OR2_tf[7].b" += "t.vtree_test.in.d[7].d[0]" "t.vtree_test.in.d[7].f" += "t.vtree_test.in.d[7].d[1]" "t.vtree_test.OR2_tf[7].a" += "t.vtree_test.in.d[7].d[1]" "t.vtree_test.in.d[7].t" += "t.vtree_test.in.d[6].d[0]" "t.vtree_test.OR2_tf[6].b" += "t.vtree_test.in.d[6].d[0]" "t.vtree_test.in.d[6].f" += "t.vtree_test.in.d[6].d[1]" "t.vtree_test.OR2_tf[6].a" += "t.vtree_test.in.d[6].d[1]" "t.vtree_test.in.d[6].t" += "t.vtree_test.in.d[5].d[0]" "t.vtree_test.OR2_tf[5].b" += "t.vtree_test.in.d[5].d[0]" "t.vtree_test.in.d[5].f" += "t.vtree_test.in.d[5].d[1]" "t.vtree_test.OR2_tf[5].a" += "t.vtree_test.in.d[5].d[1]" "t.vtree_test.in.d[5].t" += "t.vtree_test.in.d[4].d[0]" "t.vtree_test.OR2_tf[4].b" += "t.vtree_test.in.d[4].d[0]" "t.vtree_test.in.d[4].f" += "t.vtree_test.in.d[4].d[1]" "t.vtree_test.OR2_tf[4].a" += "t.vtree_test.in.d[4].d[1]" "t.vtree_test.in.d[4].t" += "t.vtree_test.in.d[3].d[0]" "t.vtree_test.OR2_tf[3].b" += "t.vtree_test.in.d[3].d[0]" "t.vtree_test.in.d[3].f" += "t.vtree_test.in.d[3].d[1]" "t.vtree_test.OR2_tf[3].a" += "t.vtree_test.in.d[3].d[1]" "t.vtree_test.in.d[3].t" += "t.vtree_test.in.d[2].d[0]" "t.vtree_test.OR2_tf[2].b" += "t.vtree_test.in.d[2].d[0]" "t.vtree_test.in.d[2].f" += "t.vtree_test.in.d[2].d[1]" "t.vtree_test.OR2_tf[2].a" += "t.vtree_test.in.d[2].d[1]" "t.vtree_test.in.d[2].t" += "t.vtree_test.in.d[1].d[0]" "t.vtree_test.OR2_tf[1].b" += "t.vtree_test.in.d[1].d[0]" "t.vtree_test.in.d[1].f" += "t.vtree_test.in.d[1].d[1]" "t.vtree_test.OR2_tf[1].a" += "t.vtree_test.in.d[1].d[1]" "t.vtree_test.in.d[1].t" += "t.vtree_test.in.d[0].d[0]" "t.vtree_test.OR2_tf[0].b" += "t.vtree_test.in.d[0].d[0]" "t.vtree_test.in.d[0].f" += "t.vtree_test.in.d[0].d[1]" "t.vtree_test.OR2_tf[0].a" += "t.vtree_test.in.d[0].d[1]" "t.vtree_test.in.d[0].t" += "Vdd" "t.vtree_test.supply.vdd" += "GND" "t.vtree_test.supply.vss" += "t.out" "t.vtree_test.out" += "t.in.d[0].d[0]" "t.in.d[0].f" += "t.in.d[0].d[1]" "t.in.d[0].t" += "t.in.d[1].d[0]" "t.in.d[1].f" += "t.in.d[1].d[1]" "t.in.d[1].t" += "t.in.d[2].d[0]" "t.in.d[2].f" += "t.in.d[2].d[1]" "t.in.d[2].t" += "t.in.d[3].d[0]" "t.in.d[3].f" += "t.in.d[3].d[1]" "t.in.d[3].t" += "t.in.d[4].d[0]" "t.in.d[4].f" += "t.in.d[4].d[1]" "t.in.d[4].t" += "t.in.d[5].d[0]" "t.in.d[5].f" += "t.in.d[5].d[1]" "t.in.d[5].t" += "t.in.d[6].d[0]" "t.in.d[6].f" += "t.in.d[6].d[1]" "t.in.d[6].t" += "t.in.d[7].d[0]" "t.in.d[7].f" += "t.in.d[7].d[1]" "t.in.d[7].t" += "t.in.d[8].d[0]" "t.in.d[8].f" += "t.in.d[8].d[1]" "t.in.d[8].t" += "t.in.d[9].d[0]" "t.in.d[9].f" += "t.in.d[9].d[1]" "t.in.d[9].t" += "t.in.d[10].d[0]" "t.in.d[10].f" += "t.in.d[10].d[1]" "t.in.d[10].t" += "t.in.d[11].d[0]" "t.in.d[11].f" += "t.in.d[11].d[1]" "t.in.d[11].t" += "t.in.d[12].d[0]" "t.in.d[12].f" += "t.in.d[12].d[1]" "t.in.d[12].t" += "t.in.d[13].d[0]" "t.in.d[13].f" += "t.in.d[13].d[1]" "t.in.d[13].t" += "t.in.d[14].d[0]" "t.in.d[14].f" += "t.in.d[14].d[1]" "t.in.d[14].t" += "t.in.d[14].d[0]" "t.in.d[14].f" += "t.in.d[14].d[1]" "t.in.d[14].t" += "t.in.d[13].d[0]" "t.in.d[13].f" += "t.in.d[13].d[1]" "t.in.d[13].t" += "t.in.d[12].d[0]" "t.in.d[12].f" += "t.in.d[12].d[1]" "t.in.d[12].t" += "t.in.d[11].d[0]" "t.in.d[11].f" += "t.in.d[11].d[1]" "t.in.d[11].t" += "t.in.d[10].d[0]" "t.in.d[10].f" += "t.in.d[10].d[1]" "t.in.d[10].t" += "t.in.d[9].d[0]" "t.in.d[9].f" += "t.in.d[9].d[1]" "t.in.d[9].t" += "t.in.d[8].d[0]" "t.in.d[8].f" += "t.in.d[8].d[1]" "t.in.d[8].t" += "t.in.d[7].d[0]" "t.in.d[7].f" += "t.in.d[7].d[1]" "t.in.d[7].t" += "t.in.d[6].d[0]" "t.in.d[6].f" += "t.in.d[6].d[1]" "t.in.d[6].t" += "t.in.d[5].d[0]" "t.in.d[5].f" += "t.in.d[5].d[1]" "t.in.d[5].t" += "t.in.d[4].d[0]" "t.in.d[4].f" += "t.in.d[4].d[1]" "t.in.d[4].t" += "t.in.d[3].d[0]" "t.in.d[3].f" += "t.in.d[3].d[1]" "t.in.d[3].t" += "t.in.d[2].d[0]" "t.in.d[2].f" += "t.in.d[2].d[1]" "t.in.d[2].t" += "t.in.d[1].d[0]" "t.in.d[1].f" += "t.in.d[1].d[1]" "t.in.d[1].t" += "t.in.d[0].d[0]" "t.in.d[0].f" += "t.in.d[0].d[1]" "t.in.d[0].t" += "t.in.d[0].f" "t.vtree_test.in.d[0].f" += "t.in.d[0].t" "t.vtree_test.in.d[0].t" += "t.in.d[0].d[0]" "t.vtree_test.in.d[0].d[0]" += "t.in.d[0].d[1]" "t.vtree_test.in.d[0].d[1]" += "t.in.d[1].f" "t.vtree_test.in.d[1].f" += "t.in.d[1].t" "t.vtree_test.in.d[1].t" += "t.in.d[1].d[0]" "t.vtree_test.in.d[1].d[0]" += "t.in.d[1].d[1]" "t.vtree_test.in.d[1].d[1]" += "t.in.d[2].f" "t.vtree_test.in.d[2].f" += "t.in.d[2].t" "t.vtree_test.in.d[2].t" += "t.in.d[2].d[0]" "t.vtree_test.in.d[2].d[0]" += "t.in.d[2].d[1]" "t.vtree_test.in.d[2].d[1]" += "t.in.d[3].f" "t.vtree_test.in.d[3].f" += "t.in.d[3].t" "t.vtree_test.in.d[3].t" += "t.in.d[3].d[0]" "t.vtree_test.in.d[3].d[0]" += "t.in.d[3].d[1]" "t.vtree_test.in.d[3].d[1]" += "t.in.d[4].f" "t.vtree_test.in.d[4].f" += "t.in.d[4].t" "t.vtree_test.in.d[4].t" += "t.in.d[4].d[0]" "t.vtree_test.in.d[4].d[0]" += "t.in.d[4].d[1]" "t.vtree_test.in.d[4].d[1]" += "t.in.d[5].f" "t.vtree_test.in.d[5].f" += "t.in.d[5].t" "t.vtree_test.in.d[5].t" += "t.in.d[5].d[0]" "t.vtree_test.in.d[5].d[0]" += "t.in.d[5].d[1]" "t.vtree_test.in.d[5].d[1]" += "t.in.d[6].f" "t.vtree_test.in.d[6].f" += "t.in.d[6].t" "t.vtree_test.in.d[6].t" += "t.in.d[6].d[0]" "t.vtree_test.in.d[6].d[0]" += "t.in.d[6].d[1]" "t.vtree_test.in.d[6].d[1]" += "t.in.d[7].f" "t.vtree_test.in.d[7].f" += "t.in.d[7].t" "t.vtree_test.in.d[7].t" += "t.in.d[7].d[0]" "t.vtree_test.in.d[7].d[0]" += "t.in.d[7].d[1]" "t.vtree_test.in.d[7].d[1]" += "t.in.d[8].f" "t.vtree_test.in.d[8].f" += "t.in.d[8].t" "t.vtree_test.in.d[8].t" += "t.in.d[8].d[0]" "t.vtree_test.in.d[8].d[0]" += "t.in.d[8].d[1]" "t.vtree_test.in.d[8].d[1]" += "t.in.d[9].f" "t.vtree_test.in.d[9].f" += "t.in.d[9].t" "t.vtree_test.in.d[9].t" += "t.in.d[9].d[0]" "t.vtree_test.in.d[9].d[0]" += "t.in.d[9].d[1]" "t.vtree_test.in.d[9].d[1]" += "t.in.d[10].f" "t.vtree_test.in.d[10].f" += "t.in.d[10].t" "t.vtree_test.in.d[10].t" += "t.in.d[10].d[0]" "t.vtree_test.in.d[10].d[0]" += "t.in.d[10].d[1]" "t.vtree_test.in.d[10].d[1]" += "t.in.d[11].f" "t.vtree_test.in.d[11].f" += "t.in.d[11].t" "t.vtree_test.in.d[11].t" += "t.in.d[11].d[0]" "t.vtree_test.in.d[11].d[0]" += "t.in.d[11].d[1]" "t.vtree_test.in.d[11].d[1]" += "t.in.d[12].f" "t.vtree_test.in.d[12].f" += "t.in.d[12].t" "t.vtree_test.in.d[12].t" += "t.in.d[12].d[0]" "t.vtree_test.in.d[12].d[0]" += "t.in.d[12].d[1]" "t.vtree_test.in.d[12].d[1]" += "t.in.d[13].f" "t.vtree_test.in.d[13].f" += "t.in.d[13].t" "t.vtree_test.in.d[13].t" += "t.in.d[13].d[0]" "t.vtree_test.in.d[13].d[0]" += "t.in.d[13].d[1]" "t.vtree_test.in.d[13].d[1]" += "t.in.d[14].f" "t.vtree_test.in.d[14].f" += "t.in.d[14].t" "t.vtree_test.in.d[14].t" += "t.in.d[14].d[0]" "t.vtree_test.in.d[14].d[0]" += "t.in.d[14].d[1]" "t.vtree_test.in.d[14].d[1]" += "t.in.d[14].d[0]" "t.in.d[14].f" += "t.in.d[14].d[1]" "t.in.d[14].t" += "t.in.d[13].d[0]" "t.in.d[13].f" += "t.in.d[13].d[1]" "t.in.d[13].t" += "t.in.d[12].d[0]" "t.in.d[12].f" += "t.in.d[12].d[1]" "t.in.d[12].t" += "t.in.d[11].d[0]" "t.in.d[11].f" += "t.in.d[11].d[1]" "t.in.d[11].t" += "t.in.d[10].d[0]" "t.in.d[10].f" += "t.in.d[10].d[1]" "t.in.d[10].t" += "t.in.d[9].d[0]" "t.in.d[9].f" += "t.in.d[9].d[1]" "t.in.d[9].t" += "t.in.d[8].d[0]" "t.in.d[8].f" += "t.in.d[8].d[1]" "t.in.d[8].t" += "t.in.d[7].d[0]" "t.in.d[7].f" += "t.in.d[7].d[1]" "t.in.d[7].t" += "t.in.d[6].d[0]" "t.in.d[6].f" += "t.in.d[6].d[1]" "t.in.d[6].t" += "t.in.d[5].d[0]" "t.in.d[5].f" += "t.in.d[5].d[1]" "t.in.d[5].t" += "t.in.d[4].d[0]" "t.in.d[4].f" += "t.in.d[4].d[1]" "t.in.d[4].t" += "t.in.d[3].d[0]" "t.in.d[3].f" += "t.in.d[3].d[1]" "t.in.d[3].t" += "t.in.d[2].d[0]" "t.in.d[2].f" += "t.in.d[2].d[1]" "t.in.d[2].t" += "t.in.d[1].d[0]" "t.in.d[1].f" += "t.in.d[1].d[1]" "t.in.d[1].t" += "t.in.d[0].d[0]" "t.in.d[0].f" += "t.in.d[0].d[1]" "t.in.d[0].t" diff --git a/test/unit_tests/vtree_15/test.act b/test/unit_tests/vtree_15/test.act new file mode 100644 index 0000000..a3dc3b0 --- /dev/null +++ b/test/unit_tests/vtree_15/test.act @@ -0,0 +1,41 @@ +/************************************************************************* + * + * This file is part of ACT dataflow neuro library. + * It's the testing facility for cell_lib_std.act + * + * Copyright (c) 2022 University of Groningen - Ole Richter + * Copyright (c) 2022 University of Groningen - Hugh Greatorex + * Copyright (c) 2022 University of Groningen - Michele Mastella + * Copyright (c) 2022 University of Groningen - Madison Cotteret + * + * This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later + * + * You may redistribute and modify this documentation and make products + * using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl). + * This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY + * AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2 + * for applicable conditions. + * + * Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro + * + * As per CERN-OHL-W v2 section 4.1, should You produce hardware based on + * these sources, You must maintain the Source Location visible in its + * documentation. + * + ************************************************************************** + */ + +import "../../dataflow_neuro/treegates.act"; +import globals; + +open tmpl::dataflow_neuro; + +defproc vtree_15 (std::data::Mx1of2?<15> in; bool! out){ + vtree<15> vtree_test(.in=in, .out=out); + vtree_test.supply.vss = GND; + vtree_test.supply.vdd = Vdd; + +} + +vtree_15 t; diff --git a/test/unit_tests/vtree_15/test.prsim b/test/unit_tests/vtree_15/test.prsim new file mode 100644 index 0000000..65fc27f --- /dev/null +++ b/test/unit_tests/vtree_15/test.prsim @@ -0,0 +1,108 @@ + +system "echo '[0] starting test true high'" + +set t.in.d[0].t 1 +set t.in.d[1].t 1 +set t.in.d[2].t 1 +set t.in.d[3].t 1 +set t.in.d[4].t 1 +set t.in.d[5].t 1 +set t.in.d[6].t 1 +set t.in.d[7].t 1 +set t.in.d[8].t 1 +set t.in.d[9].t 1 +set t.in.d[10].t 1 +set t.in.d[11].t 1 +set t.in.d[12].t 1 +set t.in.d[13].t 1 +set t.in.d[14].t 1 +set t.in.d[0].f 0 +set t.in.d[1].f 0 +set t.in.d[2].f 0 +set t.in.d[3].f 0 +set t.in.d[4].f 0 +set t.in.d[5].f 0 +set t.in.d[6].f 0 +set t.in.d[7].f 0 +set t.in.d[8].f 0 +set t.in.d[9].f 0 +set t.in.d[10].f 0 +set t.in.d[11].f 0 +set t.in.d[12].f 0 +set t.in.d[13].f 0 +set t.in.d[14].f 0 +cycle +mode run +assert t.out 1 + +system "echo '[1] cleaning input'" + +set t.in.d[0].t 0 +set t.in.d[1].t 0 +set t.in.d[2].t 0 +set t.in.d[3].t 0 +set t.in.d[4].t 0 +set t.in.d[5].t 0 +set t.in.d[6].t 0 +set t.in.d[7].t 0 +set t.in.d[8].t 0 +set t.in.d[9].t 0 +set t.in.d[10].t 0 +set t.in.d[11].t 0 +set t.in.d[12].t 0 +set t.in.d[13].t 0 +set t.in.d[14].t 0 +set t.in.d[0].f 0 +set t.in.d[1].f 0 +set t.in.d[2].f 0 +set t.in.d[3].f 0 +set t.in.d[4].f 0 +set t.in.d[5].f 0 +set t.in.d[6].f 0 +set t.in.d[7].f 0 +set t.in.d[8].f 0 +set t.in.d[9].f 0 +set t.in.d[10].f 0 +set t.in.d[11].f 0 +set t.in.d[12].f 0 +set t.in.d[13].f 0 +set t.in.d[14].f 0 +cycle +mode run +assert t.out 0 + +system "echo '[2] starting test false high'" + +set t.in.d[0].t 0 +set t.in.d[1].t 0 +set t.in.d[2].t 0 +set t.in.d[3].t 0 +set t.in.d[4].t 0 +set t.in.d[5].t 0 +set t.in.d[6].t 0 +set t.in.d[7].t 0 +set t.in.d[8].t 0 +set t.in.d[9].t 0 +set t.in.d[10].t 0 +set t.in.d[11].t 0 +set t.in.d[12].t 0 +set t.in.d[13].t 0 +set t.in.d[14].t 0 +set t.in.d[0].f 1 +set t.in.d[1].f 1 +set t.in.d[2].f 1 +set t.in.d[3].f 1 +set t.in.d[4].f 1 +set t.in.d[5].f 1 +set t.in.d[6].f 1 +set t.in.d[7].f 1 +set t.in.d[8].f 1 +set t.in.d[9].f 1 +set t.in.d[10].f 1 +set t.in.d[11].f 1 +set t.in.d[12].f 1 +set t.in.d[13].f 1 +set t.in.d[14].f 1 +cycle +mode run +assert t.out 1