differentiated between ctree and vtree, all primitives updated

This commit is contained in:
Michele 2022-03-01 09:44:51 +01:00
parent 92b0b36325
commit 8b40e70058
8 changed files with 789 additions and 115 deletions

View File

@ -116,7 +116,7 @@ namespace tmpl {
//validity //validity
bool _in_v; bool _in_v;
ctree<N> vc(.in=in.d,.out=_in_v,.supply=supply); vtree<N> 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); BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
//function //function
@ -167,7 +167,7 @@ namespace tmpl {
sigbuf<N> c_buf_f(.in=cond.d.d[0].f, .out=_c_f_buf); sigbuf<N> 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); 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<N> vc(.in=in.d,.out=_in_v,.supply=supply); vtree<N> 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); 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); BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
@ -251,7 +251,7 @@ namespace tmpl {
//validity //validity
bool _in_v; bool _in_v;
ctree<N> vc(.in=in.d,.out=_in_v,.supply=supply); vtree<N> 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); BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
//function //function
@ -312,107 +312,80 @@ namespace tmpl {
} }
export template<pint N, pbool invout> // export template<pint N, pbool invout>
defproc demux_td (avMx1of2<N> in; avMx1of2<N> out1; avMx1of2<1> token; bool? reset_B; avMx1of2<1> cond; power supply) { // defproc demux_td (avMx1of2<N> in; avMx1of2<N> 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;
sigbuf<N> c_buf_t(.in=cond.d.d[0].t, .out=_c_t_buf);
sigbuf<N> 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);
]
ctree<N> 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);
//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<N> out1_en_buf_t(.in=_en, .out=_en1_X_t, .supply=supply);
sigbuf<N> 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<N> out1_a_B_buf_f(.in=_out1_a_B,.out=_out1_a_BX_t);
sigbuf<N> 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
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<pint N>
// defproc merge (avMx1of2<N> in1; avMx1of2<N> in2; avMx1of2<N> out ; bool? reset_B; power supply) {
// //control // //control
// bool _en, _reset_BX,_reset_BXX[N]; // bool _en, _reset_BX,_reset_BXX[2*N], _out_v, _in_c_v_;
// 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 // 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); // BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
// sigbuf<N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX); // sigbuf<2*N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX);
// //validity // //validity
// bool _in1_v,_in2_v; // bool _in_v, _c_f_buf[N], _c_t_buf[N], _c_v;
// a1of1 _in1_temp,_in2_temp,_out_temp;
// ctree<N> vc1(.in=in1.d,.out=in1.v,.supply=supply); // sigbuf<N> c_buf_t(.in=cond.d.d[0].t, .out=_c_t_buf);
// ctree<N> vc2(.in=in2.d,.out=in2.v,.supply=supply); // sigbuf<N> c_buf_f(.in=cond.d.d[0].f, .out=_c_f_buf);
// arbiter_handshake validity_arb(.in1 = _in1_temp,.in2 = _in2_temp,.out =_out_temp)
// _in1_temp.r = in1.v
// _in2_temp.r = in2.v // //orientation of condition
// _in1_temp.a = // [ invout < 0 ->
// _in1_temp.a = // 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);
// _out_temp.r = _out_temp.a // [] invout > 0 ->
//function // 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);
// ]
// vtree<N> 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);
// //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<N> out1_en_buf_t(.in=_en, .out=_en1_X_t, .supply=supply);
// sigbuf<N> 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<N> out1_a_B_buf_f(.in=_out1_a_B,.out=_out1_a_BX_t);
// sigbuf<N> 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
// 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 export
defproc arbiter_handshake(a1of1 in1; a1of1 in2; a1of1 out; power supply) 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,_in2_arb2function;
bool _in1_arb2function_X[2*N],_in2_arb2function_X[2*N]; bool _in1_arb2function_X[2*N],_in2_arb2function_X[2*N];
valtree<N> vc1(.in=in1.d,.out=in1.v,.supply=supply); vtree<N> vc1(.in=in1.d,.out=in1.v,.supply=supply);
valtree<N> vc2(.in=in2.d,.out=in2.v,.supply=supply); vtree<N> vc2(.in=in2.d,.out=in2.v,.supply=supply);
arbiter_handshake validity_arb(.in1 = _in1_temp,.in2 = _in2_temp,.out =_out_temp); arbiter_handshake validity_arb(.in1 = _in1_temp,.in2 = _in2_temp,.out =_out_temp);
_in1_temp.r = in1.v; _in1_temp.r = in1.v;
_in2_temp.r = in2.v; _in2_temp.r = in2.v;

View File

@ -151,7 +151,7 @@ defproc ortree (bool? in[N]; bool! out; power supply)
* C-elements * C-elements
*/ */
export template<pint N> export template<pint N>
defproc ctree (std::data::Mx1of2?<N> in; bool! out; power supply) defproc ctree (bool? in[N]; bool! out; power supply)
{ {
bool tout; bool tout;
@ -187,19 +187,11 @@ defproc ctree (std::data::Mx1of2?<N> in; bool! out; power supply)
/* array that holds ALL the nodes in the completion tree */ /* array that holds ALL the nodes in the completion tree */
bool tmp[end+1]; 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: (l:N:
OR2_tf[l].a = in.d[l].t; tmp[l] = in[l];
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];)
/* array to hold the actual C-elments, either A2C or A3C */ /* array to hold the actual C-elments, either A2C or A3C */
[lenTree2Count > 0 -> [lenTree2Count > 0 ->
@ -271,6 +263,22 @@ defproc ctree (std::data::Mx1of2?<N> in; bool! out; power supply)
} }
export template<pint N>
defproc vtree (std::data::Mx1of2?<N> 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<N> 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<pint N> export template<pint N>
defproc sigbuf (bool? in; bool! out[N]; power supply) defproc sigbuf (bool? in; bool! out[N]; power supply)
{ {

View File

@ -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 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 [0] starting test all 1
1 [1] starting test all 0
[2] testing state holding

View File

@ -1,5 +1,5 @@
system "echo '0'" system "echo '[0] starting test all 1'"
set t.in[0] 1 set t.in[0] 1
set t.in[1] 1 set t.in[1] 1
@ -16,12 +16,47 @@ set t.in[11] 1
set t.in[12] 1 set t.in[12] 1
set t.in[13] 1 set t.in[13] 1
set t.in[14] 1 set t.in[14] 1
system "echo '1'"
cycle cycle
mode run mode run
assert t.out 1 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

View File

@ -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.

View File

@ -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"

View File

@ -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;

View File

@ -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