From ba5e695be5dbd1d50bb651fc0e35ff745e766064 Mon Sep 17 00:00:00 2001 From: Hugh Date: Tue, 1 Mar 2022 17:56:30 +0100 Subject: [PATCH] finished and simmed demuxtd --- dataflow_neuro/primitives.act | 149 ++++--- test/unit_tests/demux_td_2/run/prsim.out | 197 ++++++++ test/unit_tests/demux_td_2/run/test.prs | 420 ++++++++++++++++++ test/unit_tests/demux_td_2/test.act | 50 +++ test/unit_tests/demux_td_2/test.prsim | 90 ++++ test/unit_tests/demux_td_2_SIGN/run/prsim.out | 181 ++++++++ test/unit_tests/demux_td_2_SIGN/run/test.prs | 408 +++++++++++++++++ test/unit_tests/demux_td_2_SIGN/test.act | 50 +++ test/unit_tests/demux_td_2_SIGN/test.prsim | 84 ++++ 9 files changed, 1559 insertions(+), 70 deletions(-) create mode 100644 test/unit_tests/demux_td_2/run/prsim.out create mode 100644 test/unit_tests/demux_td_2/run/test.prs create mode 100644 test/unit_tests/demux_td_2/test.act create mode 100644 test/unit_tests/demux_td_2/test.prsim create mode 100644 test/unit_tests/demux_td_2_SIGN/run/prsim.out create mode 100644 test/unit_tests/demux_td_2_SIGN/run/test.prs create mode 100644 test/unit_tests/demux_td_2_SIGN/test.act create mode 100644 test/unit_tests/demux_td_2_SIGN/test.prsim diff --git a/dataflow_neuro/primitives.act b/dataflow_neuro/primitives.act index 77adc2c..9cf7579 100644 --- a/dataflow_neuro/primitives.act +++ b/dataflow_neuro/primitives.act @@ -216,7 +216,7 @@ namespace tmpl { 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_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); @@ -372,81 +372,90 @@ namespace tmpl { } - // export template - // defproc demux_td (avMx1of2 in; avMx1of2 out1; avMx1of2<1> token; bool? reset_B; avMx1of2<1> cond; power supply) { - // //control - // bool _en, _reset_BX,_reset_BXX[2*N], _out_v, _in_c_v_; + export template + defproc demux_td (avMx1of2 in; avMx1of2 out1; a1of1 token; bool? reset_B; avMx1of2<1> cond; power supply) { + //control + bool _en, _reset_BX,_reset_BXX[N], _out_v, _in_c_v_, _reset_BXt; - // OR2_X1 out_or(.a=out1.v, .b=out2.v, .y=_out_v,.vdd=supply.vdd,.vss=supply.vss); - // A_3C_RB_X4 inack_ctl(.c1=_en,.c2=_in_c_v_,.c3= _out_v,.y=in.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); - // A_1C1P_X1 en_ctl(.c1=in.a,.p1=_out_v,.y=_en,.vdd=supply.vdd,.vss=supply.vss); - // BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); - // sigbuf<2*N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX); - // //validity - // bool _in_v, _c_f_buf[N], _c_t_buf[N], _c_v; + OR2_X1 out_or(.a=out1.v, .b=token.r, .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_token(.a=_reset_BX, .y=_reset_BXt,.vdd=supply.vdd,.vss=supply.vss); + sigbuf reset_bufarray(.in=_reset_BX, .out=_reset_BXX); + //validity + bool _in_v, _c_tk_buf, _c_d_buf[N], _c_v, cond_inv_t, cond_inv_f; - // sigbuf c_buf_t(.in=cond.d.d[0].t, .out=_c_t_buf); - // sigbuf c_buf_f(.in=cond.d.d[0].f, .out=_c_f_buf); + 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); - - // //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); - // ] - - // vtree vc(.in=in.d,.out=_in_v,.supply=supply); - - // A_2C_B_X1 c_el(.c1=_c_v, .c2=_in_v, .y=_in_c_v_,.vdd=supply.vdd,.vss=supply.vss); - // BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss); - - - // //function - // //func buffer out1 - // bool _out1_a_BX_t[N],_out1_a_BX_f[N],_out1_a_B,_en1_X_t[N],_en1_X_f[N]; - // A_2C2N_RB_X4 out1_f_buf_func[N]; - // A_2C2N_RB_X4 out1_t_buf_func[N]; - // sigbuf out1_en_buf_t(.in=_en, .out=_en1_X_t, .supply=supply); - // sigbuf out1_en_buf_f(.in=_en, .out=_en1_X_f, .supply=supply); - // INV_X1 out1_a_inv(.a=out1.a,.y=_out1_a_B); - // sigbuf out1_a_B_buf_f(.in=_out1_a_B,.out=_out1_a_BX_t); - // sigbuf out1_a_B_buf_t(.in=_out1_a_B,.out=_out1_a_BX_f); - // (i:N: - // out1_f_buf_func[i].y=out1.d.d[i].f; - // out1_t_buf_func[i].y=out1.d.d[i].t; - // out1_f_buf_func[i].c1=_en1_X_f[i]; - // out1_t_buf_func[i].c1=_en1_X_t[i]; - // out1_f_buf_func[i].c2=_out1_a_BX_f[i]; - // out1_t_buf_func[i].c2=_out1_a_BX_t[i]; - // out1_f_buf_func[i].n1=in.d.d[i].f; - // out1_t_buf_func[i].n1=in.d.d[i].t; - // out1_f_buf_func[i].vdd=supply.vdd; - // out1_t_buf_func[i].vdd=supply.vdd; - // out1_f_buf_func[i].vss=supply.vss; - // out1_t_buf_func[i].vss=supply.vss; - // out1_t_buf_func[i].pr_B = _reset_BXX[i]; - // out1_t_buf_func[i].sr_B = _reset_BXX[i]; - // out1_f_buf_func[i].pr_B = _reset_BXX[i]; - // out1_f_buf_func[i].sr_B = _reset_BXX[i]; - // out1_f_buf_func[i].n2=_c_t_buf[i]; - // out1_t_buf_func[i].n2=_c_t_buf[i]; - // ) + //orientation of condition + [ CONDITION_SIGN -> + BUF_X1 c_buf_tk(.a=cond.d.d[0].t, .y=_c_tk_buf); + sigbuf c_buf_d(.in=cond.d.d[0].f, .out=_c_d_buf); + [] else -> + INV_X1 invout_t(.a = cond.d.d[0].t,.y=cond_inv_t,.vdd = supply.vdd,.vss=supply.vss); + INV_X1 invout_f(.a = cond.d.d[0].f,.y=cond_inv_f,.vdd = supply.vdd,.vss=supply.vss); + BUF_X1 c_buf_tk_inv(.a=cond_inv_t, .y=_c_tk_buf); + sigbuf c_buf_d_inv(.in=cond_inv_f, .out=_c_d_buf); + ] - // //token out - // A_2C2N_RB_X4 token_buf; + vtree vc(.in=in.d,.out=_in_v,.supply=supply); + + A_2C_B_X1 c_el(.c1=_c_v, .c2=_in_v, .y=_in_c_v_,.vdd=supply.vdd,.vss=supply.vss); + BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss); + + + //function + //func buffer out1 + bool _out1_a_BX_t[N],_out1_a_BX_f[N],_out1_a_B,_en1_X_t[N],_en1_X_f[N]; + A_2C2N_RB_X4 out1_f_buf_func[N]; + A_2C2N_RB_X4 out1_t_buf_func[N]; + sigbuf out1_en_buf_t(.in=_en, .out=_en1_X_t, .supply=supply); + sigbuf out1_en_buf_f(.in=_en, .out=_en1_X_f, .supply=supply); + INV_X1 out1_a_inv(.a=out1.a,.y=_out1_a_B); + sigbuf out1_a_B_buf_f(.in=_out1_a_B,.out=_out1_a_BX_t); + sigbuf out1_a_B_buf_t(.in=_out1_a_B,.out=_out1_a_BX_f); + (i:N: + out1_f_buf_func[i].y=out1.d.d[i].f; + out1_t_buf_func[i].y=out1.d.d[i].t; + out1_f_buf_func[i].c1=_en1_X_f[i]; + out1_t_buf_func[i].c1=_en1_X_t[i]; + out1_f_buf_func[i].c2=_out1_a_BX_f[i]; + out1_t_buf_func[i].c2=_out1_a_BX_t[i]; + out1_f_buf_func[i].n1=in.d.d[i].f; + out1_t_buf_func[i].n1=in.d.d[i].t; + out1_f_buf_func[i].vdd=supply.vdd; + out1_t_buf_func[i].vdd=supply.vdd; + out1_f_buf_func[i].vss=supply.vss; + out1_t_buf_func[i].vss=supply.vss; + out1_t_buf_func[i].pr_B = _reset_BXX[i]; + out1_t_buf_func[i].sr_B = _reset_BXX[i]; + out1_f_buf_func[i].pr_B = _reset_BXX[i]; + out1_f_buf_func[i].sr_B = _reset_BXX[i]; + out1_f_buf_func[i].n2=_c_d_buf[i]; + out1_t_buf_func[i].n2=_c_d_buf[i]; + ) + + //token out + + bool token_a_out; + A_2C2N_RB_X4 token_buf; + INV_X1 outt_a_inv(.a=token.a,.y=token_a_out); - // 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 ; - // } + token_buf.y = token.r; + token_buf.c1 = _en; + token_buf.c2 = token_a_out; + token_buf.n1 = _c_tk_buf; + token_buf.n2 = _in_v; + + token_buf.vdd = supply.vdd; + token_buf.vss = supply.vss; + token_buf.pr_B = _reset_BXt; + token_buf.sr_B = _reset_BXt; + } + + export defproc arbiter_handshake(a1of1 in1; a1of1 in2; a1of1 out; power supply) { diff --git a/test/unit_tests/demux_td_2/run/prsim.out b/test/unit_tests/demux_td_2/run/prsim.out new file mode 100644 index 0000000..bb33f75 --- /dev/null +++ b/test/unit_tests/demux_td_2/run/prsim.out @@ -0,0 +1,197 @@ +my_demux.my_demux.out1_f_buf_func[1].n1 my_demux.my_demux.out1_t_buf_func[1].n1 my_demux.my_demux._out1_a_BX_f[0] my_demux.my_demux.out1_en_buf_t.buf1._y my_demux.my_demux.token_a_out my_demux.my_demux._out_v my_demux.my_demux._in_v my_demux.my_demux._c_d_buf[0] my_demux.my_demux._en my_demux.my_demux.vc.OR2_tf[1].y my_demux.my_demux.cond_inv_f my_demux.my_demux._out1_a_B my_demux.my_demux.invout_f.a my_demux.my_demux._out1_a_BX_t[0] my_demux.in.v my_demux.my_demux._c_v my_demux.my_demux.invout_t.a my_demux.my_demux.out1_f_buf_func[0].n1 my_demux.out1.v my_demux.my_demux.out1_t_buf_func[0].n1 my_demux.my_demux.cond_inv_t my_demux.out1.a my_demux.my_demux._en1_X_f[0] my_demux.my_demux.out_or._y my_demux.my_demux._en1_X_t[0] my_demux.my_demux.vc.OR2_tf[0]._y my_demux.my_demux.in_v_buf._y my_demux.my_demux.vc.OR2_tf[0].y my_demux.token.a my_demux.my_demux.vc.OR2_tf[1]._y my_demux.my_demux._in_c_v_ my_demux.my_demux.c_buf_tk_inv._y my_demux.my_demux.c_f_c_t_or._y my_demux.my_demux.out1_en_buf_f.buf1._y my_demux.my_demux.c_buf_d_inv.buf1._y my_demux.my_demux._c_tk_buf my_demux.my_demux.vc.myctree.C2Els[0]._y my_demux.my_demux.out1_a_B_buf_f.buf1._y my_demux.my_demux.c_el._y my_demux.my_demux.out1_a_B_buf_t.buf1._y + 83058 my_demux.my_demux.out1_f_buf_func[0].n1 : 0 + 83058 my_demux.my_demux.invout_f.a : 0 + 83058 my_demux.my_demux.invout_t.a : 0 + 83058 my_demux.my_demux.out1_f_buf_func[1].n1 : 0 + 83058 my_demux.token.a : 0 + 83058 my_demux.out1.v : 0 + 83058 my_demux.my_demux.out1_t_buf_func[0].n1 : 0 + 83058 my_demux.out1.a : 0 + 83058 my_demux.my_demux.out1_t_buf_func[1].n1 : 0 + 83062 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.invout_t.a:=0] + 83073 my_demux.my_demux.out_or._y : 1 [by my_demux.out1.v:=0] + 83113 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0] + 92187 my_demux.my_demux.token_a_out : 1 [by my_demux.token.a:=0] + 96782 my_demux.my_demux.cond_inv_t : 1 [by my_demux.my_demux.invout_t.a:=0] + 96962 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1] + 112853 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1] + 119989 my_demux.my_demux._out1_a_B : 1 [by my_demux.out1.a:=0] + 120411 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1] + 120412 my_demux.my_demux._out1_a_BX_t[0] : 1 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=0] + 121594 my_demux.my_demux.c_buf_tk_inv._y : 0 [by my_demux.my_demux.cond_inv_t:=1] + 121595 my_demux.my_demux._c_tk_buf : 1 [by my_demux.my_demux.c_buf_tk_inv._y:=0] + 126306 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0] + 127156 my_demux.my_demux.cond_inv_f : 1 [by my_demux.my_demux.invout_f.a:=0] + 127196 my_demux.my_demux._en : 1 [by my_demux.my_demux._out_v:=0] + 127199 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1] + 127438 my_demux.my_demux.c_buf_d_inv.buf1._y : 0 [by my_demux.my_demux.cond_inv_f:=1] + 127964 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1] + 127989 my_demux.my_demux._c_d_buf[0] : 1 [by my_demux.my_demux.c_buf_d_inv.buf1._y:=0] + 129035 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0] + 134715 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1] + 146511 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1] + 147465 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[0].y:=0] + 148546 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1] + 149528 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._in_v:=0] + 149546 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1] + 149640 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0] + 168703 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1] + 172716 my_demux.my_demux._out1_a_BX_f[0] : 1 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=0] + 203016 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0] + 207019 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1] +System initialized + 207019 Reset : 0 + 251920 my_demux._reset_B : 1 [by Reset:=0] + 273504 my_demux.my_demux.reset_buf._y : 0 [by my_demux._reset_B:=1] + 278264 my_demux.my_demux._reset_BX : 1 [by my_demux.my_demux.reset_buf._y:=0] + 278467 my_demux.my_demux.reset_buf_token._y : 0 [by my_demux.my_demux._reset_BX:=1] + 278766 my_demux.my_demux.reset_bufarray.buf1._y : 0 [by my_demux.my_demux._reset_BX:=1] + 278905 my_demux.my_demux._reset_BXX[0] : 1 [by my_demux.my_demux.reset_bufarray.buf1._y:=0] + 280321 my_demux.my_demux._reset_BXt : 1 [by my_demux.my_demux.reset_buf_token._y:=0] +System reset completed + +Output neutral checked + 280321 my_demux.my_demux.invout_t.a : 1 + 280321 my_demux.my_demux.out1_t_buf_func[1].n1 : 1 + 280321 my_demux.my_demux.out1_t_buf_func[0].n1 : 1 + 280332 my_demux.my_demux.vc.OR2_tf[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1] + 280333 my_demux.my_demux.vc.OR2_tf[1].y : 1 [by my_demux.my_demux.vc.OR2_tf[1]._y:=0] + 280336 my_demux.my_demux.out1_t_buf_func[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1] + 280373 my_demux.my_demux.out1_t_buf_func[0].y : 1 [by my_demux.my_demux.out1_t_buf_func[0]._y:=0] + 280390 my_demux.my_demux.c_f_c_t_or._y : 0 [by my_demux.my_demux.invout_t.a:=1] + 280525 my_demux.my_demux.vc.OR2_tf[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1] + 280637 my_demux.my_demux.vc.OR2_tf[0].y : 1 [by my_demux.my_demux.vc.OR2_tf[0]._y:=0] + 281129 my_demux.my_demux._c_v : 1 [by my_demux.my_demux.c_f_c_t_or._y:=0] + 316667 my_demux.my_demux.cond_inv_t : 0 [by my_demux.my_demux.invout_t.a:=1] + 316707 my_demux.my_demux.c_buf_tk_inv._y : 1 [by my_demux.my_demux.cond_inv_t:=0] + 316964 my_demux.my_demux._c_tk_buf : 0 [by my_demux.my_demux.c_buf_tk_inv._y:=1] + 328149 my_demux.my_demux.vc.myctree.C2Els[0]._y : 0 [by my_demux.my_demux.vc.OR2_tf[0].y:=1] + 328236 my_demux.my_demux._in_v : 1 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=0] + 328237 my_demux.my_demux.c_el._y : 0 [by my_demux.my_demux._in_v:=1] + 328530 my_demux.my_demux.in_v_buf._y : 0 [by my_demux.my_demux._in_v:=1] + 330043 my_demux.my_demux._in_c_v_ : 1 [by my_demux.my_demux.c_el._y:=0] + 330537 my_demux.in.v : 1 [by my_demux.my_demux.in_v_buf._y:=0] + 332107 my_demux.my_demux.out1_t_buf_func[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1] + 333316 my_demux.my_demux.out1_t_buf_func[1].y : 1 [by my_demux.my_demux.out1_t_buf_func[1]._y:=0] + 333316 my_demux.out1.v : 1 + 333906 my_demux.my_demux.out_or._y : 0 [by my_demux.out1.v:=1] + 334084 my_demux.my_demux._out_v : 1 [by my_demux.my_demux.out_or._y:=0] + 334887 my_demux.my_demux.inack_ctl._y : 0 [by my_demux.my_demux._out_v:=1] + 335051 my_demux.in.a : 1 [by my_demux.my_demux.inack_ctl._y:=0] + 337246 my_demux.my_demux._en : 0 [by my_demux.in.a:=1] + 337268 my_demux.my_demux.out1_en_buf_t.buf1._y : 1 [by my_demux.my_demux._en:=0] + 338093 my_demux.my_demux.out1_en_buf_f.buf1._y : 1 [by my_demux.my_demux._en:=0] + 338226 my_demux.my_demux._en1_X_f[0] : 0 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=1] + 367396 my_demux.my_demux._en1_X_t[0] : 0 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=1] + 367396 my_demux.my_demux.out1_t_buf_func[0].n1 : 0 + 367396 my_demux.my_demux.out1_t_buf_func[1].n1 : 0 + 367755 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0] + 381871 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1] + 383058 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0] + 383279 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1] + 383286 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[0].y:=0] + 383316 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1] + 390029 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0] + 447490 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1] + 447490 my_demux.out1.a : 1 + 447581 my_demux.my_demux._out1_a_B : 0 [by my_demux.out1.a:=1] + 447588 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 1 [by my_demux.my_demux._out1_a_B:=0] + 449770 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 1 [by my_demux.my_demux._out1_a_B:=0] + 449876 my_demux.my_demux._out1_a_BX_t[0] : 0 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=1] + 449954 my_demux.my_demux.out1_t_buf_func[0]._y : 1 [by my_demux.my_demux._out1_a_BX_t[0]:=0] + 450151 my_demux.my_demux.out1_t_buf_func[1]._y : 1 [by my_demux.my_demux._out1_a_BX_t[0]:=0] + 450375 my_demux.my_demux._out1_a_BX_f[0] : 0 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=1] + 450606 my_demux.my_demux.out1_t_buf_func[1].y : 0 [by my_demux.my_demux.out1_t_buf_func[1]._y:=1] + 468950 my_demux.my_demux.out1_t_buf_func[0].y : 0 [by my_demux.my_demux.out1_t_buf_func[0]._y:=1] +First Cond Checked + 468950 my_demux.my_demux.invout_t.a : 0 + 468950 my_demux.out1.v : 0 + 468950 my_demux.out1.a : 0 + 468962 my_demux.my_demux.cond_inv_t : 1 [by my_demux.my_demux.invout_t.a:=0] + 468962 my_demux.my_demux.out_or._y : 1 [by my_demux.out1.v:=0] + 469354 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.invout_t.a:=0] + 471861 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1] + 473238 my_demux.my_demux.c_buf_tk_inv._y : 0 [by my_demux.my_demux.cond_inv_t:=1] + 473240 my_demux.my_demux._c_tk_buf : 1 [by my_demux.my_demux.c_buf_tk_inv._y:=0] + 473649 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1] + 474866 my_demux.my_demux._out1_a_B : 1 [by my_demux.out1.a:=0] + 476115 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1] + 476281 my_demux.my_demux._out1_a_BX_t[0] : 1 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=0] + 478184 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._c_v:=0] + 478259 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1] + 478365 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1] + 478503 my_demux.my_demux._out1_a_BX_f[0] : 1 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=0] + 478604 my_demux.my_demux.inack_ctl._y : 1 [by my_demux.my_demux._in_c_v_:=0] + 483867 my_demux.in.a : 0 [by my_demux.my_demux.inack_ctl._y:=1] + 483869 my_demux.my_demux._en : 1 [by my_demux.in.a:=0] + 483870 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1] + 484418 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0] + 527786 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1] + 527797 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0] +System initialized + 527797 my_demux.my_demux.invout_f.a : 1 + 527797 my_demux.my_demux.out1_t_buf_func[1].n1 : 1 + 527797 my_demux.my_demux.out1_t_buf_func[0].n1 : 1 + 527813 my_demux.my_demux.out1_t_buf_func[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1] + 527864 my_demux.my_demux.c_f_c_t_or._y : 0 [by my_demux.my_demux.invout_f.a:=1] + 528167 my_demux.my_demux.cond_inv_f : 0 [by my_demux.my_demux.invout_f.a:=1] + 528325 my_demux.my_demux.out1_t_buf_func[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1] + 530248 my_demux.my_demux.out1_t_buf_func[1].y : 1 [by my_demux.my_demux.out1_t_buf_func[1]._y:=0] + 530438 my_demux.my_demux.vc.OR2_tf[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1] + 530440 my_demux.my_demux.vc.OR2_tf[1].y : 1 [by my_demux.my_demux.vc.OR2_tf[1]._y:=0] + 532359 my_demux.my_demux.vc.OR2_tf[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1] + 541366 my_demux.my_demux.out1_t_buf_func[0].y : 1 [by my_demux.my_demux.out1_t_buf_func[0]._y:=0] + 552092 my_demux.my_demux.c_buf_d_inv.buf1._y : 1 [by my_demux.my_demux.cond_inv_f:=0] + 552095 my_demux.my_demux._c_d_buf[0] : 0 [by my_demux.my_demux.c_buf_d_inv.buf1._y:=1] + 554744 my_demux.my_demux._c_v : 1 [by my_demux.my_demux.c_f_c_t_or._y:=0] + 593317 my_demux.my_demux.vc.OR2_tf[0].y : 1 [by my_demux.my_demux.vc.OR2_tf[0]._y:=0] + 593346 my_demux.my_demux.vc.myctree.C2Els[0]._y : 0 [by my_demux.my_demux.vc.OR2_tf[0].y:=1] + 593663 my_demux.my_demux._in_v : 1 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=0] + 593707 my_demux.my_demux.c_el._y : 0 [by my_demux.my_demux._in_v:=1] + 593816 my_demux.my_demux.in_v_buf._y : 0 [by my_demux.my_demux._in_v:=1] + 595264 my_demux.my_demux.token_buf._y : 0 [by my_demux.my_demux._in_v:=1] + 595265 my_demux.token.r : 1 [by my_demux.my_demux.token_buf._y:=0] + 595482 my_demux.my_demux.out_or._y : 0 [by my_demux.token.r:=1] + 595504 my_demux.my_demux._out_v : 1 [by my_demux.my_demux.out_or._y:=0] + 596468 my_demux.my_demux._in_c_v_ : 1 [by my_demux.my_demux.c_el._y:=0] + 596469 my_demux.my_demux.inack_ctl._y : 0 [by my_demux.my_demux._in_c_v_:=1] + 598050 my_demux.in.a : 1 [by my_demux.my_demux.inack_ctl._y:=0] + 607395 my_demux.my_demux._en : 0 [by my_demux.in.a:=1] + 607499 my_demux.in.v : 1 [by my_demux.my_demux.in_v_buf._y:=0] + 607554 my_demux.my_demux.out1_en_buf_t.buf1._y : 1 [by my_demux.my_demux._en:=0] + 608841 my_demux.my_demux._en1_X_t[0] : 0 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=1] + 627071 my_demux.my_demux.out1_en_buf_f.buf1._y : 1 [by my_demux.my_demux._en:=0] + 629303 my_demux.my_demux._en1_X_f[0] : 0 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=1] + 629303 my_demux.token.a : 1 + 629448 my_demux.my_demux.token_a_out : 0 [by my_demux.token.a:=1] + 632280 my_demux.my_demux.token_buf._y : 1 [by my_demux.my_demux.token_a_out:=0] + 638634 my_demux.token.r : 0 [by my_demux.my_demux.token_buf._y:=1] + 638635 my_demux.my_demux.out_or._y : 1 [by my_demux.token.r:=0] + 677919 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1] + 677919 my_demux.token.a : 0 + 677919 my_demux.my_demux.out1_t_buf_func[1].n1 : 0 + 677919 my_demux.my_demux.out1_t_buf_func[0].n1 : 0 + 677933 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0] + 677940 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1] + 678081 my_demux.my_demux.token_a_out : 1 [by my_demux.token.a:=0] + 685288 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0] + 685448 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1] + 707005 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[1].y:=0] + 707006 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1] + 707007 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0] + 707008 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1] + 707008 my_demux.my_demux.invout_f.a : 0 + 707195 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.invout_f.a:=0] + 707196 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1] + 709251 my_demux.my_demux.cond_inv_f : 1 [by my_demux.my_demux.invout_f.a:=0] + 711378 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._c_v:=0] + 711379 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1] + 712232 my_demux.my_demux.inack_ctl._y : 1 [by my_demux.my_demux._in_c_v_:=0] + 712237 my_demux.in.a : 0 [by my_demux.my_demux.inack_ctl._y:=1] + 713128 my_demux.my_demux._en : 1 [by my_demux.in.a:=0] + 713129 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1] + 713145 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1] + 715702 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0] + 721506 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0] + 744033 my_demux.my_demux.c_buf_d_inv.buf1._y : 0 [by my_demux.my_demux.cond_inv_f:=1] + 744036 my_demux.my_demux._c_d_buf[0] : 1 [by my_demux.my_demux.c_buf_d_inv.buf1._y:=0] diff --git a/test/unit_tests/demux_td_2/run/test.prs b/test/unit_tests/demux_td_2/run/test.prs new file mode 100644 index 0000000..486a345 --- /dev/null +++ b/test/unit_tests/demux_td_2/run/test.prs @@ -0,0 +1,420 @@ += "GND" "GND" += "Vdd" "Vdd" += "Reset" "Reset" +"Reset"->"my_demux._reset_B"- +~("Reset")->"my_demux._reset_B"+ += "my_demux._reset_B" "my_demux.my_demux.reset_B" += "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t" += "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t" += "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t" += "my_demux.cond.v" "my_demux.my_demux.cond.v" += "my_demux.cond.a" "my_demux.my_demux.cond.a" += "my_demux.cond.d.d[0].f" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].t" "my_demux.my_demux.cond.d.d[0].t" += "my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].d[0]" += "my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].d[1]" += "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t" += "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t" += "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t" += "my_demux.out1.v" "my_demux.my_demux.out1.v" += "my_demux.out1.a" "my_demux.my_demux.out1.a" += "my_demux.out1.d.d[0].f" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].t" "my_demux.my_demux.out1.d.d[0].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].d[0]" += "my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].d[1]" += "my_demux.out1.d.d[1].f" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].t" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].d[0]" += "my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].d[1]" += "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t" +~"my_demux.my_demux.token_buf.c1"&~"my_demux.my_demux.token_buf.c2"|~"my_demux.my_demux.token_buf.pr_B"->"my_demux.my_demux.token_buf._y"+ +"my_demux.my_demux.token_buf.c1"&"my_demux.my_demux.token_buf.c2"&"my_demux.my_demux.token_buf.n1"&"my_demux.my_demux.token_buf.n2"&"my_demux.my_demux.token_buf.sr_B"->"my_demux.my_demux.token_buf._y"- +"my_demux.my_demux.token_buf._y"->"my_demux.my_demux.token_buf.y"- +~("my_demux.my_demux.token_buf._y")->"my_demux.my_demux.token_buf.y"+ +"my_demux.my_demux.out1_a_B_buf_f.buf1.a"->"my_demux.my_demux.out1_a_B_buf_f.buf1._y"- +~("my_demux.my_demux.out1_a_B_buf_f.buf1.a")->"my_demux.my_demux.out1_a_B_buf_f.buf1._y"+ +"my_demux.my_demux.out1_a_B_buf_f.buf1._y"->"my_demux.my_demux.out1_a_B_buf_f.buf1.y"- +~("my_demux.my_demux.out1_a_B_buf_f.buf1._y")->"my_demux.my_demux.out1_a_B_buf_f.buf1.y"+ += "my_demux.my_demux.out1_a_B_buf_f.supply.vdd" "my_demux.my_demux.out1_a_B_buf_f.buf1.vdd" += "my_demux.my_demux.out1_a_B_buf_f.supply.vss" "my_demux.my_demux.out1_a_B_buf_f.buf1.vss" += "my_demux.my_demux.out1_a_B_buf_f.out[0]" "my_demux.my_demux.out1_a_B_buf_f.out[1]" += "my_demux.my_demux.out1_a_B_buf_f.out[0]" "my_demux.my_demux.out1_a_B_buf_f.buf1.y" += "my_demux.my_demux.out1_a_B_buf_f.in" "my_demux.my_demux.out1_a_B_buf_f.buf1.a" +~"my_demux.my_demux.inack_ctl.c1"&~"my_demux.my_demux.inack_ctl.c2"&~"my_demux.my_demux.inack_ctl.c3"|~"my_demux.my_demux.inack_ctl.pr_B"->"my_demux.my_demux.inack_ctl._y"+ +"my_demux.my_demux.inack_ctl.c1"&"my_demux.my_demux.inack_ctl.c2"&"my_demux.my_demux.inack_ctl.c3"&"my_demux.my_demux.inack_ctl.sr_B"->"my_demux.my_demux.inack_ctl._y"- +"my_demux.my_demux.inack_ctl._y"->"my_demux.my_demux.inack_ctl.y"- +~("my_demux.my_demux.inack_ctl._y")->"my_demux.my_demux.inack_ctl.y"+ +"my_demux.my_demux.reset_bufarray.buf1.a"->"my_demux.my_demux.reset_bufarray.buf1._y"- +~("my_demux.my_demux.reset_bufarray.buf1.a")->"my_demux.my_demux.reset_bufarray.buf1._y"+ +"my_demux.my_demux.reset_bufarray.buf1._y"->"my_demux.my_demux.reset_bufarray.buf1.y"- +~("my_demux.my_demux.reset_bufarray.buf1._y")->"my_demux.my_demux.reset_bufarray.buf1.y"+ += "my_demux.my_demux.reset_bufarray.supply.vdd" "my_demux.my_demux.reset_bufarray.buf1.vdd" += "my_demux.my_demux.reset_bufarray.supply.vss" "my_demux.my_demux.reset_bufarray.buf1.vss" += "my_demux.my_demux.reset_bufarray.out[0]" "my_demux.my_demux.reset_bufarray.out[1]" += "my_demux.my_demux.reset_bufarray.out[0]" "my_demux.my_demux.reset_bufarray.buf1.y" += "my_demux.my_demux.reset_bufarray.in" "my_demux.my_demux.reset_bufarray.buf1.a" += "my_demux.my_demux._c_v" "my_demux.my_demux.c_el.c1" += "my_demux.my_demux._c_v" "my_demux.my_demux.c_f_c_t_or.y" +"my_demux.my_demux.reset_buf_token.a"->"my_demux.my_demux.reset_buf_token._y"- +~("my_demux.my_demux.reset_buf_token.a")->"my_demux.my_demux.reset_buf_token._y"+ +"my_demux.my_demux.reset_buf_token._y"->"my_demux.my_demux.reset_buf_token.y"- +~("my_demux.my_demux.reset_buf_token._y")->"my_demux.my_demux.reset_buf_token.y"+ += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.c_buf_d_inv.out[0]" += "my_demux.my_demux._c_d_buf[1]" "my_demux.my_demux.c_buf_d_inv.out[1]" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_t_buf_func[1].n2" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_f_buf_func[1].n2" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_t_buf_func[0].n2" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_f_buf_func[0].n2" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux._c_d_buf[1]" +"my_demux.my_demux.invout_t.a"->"my_demux.my_demux.invout_t.y"- +~("my_demux.my_demux.invout_t.a")->"my_demux.my_demux.invout_t.y"+ += "my_demux.my_demux._en" "my_demux.my_demux.token_buf.c1" += "my_demux.my_demux._en" "my_demux.my_demux.out1_en_buf_f.in" += "my_demux.my_demux._en" "my_demux.my_demux.out1_en_buf_t.in" += "my_demux.my_demux._en" "my_demux.my_demux.en_ctl.y" += "my_demux.my_demux._en" "my_demux.my_demux.inack_ctl.c1" +"my_demux.my_demux.c_buf_tk_inv.a"->"my_demux.my_demux.c_buf_tk_inv._y"- +~("my_demux.my_demux.c_buf_tk_inv.a")->"my_demux.my_demux.c_buf_tk_inv._y"+ +"my_demux.my_demux.c_buf_tk_inv._y"->"my_demux.my_demux.c_buf_tk_inv.y"- +~("my_demux.my_demux.c_buf_tk_inv._y")->"my_demux.my_demux.c_buf_tk_inv.y"+ += "my_demux.my_demux.token_a_out" "my_demux.my_demux.token_buf.c2" += "my_demux.my_demux.token_a_out" "my_demux.my_demux.outt_a_inv.y" += "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_B_buf_t.in" += "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_B_buf_f.in" += "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_inv.y" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t" += "my_demux.my_demux.in.d.d[0].f" "my_demux.my_demux.vc.in.d[0].f" += "my_demux.my_demux.in.d.d[0].t" "my_demux.my_demux.vc.in.d[0].t" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].d[0]" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].d[1]" += "my_demux.my_demux.in.d.d[1].f" "my_demux.my_demux.vc.in.d[1].f" += "my_demux.my_demux.in.d.d[1].t" "my_demux.my_demux.vc.in.d[1].t" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].d[0]" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].d[1]" += "my_demux.my_demux.in.a" "my_demux.my_demux.en_ctl.c1" += "my_demux.my_demux.in.a" "my_demux.my_demux.inack_ctl.y" += "my_demux.my_demux.in.v" "my_demux.my_demux.in_v_buf.y" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.out1_f_buf_func[1].n1" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.out1_t_buf_func[1].n1" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.out1_f_buf_func[0].n1" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.out1_t_buf_func[0].n1" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t" +"my_demux.my_demux.out1_en_buf_t.buf1.a"->"my_demux.my_demux.out1_en_buf_t.buf1._y"- +~("my_demux.my_demux.out1_en_buf_t.buf1.a")->"my_demux.my_demux.out1_en_buf_t.buf1._y"+ +"my_demux.my_demux.out1_en_buf_t.buf1._y"->"my_demux.my_demux.out1_en_buf_t.buf1.y"- +~("my_demux.my_demux.out1_en_buf_t.buf1._y")->"my_demux.my_demux.out1_en_buf_t.buf1.y"+ += "my_demux.my_demux.out1_en_buf_t.supply.vdd" "my_demux.my_demux.out1_en_buf_t.buf1.vdd" += "my_demux.my_demux.out1_en_buf_t.supply.vss" "my_demux.my_demux.out1_en_buf_t.buf1.vss" += "my_demux.my_demux.out1_en_buf_t.out[0]" "my_demux.my_demux.out1_en_buf_t.out[1]" += "my_demux.my_demux.out1_en_buf_t.out[0]" "my_demux.my_demux.out1_en_buf_t.buf1.y" += "my_demux.my_demux.out1_en_buf_t.in" "my_demux.my_demux.out1_en_buf_t.buf1.a" += "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_a_B_buf_f.out[0]" += "my_demux.my_demux._out1_a_BX_t[1]" "my_demux.my_demux.out1_a_B_buf_f.out[1]" += "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_t_buf_func[1].c2" += "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_t_buf_func[0].c2" += "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux._out1_a_BX_t[1]" +"my_demux.my_demux.out_or.a"|"my_demux.my_demux.out_or.b"->"my_demux.my_demux.out_or._y"- +~("my_demux.my_demux.out_or.a"|"my_demux.my_demux.out_or.b")->"my_demux.my_demux.out_or._y"+ +"my_demux.my_demux.out_or._y"->"my_demux.my_demux.out_or.y"- +~("my_demux.my_demux.out_or._y")->"my_demux.my_demux.out_or.y"+ += "my_demux.my_demux._in_c_v_" "my_demux.my_demux.c_el.y" += "my_demux.my_demux._in_c_v_" "my_demux.my_demux.inack_ctl.c2" +"my_demux.my_demux.reset_buf.a"->"my_demux.my_demux.reset_buf._y"- +~("my_demux.my_demux.reset_buf.a")->"my_demux.my_demux.reset_buf._y"+ +"my_demux.my_demux.reset_buf._y"->"my_demux.my_demux.reset_buf.y"- +~("my_demux.my_demux.reset_buf._y")->"my_demux.my_demux.reset_buf.y"+ += "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_bufarray.in" += "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_buf_token.a" += "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_buf.y" += "my_demux.my_demux._reset_BX" "my_demux.my_demux.inack_ctl.sr_B" += "my_demux.my_demux._reset_BX" "my_demux.my_demux.inack_ctl.pr_B" += "my_demux.my_demux.reset_B" "my_demux.my_demux.reset_buf.a" += "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_en_buf_f.out[0]" += "my_demux.my_demux._en1_X_f[1]" "my_demux.my_demux.out1_en_buf_f.out[1]" += "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_f_buf_func[1].c1" += "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_f_buf_func[0].c1" += "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux._en1_X_f[1]" += "my_demux.my_demux._out_v" "my_demux.my_demux.en_ctl.p1" += "my_demux.my_demux._out_v" "my_demux.my_demux.inack_ctl.c3" += "my_demux.my_demux._out_v" "my_demux.my_demux.out_or.y" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.reset_bufarray.out[0]" += "my_demux.my_demux._reset_BXX[1]" "my_demux.my_demux.reset_bufarray.out[1]" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[1].sr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[1].pr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[1].sr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[1].pr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[0].sr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[0].pr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[0].sr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[0].pr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux._reset_BXX[1]" +"my_demux.my_demux.out1_en_buf_f.buf1.a"->"my_demux.my_demux.out1_en_buf_f.buf1._y"- +~("my_demux.my_demux.out1_en_buf_f.buf1.a")->"my_demux.my_demux.out1_en_buf_f.buf1._y"+ +"my_demux.my_demux.out1_en_buf_f.buf1._y"->"my_demux.my_demux.out1_en_buf_f.buf1.y"- +~("my_demux.my_demux.out1_en_buf_f.buf1._y")->"my_demux.my_demux.out1_en_buf_f.buf1.y"+ += "my_demux.my_demux.out1_en_buf_f.supply.vdd" "my_demux.my_demux.out1_en_buf_f.buf1.vdd" += "my_demux.my_demux.out1_en_buf_f.supply.vss" "my_demux.my_demux.out1_en_buf_f.buf1.vss" += "my_demux.my_demux.out1_en_buf_f.out[0]" "my_demux.my_demux.out1_en_buf_f.out[1]" += "my_demux.my_demux.out1_en_buf_f.out[0]" "my_demux.my_demux.out1_en_buf_f.buf1.y" += "my_demux.my_demux.out1_en_buf_f.in" "my_demux.my_demux.out1_en_buf_f.buf1.a" += "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_a_B_buf_t.out[0]" += "my_demux.my_demux._out1_a_BX_f[1]" "my_demux.my_demux.out1_a_B_buf_t.out[1]" += "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_f_buf_func[1].c2" += "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_f_buf_func[0].c2" += "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux._out1_a_BX_f[1]" +~"my_demux.my_demux.c_el.c1"&~"my_demux.my_demux.c_el.c2"->"my_demux.my_demux.c_el._y"+ +"my_demux.my_demux.c_el.c1"&"my_demux.my_demux.c_el.c2"->"my_demux.my_demux.c_el._y"- +"my_demux.my_demux.c_el._y"->"my_demux.my_demux.c_el.y"- +~("my_demux.my_demux.c_el._y")->"my_demux.my_demux.c_el.y"+ += "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_en_buf_t.out[0]" += "my_demux.my_demux._en1_X_t[1]" "my_demux.my_demux.out1_en_buf_t.out[1]" += "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_t_buf_func[1].c1" += "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_t_buf_func[0].c1" += "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux._en1_X_t[1]" +"my_demux.my_demux.in_v_buf.a"->"my_demux.my_demux.in_v_buf._y"- +~("my_demux.my_demux.in_v_buf.a")->"my_demux.my_demux.in_v_buf._y"+ +"my_demux.my_demux.in_v_buf._y"->"my_demux.my_demux.in_v_buf.y"- +~("my_demux.my_demux.in_v_buf._y")->"my_demux.my_demux.in_v_buf.y"+ += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t" += "my_demux.my_demux.out1.a" "my_demux.my_demux.out1_a_inv.a" += "my_demux.my_demux.out1.v" "my_demux.my_demux.out_or.a" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1_f_buf_func[1].y" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1_t_buf_func[1].y" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1_f_buf_func[0].y" += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1_t_buf_func[0].y" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t" +"my_demux.my_demux.c_f_c_t_or.a"|"my_demux.my_demux.c_f_c_t_or.b"->"my_demux.my_demux.c_f_c_t_or._y"- +~("my_demux.my_demux.c_f_c_t_or.a"|"my_demux.my_demux.c_f_c_t_or.b")->"my_demux.my_demux.c_f_c_t_or._y"+ +"my_demux.my_demux.c_f_c_t_or._y"->"my_demux.my_demux.c_f_c_t_or.y"- +~("my_demux.my_demux.c_f_c_t_or._y")->"my_demux.my_demux.c_f_c_t_or.y"+ +"my_demux.my_demux.out1_a_inv.a"->"my_demux.my_demux.out1_a_inv.y"- +~("my_demux.my_demux.out1_a_inv.a")->"my_demux.my_demux.out1_a_inv.y"+ += "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token.r" += "my_demux.my_demux.token.a" "my_demux.my_demux.outt_a_inv.a" += "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token_buf.y" += "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.out_or.b" += "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token.r" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_en_buf_f.supply.vss" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_en_buf_f.supply.vdd" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_en_buf_t.supply.vss" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_en_buf_t.supply.vdd" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.vc.supply.vss" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.vc.supply.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.token_buf.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_t_buf_func[1].vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_f_buf_func[1].vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_t_buf_func[0].vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_f_buf_func[0].vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.in_v_buf.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.c_el.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.invout_f.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.invout_t.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.c_f_c_t_or.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.reset_buf_token.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.reset_buf.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.en_ctl.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.inack_ctl.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out_or.vdd" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.token_buf.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_t_buf_func[1].vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_f_buf_func[1].vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_t_buf_func[0].vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_f_buf_func[0].vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.in_v_buf.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.c_el.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.invout_f.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.invout_t.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.c_f_c_t_or.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.reset_buf_token.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.reset_buf.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.en_ctl.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.inack_ctl.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out_or.vss" +"my_demux.my_demux.invout_f.a"->"my_demux.my_demux.invout_f.y"- +~("my_demux.my_demux.invout_f.a")->"my_demux.my_demux.invout_f.y"+ +~"my_demux.my_demux.vc.myctree.C2Els[0].c1"&~"my_demux.my_demux.vc.myctree.C2Els[0].c2"->"my_demux.my_demux.vc.myctree.C2Els[0]._y"+ +"my_demux.my_demux.vc.myctree.C2Els[0].c1"&"my_demux.my_demux.vc.myctree.C2Els[0].c2"->"my_demux.my_demux.vc.myctree.C2Els[0]._y"- +"my_demux.my_demux.vc.myctree.C2Els[0]._y"->"my_demux.my_demux.vc.myctree.C2Els[0].y"- +~("my_demux.my_demux.vc.myctree.C2Els[0]._y")->"my_demux.my_demux.vc.myctree.C2Els[0].y"+ += "my_demux.my_demux.vc.myctree.supply.vdd" "my_demux.my_demux.vc.myctree.C2Els[0].vdd" += "my_demux.my_demux.vc.myctree.supply.vss" "my_demux.my_demux.vc.myctree.C2Els[0].vss" += "my_demux.my_demux.vc.myctree.in[0]" "my_demux.my_demux.vc.myctree.C2Els[0].c1" += "my_demux.my_demux.vc.myctree.in[0]" "my_demux.my_demux.vc.myctree.tmp[0]" += "my_demux.my_demux.vc.myctree.in[1]" "my_demux.my_demux.vc.myctree.C2Els[0].c2" += "my_demux.my_demux.vc.myctree.in[1]" "my_demux.my_demux.vc.myctree.tmp[1]" += "my_demux.my_demux.vc.myctree.out" "my_demux.my_demux.vc.myctree.C2Els[0].y" += "my_demux.my_demux.vc.myctree.out" "my_demux.my_demux.vc.myctree.tmp[2]" +"my_demux.my_demux.vc.OR2_tf[0].a"|"my_demux.my_demux.vc.OR2_tf[0].b"->"my_demux.my_demux.vc.OR2_tf[0]._y"- +~("my_demux.my_demux.vc.OR2_tf[0].a"|"my_demux.my_demux.vc.OR2_tf[0].b")->"my_demux.my_demux.vc.OR2_tf[0]._y"+ +"my_demux.my_demux.vc.OR2_tf[0]._y"->"my_demux.my_demux.vc.OR2_tf[0].y"- +~("my_demux.my_demux.vc.OR2_tf[0]._y")->"my_demux.my_demux.vc.OR2_tf[0].y"+ +"my_demux.my_demux.vc.OR2_tf[1].a"|"my_demux.my_demux.vc.OR2_tf[1].b"->"my_demux.my_demux.vc.OR2_tf[1]._y"- +~("my_demux.my_demux.vc.OR2_tf[1].a"|"my_demux.my_demux.vc.OR2_tf[1].b")->"my_demux.my_demux.vc.OR2_tf[1]._y"+ +"my_demux.my_demux.vc.OR2_tf[1]._y"->"my_demux.my_demux.vc.OR2_tf[1].y"- +~("my_demux.my_demux.vc.OR2_tf[1]._y")->"my_demux.my_demux.vc.OR2_tf[1].y"+ += "my_demux.my_demux.vc.OR2_tf[1].y" "my_demux.my_demux.vc.myctree.in[1]" += "my_demux.my_demux.vc.OR2_tf[0].y" "my_demux.my_demux.vc.myctree.in[0]" += "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.myctree.supply.vss" += "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.myctree.supply.vdd" += "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.OR2_tf[1].vdd" += "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.OR2_tf[0].vdd" += "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.OR2_tf[1].vss" += "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.OR2_tf[0].vss" += "my_demux.my_demux.vc.out" "my_demux.my_demux.vc.myctree.out" += "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f" += "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t" += "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f" += "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t" += "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f" += "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t" += "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f" += "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t" += "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.OR2_tf[1].b" += "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f" += "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.OR2_tf[1].a" += "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t" += "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.OR2_tf[0].b" += "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f" += "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.OR2_tf[0].a" += "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t" +"my_demux.my_demux.out1_a_B_buf_t.buf1.a"->"my_demux.my_demux.out1_a_B_buf_t.buf1._y"- +~("my_demux.my_demux.out1_a_B_buf_t.buf1.a")->"my_demux.my_demux.out1_a_B_buf_t.buf1._y"+ +"my_demux.my_demux.out1_a_B_buf_t.buf1._y"->"my_demux.my_demux.out1_a_B_buf_t.buf1.y"- +~("my_demux.my_demux.out1_a_B_buf_t.buf1._y")->"my_demux.my_demux.out1_a_B_buf_t.buf1.y"+ += "my_demux.my_demux.out1_a_B_buf_t.supply.vdd" "my_demux.my_demux.out1_a_B_buf_t.buf1.vdd" += "my_demux.my_demux.out1_a_B_buf_t.supply.vss" "my_demux.my_demux.out1_a_B_buf_t.buf1.vss" += "my_demux.my_demux.out1_a_B_buf_t.out[0]" "my_demux.my_demux.out1_a_B_buf_t.out[1]" += "my_demux.my_demux.out1_a_B_buf_t.out[0]" "my_demux.my_demux.out1_a_B_buf_t.buf1.y" += "my_demux.my_demux.out1_a_B_buf_t.in" "my_demux.my_demux.out1_a_B_buf_t.buf1.a" +~"my_demux.my_demux.en_ctl.p1"&~"my_demux.my_demux.en_ctl.c1"->"my_demux.my_demux.en_ctl.y"+ +"my_demux.my_demux.en_ctl.c1"->"my_demux.my_demux.en_ctl.y"- += "my_demux.my_demux._reset_BXt" "my_demux.my_demux.token_buf.sr_B" += "my_demux.my_demux._reset_BXt" "my_demux.my_demux.token_buf.pr_B" += "my_demux.my_demux._reset_BXt" "my_demux.my_demux.reset_buf_token.y" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.invout_f.a" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.c_f_c_t_or.b" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.invout_t.a" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.c_f_c_t_or.a" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t" +~"my_demux.my_demux.out1_f_buf_func[0].c1"&~"my_demux.my_demux.out1_f_buf_func[0].c2"|~"my_demux.my_demux.out1_f_buf_func[0].pr_B"->"my_demux.my_demux.out1_f_buf_func[0]._y"+ +"my_demux.my_demux.out1_f_buf_func[0].c1"&"my_demux.my_demux.out1_f_buf_func[0].c2"&"my_demux.my_demux.out1_f_buf_func[0].n1"&"my_demux.my_demux.out1_f_buf_func[0].n2"&"my_demux.my_demux.out1_f_buf_func[0].sr_B"->"my_demux.my_demux.out1_f_buf_func[0]._y"- +"my_demux.my_demux.out1_f_buf_func[0]._y"->"my_demux.my_demux.out1_f_buf_func[0].y"- +~("my_demux.my_demux.out1_f_buf_func[0]._y")->"my_demux.my_demux.out1_f_buf_func[0].y"+ +~"my_demux.my_demux.out1_f_buf_func[1].c1"&~"my_demux.my_demux.out1_f_buf_func[1].c2"|~"my_demux.my_demux.out1_f_buf_func[1].pr_B"->"my_demux.my_demux.out1_f_buf_func[1]._y"+ +"my_demux.my_demux.out1_f_buf_func[1].c1"&"my_demux.my_demux.out1_f_buf_func[1].c2"&"my_demux.my_demux.out1_f_buf_func[1].n1"&"my_demux.my_demux.out1_f_buf_func[1].n2"&"my_demux.my_demux.out1_f_buf_func[1].sr_B"->"my_demux.my_demux.out1_f_buf_func[1]._y"- +"my_demux.my_demux.out1_f_buf_func[1]._y"->"my_demux.my_demux.out1_f_buf_func[1].y"- +~("my_demux.my_demux.out1_f_buf_func[1]._y")->"my_demux.my_demux.out1_f_buf_func[1].y"+ += "my_demux.my_demux._in_v" "my_demux.my_demux.token_buf.n2" += "my_demux.my_demux._in_v" "my_demux.my_demux.in_v_buf.a" += "my_demux.my_demux._in_v" "my_demux.my_demux.c_el.c2" += "my_demux.my_demux._in_v" "my_demux.my_demux.vc.out" +~"my_demux.my_demux.out1_t_buf_func[0].c1"&~"my_demux.my_demux.out1_t_buf_func[0].c2"|~"my_demux.my_demux.out1_t_buf_func[0].pr_B"->"my_demux.my_demux.out1_t_buf_func[0]._y"+ +"my_demux.my_demux.out1_t_buf_func[0].c1"&"my_demux.my_demux.out1_t_buf_func[0].c2"&"my_demux.my_demux.out1_t_buf_func[0].n1"&"my_demux.my_demux.out1_t_buf_func[0].n2"&"my_demux.my_demux.out1_t_buf_func[0].sr_B"->"my_demux.my_demux.out1_t_buf_func[0]._y"- +"my_demux.my_demux.out1_t_buf_func[0]._y"->"my_demux.my_demux.out1_t_buf_func[0].y"- +~("my_demux.my_demux.out1_t_buf_func[0]._y")->"my_demux.my_demux.out1_t_buf_func[0].y"+ +~"my_demux.my_demux.out1_t_buf_func[1].c1"&~"my_demux.my_demux.out1_t_buf_func[1].c2"|~"my_demux.my_demux.out1_t_buf_func[1].pr_B"->"my_demux.my_demux.out1_t_buf_func[1]._y"+ +"my_demux.my_demux.out1_t_buf_func[1].c1"&"my_demux.my_demux.out1_t_buf_func[1].c2"&"my_demux.my_demux.out1_t_buf_func[1].n1"&"my_demux.my_demux.out1_t_buf_func[1].n2"&"my_demux.my_demux.out1_t_buf_func[1].sr_B"->"my_demux.my_demux.out1_t_buf_func[1]._y"- +"my_demux.my_demux.out1_t_buf_func[1]._y"->"my_demux.my_demux.out1_t_buf_func[1].y"- +~("my_demux.my_demux.out1_t_buf_func[1]._y")->"my_demux.my_demux.out1_t_buf_func[1].y"+ += "my_demux.my_demux.cond_inv_f" "my_demux.my_demux.c_buf_d_inv.in" += "my_demux.my_demux.cond_inv_f" "my_demux.my_demux.invout_f.y" +"my_demux.my_demux.outt_a_inv.a"->"my_demux.my_demux.outt_a_inv.y"- +~("my_demux.my_demux.outt_a_inv.a")->"my_demux.my_demux.outt_a_inv.y"+ += "my_demux.my_demux.cond_inv_t" "my_demux.my_demux.c_buf_tk_inv.a" += "my_demux.my_demux.cond_inv_t" "my_demux.my_demux.invout_t.y" +"my_demux.my_demux.c_buf_d_inv.buf1.a"->"my_demux.my_demux.c_buf_d_inv.buf1._y"- +~("my_demux.my_demux.c_buf_d_inv.buf1.a")->"my_demux.my_demux.c_buf_d_inv.buf1._y"+ +"my_demux.my_demux.c_buf_d_inv.buf1._y"->"my_demux.my_demux.c_buf_d_inv.buf1.y"- +~("my_demux.my_demux.c_buf_d_inv.buf1._y")->"my_demux.my_demux.c_buf_d_inv.buf1.y"+ += "my_demux.my_demux.c_buf_d_inv.supply.vdd" "my_demux.my_demux.c_buf_d_inv.buf1.vdd" += "my_demux.my_demux.c_buf_d_inv.supply.vss" "my_demux.my_demux.c_buf_d_inv.buf1.vss" += "my_demux.my_demux.c_buf_d_inv.out[0]" "my_demux.my_demux.c_buf_d_inv.out[1]" += "my_demux.my_demux.c_buf_d_inv.out[0]" "my_demux.my_demux.c_buf_d_inv.buf1.y" += "my_demux.my_demux.c_buf_d_inv.in" "my_demux.my_demux.c_buf_d_inv.buf1.a" += "my_demux.my_demux._c_tk_buf" "my_demux.my_demux.token_buf.n1" += "my_demux.my_demux._c_tk_buf" "my_demux.my_demux.c_buf_tk_inv.y" += "Vdd" "my_demux.my_demux.supply.vdd" += "GND" "my_demux.my_demux.supply.vss" += "my_demux.token.d.d[0]" "my_demux.token.r" += "my_demux.token.r" "my_demux.my_demux.token.r" += "my_demux.token.a" "my_demux.my_demux.token.a" += "my_demux.token.d.d[0]" "my_demux.my_demux.token.d.d[0]" += "my_demux.token.d.d[0]" "my_demux.token.r" += "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t" += "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t" += "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t" += "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t" += "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t" += "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t" += "my_demux.in.v" "my_demux.my_demux.in.v" += "my_demux.in.a" "my_demux.my_demux.in.a" += "my_demux.in.d.d[0].f" "my_demux.my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].t" "my_demux.my_demux.in.d.d[0].t" += "my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].d[0]" += "my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].d[1]" += "my_demux.in.d.d[1].f" "my_demux.my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].t" "my_demux.my_demux.in.d.d[1].t" += "my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].d[0]" += "my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].d[1]" += "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t" += "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t" diff --git a/test/unit_tests/demux_td_2/test.act b/test/unit_tests/demux_td_2/test.act new file mode 100644 index 0000000..43e2ca9 --- /dev/null +++ b/test/unit_tests/demux_td_2/test.act @@ -0,0 +1,50 @@ +/************************************************************************* + * + * 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 demux_2 (avMx1of2<2> in; avMx1of2<2> out1; a1of1 token; avMx1of2<1> cond){ + + demux_td<2, false> my_demux(.in=in, .out1=out1,.token = token, .cond = cond); + //Low active Reset + bool _reset_B; + prs { + Reset => _reset_B- + } + my_demux.supply.vss = GND; + my_demux.supply.vdd = Vdd; + my_demux.reset_B = _reset_B; + + +} + +demux_2 my_demux; diff --git a/test/unit_tests/demux_td_2/test.prsim b/test/unit_tests/demux_td_2/test.prsim new file mode 100644 index 0000000..f225e62 --- /dev/null +++ b/test/unit_tests/demux_td_2/test.prsim @@ -0,0 +1,90 @@ +watchall +set-qdi-channel-neutral "my_demux.in" 2 +set my_demux.out1.a 0 +set my_demux.out1.v 0 +set my_demux.token.a 0 +set my_demux.token.r 0 +set my_demux.cond.d.d[0].t 0 +set my_demux.cond.d.d[0].f 0 +cycle +system "echo 'System initialized'" + +set Reset 0 +cycle +system "echo 'System reset completed'" +status X +mode run + +assert-qdi-channel-neutral "my_demux.out1" 2 +assert-qdi-channel-neutral "my_demux.in" 2 +cycle + +system "echo 'Output neutral checked'" + +set my_demux.cond.d.d[0].t 1 +set my_demux.cond.d.d[0].f 0 +set-qdi-channel-valid "my_demux.in" 2 3 +cycle +assert my_demux.in.v 1 +assert my_demux.in.a 0 + +assert-qdi-channel-valid "my_demux.out1" 2 3 +assert my_demux.token.a 0 +set my_demux.out1.v 1 +cycle + +assert my_demux.in.a 1 +set-qdi-channel-neutral "my_demux.in" 2 +cycle + +set my_demux.out1.a 1 +cycle + +set my_demux.out1.v 0 + +assert my_demux.in.a 1 +set-qdi-channel-neutral "my_demux.in" 2 + + +system "echo 'First Cond Checked'" + +set my_demux.out1.a 0 +set my_demux.out1.v 0 +set my_demux.token.a 0 +set my_demux.token.r 0 +set my_demux.cond.d.d[0].t 0 +set my_demux.cond.d.d[0].f 0 +cycle + +system "echo 'System initialized'" + +set my_demux.cond.d.d[0].t 0 +set my_demux.cond.d.d[0].f 1 +set-qdi-channel-valid "my_demux.in" 2 3 +cycle +assert my_demux.in.v 1 +assert my_demux.in.a 1 +assert my_demux.token.r 1 + +set my_demux.token.a 1 +cycle + +assert my_demux.token.r 0 + +set my_demux.token.a 0 +set-qdi-channel-neutral "my_demux.in" 2 +cycle + +assert my_demux.in.v 0 + +set my_demux.cond.d.d[0].t 0 +set my_demux.cond.d.d[0].f 0 +cycle + +assert my_demux.in.a 0 + + + + + + diff --git a/test/unit_tests/demux_td_2_SIGN/run/prsim.out b/test/unit_tests/demux_td_2_SIGN/run/prsim.out new file mode 100644 index 0000000..b1510f8 --- /dev/null +++ b/test/unit_tests/demux_td_2_SIGN/run/prsim.out @@ -0,0 +1,181 @@ +my_demux.my_demux.out1_f_buf_func[1].n1 my_demux.my_demux._c_tk_buf my_demux.my_demux.out1_t_buf_func[1].n1 my_demux.my_demux._c_d_buf[0] my_demux.my_demux._out1_a_BX_f[0] my_demux.my_demux.out1_en_buf_t.buf1._y my_demux.my_demux.token_a_out my_demux.my_demux._out_v my_demux.my_demux._in_v my_demux.my_demux._en my_demux.my_demux.vc.OR2_tf[1].y my_demux.my_demux._out1_a_B my_demux.my_demux.c_buf_d.in my_demux.my_demux._out1_a_BX_t[0] my_demux.in.v my_demux.my_demux._c_v my_demux.my_demux.c_buf_tk.a my_demux.my_demux.out1_f_buf_func[0].n1 my_demux.out1.v my_demux.my_demux.out1_t_buf_func[0].n1 my_demux.out1.a my_demux.my_demux._en1_X_f[0] my_demux.my_demux.out_or._y my_demux.my_demux._en1_X_t[0] my_demux.my_demux.vc.OR2_tf[0]._y my_demux.my_demux.c_buf_d.buf1._y my_demux.my_demux.in_v_buf._y my_demux.my_demux.vc.OR2_tf[0].y my_demux.token.a my_demux.my_demux.vc.OR2_tf[1]._y my_demux.my_demux._in_c_v_ my_demux.my_demux.c_buf_tk._y my_demux.my_demux.c_f_c_t_or._y my_demux.my_demux.out1_en_buf_f.buf1._y my_demux.my_demux.vc.myctree.C2Els[0]._y my_demux.my_demux.out1_a_B_buf_f.buf1._y my_demux.my_demux.c_el._y my_demux.my_demux.out1_a_B_buf_t.buf1._y + 83058 my_demux.my_demux.out1_f_buf_func[0].n1 : 0 + 83058 my_demux.my_demux.c_buf_d.in : 0 + 83058 my_demux.my_demux.c_buf_tk.a : 0 + 83058 my_demux.my_demux.out1_f_buf_func[1].n1 : 0 + 83058 my_demux.token.a : 0 + 83058 my_demux.out1.v : 0 + 83058 my_demux.my_demux.out1_t_buf_func[0].n1 : 0 + 83058 my_demux.out1.a : 0 + 83058 my_demux.my_demux.out1_t_buf_func[1].n1 : 0 + 83062 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.c_buf_tk.a:=0] + 83073 my_demux.my_demux.out_or._y : 1 [by my_demux.out1.v:=0] + 83113 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0] + 92187 my_demux.my_demux.token_a_out : 1 [by my_demux.token.a:=0] + 96782 my_demux.my_demux.c_buf_tk._y : 1 [by my_demux.my_demux.c_buf_tk.a:=0] + 96962 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1] + 112853 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1] + 119989 my_demux.my_demux._out1_a_B : 1 [by my_demux.out1.a:=0] + 120411 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1] + 120412 my_demux.my_demux._out1_a_BX_t[0] : 1 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=0] + 121594 my_demux.my_demux._c_tk_buf : 0 [by my_demux.my_demux.c_buf_tk._y:=1] + 126306 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0] + 126307 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1] + 127156 my_demux.my_demux.c_buf_d.buf1._y : 1 [by my_demux.my_demux.c_buf_d.in:=0] + 127196 my_demux.my_demux._en : 1 [by my_demux.my_demux._out_v:=0] + 127199 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1] + 127438 my_demux.my_demux._c_d_buf[0] : 0 [by my_demux.my_demux.c_buf_d.buf1._y:=1] + 127964 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1] + 128515 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0] + 134715 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1] + 146512 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[0].y:=0] + 147583 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1] + 148537 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0] + 148664 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._in_v:=0] + 149640 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0] + 149646 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1] + 168703 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1] + 168721 my_demux.my_demux._out1_a_BX_f[0] : 1 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=0] + 203007 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1] +System initialized + 203007 Reset : 0 + 207020 my_demux._reset_B : 1 [by Reset:=0] + 211023 my_demux.my_demux.reset_buf._y : 0 [by my_demux._reset_B:=1] + 255924 my_demux.my_demux._reset_BX : 1 [by my_demux.my_demux.reset_buf._y:=0] + 260684 my_demux.my_demux.reset_buf_token._y : 0 [by my_demux.my_demux._reset_BX:=1] + 261186 my_demux.my_demux._reset_BXt : 1 [by my_demux.my_demux.reset_buf_token._y:=0] + 277508 my_demux.my_demux.reset_bufarray.buf1._y : 0 [by my_demux.my_demux._reset_BX:=1] + 277711 my_demux.my_demux._reset_BXX[0] : 1 [by my_demux.my_demux.reset_bufarray.buf1._y:=0] +System reset completed + +Output neutral checked + 277711 my_demux.my_demux.c_buf_d.in : 1 + 277711 my_demux.my_demux.out1_t_buf_func[1].n1 : 1 + 277711 my_demux.my_demux.out1_t_buf_func[0].n1 : 1 + 277780 my_demux.my_demux.vc.OR2_tf[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1] + 277791 my_demux.my_demux.vc.OR2_tf[0].y : 1 [by my_demux.my_demux.vc.OR2_tf[0]._y:=0] + 277850 my_demux.my_demux.c_buf_d.buf1._y : 0 [by my_demux.my_demux.c_buf_d.in:=1] + 279565 my_demux.my_demux.c_f_c_t_or._y : 0 [by my_demux.my_demux.c_buf_d.in:=1] + 279769 my_demux.my_demux._c_v : 1 [by my_demux.my_demux.c_f_c_t_or._y:=0] + 314057 my_demux.my_demux.vc.OR2_tf[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1] + 314072 my_demux.my_demux.vc.OR2_tf[1].y : 1 [by my_demux.my_demux.vc.OR2_tf[1]._y:=0] + 314073 my_demux.my_demux.vc.myctree.C2Els[0]._y : 0 [by my_demux.my_demux.vc.OR2_tf[1].y:=1] + 314110 my_demux.my_demux._in_v : 1 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=0] + 314222 my_demux.my_demux.c_el._y : 0 [by my_demux.my_demux._in_v:=1] + 314849 my_demux.my_demux.in_v_buf._y : 0 [by my_demux.my_demux._in_v:=1] + 314889 my_demux.in.v : 1 [by my_demux.my_demux.in_v_buf._y:=0] + 329636 my_demux.my_demux._c_d_buf[0] : 1 [by my_demux.my_demux.c_buf_d.buf1._y:=0] + 329723 my_demux.my_demux.out1_t_buf_func[1]._y : 0 [by my_demux.my_demux._c_d_buf[0]:=1] + 329893 my_demux.my_demux.out1_t_buf_func[0]._y : 0 [by my_demux.my_demux._c_d_buf[0]:=1] + 329894 my_demux.my_demux.out1_t_buf_func[0].y : 1 [by my_demux.my_demux.out1_t_buf_func[0]._y:=0] + 330017 my_demux.my_demux.out1_t_buf_func[1].y : 1 [by my_demux.my_demux.out1_t_buf_func[1]._y:=0] + 361734 my_demux.my_demux._in_c_v_ : 1 [by my_demux.my_demux.c_el._y:=0] + 361734 my_demux.out1.v : 1 + 363540 my_demux.my_demux.out_or._y : 0 [by my_demux.out1.v:=1] + 365547 my_demux.my_demux._out_v : 1 [by my_demux.my_demux.out_or._y:=0] + 366756 my_demux.my_demux.inack_ctl._y : 0 [by my_demux.my_demux._out_v:=1] + 367346 my_demux.in.a : 1 [by my_demux.my_demux.inack_ctl._y:=0] + 367524 my_demux.my_demux._en : 0 [by my_demux.in.a:=1] + 367688 my_demux.my_demux.out1_en_buf_f.buf1._y : 1 [by my_demux.my_demux._en:=0] + 368327 my_demux.my_demux.out1_en_buf_t.buf1._y : 1 [by my_demux.my_demux._en:=0] + 368349 my_demux.my_demux._en1_X_t[0] : 0 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=1] + 369883 my_demux.my_demux._en1_X_f[0] : 0 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=1] + 369883 my_demux.my_demux.out1_t_buf_func[0].n1 : 0 + 369883 my_demux.my_demux.out1_t_buf_func[1].n1 : 0 + 370730 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0] + 370863 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1] + 400011 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0] + 415673 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1] + 416032 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[1].y:=0] + 430148 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1] + 430369 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0] + 430376 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1] +First Cond Checked + 430376 my_demux.out1.a : 1 + 430376 my_demux.my_demux.c_buf_d.in : 0 + 430376 my_demux.out1.v : 0 + 430406 my_demux.my_demux._out1_a_B : 0 [by my_demux.out1.a:=1] + 430413 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 1 [by my_demux.my_demux._out1_a_B:=0] + 430467 my_demux.my_demux.out_or._y : 1 [by my_demux.out1.v:=0] + 430573 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1] + 432595 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 1 [by my_demux.my_demux._out1_a_B:=0] + 432673 my_demux.my_demux._out1_a_BX_t[0] : 0 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=1] + 432948 my_demux.my_demux.out1_t_buf_func[0]._y : 1 [by my_demux.my_demux._out1_a_BX_t[0]:=0] + 433200 my_demux.my_demux._out1_a_BX_f[0] : 0 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=1] + 433403 my_demux.my_demux.out1_t_buf_func[0].y : 0 [by my_demux.my_demux.out1_t_buf_func[0]._y:=1] + 437089 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.c_buf_d.in:=0] + 437101 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1] + 437505 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._c_v:=0] + 437517 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1] + 443433 my_demux.my_demux.inack_ctl._y : 1 [by my_demux.my_demux._in_c_v_:=0] + 447709 my_demux.in.a : 0 [by my_demux.my_demux.inack_ctl._y:=1] + 450608 my_demux.my_demux._en : 1 [by my_demux.in.a:=0] + 450610 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1] + 451669 my_demux.my_demux.out1_t_buf_func[1]._y : 1 [by my_demux.my_demux._out1_a_BX_t[0]:=0] + 452918 my_demux.my_demux.out1_t_buf_func[1].y : 0 [by my_demux.my_demux.out1_t_buf_func[1]._y:=1] + 454903 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1] + 455145 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0] + 458402 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0] + 487837 my_demux.my_demux.c_buf_d.buf1._y : 1 [by my_demux.my_demux.c_buf_d.in:=0] + 488003 my_demux.my_demux._c_d_buf[0] : 0 [by my_demux.my_demux.c_buf_d.buf1._y:=1] +System initialized + 488003 my_demux.my_demux.c_buf_tk.a : 1 + 488003 my_demux.my_demux.out1_t_buf_func[1].n1 : 1 + 488003 my_demux.my_demux.out1_t_buf_func[0].n1 : 1 + 488078 my_demux.my_demux.c_buf_tk._y : 0 [by my_demux.my_demux.c_buf_tk.a:=1] + 488080 my_demux.my_demux._c_tk_buf : 1 [by my_demux.my_demux.c_buf_tk._y:=0] + 488141 my_demux.my_demux.vc.OR2_tf[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1] + 488348 my_demux.my_demux.c_f_c_t_or._y : 0 [by my_demux.my_demux.c_buf_tk.a:=1] + 488349 my_demux.my_demux._c_v : 1 [by my_demux.my_demux.c_f_c_t_or._y:=0] + 493266 my_demux.my_demux.vc.OR2_tf[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1] + 493814 my_demux.my_demux.vc.OR2_tf[0].y : 1 [by my_demux.my_demux.vc.OR2_tf[0]._y:=0] + 532058 my_demux.my_demux.vc.OR2_tf[1].y : 1 [by my_demux.my_demux.vc.OR2_tf[1]._y:=0] + 532069 my_demux.my_demux.vc.myctree.C2Els[0]._y : 0 [by my_demux.my_demux.vc.OR2_tf[1].y:=1] + 532439 my_demux.my_demux._in_v : 1 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=0] + 532455 my_demux.my_demux.c_el._y : 0 [by my_demux.my_demux._in_v:=1] + 532506 my_demux.my_demux.token_buf._y : 0 [by my_demux.my_demux._in_v:=1] + 533034 my_demux.token.r : 1 [by my_demux.my_demux.token_buf._y:=0] + 535080 my_demux.my_demux.in_v_buf._y : 0 [by my_demux.my_demux._in_v:=1] + 535469 my_demux.my_demux.out_or._y : 0 [by my_demux.token.r:=1] + 537017 my_demux.my_demux._in_c_v_ : 1 [by my_demux.my_demux.c_el._y:=0] + 559394 my_demux.my_demux._out_v : 1 [by my_demux.my_demux.out_or._y:=0] + 561960 my_demux.in.v : 1 [by my_demux.my_demux.in_v_buf._y:=0] + 572435 my_demux.my_demux.inack_ctl._y : 0 [by my_demux.my_demux._out_v:=1] + 572437 my_demux.in.a : 1 [by my_demux.my_demux.inack_ctl._y:=0] + 633395 my_demux.my_demux._en : 0 [by my_demux.in.a:=1] + 633398 my_demux.my_demux.out1_en_buf_t.buf1._y : 1 [by my_demux.my_demux._en:=0] + 633424 my_demux.my_demux.out1_en_buf_f.buf1._y : 1 [by my_demux.my_demux._en:=0] + 633715 my_demux.my_demux._en1_X_t[0] : 0 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=1] + 635025 my_demux.my_demux._en1_X_f[0] : 0 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=1] + 635025 my_demux.token.a : 1 + 635178 my_demux.my_demux.token_a_out : 0 [by my_demux.token.a:=1] + 635222 my_demux.my_demux.token_buf._y : 1 [by my_demux.my_demux.token_a_out:=0] + 637983 my_demux.token.r : 0 [by my_demux.my_demux.token_buf._y:=1] + 651666 my_demux.my_demux.out_or._y : 1 [by my_demux.token.r:=0] + 651667 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1] + 651667 my_demux.token.a : 0 + 651667 my_demux.my_demux.out1_t_buf_func[1].n1 : 0 + 651667 my_demux.my_demux.out1_t_buf_func[0].n1 : 0 + 651668 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0] + 651689 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0] + 651884 my_demux.my_demux.token_a_out : 1 [by my_demux.token.a:=0] + 653249 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1] + 661034 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1] + 661193 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[1].y:=0] + 680869 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1] + 682156 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0] + 684388 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1] + 684388 my_demux.my_demux.c_buf_tk.a : 0 + 684533 my_demux.my_demux.c_buf_tk._y : 1 [by my_demux.my_demux.c_buf_tk.a:=0] + 687220 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.c_buf_tk.a:=0] + 687221 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1] + 690887 my_demux.my_demux._c_tk_buf : 0 [by my_demux.my_demux.c_buf_tk._y:=1] + 726505 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._c_v:=0] + 726667 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1] + 734036 my_demux.my_demux.inack_ctl._y : 1 [by my_demux.my_demux._in_c_v_:=0] + 734050 my_demux.in.a : 0 [by my_demux.my_demux.inack_ctl._y:=1] + 734057 my_demux.my_demux._en : 1 [by my_demux.in.a:=0] + 734217 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1] + 734218 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0] + 755614 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1] + 755615 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0] diff --git a/test/unit_tests/demux_td_2_SIGN/run/test.prs b/test/unit_tests/demux_td_2_SIGN/run/test.prs new file mode 100644 index 0000000..3f310c7 --- /dev/null +++ b/test/unit_tests/demux_td_2_SIGN/run/test.prs @@ -0,0 +1,408 @@ += "GND" "GND" += "Vdd" "Vdd" += "Reset" "Reset" +"Reset"->"my_demux._reset_B"- +~("Reset")->"my_demux._reset_B"+ += "my_demux._reset_B" "my_demux.my_demux.reset_B" += "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t" += "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t" += "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t" += "my_demux.cond.v" "my_demux.my_demux.cond.v" += "my_demux.cond.a" "my_demux.my_demux.cond.a" += "my_demux.cond.d.d[0].f" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].t" "my_demux.my_demux.cond.d.d[0].t" += "my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].d[0]" += "my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].d[1]" += "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f" += "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t" += "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t" += "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t" += "my_demux.out1.v" "my_demux.my_demux.out1.v" += "my_demux.out1.a" "my_demux.my_demux.out1.a" += "my_demux.out1.d.d[0].f" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].t" "my_demux.my_demux.out1.d.d[0].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].d[0]" += "my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].d[1]" += "my_demux.out1.d.d[1].f" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].t" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].d[0]" += "my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].d[1]" += "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f" += "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t" += "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f" += "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t" +~"my_demux.my_demux.token_buf.c1"&~"my_demux.my_demux.token_buf.c2"|~"my_demux.my_demux.token_buf.pr_B"->"my_demux.my_demux.token_buf._y"+ +"my_demux.my_demux.token_buf.c1"&"my_demux.my_demux.token_buf.c2"&"my_demux.my_demux.token_buf.n1"&"my_demux.my_demux.token_buf.n2"&"my_demux.my_demux.token_buf.sr_B"->"my_demux.my_demux.token_buf._y"- +"my_demux.my_demux.token_buf._y"->"my_demux.my_demux.token_buf.y"- +~("my_demux.my_demux.token_buf._y")->"my_demux.my_demux.token_buf.y"+ +"my_demux.my_demux.out1_a_B_buf_f.buf1.a"->"my_demux.my_demux.out1_a_B_buf_f.buf1._y"- +~("my_demux.my_demux.out1_a_B_buf_f.buf1.a")->"my_demux.my_demux.out1_a_B_buf_f.buf1._y"+ +"my_demux.my_demux.out1_a_B_buf_f.buf1._y"->"my_demux.my_demux.out1_a_B_buf_f.buf1.y"- +~("my_demux.my_demux.out1_a_B_buf_f.buf1._y")->"my_demux.my_demux.out1_a_B_buf_f.buf1.y"+ += "my_demux.my_demux.out1_a_B_buf_f.supply.vdd" "my_demux.my_demux.out1_a_B_buf_f.buf1.vdd" += "my_demux.my_demux.out1_a_B_buf_f.supply.vss" "my_demux.my_demux.out1_a_B_buf_f.buf1.vss" += "my_demux.my_demux.out1_a_B_buf_f.out[0]" "my_demux.my_demux.out1_a_B_buf_f.out[1]" += "my_demux.my_demux.out1_a_B_buf_f.out[0]" "my_demux.my_demux.out1_a_B_buf_f.buf1.y" += "my_demux.my_demux.out1_a_B_buf_f.in" "my_demux.my_demux.out1_a_B_buf_f.buf1.a" +~"my_demux.my_demux.inack_ctl.c1"&~"my_demux.my_demux.inack_ctl.c2"&~"my_demux.my_demux.inack_ctl.c3"|~"my_demux.my_demux.inack_ctl.pr_B"->"my_demux.my_demux.inack_ctl._y"+ +"my_demux.my_demux.inack_ctl.c1"&"my_demux.my_demux.inack_ctl.c2"&"my_demux.my_demux.inack_ctl.c3"&"my_demux.my_demux.inack_ctl.sr_B"->"my_demux.my_demux.inack_ctl._y"- +"my_demux.my_demux.inack_ctl._y"->"my_demux.my_demux.inack_ctl.y"- +~("my_demux.my_demux.inack_ctl._y")->"my_demux.my_demux.inack_ctl.y"+ +"my_demux.my_demux.reset_bufarray.buf1.a"->"my_demux.my_demux.reset_bufarray.buf1._y"- +~("my_demux.my_demux.reset_bufarray.buf1.a")->"my_demux.my_demux.reset_bufarray.buf1._y"+ +"my_demux.my_demux.reset_bufarray.buf1._y"->"my_demux.my_demux.reset_bufarray.buf1.y"- +~("my_demux.my_demux.reset_bufarray.buf1._y")->"my_demux.my_demux.reset_bufarray.buf1.y"+ += "my_demux.my_demux.reset_bufarray.supply.vdd" "my_demux.my_demux.reset_bufarray.buf1.vdd" += "my_demux.my_demux.reset_bufarray.supply.vss" "my_demux.my_demux.reset_bufarray.buf1.vss" += "my_demux.my_demux.reset_bufarray.out[0]" "my_demux.my_demux.reset_bufarray.out[1]" += "my_demux.my_demux.reset_bufarray.out[0]" "my_demux.my_demux.reset_bufarray.buf1.y" += "my_demux.my_demux.reset_bufarray.in" "my_demux.my_demux.reset_bufarray.buf1.a" += "my_demux.my_demux._c_v" "my_demux.my_demux.c_el.c1" += "my_demux.my_demux._c_v" "my_demux.my_demux.c_f_c_t_or.y" +"my_demux.my_demux.reset_buf_token.a"->"my_demux.my_demux.reset_buf_token._y"- +~("my_demux.my_demux.reset_buf_token.a")->"my_demux.my_demux.reset_buf_token._y"+ +"my_demux.my_demux.reset_buf_token._y"->"my_demux.my_demux.reset_buf_token.y"- +~("my_demux.my_demux.reset_buf_token._y")->"my_demux.my_demux.reset_buf_token.y"+ += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.c_buf_d.out[0]" += "my_demux.my_demux._c_d_buf[1]" "my_demux.my_demux.c_buf_d.out[1]" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_t_buf_func[1].n2" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_f_buf_func[1].n2" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_t_buf_func[0].n2" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_f_buf_func[0].n2" += "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux._c_d_buf[1]" += "my_demux.my_demux._en" "my_demux.my_demux.token_buf.c1" += "my_demux.my_demux._en" "my_demux.my_demux.out1_en_buf_f.in" += "my_demux.my_demux._en" "my_demux.my_demux.out1_en_buf_t.in" += "my_demux.my_demux._en" "my_demux.my_demux.en_ctl.y" += "my_demux.my_demux._en" "my_demux.my_demux.inack_ctl.c1" += "my_demux.my_demux.token_a_out" "my_demux.my_demux.token_buf.c2" += "my_demux.my_demux.token_a_out" "my_demux.my_demux.outt_a_inv.y" += "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_B_buf_t.in" += "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_B_buf_f.in" += "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_inv.y" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t" += "my_demux.my_demux.in.d.d[0].f" "my_demux.my_demux.vc.in.d[0].f" += "my_demux.my_demux.in.d.d[0].t" "my_demux.my_demux.vc.in.d[0].t" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].d[0]" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].d[1]" += "my_demux.my_demux.in.d.d[1].f" "my_demux.my_demux.vc.in.d[1].f" += "my_demux.my_demux.in.d.d[1].t" "my_demux.my_demux.vc.in.d[1].t" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].d[0]" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].d[1]" += "my_demux.my_demux.in.a" "my_demux.my_demux.en_ctl.c1" += "my_demux.my_demux.in.a" "my_demux.my_demux.inack_ctl.y" += "my_demux.my_demux.in.v" "my_demux.my_demux.in_v_buf.y" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.out1_f_buf_func[1].n1" += "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.out1_t_buf_func[1].n1" += "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.out1_f_buf_func[0].n1" += "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.out1_t_buf_func[0].n1" += "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t" +"my_demux.my_demux.out1_en_buf_t.buf1.a"->"my_demux.my_demux.out1_en_buf_t.buf1._y"- +~("my_demux.my_demux.out1_en_buf_t.buf1.a")->"my_demux.my_demux.out1_en_buf_t.buf1._y"+ +"my_demux.my_demux.out1_en_buf_t.buf1._y"->"my_demux.my_demux.out1_en_buf_t.buf1.y"- +~("my_demux.my_demux.out1_en_buf_t.buf1._y")->"my_demux.my_demux.out1_en_buf_t.buf1.y"+ += "my_demux.my_demux.out1_en_buf_t.supply.vdd" "my_demux.my_demux.out1_en_buf_t.buf1.vdd" += "my_demux.my_demux.out1_en_buf_t.supply.vss" "my_demux.my_demux.out1_en_buf_t.buf1.vss" += "my_demux.my_demux.out1_en_buf_t.out[0]" "my_demux.my_demux.out1_en_buf_t.out[1]" += "my_demux.my_demux.out1_en_buf_t.out[0]" "my_demux.my_demux.out1_en_buf_t.buf1.y" += "my_demux.my_demux.out1_en_buf_t.in" "my_demux.my_demux.out1_en_buf_t.buf1.a" +"my_demux.my_demux.out_or.a"|"my_demux.my_demux.out_or.b"->"my_demux.my_demux.out_or._y"- +~("my_demux.my_demux.out_or.a"|"my_demux.my_demux.out_or.b")->"my_demux.my_demux.out_or._y"+ +"my_demux.my_demux.out_or._y"->"my_demux.my_demux.out_or.y"- +~("my_demux.my_demux.out_or._y")->"my_demux.my_demux.out_or.y"+ += "my_demux.my_demux._in_c_v_" "my_demux.my_demux.c_el.y" += "my_demux.my_demux._in_c_v_" "my_demux.my_demux.inack_ctl.c2" +"my_demux.my_demux.reset_buf.a"->"my_demux.my_demux.reset_buf._y"- +~("my_demux.my_demux.reset_buf.a")->"my_demux.my_demux.reset_buf._y"+ +"my_demux.my_demux.reset_buf._y"->"my_demux.my_demux.reset_buf.y"- +~("my_demux.my_demux.reset_buf._y")->"my_demux.my_demux.reset_buf.y"+ += "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_a_B_buf_f.out[0]" += "my_demux.my_demux._out1_a_BX_t[1]" "my_demux.my_demux.out1_a_B_buf_f.out[1]" += "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_t_buf_func[1].c2" += "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_t_buf_func[0].c2" += "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux._out1_a_BX_t[1]" += "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_bufarray.in" += "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_buf_token.a" += "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_buf.y" += "my_demux.my_demux._reset_BX" "my_demux.my_demux.inack_ctl.sr_B" += "my_demux.my_demux._reset_BX" "my_demux.my_demux.inack_ctl.pr_B" += "my_demux.my_demux.reset_B" "my_demux.my_demux.reset_buf.a" +"my_demux.my_demux.c_buf_tk.a"->"my_demux.my_demux.c_buf_tk._y"- +~("my_demux.my_demux.c_buf_tk.a")->"my_demux.my_demux.c_buf_tk._y"+ +"my_demux.my_demux.c_buf_tk._y"->"my_demux.my_demux.c_buf_tk.y"- +~("my_demux.my_demux.c_buf_tk._y")->"my_demux.my_demux.c_buf_tk.y"+ += "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_en_buf_f.out[0]" += "my_demux.my_demux._en1_X_f[1]" "my_demux.my_demux.out1_en_buf_f.out[1]" += "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_f_buf_func[1].c1" += "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_f_buf_func[0].c1" += "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux._en1_X_f[1]" += "my_demux.my_demux._out_v" "my_demux.my_demux.en_ctl.p1" += "my_demux.my_demux._out_v" "my_demux.my_demux.inack_ctl.c3" += "my_demux.my_demux._out_v" "my_demux.my_demux.out_or.y" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.reset_bufarray.out[0]" += "my_demux.my_demux._reset_BXX[1]" "my_demux.my_demux.reset_bufarray.out[1]" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[1].sr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[1].pr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[1].sr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[1].pr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[0].sr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[0].pr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[0].sr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[0].pr_B" += "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux._reset_BXX[1]" +"my_demux.my_demux.out1_en_buf_f.buf1.a"->"my_demux.my_demux.out1_en_buf_f.buf1._y"- +~("my_demux.my_demux.out1_en_buf_f.buf1.a")->"my_demux.my_demux.out1_en_buf_f.buf1._y"+ +"my_demux.my_demux.out1_en_buf_f.buf1._y"->"my_demux.my_demux.out1_en_buf_f.buf1.y"- +~("my_demux.my_demux.out1_en_buf_f.buf1._y")->"my_demux.my_demux.out1_en_buf_f.buf1.y"+ += "my_demux.my_demux.out1_en_buf_f.supply.vdd" "my_demux.my_demux.out1_en_buf_f.buf1.vdd" += "my_demux.my_demux.out1_en_buf_f.supply.vss" "my_demux.my_demux.out1_en_buf_f.buf1.vss" += "my_demux.my_demux.out1_en_buf_f.out[0]" "my_demux.my_demux.out1_en_buf_f.out[1]" += "my_demux.my_demux.out1_en_buf_f.out[0]" "my_demux.my_demux.out1_en_buf_f.buf1.y" += "my_demux.my_demux.out1_en_buf_f.in" "my_demux.my_demux.out1_en_buf_f.buf1.a" += "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_a_B_buf_t.out[0]" += "my_demux.my_demux._out1_a_BX_f[1]" "my_demux.my_demux.out1_a_B_buf_t.out[1]" += "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_f_buf_func[1].c2" += "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_f_buf_func[0].c2" += "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux._out1_a_BX_f[1]" +~"my_demux.my_demux.c_el.c1"&~"my_demux.my_demux.c_el.c2"->"my_demux.my_demux.c_el._y"+ +"my_demux.my_demux.c_el.c1"&"my_demux.my_demux.c_el.c2"->"my_demux.my_demux.c_el._y"- +"my_demux.my_demux.c_el._y"->"my_demux.my_demux.c_el.y"- +~("my_demux.my_demux.c_el._y")->"my_demux.my_demux.c_el.y"+ += "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_en_buf_t.out[0]" += "my_demux.my_demux._en1_X_t[1]" "my_demux.my_demux.out1_en_buf_t.out[1]" += "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_t_buf_func[1].c1" += "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_t_buf_func[0].c1" += "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux._en1_X_t[1]" += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t" += "my_demux.my_demux.out1.a" "my_demux.my_demux.out1_a_inv.a" += "my_demux.my_demux.out1.v" "my_demux.my_demux.out_or.a" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1_f_buf_func[1].y" += "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1_t_buf_func[1].y" += "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t" += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1_f_buf_func[0].y" += "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1_t_buf_func[0].y" += "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t" +"my_demux.my_demux.c_f_c_t_or.a"|"my_demux.my_demux.c_f_c_t_or.b"->"my_demux.my_demux.c_f_c_t_or._y"- +~("my_demux.my_demux.c_f_c_t_or.a"|"my_demux.my_demux.c_f_c_t_or.b")->"my_demux.my_demux.c_f_c_t_or._y"+ +"my_demux.my_demux.c_f_c_t_or._y"->"my_demux.my_demux.c_f_c_t_or.y"- +~("my_demux.my_demux.c_f_c_t_or._y")->"my_demux.my_demux.c_f_c_t_or.y"+ +"my_demux.my_demux.in_v_buf.a"->"my_demux.my_demux.in_v_buf._y"- +~("my_demux.my_demux.in_v_buf.a")->"my_demux.my_demux.in_v_buf._y"+ +"my_demux.my_demux.in_v_buf._y"->"my_demux.my_demux.in_v_buf.y"- +~("my_demux.my_demux.in_v_buf._y")->"my_demux.my_demux.in_v_buf.y"+ +"my_demux.my_demux.out1_a_inv.a"->"my_demux.my_demux.out1_a_inv.y"- +~("my_demux.my_demux.out1_a_inv.a")->"my_demux.my_demux.out1_a_inv.y"+ += "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token.r" += "my_demux.my_demux.token.a" "my_demux.my_demux.outt_a_inv.a" += "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token_buf.y" += "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.out_or.b" += "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token.r" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_en_buf_f.supply.vss" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_en_buf_f.supply.vdd" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_en_buf_t.supply.vss" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_en_buf_t.supply.vdd" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.vc.supply.vss" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.vc.supply.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.token_buf.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_t_buf_func[1].vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_f_buf_func[1].vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_t_buf_func[0].vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_f_buf_func[0].vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.in_v_buf.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.c_el.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.c_f_c_t_or.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.reset_buf_token.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.reset_buf.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.en_ctl.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.inack_ctl.vdd" += "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out_or.vdd" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.token_buf.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_t_buf_func[1].vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_f_buf_func[1].vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_t_buf_func[0].vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_f_buf_func[0].vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.in_v_buf.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.c_el.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.c_f_c_t_or.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.reset_buf_token.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.reset_buf.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.en_ctl.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.inack_ctl.vss" += "my_demux.my_demux.supply.vss" "my_demux.my_demux.out_or.vss" +~"my_demux.my_demux.vc.myctree.C2Els[0].c1"&~"my_demux.my_demux.vc.myctree.C2Els[0].c2"->"my_demux.my_demux.vc.myctree.C2Els[0]._y"+ +"my_demux.my_demux.vc.myctree.C2Els[0].c1"&"my_demux.my_demux.vc.myctree.C2Els[0].c2"->"my_demux.my_demux.vc.myctree.C2Els[0]._y"- +"my_demux.my_demux.vc.myctree.C2Els[0]._y"->"my_demux.my_demux.vc.myctree.C2Els[0].y"- +~("my_demux.my_demux.vc.myctree.C2Els[0]._y")->"my_demux.my_demux.vc.myctree.C2Els[0].y"+ += "my_demux.my_demux.vc.myctree.supply.vdd" "my_demux.my_demux.vc.myctree.C2Els[0].vdd" += "my_demux.my_demux.vc.myctree.supply.vss" "my_demux.my_demux.vc.myctree.C2Els[0].vss" += "my_demux.my_demux.vc.myctree.in[0]" "my_demux.my_demux.vc.myctree.C2Els[0].c1" += "my_demux.my_demux.vc.myctree.in[0]" "my_demux.my_demux.vc.myctree.tmp[0]" += "my_demux.my_demux.vc.myctree.in[1]" "my_demux.my_demux.vc.myctree.C2Els[0].c2" += "my_demux.my_demux.vc.myctree.in[1]" "my_demux.my_demux.vc.myctree.tmp[1]" += "my_demux.my_demux.vc.myctree.out" "my_demux.my_demux.vc.myctree.C2Els[0].y" += "my_demux.my_demux.vc.myctree.out" "my_demux.my_demux.vc.myctree.tmp[2]" +"my_demux.my_demux.vc.OR2_tf[0].a"|"my_demux.my_demux.vc.OR2_tf[0].b"->"my_demux.my_demux.vc.OR2_tf[0]._y"- +~("my_demux.my_demux.vc.OR2_tf[0].a"|"my_demux.my_demux.vc.OR2_tf[0].b")->"my_demux.my_demux.vc.OR2_tf[0]._y"+ +"my_demux.my_demux.vc.OR2_tf[0]._y"->"my_demux.my_demux.vc.OR2_tf[0].y"- +~("my_demux.my_demux.vc.OR2_tf[0]._y")->"my_demux.my_demux.vc.OR2_tf[0].y"+ +"my_demux.my_demux.vc.OR2_tf[1].a"|"my_demux.my_demux.vc.OR2_tf[1].b"->"my_demux.my_demux.vc.OR2_tf[1]._y"- +~("my_demux.my_demux.vc.OR2_tf[1].a"|"my_demux.my_demux.vc.OR2_tf[1].b")->"my_demux.my_demux.vc.OR2_tf[1]._y"+ +"my_demux.my_demux.vc.OR2_tf[1]._y"->"my_demux.my_demux.vc.OR2_tf[1].y"- +~("my_demux.my_demux.vc.OR2_tf[1]._y")->"my_demux.my_demux.vc.OR2_tf[1].y"+ += "my_demux.my_demux.vc.OR2_tf[1].y" "my_demux.my_demux.vc.myctree.in[1]" += "my_demux.my_demux.vc.OR2_tf[0].y" "my_demux.my_demux.vc.myctree.in[0]" += "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.myctree.supply.vss" += "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.myctree.supply.vdd" += "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.OR2_tf[1].vdd" += "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.OR2_tf[0].vdd" += "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.OR2_tf[1].vss" += "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.OR2_tf[0].vss" += "my_demux.my_demux.vc.out" "my_demux.my_demux.vc.myctree.out" += "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f" += "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t" += "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f" += "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t" += "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f" += "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t" += "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f" += "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t" += "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.OR2_tf[1].b" += "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f" += "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.OR2_tf[1].a" += "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t" += "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.OR2_tf[0].b" += "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f" += "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.OR2_tf[0].a" += "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t" +"my_demux.my_demux.out1_a_B_buf_t.buf1.a"->"my_demux.my_demux.out1_a_B_buf_t.buf1._y"- +~("my_demux.my_demux.out1_a_B_buf_t.buf1.a")->"my_demux.my_demux.out1_a_B_buf_t.buf1._y"+ +"my_demux.my_demux.out1_a_B_buf_t.buf1._y"->"my_demux.my_demux.out1_a_B_buf_t.buf1.y"- +~("my_demux.my_demux.out1_a_B_buf_t.buf1._y")->"my_demux.my_demux.out1_a_B_buf_t.buf1.y"+ += "my_demux.my_demux.out1_a_B_buf_t.supply.vdd" "my_demux.my_demux.out1_a_B_buf_t.buf1.vdd" += "my_demux.my_demux.out1_a_B_buf_t.supply.vss" "my_demux.my_demux.out1_a_B_buf_t.buf1.vss" += "my_demux.my_demux.out1_a_B_buf_t.out[0]" "my_demux.my_demux.out1_a_B_buf_t.out[1]" += "my_demux.my_demux.out1_a_B_buf_t.out[0]" "my_demux.my_demux.out1_a_B_buf_t.buf1.y" += "my_demux.my_demux.out1_a_B_buf_t.in" "my_demux.my_demux.out1_a_B_buf_t.buf1.a" +~"my_demux.my_demux.en_ctl.p1"&~"my_demux.my_demux.en_ctl.c1"->"my_demux.my_demux.en_ctl.y"+ +"my_demux.my_demux.en_ctl.c1"->"my_demux.my_demux.en_ctl.y"- += "my_demux.my_demux._reset_BXt" "my_demux.my_demux.token_buf.sr_B" += "my_demux.my_demux._reset_BXt" "my_demux.my_demux.token_buf.pr_B" += "my_demux.my_demux._reset_BXt" "my_demux.my_demux.reset_buf_token.y" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.c_buf_d.in" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.c_f_c_t_or.b" += "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.c_buf_tk.a" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.c_f_c_t_or.a" += "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t" +~"my_demux.my_demux.out1_f_buf_func[0].c1"&~"my_demux.my_demux.out1_f_buf_func[0].c2"|~"my_demux.my_demux.out1_f_buf_func[0].pr_B"->"my_demux.my_demux.out1_f_buf_func[0]._y"+ +"my_demux.my_demux.out1_f_buf_func[0].c1"&"my_demux.my_demux.out1_f_buf_func[0].c2"&"my_demux.my_demux.out1_f_buf_func[0].n1"&"my_demux.my_demux.out1_f_buf_func[0].n2"&"my_demux.my_demux.out1_f_buf_func[0].sr_B"->"my_demux.my_demux.out1_f_buf_func[0]._y"- +"my_demux.my_demux.out1_f_buf_func[0]._y"->"my_demux.my_demux.out1_f_buf_func[0].y"- +~("my_demux.my_demux.out1_f_buf_func[0]._y")->"my_demux.my_demux.out1_f_buf_func[0].y"+ +~"my_demux.my_demux.out1_f_buf_func[1].c1"&~"my_demux.my_demux.out1_f_buf_func[1].c2"|~"my_demux.my_demux.out1_f_buf_func[1].pr_B"->"my_demux.my_demux.out1_f_buf_func[1]._y"+ +"my_demux.my_demux.out1_f_buf_func[1].c1"&"my_demux.my_demux.out1_f_buf_func[1].c2"&"my_demux.my_demux.out1_f_buf_func[1].n1"&"my_demux.my_demux.out1_f_buf_func[1].n2"&"my_demux.my_demux.out1_f_buf_func[1].sr_B"->"my_demux.my_demux.out1_f_buf_func[1]._y"- +"my_demux.my_demux.out1_f_buf_func[1]._y"->"my_demux.my_demux.out1_f_buf_func[1].y"- +~("my_demux.my_demux.out1_f_buf_func[1]._y")->"my_demux.my_demux.out1_f_buf_func[1].y"+ += "my_demux.my_demux._in_v" "my_demux.my_demux.token_buf.n2" += "my_demux.my_demux._in_v" "my_demux.my_demux.in_v_buf.a" += "my_demux.my_demux._in_v" "my_demux.my_demux.c_el.c2" += "my_demux.my_demux._in_v" "my_demux.my_demux.vc.out" +~"my_demux.my_demux.out1_t_buf_func[0].c1"&~"my_demux.my_demux.out1_t_buf_func[0].c2"|~"my_demux.my_demux.out1_t_buf_func[0].pr_B"->"my_demux.my_demux.out1_t_buf_func[0]._y"+ +"my_demux.my_demux.out1_t_buf_func[0].c1"&"my_demux.my_demux.out1_t_buf_func[0].c2"&"my_demux.my_demux.out1_t_buf_func[0].n1"&"my_demux.my_demux.out1_t_buf_func[0].n2"&"my_demux.my_demux.out1_t_buf_func[0].sr_B"->"my_demux.my_demux.out1_t_buf_func[0]._y"- +"my_demux.my_demux.out1_t_buf_func[0]._y"->"my_demux.my_demux.out1_t_buf_func[0].y"- +~("my_demux.my_demux.out1_t_buf_func[0]._y")->"my_demux.my_demux.out1_t_buf_func[0].y"+ +~"my_demux.my_demux.out1_t_buf_func[1].c1"&~"my_demux.my_demux.out1_t_buf_func[1].c2"|~"my_demux.my_demux.out1_t_buf_func[1].pr_B"->"my_demux.my_demux.out1_t_buf_func[1]._y"+ +"my_demux.my_demux.out1_t_buf_func[1].c1"&"my_demux.my_demux.out1_t_buf_func[1].c2"&"my_demux.my_demux.out1_t_buf_func[1].n1"&"my_demux.my_demux.out1_t_buf_func[1].n2"&"my_demux.my_demux.out1_t_buf_func[1].sr_B"->"my_demux.my_demux.out1_t_buf_func[1]._y"- +"my_demux.my_demux.out1_t_buf_func[1]._y"->"my_demux.my_demux.out1_t_buf_func[1].y"- +~("my_demux.my_demux.out1_t_buf_func[1]._y")->"my_demux.my_demux.out1_t_buf_func[1].y"+ +"my_demux.my_demux.c_buf_d.buf1.a"->"my_demux.my_demux.c_buf_d.buf1._y"- +~("my_demux.my_demux.c_buf_d.buf1.a")->"my_demux.my_demux.c_buf_d.buf1._y"+ +"my_demux.my_demux.c_buf_d.buf1._y"->"my_demux.my_demux.c_buf_d.buf1.y"- +~("my_demux.my_demux.c_buf_d.buf1._y")->"my_demux.my_demux.c_buf_d.buf1.y"+ += "my_demux.my_demux.c_buf_d.supply.vdd" "my_demux.my_demux.c_buf_d.buf1.vdd" += "my_demux.my_demux.c_buf_d.supply.vss" "my_demux.my_demux.c_buf_d.buf1.vss" += "my_demux.my_demux.c_buf_d.out[0]" "my_demux.my_demux.c_buf_d.out[1]" += "my_demux.my_demux.c_buf_d.out[0]" "my_demux.my_demux.c_buf_d.buf1.y" += "my_demux.my_demux.c_buf_d.in" "my_demux.my_demux.c_buf_d.buf1.a" +"my_demux.my_demux.outt_a_inv.a"->"my_demux.my_demux.outt_a_inv.y"- +~("my_demux.my_demux.outt_a_inv.a")->"my_demux.my_demux.outt_a_inv.y"+ += "my_demux.my_demux._c_tk_buf" "my_demux.my_demux.token_buf.n1" += "my_demux.my_demux._c_tk_buf" "my_demux.my_demux.c_buf_tk.y" += "Vdd" "my_demux.my_demux.supply.vdd" += "GND" "my_demux.my_demux.supply.vss" += "my_demux.token.d.d[0]" "my_demux.token.r" += "my_demux.token.r" "my_demux.my_demux.token.r" += "my_demux.token.a" "my_demux.my_demux.token.a" += "my_demux.token.d.d[0]" "my_demux.my_demux.token.d.d[0]" += "my_demux.token.d.d[0]" "my_demux.token.r" += "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t" += "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t" += "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t" += "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t" += "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t" += "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t" += "my_demux.in.v" "my_demux.my_demux.in.v" += "my_demux.in.a" "my_demux.my_demux.in.a" += "my_demux.in.d.d[0].f" "my_demux.my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].t" "my_demux.my_demux.in.d.d[0].t" += "my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].d[0]" += "my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].d[1]" += "my_demux.in.d.d[1].f" "my_demux.my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].t" "my_demux.my_demux.in.d.d[1].t" += "my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].d[0]" += "my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].d[1]" += "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f" += "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t" += "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f" += "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t" diff --git a/test/unit_tests/demux_td_2_SIGN/test.act b/test/unit_tests/demux_td_2_SIGN/test.act new file mode 100644 index 0000000..ed29557 --- /dev/null +++ b/test/unit_tests/demux_td_2_SIGN/test.act @@ -0,0 +1,50 @@ +/************************************************************************* + * + * 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 demux_2 (avMx1of2<2> in; avMx1of2<2> out1; a1of1 token; avMx1of2<1> cond){ + + demux_td<2, true> my_demux(.in=in, .out1=out1,.token = token, .cond = cond); + //Low active Reset + bool _reset_B; + prs { + Reset => _reset_B- + } + my_demux.supply.vss = GND; + my_demux.supply.vdd = Vdd; + my_demux.reset_B = _reset_B; + + +} + +demux_2 my_demux; diff --git a/test/unit_tests/demux_td_2_SIGN/test.prsim b/test/unit_tests/demux_td_2_SIGN/test.prsim new file mode 100644 index 0000000..2b7a233 --- /dev/null +++ b/test/unit_tests/demux_td_2_SIGN/test.prsim @@ -0,0 +1,84 @@ +watchall +set-qdi-channel-neutral "my_demux.in" 2 +set my_demux.out1.a 0 +set my_demux.out1.v 0 +set my_demux.token.a 0 +set my_demux.token.r 0 +set my_demux.cond.d.d[0].t 0 +set my_demux.cond.d.d[0].f 0 +cycle +system "echo 'System initialized'" + +set Reset 0 +cycle +system "echo 'System reset completed'" +status X +mode run + +assert-qdi-channel-neutral "my_demux.out1" 2 +assert-qdi-channel-neutral "my_demux.in" 2 +cycle + +system "echo 'Output neutral checked'" + +set my_demux.cond.d.d[0].t 0 +set my_demux.cond.d.d[0].f 1 +set-qdi-channel-valid "my_demux.in" 2 3 +cycle +assert my_demux.in.v 1 +assert my_demux.in.a 0 + +assert-qdi-channel-valid "my_demux.out1" 2 3 +assert my_demux.token.a 0 +set my_demux.out1.v 1 +cycle + +assert my_demux.in.a 1 +set-qdi-channel-neutral "my_demux.in" 2 +cycle +set my_demux.out1.a 1 + + +system "echo 'First Cond Checked'" + +set my_demux.out1.a 0 +set my_demux.out1.v 0 +set my_demux.token.a 0 +set my_demux.token.r 0 +set my_demux.cond.d.d[0].t 0 +set my_demux.cond.d.d[0].f 0 +cycle + +system "echo 'System initialized'" + +set my_demux.cond.d.d[0].t 1 +set my_demux.cond.d.d[0].f 0 +set-qdi-channel-valid "my_demux.in" 2 3 +cycle +assert my_demux.in.v 1 +assert my_demux.in.a 1 +assert my_demux.token.r 1 + +set my_demux.token.a 1 +set my_demux.out1.a 1 +cycle + +assert my_demux.token.r 0 + +set my_demux.token.a 0 +set-qdi-channel-neutral "my_demux.in" 2 +cycle + +assert my_demux.in.v 0 + +set my_demux.cond.d.d[0].t 0 +set my_demux.cond.d.d[0].f 0 +cycle + +assert my_demux.in.a 0 + + + + + +