differentiated between ctree and vtree, all primitives updated
This commit is contained in:
parent
92b0b36325
commit
8b40e70058
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -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.
|
|
@ -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"
|
|
@ -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;
|
|
@ -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