merged buf_s into primitives
This commit is contained in:
commit
a8b1710f65
@ -116,7 +116,7 @@ namespace tmpl {
|
||||
|
||||
//validity
|
||||
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);
|
||||
|
||||
//function
|
||||
@ -225,7 +225,7 @@ namespace tmpl {
|
||||
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);
|
||||
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);
|
||||
BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
||||
@ -309,7 +309,7 @@ namespace tmpl {
|
||||
|
||||
//validity
|
||||
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);
|
||||
|
||||
//function
|
||||
@ -394,7 +394,7 @@ namespace tmpl {
|
||||
// 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);
|
||||
// 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);
|
||||
@ -445,33 +445,6 @@ namespace tmpl {
|
||||
// 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
|
||||
// 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<N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX);
|
||||
|
||||
// //validity
|
||||
// bool _in1_v,_in2_v;
|
||||
// a1of1 _in1_temp,_in2_temp,_out_temp;
|
||||
// ctree<N> vc1(.in=in1.d,.out=in1.v,.supply=supply);
|
||||
// ctree<N> 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
|
||||
// }
|
||||
export
|
||||
defproc arbiter_handshake(a1of1 in1; a1of1 in2; a1of1 out; power supply)
|
||||
{
|
||||
@ -502,6 +475,74 @@ namespace tmpl {
|
||||
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||
}
|
||||
|
||||
export template<pint N>
|
||||
defproc merge (avMx1of2<N> in1; avMx1of2<N> in2; avMx1of2<N> out ; bool? reset_B; power supply) {
|
||||
|
||||
//control
|
||||
bool _in1_a_B,_in2_a_B,_en, _reset_BX,_reset_BXX[2*N];
|
||||
bool _in1_arb,_in2_arb,_out_a_X[2*N+1];
|
||||
A_4C_RB_X4 in1ack_ctl(.c1=_in1_arb,.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=_in2_arb,.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_4P1N1N_X1 en_ctl(.p1 = in1.a,.p2=in2.a,.p3=_out_a_X[N],.p4 = out.v, .n1 = in1.a,.y = _en,.vdd=supply.vdd,.vss=supply.vss);
|
||||
INV_X1 in1ack_ctl_inv(.a=in1.a,.y=_in1_a_B,.vdd=supply.vdd,.vss=supply.vss);
|
||||
INV_X1 in2ack_ctl_inv(.a=in2.a,.y=_in2_a_B,.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<N*2> reset_bufarray(.in=_reset_BX, .out=_reset_BXX);
|
||||
|
||||
//validity
|
||||
a1of1 _in1_temp,_in2_temp,_out_temp;
|
||||
|
||||
bool _in1_arb2function,_in2_arb2function;
|
||||
bool _in1_arb2function_X[2*N],_in2_arb2function_X[2*N];
|
||||
|
||||
vtree<N> vc1(.in=in1.d,.out=in1.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);
|
||||
_in1_temp.r = in1.v;
|
||||
_in2_temp.r = in2.v;
|
||||
_in1_temp.a = _in1_arb;
|
||||
_in1_temp.a = _in2_arb;
|
||||
_out_temp.r = _out_temp.a;
|
||||
AND2_X1 AND_arb1(.a = _in2_a_B,.b = _in1_arb, .y = _in1_arb2function);
|
||||
AND2_X1 AND_arb2(.a = _in1_a_B,.b = _in2_arb, .y = _in2_arb2function);
|
||||
sigbuf<2*N> arb2function1(.in = _in1_arb2function,.out = _in1_arb2function_X);
|
||||
sigbuf<2*N> arb2function2(.in = _in2_arb2function,.out = _in2_arb2function_X);
|
||||
|
||||
//function
|
||||
A_2C2N2N_R_X1 merge_func_t[N];
|
||||
A_2C2N2N_R_X1 merge_func_f[N];
|
||||
sigbuf<N*2+1> buf_out_a(.in = out.a,.out = _out_a_X);
|
||||
buf_out_a.supply=supply;
|
||||
buf_out_a.supply=supply;
|
||||
(i:N:
|
||||
merge_func_t[i].c1 = _en;
|
||||
merge_func_t[i].c2 = _out_a_X[i];
|
||||
merge_func_t[i].n1 = _in1_arb2function_X[i];
|
||||
merge_func_t[i].n2 = in1.d.d[i].t;
|
||||
merge_func_t[i].n3 = _in2_arb2function_X[i];
|
||||
merge_func_t[i].n4 = in2.d.d[i].t;
|
||||
merge_func_t[i].y = out.d.d[i].t;
|
||||
merge_func_t[i].vdd=supply.vdd;
|
||||
merge_func_t[i].vss=supply.vss;
|
||||
merge_func_t[i].pr_B = _reset_BXX[i+N-1];
|
||||
merge_func_t[i].sr_B = _reset_BXX[i+N-1];
|
||||
|
||||
merge_func_f[i].c1 = _en;
|
||||
merge_func_f[i].c2 = _out_a_X[i+N-1];
|
||||
merge_func_f[i].n1 = _in1_arb2function_X[i+N-1];
|
||||
merge_func_f[i].n2 = in1.d.d[i].f;
|
||||
merge_func_f[i].n3 = _in2_arb2function_X[i+N-1];
|
||||
merge_func_f[i].n4 = in2.d.d[i].f;
|
||||
merge_func_f[i].y = out.d.d[i].f;
|
||||
merge_func_f[i].vdd=supply.vdd;
|
||||
merge_func_f[i].vss=supply.vss;
|
||||
merge_func_f[i].pr_B = _reset_BXX[i];
|
||||
merge_func_f[i].sr_B = _reset_BXX[i];
|
||||
)
|
||||
}
|
||||
|
||||
export
|
||||
defproc buffer_t(a1of1 in; a1of1 out; bool? reset_B; power supply)
|
||||
{
|
||||
|
@ -151,7 +151,7 @@ defproc ortree (bool? in[N]; bool! out; power supply)
|
||||
* C-elements
|
||||
*/
|
||||
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;
|
||||
|
||||
@ -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 */
|
||||
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?<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>
|
||||
defproc sigbuf (bool? in; bool! out[N]; power supply)
|
||||
{
|
||||
|
39
test/unit_tests/arbiter/run/prsim.out
Normal file
39
test/unit_tests/arbiter/run/prsim.out
Normal file
@ -0,0 +1,39 @@
|
||||
a._v a.a a.u a.v a._u a.b
|
||||
reset done
|
||||
0 a.a : 0
|
||||
0 a.b : 0
|
||||
1 a._u : 1 [by a.a:=0]
|
||||
7092 a._v : 1 [by a.b:=0]
|
||||
7094 a.v : 0 [by a._v:=1]
|
||||
10468 a.u : 0 [by a._u:=1]
|
||||
|
||||
step 1.1 finished
|
||||
10468 a.a : 1
|
||||
10468 a.b : 1
|
||||
15221 a._u : 0 [by a.a:=1]
|
||||
15335 a.u : 1 [by a._u:=0]
|
||||
|
||||
step 1.2 finished
|
||||
15335 a.a : 0
|
||||
15335 a.b : 0
|
||||
80701 a._u : 1 [by a.a:=0]
|
||||
82427 a.u : 0 [by a._u:=1]
|
||||
|
||||
step 2.1 finished
|
||||
82427 a.a : 1
|
||||
82427 a.b : 1
|
||||
82466 a._u : 0 [by a.a:=1]
|
||||
82957 a.u : 1 [by a._u:=0]
|
||||
|
||||
step 2.2 finished
|
||||
82957 a.a : 0
|
||||
82957 a.b : 0
|
||||
82970 a._u : 1 [by a.a:=0]
|
||||
83010 a.u : 0 [by a._u:=1]
|
||||
|
||||
step 3.1 finished
|
||||
83010 a.b : 1
|
||||
83425 a._v : 0 [by a.b:=1]
|
||||
83445 a.v : 1 [by a._v:=0]
|
||||
|
||||
step 3.2 finished
|
BIN
test/unit_tests/arbiter/run/prsim.pdf
Normal file
BIN
test/unit_tests/arbiter/run/prsim.pdf
Normal file
Binary file not shown.
18
test/unit_tests/arbiter/test.act
Normal file
18
test/unit_tests/arbiter/test.act
Normal file
@ -0,0 +1,18 @@
|
||||
defproc arbiter (bool a, b, u, v)
|
||||
{
|
||||
bool _u, _v;
|
||||
prs {
|
||||
[keeper=0] a & _v -> _u-
|
||||
[keeper=0] ~a | ~_v -> _u+
|
||||
[keeper=0] b & _u -> _v-
|
||||
[keeper=0] ~b | ~_u -> _v+
|
||||
[keeper=0] _u => u-
|
||||
[keeper=0] _v => v-
|
||||
}
|
||||
spec {
|
||||
mk_excllo(_u, _v)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
arbiter a;
|
39
test/unit_tests/arbiter/test.prsim
Normal file
39
test/unit_tests/arbiter/test.prsim
Normal file
@ -0,0 +1,39 @@
|
||||
watchall
|
||||
cycle
|
||||
system "echo 'reset done'"
|
||||
set a.a 0
|
||||
set a.b 0
|
||||
advance 1000000
|
||||
status X
|
||||
mode run
|
||||
system "echo 'step 1.1 finished'"
|
||||
set a.a 1
|
||||
set a.b 1
|
||||
advance 1000000
|
||||
status X
|
||||
mode run
|
||||
system "echo 'step 1.2 finished'"
|
||||
set a.a 0
|
||||
set a.b 0
|
||||
advance 1000000
|
||||
status X
|
||||
mode run
|
||||
system "echo 'step 2.1 finished'"
|
||||
set a.a 1
|
||||
set a.b 1
|
||||
advance 1000000
|
||||
status X
|
||||
mode run
|
||||
system "echo 'step 2.2 finished'"
|
||||
set a.a 0
|
||||
set a.b 0
|
||||
advance 1000000
|
||||
status X
|
||||
mode run
|
||||
system "echo 'step 3.1 finished'"
|
||||
set a.a 0
|
||||
set a.b 1
|
||||
advance 1000000
|
||||
status X
|
||||
mode run
|
||||
system "echo 'step 3.2 finished'"
|
@ -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
|
||||
|
@ -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
|
50
test/unit_tests/merge_t_7/run/prsim.out
Normal file
50
test/unit_tests/merge_t_7/run/prsim.out
Normal file
@ -0,0 +1,50 @@
|
||||
my_merge.my_merge._out_temp.a my_merge.my_merge.buf_out_a.buf6._y my_merge.my_merge._out_a_X[0] my_merge.my_merge.vc1.myctree.tmp[8] my_merge.my_merge.merge_func_f[5].n2 my_merge.my_merge.vc1.myctree.tmp[9] my_merge.my_merge.merge_func_t[4].n2 my_merge.my_merge.validity_arb._y1_arb my_merge.my_merge.vc2.myctree.tmp[7] my_merge.my_merge._en my_merge.my_merge.vc1.myctree.tmp[7] my_merge.my_merge.vc1.OR2_tf[5].y my_merge.my_merge.vc1.OR2_tf[4].y my_merge.my_merge._in1_arb my_merge.my_merge.vc1.OR2_tf[3].y my_merge.my_merge.merge_func_f[4].n2 my_merge.my_merge.AND_arb2._y my_merge.my_merge.merge_func_t[4].n4 my_merge.my_merge.merge_func_f[2].n4 my_merge.my_merge.vc2.myctree.tmp[8] my_merge.my_merge._in1_arb2function_X[0] my_merge.my_merge.vc2.OR2_tf[0].y my_merge.my_merge._in2_arb2function_X[0] my_merge.my_merge.merge_func_f[0].n2 my_merge.my_merge.merge_func_t[0].n4 my_merge.my_merge.vc2.OR2_tf[6]._y my_merge.my_merge.merge_func_f[2].n2 my_merge.in1.v my_merge.my_merge.merge_func_t[1].n4 my_merge.out.v my_merge.my_merge.merge_func_t[1].n2 my_merge.my_merge.merge_func_t[2].n4 my_merge.my_merge.merge_func_t[5].n2 my_merge.my_merge.vc2.OR2_tf[1].y my_merge.my_merge.merge_func_t[3].n4 my_merge.my_merge.merge_func_f[5].n4 my_merge.my_merge.vc2.OR2_tf[6].y my_merge.my_merge.merge_func_f[1].n4 my_merge.my_merge.merge_func_f[3].n4 my_merge.my_merge._in2_arb2function my_merge.my_merge.vc2.OR2_tf[5].y my_merge.my_merge.merge_func_f[4].n4 my_merge.my_merge.merge_func_t[6].n2 my_merge.my_merge._in2_temp.a my_merge.my_merge.merge_func_f[6].n4 my_merge.my_merge.merge_func_f[1].n2 my_merge.my_merge.merge_func_t[6].n4 my_merge.my_merge.vc2.OR2_tf[3].y my_merge.my_merge.merge_func_f[0].n4 my_merge.in2.v my_merge.my_merge.merge_func_t[0].n2 my_merge.my_merge.merge_func_t[3].n2 my_merge.my_merge.merge_func_f[3].n2 my_merge.my_merge.vc1.myctree.C2Els[1]._y my_merge.my_merge.vc1.OR2_tf[2].y my_merge.my_merge.merge_func_f[6].n2 my_merge.my_merge.vc1.OR2_tf[0].y my_merge.my_merge._in1_arb2function my_merge.my_merge.vc1.OR2_tf[4]._y my_merge.my_merge.vc2.OR2_tf[2].y my_merge.my_merge.en_ctl.n2 my_merge.my_merge.validity_arb.arbiter._y1 my_merge.my_merge.merge_func_t[2].n2 my_merge.my_merge.vc1.myctree.C3Els[0]._y my_merge.my_merge.validity_arb._y2_arb my_merge.my_merge.vc1.OR2_tf[3]._y my_merge.my_merge.vc1.OR2_tf[6].y my_merge.my_merge.vc2.OR2_tf[3]._y my_merge.out.a my_merge.my_merge.vc1.myctree.C3Els[1]._y my_merge.my_merge.vc2.myctree.C3Els[0]._y my_merge.my_merge.merge_func_t[5].n4 my_merge.my_merge.vc1.OR2_tf[6]._y my_merge.my_merge.arb2function1.buf4._y my_merge.my_merge.vc2.myctree.tmp[9] my_merge.my_merge.vc1.OR2_tf[1]._y my_merge.my_merge.vc1.OR2_tf[1].y my_merge.my_merge.validity_arb.arbiter._y2 my_merge.my_merge.vc1.OR2_tf[2]._y my_merge.my_merge.AND_arb1._y my_merge.my_merge.vc1.OR2_tf[5]._y my_merge.my_merge.vc2.OR2_tf[4].y my_merge.my_merge.vc1.OR2_tf[0]._y my_merge.my_merge.validity_arb.ack_cell2._y my_merge.my_merge.vc2.OR2_tf[5]._y my_merge.my_merge.vc2.OR2_tf[0]._y my_merge.my_merge.validity_arb.ack_cell1._y my_merge.my_merge.vc2.OR2_tf[4]._y my_merge.my_merge.arb2function2.buf4._y my_merge.my_merge.vc2.myctree.C2Els[1]._y my_merge.my_merge.vc2.OR2_tf[1]._y my_merge.my_merge.vc1.myctree.C2Els[0]._y my_merge.my_merge.vc2.OR2_tf[2]._y my_merge.my_merge.validity_arb.or_cell._y my_merge.my_merge.vc2.myctree.C3Els[1]._y my_merge.my_merge.vc2.myctree.C2Els[0]._y
|
||||
Node `my_fork.in.d.d[0].f' not found
|
||||
Node `my_fork.out1.a' not found
|
||||
Node `my_fork.out1.v' not found
|
||||
Node `my_fork.out2.a' not found
|
||||
Node `my_fork.out2.v' not found
|
||||
System initialized
|
||||
83042 Reset : 0
|
||||
119973 my_merge._reset_B : 1 [by Reset:=0]
|
||||
120028 my_merge.my_merge.reset_buf._y : 0 [by my_merge._reset_B:=1]
|
||||
171681 my_merge.my_merge._reset_BX : 1 [by my_merge.my_merge.reset_buf._y:=0]
|
||||
185530 my_merge.my_merge.in1ack_ctl._y : X [by my_merge.my_merge._reset_BX:=1]
|
||||
196493 my_merge.my_merge.in2ack_ctl._y : X [by my_merge.my_merge._reset_BX:=1]
|
||||
196915 my_merge.in2.a : X [by my_merge.my_merge.in2ack_ctl._y:=X]
|
||||
199873 my_merge.in1.a : X [by my_merge.my_merge.in1ack_ctl._y:=X]
|
||||
199874 my_merge.my_merge._in1_a_B : X [by my_merge.in1.a:=X]
|
||||
201461 my_merge.my_merge.reset_bufarray.buf4._y : 0 [by my_merge.my_merge._reset_BX:=1]
|
||||
201462 my_merge.my_merge._reset_BXX[0] : 1 [by my_merge.my_merge.reset_bufarray.buf4._y:=0]
|
||||
201465 my_merge.my_merge.merge_func_f[3].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
201480 my_merge.my_merge.merge_func_t[4].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
201744 my_merge.my_merge.merge_func_f[5].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202013 my_merge.my_merge.merge_func_f[1].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202230 my_merge.my_merge.merge_func_f[4].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202416 my_merge.my_merge.merge_func_t[0].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202444 my_merge.my_merge.merge_func_t[3].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202533 my_merge.my_merge.merge_func_f[0].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202543 my_merge.my_merge.merge_func_t[1].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
205465 my_merge.my_merge.merge_func_t[6].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
205475 my_merge.my_merge.merge_func_t[5].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
221667 my_merge.my_merge.merge_func_f[6].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
223903 my_merge.my_merge.merge_func_f[2].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
245629 my_merge.my_merge._in2_a_B : X [by my_merge.in2.a:=X]
|
||||
255932 my_merge.my_merge.merge_func_t[2].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
System reset completed
|
||||
my_merge.my_merge.merge_func_f[0].y my_merge.my_merge._out_temp.a my_merge.my_merge.buf_out_a.buf6._y my_merge.my_merge._out_a_X[0] my_merge.my_merge._in2_a_B my_merge.my_merge.vc1.myctree.tmp[8] my_merge.my_merge.merge_func_f[5].n2 my_merge.my_merge.vc1.myctree.tmp[9] my_merge.my_merge.merge_func_t[4].n2 my_merge.my_merge.validity_arb._y1_arb my_merge.my_merge.vc2.myctree.tmp[7] my_merge.my_merge._en my_merge.my_merge.vc1.myctree.tmp[7] my_merge.in1.a my_merge.my_merge.vc1.OR2_tf[5].y my_merge.my_merge.merge_func_t[3].y my_merge.my_merge.vc1.OR2_tf[4].y my_merge.my_merge._in1_arb my_merge.my_merge.vc1.OR2_tf[3].y my_merge.my_merge.merge_func_t[5].y my_merge.my_merge.merge_func_f[4].n2 my_merge.my_merge.AND_arb2._y my_merge.my_merge.merge_func_t[4].n4 my_merge.my_merge.merge_func_f[2].n4 my_merge.my_merge.vc2.myctree.tmp[8] my_merge.my_merge._in1_arb2function_X[0] my_merge.my_merge.vc2.OR2_tf[0].y my_merge.my_merge._in2_arb2function_X[0] my_merge.my_merge.merge_func_f[0].n2 my_merge.my_merge.merge_func_t[0].n4 my_merge.my_merge.vc2.OR2_tf[6]._y my_merge.my_merge.merge_func_f[5].y my_merge.my_merge.merge_func_f[2].n2 my_merge.in1.v my_merge.my_merge.merge_func_t[1].n4 my_merge.out.v my_merge.my_merge.merge_func_t[1].n2 my_merge.my_merge.merge_func_t[2].n4 my_merge.my_merge.merge_func_t[5].n2 my_merge.my_merge.vc2.OR2_tf[1].y my_merge.my_merge.merge_func_f[1].y my_merge.my_merge.merge_func_t[3].n4 my_merge.my_merge.merge_func_f[4].y my_merge.my_merge._in1_a_B my_merge.my_merge.merge_func_t[0].y my_merge.my_merge.merge_func_t[1].y my_merge.my_merge.merge_func_f[5].n4 my_merge.my_merge.vc2.OR2_tf[6].y my_merge.my_merge.merge_func_f[1].n4 my_merge.my_merge.merge_func_f[3].n4 my_merge.my_merge._in2_arb2function my_merge.my_merge.merge_func_t[4].y my_merge.my_merge.vc2.OR2_tf[5].y my_merge.my_merge.merge_func_f[6].y my_merge.my_merge.merge_func_f[4].n4 my_merge.my_merge.merge_func_t[6].n2 my_merge.my_merge._in2_temp.a my_merge.my_merge.merge_func_f[6].n4 my_merge.my_merge.merge_func_f[3].y my_merge.my_merge.merge_func_f[1].n2 my_merge.my_merge.merge_func_t[6].n4 my_merge.my_merge.vc2.OR2_tf[3].y my_merge.my_merge.merge_func_f[0].n4 my_merge.in2.v my_merge.my_merge.merge_func_t[0].n2 my_merge.my_merge.merge_func_t[3].n2 my_merge.my_merge.merge_func_f[3].n2 my_merge.my_merge.vc1.myctree.C2Els[1]._y my_merge.my_merge.vc1.OR2_tf[2].y my_merge.my_merge.merge_func_f[6].n2 my_merge.my_merge.vc1.OR2_tf[0].y my_merge.my_merge._in1_arb2function my_merge.my_merge.vc1.OR2_tf[4]._y my_merge.my_merge.vc2.OR2_tf[2].y my_merge.my_merge.merge_func_t[6].y my_merge.my_merge.en_ctl.n2 my_merge.my_merge.merge_func_f[2].y my_merge.my_merge.validity_arb.arbiter._y1 my_merge.in2.a my_merge.my_merge.merge_func_t[2].n2 my_merge.my_merge.in2ack_ctl._y my_merge.my_merge.vc1.myctree.C3Els[0]._y my_merge.my_merge.validity_arb._y2_arb my_merge.my_merge.vc1.OR2_tf[3]._y my_merge.my_merge.vc1.OR2_tf[6].y my_merge.my_merge.in1ack_ctl._y my_merge.my_merge.vc2.OR2_tf[3]._y my_merge.out.a my_merge.my_merge.vc1.myctree.C3Els[1]._y my_merge.my_merge.vc2.myctree.C3Els[0]._y my_merge.my_merge.merge_func_t[5].n4 my_merge.my_merge.vc1.OR2_tf[6]._y my_merge.my_merge.arb2function1.buf4._y my_merge.my_merge.vc2.myctree.tmp[9] my_merge.my_merge.vc1.OR2_tf[1]._y my_merge.my_merge.merge_func_t[2].y my_merge.my_merge.vc1.OR2_tf[1].y my_merge.my_merge.validity_arb.arbiter._y2 my_merge.my_merge.vc1.OR2_tf[2]._y my_merge.my_merge.AND_arb1._y my_merge.my_merge.vc1.OR2_tf[5]._y my_merge.my_merge.vc2.OR2_tf[4].y my_merge.my_merge.vc1.OR2_tf[0]._y my_merge.my_merge.validity_arb.ack_cell2._y my_merge.my_merge.vc2.OR2_tf[5]._y my_merge.my_merge.vc2.OR2_tf[0]._y my_merge.my_merge.validity_arb.ack_cell1._y my_merge.my_merge.vc2.OR2_tf[4]._y my_merge.my_merge.arb2function2.buf4._y my_merge.my_merge.vc2.myctree.C2Els[1]._y my_merge.my_merge.vc2.OR2_tf[1]._y my_merge.my_merge.vc1.myctree.C2Els[0]._y my_merge.my_merge.vc2.OR2_tf[2]._y my_merge.my_merge.validity_arb.or_cell._y my_merge.my_merge.vc2.myctree.C3Els[1]._y my_merge.my_merge.vc2.myctree.C2Els[0]._y
|
||||
Node `my_fork.out1.d.d[0].f' not found
|
||||
Node `my_fork.out2.d.d[0].f' not found
|
||||
Output neutral checked
|
||||
Node `my_fork.in.d.d[0].f' not found
|
||||
Node `my_fork.in.v' not found
|
||||
Node `my_fork.in.a' not found
|
||||
Node `my_fork.out1.d.d[0].f' not found
|
||||
Node `my_fork.out2.d.d[0].f' not found
|
||||
Node `my_fork.out1.v' not found
|
||||
Node `my_fork.out2.v' not found
|
||||
Node `my_fork.in.a' not found
|
||||
Node `my_fork.in.d.d[0].f' not found
|
||||
Finished
|
||||
Node `my_fork.out1.a' not found
|
||||
Node `my_fork.out1.a' not found
|
1335
test/unit_tests/merge_t_7/run/test.prs
Normal file
1335
test/unit_tests/merge_t_7/run/test.prs
Normal file
File diff suppressed because it is too large
Load Diff
49
test/unit_tests/merge_t_7/test.act
Normal file
49
test/unit_tests/merge_t_7/test.act
Normal file
@ -0,0 +1,49 @@
|
||||
/*************************************************************************
|
||||
*
|
||||
* 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/primitives.act";
|
||||
import globals;
|
||||
|
||||
open tmpl::dataflow_neuro;
|
||||
|
||||
|
||||
defproc merge_7 (avMx1of2<7> in1; avMx1of2<7> in2; avMx1of2<7> out; avMx1of2<1> cond){
|
||||
|
||||
merge<7> my_merge(.in1=in1, .in2=in2,.out = out);
|
||||
//Low active Reset
|
||||
bool _reset_B;
|
||||
prs {
|
||||
Reset => _reset_B-
|
||||
}
|
||||
my_merge.supply.vss = GND;
|
||||
my_merge.supply.vdd = Vdd;
|
||||
my_merge.reset_B = _reset_B;
|
||||
|
||||
}
|
||||
|
||||
merge_7 my_merge;
|
35
test/unit_tests/merge_t_7/test.prsim
Normal file
35
test/unit_tests/merge_t_7/test.prsim
Normal file
@ -0,0 +1,35 @@
|
||||
watchall
|
||||
set-qdi-channel-neutral "my_fork.in" 15
|
||||
set my_fork.out1.a 0
|
||||
set my_fork.out1.v 0
|
||||
set my_fork.out2.a 0
|
||||
set my_fork.out2.v 0
|
||||
cycle
|
||||
system "echo 'System initialized'"
|
||||
|
||||
set Reset 0
|
||||
cycle
|
||||
system "echo 'System reset completed'"
|
||||
status X
|
||||
mode run
|
||||
|
||||
assert-qdi-channel-neutral "my_fork.out1" 15
|
||||
assert-qdi-channel-neutral "my_fork.out2" 15
|
||||
cycle
|
||||
system "echo 'Output neutral checked'"
|
||||
|
||||
set-qdi-channel-valid "my_fork.in" 15 5
|
||||
cycle
|
||||
assert my_fork.in.v 1
|
||||
assert my_fork.in.a 0
|
||||
assert-qdi-channel-valid "my_fork.out1" 15 5
|
||||
assert-qdi-channel-valid "my_fork.out2" 15 5
|
||||
set my_fork.out1.v 1
|
||||
set my_fork.out2.v 1
|
||||
cycle
|
||||
assert my_fork.in.a 1
|
||||
set-qdi-channel-neutral "my_fork.in" 15
|
||||
cycle
|
||||
set my_fork.out1.a 1
|
||||
set my_fork.out1.a 1
|
||||
system "echo 'Finished'"
|
6
test/unit_tests/vtree_15/run/prsim.out
Normal file
6
test/unit_tests/vtree_15/run/prsim.out
Normal 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.
|
502
test/unit_tests/vtree_15/run/test.prs
Normal file
502
test/unit_tests/vtree_15/run/test.prs
Normal 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"
|
41
test/unit_tests/vtree_15/test.act
Normal file
41
test/unit_tests/vtree_15/test.act
Normal 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;
|
108
test/unit_tests/vtree_15/test.prsim
Normal file
108
test/unit_tests/vtree_15/test.prsim
Normal 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
|
Loading…
Reference in New Issue
Block a user