From 5e4a8ee15cdf00ceee7a74f1af879739a2c20d73 Mon Sep 17 00:00:00 2001 From: alexmadison Date: Mon, 4 Apr 2022 15:13:39 +0200 Subject: [PATCH] dropper static with unit tests --- dataflow_neuro/primitives.act | 64 +- test/unit_tests/dropper_static/run/prsim.out | 383 ++++++++++ test/unit_tests/dropper_static/run/test.prs | 717 +++++++++++++++++++ test/unit_tests/dropper_static/test.act | 52 ++ test/unit_tests/dropper_static/test.prsim | 73 ++ 5 files changed, 1288 insertions(+), 1 deletion(-) create mode 100644 test/unit_tests/dropper_static/run/prsim.out create mode 100644 test/unit_tests/dropper_static/run/test.prs create mode 100644 test/unit_tests/dropper_static/test.act create mode 100644 test/unit_tests/dropper_static/test.prsim diff --git a/dataflow_neuro/primitives.act b/dataflow_neuro/primitives.act index 15f03dd..bbf92d9 100644 --- a/dataflow_neuro/primitives.act +++ b/dataflow_neuro/primitives.act @@ -398,6 +398,7 @@ namespace tmpl { 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=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); @@ -407,6 +408,10 @@ namespace tmpl { sigbuf reset_bufarray(.in=_reset_BX, .out=_reset_BXX, .supply=supply); //validity bool _in_v, _c_tk_buf, _c_d_buf[N], _c_v, cond_inv_t, cond_inv_f; + + + cond.a = in.a; + cond.v = _c_v; 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); @@ -477,6 +482,63 @@ namespace tmpl { token_buf.pr_B = _reset_BXt; token_buf.sr_B = _reset_BXt; } + + /** + * Drops a packet if condition is met, otherwise passes it on. + * This is a very lazy implementation, where the cond MUST NOT CHANGE DURING OPERATION. + * Means that this should be used in a very small set of circumstances. + * + * params: + * N: size of packet + * CONDITION_DROP: value of cond when packets are dropped. + */ + export template + defproc dropper_static (avMx1of2 in; avMx1of2 out; bool? cond; power supply) { + bool _drop, _dropB; + INV_X1 inv(.a = cond, .vss = supply.vss, .vdd = supply.vdd); + + [~CONDITION_DROP -> + _dropB = cond; + _drop = inv.y; + [] CONDITION_DROP -> + _drop = cond; + _dropB = inv.y; + ] + + bool _in_vX; + vtree vt(.in = in.d, .supply = supply); + BUF_X4 in_v_buf(.a = vt.out, .y = _in_vX, .vss = supply.vss, .vdd = supply.vdd); + AND2_X1 and2(.a = _drop, .b = _in_vX, .vss = supply.vss, .vdd = supply.vdd); + OR2_X1 or2(.a = out.a, .b = and2.y, .vss = supply.vss, .vdd = supply.vdd); + A_2C_B_X1 ack_Cel(.c1 = or2.y, .c2 = _in_vX, .y = in.a); + _in_vX = in.v; + + // Sigbufs + sigbuf sb_dropB(.in = _dropB, .supply = supply); + sigbuf sb_in_v(.in = _in_vX, .supply = supply); + + AND3_X1 and_t[N]; + AND3_X1 and_f[N]; + (i:N: + and_t[i].a = in.d.d[i].t; + and_f[i].a = in.d.d[i].f; + + and_t[i].y = out.d.d[i].t; + and_f[i].y = out.d.d[i].f; + + and_t[i].b = sb_dropB.out[i]; + and_f[i].b = sb_dropB.out[i+N]; + + and_t[i].c = sb_in_v.out[i]; + and_f[i].c = sb_in_v.out[i+N]; + + and_t[i].vss = supply.vss; + and_t[i].vdd = supply.vdd; + ) + + + + } export @@ -690,7 +752,7 @@ namespace tmpl { // Is useful for testing purposes. // But should probably remove before running innovus etc. export template - defproc delay_fifo (bool out; bool in; power supply) { + defproc delay_chain (bool out; bool in; power supply) { { N >= 0 : "What?" }; [N >= 1 -> DLY4_X1 dly[N]; diff --git a/test/unit_tests/dropper_static/run/prsim.out b/test/unit_tests/dropper_static/run/prsim.out new file mode 100644 index 0000000..498245c --- /dev/null +++ b/test/unit_tests/dropper_static/run/prsim.out @@ -0,0 +1,383 @@ +b.b.and_f[0].b b.b.vt.ct.C2Els[0]._y b.b.and_f[3].a b.b.and_f[5].y b.b.and_t[1].a b.b.vt.OR2_tf[6]._y b.b.and_t[6].a b.b.and_f[2].y b.b.and_t[0].y b.b.vt.OR2_tf[4]._y b.b.and_f[2].a b.b.and_t[5].a b.b.and_f[5].a b.b.and_t[1].y b.drop b.b.and_t[4].y b.b.vt.ct.tmp[9] b.b.and_t[4].a b.b.and_f[6].a b.b.and_f[4].y b.b.vt.ct.tmp[7] b.b.vt.ct.in[2] b.b.and_t[0]._y b.b.vt.ct.in[5] b.b.vt.ct.C2Els[1]._y b.out.a b.b.and_t[3].a b.b.and_f[6].y b.in.v b.b.and_f[1].a b.b.and_f[0].c b.b.and_t[2].a b.b.and_t[6].y b.b.and_t[0].a b.b.and_f[1]._y b.b.sb_dropB.buf4._y b.b.and_t[3]._y b.b.or2.b b.b.vt.out b.b.and_f[4].a b.b.vt.OR2_tf[2]._y b.b.and_t[3].y b.b.and_f[1].y b.b._dropB b.b.vt.ct.in[0] b.b.and_t[6]._y b.b.vt.ct.tmp[8] b.b.and_t[2].y b.in.a b.b.and_f[0].a b.b.and_f[3].y b.b.or2.y b.b.vt.ct.in[1] b.b.and_t[5]._y b.b.and_f[0].y b.b.vt.ct.in[6] b.b.and_f[5]._y b.b.and_f[4]._y b.b.and2._y b.b.vt.ct.in[4] b.b.and_f[3]._y b.b.and_t[5].y b.b.vt.ct.in[3] b.b.ack_Cel._y b.b.vt.OR2_tf[3]._y b.b.vt.OR2_tf[5]._y b.b.and_t[4]._y b.b.and_t[2]._y b.b.vt.OR2_tf[1]._y b.b.and_f[0]._y b.b.and_t[1]._y b.b.and_f[2]._y b.b.vt.ct.C3Els[0]._y b.b.vt.ct.C3Els[1]._y b.b.in_v_buf._y b.b.or2._y b.b.vt.OR2_tf[0]._y b.b.and_f[6]._y b.b.sb_in_v.buf4._y + 1 b.b.and_f[0].a : 0 + 1 b.drop : 0 + 1 b.b.and_f[1].a : 0 + 1 b.b.and_f[3].a : 0 + 1 b.out.a : 0 + 1 b.b.and_t[6].a : 0 + 1 b.b.and_t[2].a : 0 + 1 b.b.and_f[6].a : 0 + 1 b.b.and_t[5].a : 0 + 1 b.b.and_t[0].a : 0 + 1 b.b.and_f[2].a : 0 + 1 b.b.and_f[5].a : 0 + 1 b.b.and_t[4].a : 0 + 1 b.b.and_t[1].a : 0 + 1 b.b.and_f[4].a : 0 + 1 b.b.and_t[3].a : 0 + 1 b.out.v : 0 + 3 b.b._dropB : 1 [by b.drop:=0] + 5 b.b.vt.OR2_tf[4]._y : 1 [by b.b.and_f[4].a:=0] + 14 b.b.vt.OR2_tf[0]._y : 1 [by b.b.and_t[0].a:=0] + 16 b.b.vt.OR2_tf[3]._y : 1 [by b.b.and_t[3].a:=0] + 16 b.b.and_t[5]._y : 1 [by b.b.and_t[5].a:=0] + 17 b.b.and_t[1]._y : 1 [by b.b.and_t[1].a:=0] + 21 b.b.and_f[5]._y : 1 [by b.b.and_f[5].a:=0] + 40 b.b.vt.OR2_tf[6]._y : 1 [by b.b.and_f[6].a:=0] + 41 b.b.and_f[2]._y : 1 [by b.b.and_f[2].a:=0] + 48 b.b.and_t[4]._y : 1 [by b.b.and_t[4].a:=0] + 69 b.b.vt.ct.in[0] : 0 [by b.b.vt.OR2_tf[0]._y:=1] + 115 b.b.and_t[6]._y : 1 [by b.b.and_t[6].a:=0] + 116 b.b.and_t[6].y : 0 [by b.b.and_t[6]._y:=1] + 416 b.b.vt.OR2_tf[2]._y : 1 [by b.b.and_f[2].a:=0] + 417 b.b.vt.ct.in[2] : 0 [by b.b.vt.OR2_tf[2]._y:=1] + 463 b.b.and_f[2].y : 0 [by b.b.and_f[2]._y:=1] + 492 b.b.and_t[0]._y : 1 [by b.b.and_t[0].a:=0] + 1138 b.b.and_f[3]._y : 1 [by b.b.and_f[3].a:=0] + 1420 b.b.and_f[3].y : 0 [by b.b.and_f[3]._y:=1] + 1727 b.b.and_f[6]._y : 1 [by b.b.and_f[6].a:=0] + 2495 b.b.and_f[6].y : 0 [by b.b.and_f[6]._y:=1] + 4754 b.b.and_f[1]._y : 1 [by b.b.and_f[1].a:=0] + 4757 b.b.and_f[1].y : 0 [by b.b.and_f[1]._y:=1] + 6062 b.b.vt.OR2_tf[5]._y : 1 [by b.b.and_f[5].a:=0] + 7093 b.b.and_f[0]._y : 1 [by b.b.and_f[0].a:=0] + 7644 b.b.and_f[0].y : 0 [by b.b.and_f[0]._y:=1] + 9130 b.b.and_t[3]._y : 1 [by b.b.and_t[3].a:=0] + 10201 b.b.and_t[3].y : 0 [by b.b.and_t[3]._y:=1] + 10468 b.b.and2._y : 1 [by b.drop:=0] + 11422 b.b.or2.b : 0 [by b.b.and2._y:=1] + 12503 b.b.or2._y : 1 [by b.b.or2.b:=0] + 13725 b.b.and_f[4]._y : 1 [by b.b.and_f[4].a:=0] + 13866 b.b.and_t[1].y : 0 [by b.b.and_t[1]._y:=1] + 14383 b.b.vt.ct.in[6] : 0 [by b.b.vt.OR2_tf[6]._y:=1] + 14707 b.b.and_f[4].y : 0 [by b.b.and_f[4]._y:=1] + 20697 b.b.and_t[0].y : 0 [by b.b.and_t[0]._y:=1] + 24833 b.b.and_f[5].y : 0 [by b.b.and_f[5]._y:=1] + 28503 b.b.vt.ct.in[5] : 0 [by b.b.vt.OR2_tf[5]._y:=1] + 29796 b.b.and_t[5].y : 0 [by b.b.and_t[5]._y:=1] + 36936 b.b.vt.ct.in[4] : 0 [by b.b.vt.OR2_tf[4]._y:=1] + 36954 b.b.vt.ct.C3Els[0]._y : 1 [by b.b.vt.ct.in[4]:=0] + 40967 b.b.vt.ct.tmp[9] : 0 [by b.b.vt.ct.C3Els[0]._y:=1] + 43251 b.b.sb_dropB.buf4._y : 0 [by b.b._dropB:=1] + 44099 b.b.vt.OR2_tf[1]._y : 1 [by b.b.and_t[1].a:=0] + 47254 b.b.and_f[0].b : 1 [by b.b.sb_dropB.buf4._y:=0] + 48762 b.b.and_t[4].y : 0 [by b.b.and_t[4]._y:=1] + 51669 b.b.vt.ct.in[3] : 0 [by b.b.vt.OR2_tf[3]._y:=1] + 65367 b.b.and_t[2]._y : 1 [by b.b.and_t[2].a:=0] + 66973 b.b.or2.y : 0 [by b.b.or2._y:=1] + 70127 b.b.and_t[2].y : 0 [by b.b.and_t[2]._y:=1] + 73253 b.b.vt.ct.C2Els[1]._y : 1 [by b.b.vt.ct.in[3]:=0] + 73755 b.b.vt.ct.tmp[8] : 0 [by b.b.vt.ct.C2Els[1]._y:=1] + 89000 b.b.vt.ct.in[1] : 0 [by b.b.vt.OR2_tf[1]._y:=1] + 89203 b.b.vt.ct.C2Els[0]._y : 1 [by b.b.vt.ct.in[1]:=0] + 91057 b.b.vt.ct.tmp[7] : 0 [by b.b.vt.ct.C2Els[0]._y:=1] + 91196 b.b.vt.ct.C3Els[1]._y : 1 [by b.b.vt.ct.tmp[7]:=0] + 127542 b.b.vt.out : 0 [by b.b.vt.ct.C3Els[1]._y:=1] + 127611 b.b.in_v_buf._y : 1 [by b.b.vt.out:=0] + 127622 b.in.v : 0 [by b.b.in_v_buf._y:=1] + 127826 b.b.ack_Cel._y : 1 [by b.in.v:=0] + 127841 b.in.a : 0 [by b.b.ack_Cel._y:=1] + 179408 b.b.sb_in_v.buf4._y : 1 [by b.in.v:=0] + 179409 b.b.and_f[0].c : 0 [by b.b.sb_in_v.buf4._y:=1] +[] Set reset 0 + + 179409 Reset : 0 + 179446 b._reset_B : 1 [by Reset:=0] + +[] Sending in valid data + 179446 b.b.and_t[0].a : 1 + 179446 b.b.and_f[6].a : 1 + 179446 b.b.and_t[2].a : 1 + 179446 b.b.and_t[5].a : 1 + 179446 b.b.and_f[1].a : 1 + 179446 b.b.and_f[4].a : 1 + 179446 b.b.and_t[3].a : 1 + 179486 b.b.vt.OR2_tf[5]._y : 0 [by b.b.and_t[5].a:=1] + 179487 b.b.vt.ct.in[5] : 1 [by b.b.vt.OR2_tf[5]._y:=0] + 179533 b.b.vt.OR2_tf[4]._y : 0 [by b.b.and_f[4].a:=1] + 179558 b.b.vt.OR2_tf[6]._y : 0 [by b.b.and_f[6].a:=1] + 179703 b.b.vt.OR2_tf[1]._y : 0 [by b.b.and_f[1].a:=1] + 179740 b.b.vt.OR2_tf[3]._y : 0 [by b.b.and_t[3].a:=1] + 180185 b.b.vt.OR2_tf[0]._y : 0 [by b.b.and_t[0].a:=1] + 180330 b.b.vt.ct.in[3] : 1 [by b.b.vt.OR2_tf[3]._y:=0] + 180363 b.b.vt.ct.in[0] : 1 [by b.b.vt.OR2_tf[0]._y:=0] + 180912 b.b.vt.ct.in[1] : 1 [by b.b.vt.OR2_tf[1]._y:=0] + 181339 b.b.vt.ct.in[4] : 1 [by b.b.vt.OR2_tf[4]._y:=0] + 181565 b.b.vt.ct.in[6] : 1 [by b.b.vt.OR2_tf[6]._y:=0] + 181715 b.b.vt.ct.C2Els[0]._y : 0 [by b.b.vt.ct.in[1]:=1] + 181729 b.b.vt.ct.C3Els[0]._y : 0 [by b.b.vt.ct.in[6]:=1] + 181751 b.b.vt.ct.tmp[9] : 1 [by b.b.vt.ct.C3Els[0]._y:=0] + 183910 b.b.vt.ct.tmp[7] : 1 [by b.b.vt.ct.C2Els[0]._y:=0] + 226958 b.b.vt.OR2_tf[2]._y : 0 [by b.b.and_t[2].a:=1] + 227805 b.b.vt.ct.in[2] : 1 [by b.b.vt.OR2_tf[2]._y:=0] + 257933 b.b.vt.ct.C2Els[1]._y : 0 [by b.b.vt.ct.in[2]:=1] + 258066 b.b.vt.ct.tmp[8] : 1 [by b.b.vt.ct.C2Els[1]._y:=0] + 273728 b.b.vt.ct.C3Els[1]._y : 0 [by b.b.vt.ct.tmp[8]:=1] + 274087 b.b.vt.out : 1 [by b.b.vt.ct.C3Els[1]._y:=0] + 288203 b.b.in_v_buf._y : 0 [by b.b.vt.out:=1] + 288424 b.in.v : 1 [by b.b.in_v_buf._y:=0] + 288431 b.b.sb_in_v.buf4._y : 0 [by b.in.v:=1] + 288461 b.b.and_f[0].c : 1 [by b.b.sb_in_v.buf4._y:=0] + 288468 b.b.and_t[2]._y : 0 [by b.b.and_f[0].c:=1] + 288546 b.b.and_t[2].y : 1 [by b.b.and_t[2]._y:=0] + 288552 b.b.and_f[4]._y : 0 [by b.b.and_f[0].c:=1] + 288567 b.b.and_t[5]._y : 0 [by b.b.and_f[0].c:=1] + 288827 b.b.and_f[4].y : 1 [by b.b.and_f[4]._y:=0] + 290650 b.b.and_t[0]._y : 0 [by b.b.and_f[0].c:=1] + 291105 b.b.and_t[0].y : 1 [by b.b.and_t[0]._y:=0] + 291248 b.b.and_t[3]._y : 0 [by b.b.and_f[0].c:=1] + 291260 b.b.and_t[3].y : 1 [by b.b.and_t[3]._y:=0] + 295174 b.b.and_f[6]._y : 0 [by b.b.and_f[0].c:=1] + 295578 b.b.and_f[6].y : 1 [by b.b.and_f[6]._y:=0] + 307563 b.b.and_t[5].y : 1 [by b.b.and_t[5]._y:=0] + 345922 b.b.and_f[1]._y : 0 [by b.b.and_f[0].c:=1] + 345934 b.b.and_f[1].y : 1 [by b.b.and_f[1]._y:=0] + 345934 b.out.a : 1 + 351850 b.b.or2._y : 0 [by b.out.a:=1] + 356126 b.b.or2.y : 1 [by b.b.or2._y:=0] + 359025 b.b.ack_Cel._y : 0 [by b.b.or2.y:=1] + 363320 b.in.a : 1 [by b.b.ack_Cel._y:=0] +[] Removing data + 363320 b.b.and_t[0].a : 0 + 363320 b.b.and_f[6].a : 0 + 363320 b.b.and_t[2].a : 0 + 363320 b.b.and_t[5].a : 0 + 363320 b.b.and_f[1].a : 0 + 363320 b.b.and_f[4].a : 0 + 363320 b.b.and_t[3].a : 0 + 363321 b.b.vt.OR2_tf[4]._y : 1 [by b.b.and_f[4].a:=0] + 363322 b.b.vt.OR2_tf[1]._y : 1 [by b.b.and_f[1].a:=0] + 363322 b.b.and_t[0]._y : 1 [by b.b.and_t[0].a:=0] + 363331 b.b.vt.OR2_tf[3]._y : 1 [by b.b.and_t[3].a:=0] + 363347 b.b.vt.ct.in[3] : 0 [by b.b.vt.OR2_tf[3]._y:=1] + 363389 b.b.vt.ct.in[1] : 0 [by b.b.vt.OR2_tf[1]._y:=1] + 363395 b.b.vt.OR2_tf[2]._y : 1 [by b.b.and_t[2].a:=0] + 363458 b.b.vt.OR2_tf[5]._y : 1 [by b.b.and_t[5].a:=0] + 363486 b.b.and_t[2]._y : 1 [by b.b.and_t[2].a:=0] + 363665 b.b.and_t[5]._y : 1 [by b.b.and_t[5].a:=0] + 363691 b.b.vt.ct.in[4] : 0 [by b.b.vt.OR2_tf[4]._y:=1] + 363868 b.b.and_t[3]._y : 1 [by b.b.and_t[3].a:=0] + 363986 b.b.vt.ct.in[5] : 0 [by b.b.vt.OR2_tf[5]._y:=1] + 364569 b.b.and_f[6]._y : 1 [by b.b.and_f[6].a:=0] + 365921 b.b.and_t[2].y : 0 [by b.b.and_t[2]._y:=1] + 365963 b.b.and_t[0].y : 0 [by b.b.and_t[0]._y:=1] + 366819 b.b.vt.OR2_tf[6]._y : 1 [by b.b.and_f[6].a:=0] + 366821 b.b.vt.ct.in[6] : 0 [by b.b.vt.OR2_tf[6]._y:=1] + 367855 b.b.vt.OR2_tf[0]._y : 1 [by b.b.and_t[0].a:=0] + 367858 b.b.vt.ct.in[0] : 0 [by b.b.vt.OR2_tf[0]._y:=1] + 367887 b.b.vt.ct.C2Els[0]._y : 1 [by b.b.vt.ct.in[0]:=0] + 367957 b.b.vt.ct.in[2] : 0 [by b.b.vt.OR2_tf[2]._y:=1] + 368204 b.b.vt.ct.tmp[7] : 0 [by b.b.vt.ct.C2Els[0]._y:=1] + 368583 b.b.and_f[1]._y : 1 [by b.b.and_f[1].a:=0] + 368736 b.b.and_f[1].y : 0 [by b.b.and_f[1]._y:=1] + 369558 b.b.vt.ct.C2Els[1]._y : 1 [by b.b.vt.ct.in[2]:=0] + 369602 b.b.vt.ct.tmp[8] : 0 [by b.b.vt.ct.C2Els[1]._y:=1] + 377610 b.b.and_f[6].y : 0 [by b.b.and_f[6]._y:=1] + 387793 b.b.and_t[3].y : 0 [by b.b.and_t[3]._y:=1] + 390545 b.b.and_t[5].y : 0 [by b.b.and_t[5]._y:=1] + 407237 b.b.and_f[4]._y : 1 [by b.b.and_f[4].a:=0] + 409998 b.b.and_f[4].y : 0 [by b.b.and_f[4]._y:=1] + 427779 b.b.vt.ct.C3Els[0]._y : 1 [by b.b.vt.ct.in[6]:=0] + 441462 b.b.vt.ct.tmp[9] : 0 [by b.b.vt.ct.C3Els[0]._y:=1] + 441463 b.b.vt.ct.C3Els[1]._y : 1 [by b.b.vt.ct.tmp[9]:=0] + 441680 b.b.vt.out : 0 [by b.b.vt.ct.C3Els[1]._y:=1] + 441702 b.b.in_v_buf._y : 1 [by b.b.vt.out:=0] + 441703 b.in.v : 0 [by b.b.in_v_buf._y:=1] + 443284 b.b.sb_in_v.buf4._y : 1 [by b.in.v:=0] + 452629 b.b.and_f[0].c : 0 [by b.b.sb_in_v.buf4._y:=1] + 452629 b.out.a : 0 + 452788 b.b.or2._y : 1 [by b.out.a:=0] + 472464 b.b.or2.y : 0 [by b.b.or2._y:=1] + 473751 b.b.ack_Cel._y : 1 [by b.b.or2.y:=0] + 475983 b.in.a : 0 [by b.b.ack_Cel._y:=1] +[] Sending in valid data + 475983 b.b.and_t[0].a : 1 + 475983 b.b.and_f[6].a : 1 + 475983 b.b.and_t[2].a : 1 + 475983 b.b.and_t[5].a : 1 + 475983 b.b.and_f[1].a : 1 + 475983 b.b.and_f[4].a : 1 + 475983 b.b.and_f[3].a : 1 + 475984 b.b.vt.OR2_tf[5]._y : 0 [by b.b.and_t[5].a:=1] + 475998 b.b.vt.ct.in[5] : 1 [by b.b.vt.OR2_tf[5]._y:=0] + 476128 b.b.vt.OR2_tf[0]._y : 0 [by b.b.and_t[0].a:=1] + 476135 b.b.vt.ct.in[0] : 1 [by b.b.vt.OR2_tf[0]._y:=0] + 476145 b.b.vt.OR2_tf[4]._y : 0 [by b.b.and_f[4].a:=1] + 476305 b.b.vt.ct.in[4] : 1 [by b.b.vt.OR2_tf[4]._y:=0] + 478815 b.b.vt.OR2_tf[6]._y : 0 [by b.b.and_f[6].a:=1] + 482337 b.b.vt.OR2_tf[2]._y : 0 [by b.b.and_t[2].a:=1] + 482338 b.b.vt.ct.in[2] : 1 [by b.b.vt.OR2_tf[2]._y:=0] + 483352 b.b.vt.OR2_tf[3]._y : 0 [by b.b.and_f[3].a:=1] + 483353 b.b.vt.ct.in[3] : 1 [by b.b.vt.OR2_tf[3]._y:=0] + 483354 b.b.vt.ct.C2Els[1]._y : 0 [by b.b.vt.ct.in[3]:=1] + 485597 b.b.vt.ct.tmp[8] : 1 [by b.b.vt.ct.C2Els[1]._y:=0] + 500372 b.b.vt.ct.in[6] : 1 [by b.b.vt.OR2_tf[6]._y:=0] + 500559 b.b.vt.ct.C3Els[0]._y : 0 [by b.b.vt.ct.in[6]:=1] + 500560 b.b.vt.ct.tmp[9] : 1 [by b.b.vt.ct.C3Els[0]._y:=0] + 515267 b.b.vt.OR2_tf[1]._y : 0 [by b.b.and_f[1].a:=1] + 519449 b.b.vt.ct.in[1] : 1 [by b.b.vt.OR2_tf[1]._y:=0] + 554231 b.b.vt.ct.C2Els[0]._y : 0 [by b.b.vt.ct.in[1]:=1] + 554232 b.b.vt.ct.tmp[7] : 1 [by b.b.vt.ct.C2Els[0]._y:=0] + 555085 b.b.vt.ct.C3Els[1]._y : 0 [by b.b.vt.ct.tmp[7]:=1] + 555090 b.b.vt.out : 1 [by b.b.vt.ct.C3Els[1]._y:=0] + 555981 b.b.in_v_buf._y : 0 [by b.b.vt.out:=1] + 555982 b.in.v : 1 [by b.b.in_v_buf._y:=0] + 555999 b.b.sb_in_v.buf4._y : 0 [by b.in.v:=1] + 558572 b.b.and_f[0].c : 1 [by b.b.sb_in_v.buf4._y:=0] + 558573 b.b.and_t[0]._y : 0 [by b.b.and_f[0].c:=1] + 558575 b.b.and_f[1]._y : 0 [by b.b.and_f[0].c:=1] + 558614 b.b.and_t[2]._y : 0 [by b.b.and_f[0].c:=1] + 558670 b.b.and_f[1].y : 1 [by b.b.and_f[1]._y:=0] + 558949 b.b.and_t[2].y : 1 [by b.b.and_t[2]._y:=0] + 559513 b.b.and_f[3]._y : 0 [by b.b.and_f[0].c:=1] + 559521 b.b.and_f[3].y : 1 [by b.b.and_f[3]._y:=0] + 561389 b.b.and_t[5]._y : 0 [by b.b.and_f[0].c:=1] + 561423 b.b.and_t[5].y : 1 [by b.b.and_t[5]._y:=0] + 566933 b.b.and_f[6]._y : 0 [by b.b.and_f[0].c:=1] + 572306 b.b.and_t[0].y : 1 [by b.b.and_t[0]._y:=0] + 580820 b.b.and_f[6].y : 1 [by b.b.and_f[6]._y:=0] + 617534 b.b.and_f[4]._y : 0 [by b.b.and_f[0].c:=1] + 618452 b.b.and_f[4].y : 1 [by b.b.and_f[4]._y:=0] + 618452 b.out.a : 1 + 618456 b.b.or2._y : 0 [by b.out.a:=1] + 664834 b.b.or2.y : 1 [by b.b.or2._y:=0] + 667232 b.b.ack_Cel._y : 0 [by b.b.or2.y:=1] + 670447 b.in.a : 1 [by b.b.ack_Cel._y:=0] +[] Removing data + 670447 b.b.and_t[0].a : 0 + 670447 b.b.and_f[6].a : 0 + 670447 b.b.and_t[2].a : 0 + 670447 b.b.and_t[5].a : 0 + 670447 b.b.and_f[1].a : 0 + 670447 b.b.and_f[4].a : 0 + 670447 b.b.and_f[3].a : 0 + 670448 b.b.vt.OR2_tf[4]._y : 1 [by b.b.and_f[4].a:=0] + 670450 b.b.and_f[6]._y : 1 [by b.b.and_f[6].a:=0] + 670451 b.b.vt.OR2_tf[3]._y : 1 [by b.b.and_f[3].a:=0] + 670495 b.b.vt.OR2_tf[0]._y : 1 [by b.b.and_t[0].a:=0] + 670496 b.b.vt.ct.in[0] : 0 [by b.b.vt.OR2_tf[0]._y:=1] + 670520 b.b.and_f[3]._y : 1 [by b.b.and_f[3].a:=0] + 670546 b.b.and_f[6].y : 0 [by b.b.and_f[6]._y:=1] + 670587 b.b.vt.ct.in[3] : 0 [by b.b.vt.OR2_tf[3]._y:=1] + 670620 b.b.vt.OR2_tf[1]._y : 1 [by b.b.and_f[1].a:=0] + 670625 b.b.vt.OR2_tf[6]._y : 1 [by b.b.and_f[6].a:=0] + 670631 b.b.and_f[4]._y : 1 [by b.b.and_f[4].a:=0] + 670643 b.b.and_f[4].y : 0 [by b.b.and_f[4]._y:=1] + 670861 b.b.vt.ct.in[1] : 0 [by b.b.vt.OR2_tf[1]._y:=1] + 671274 b.b.and_f[1]._y : 1 [by b.b.and_f[1].a:=0] + 672303 b.b.and_f[1].y : 0 [by b.b.and_f[1]._y:=1] + 674584 b.b.vt.ct.in[6] : 0 [by b.b.vt.OR2_tf[6]._y:=1] + 674761 b.b.vt.ct.C2Els[0]._y : 1 [by b.b.vt.ct.in[1]:=0] + 674762 b.b.vt.ct.tmp[7] : 0 [by b.b.vt.ct.C2Els[0]._y:=1] + 676398 b.b.and_t[5]._y : 1 [by b.b.and_t[5].a:=0] + 676454 b.b.and_t[5].y : 0 [by b.b.and_t[5]._y:=1] + 682346 b.b.vt.OR2_tf[2]._y : 1 [by b.b.and_t[2].a:=0] + 689566 b.b.and_f[3].y : 0 [by b.b.and_f[3]._y:=1] + 691424 b.b.and_t[2]._y : 1 [by b.b.and_t[2].a:=0] + 691425 b.b.and_t[2].y : 0 [by b.b.and_t[2]._y:=1] + 707736 b.b.vt.ct.in[4] : 0 [by b.b.vt.OR2_tf[4]._y:=1] + 709932 b.b.vt.OR2_tf[5]._y : 1 [by b.b.and_t[5].a:=0] + 709969 b.b.vt.ct.in[5] : 0 [by b.b.vt.OR2_tf[5]._y:=1] + 717566 b.b.and_t[0]._y : 1 [by b.b.and_t[0].a:=0] + 717567 b.b.and_t[0].y : 0 [by b.b.and_t[0]._y:=1] + 727352 b.b.vt.ct.in[2] : 0 [by b.b.vt.OR2_tf[2]._y:=1] + 730916 b.b.vt.ct.C2Els[1]._y : 1 [by b.b.vt.ct.in[2]:=0] + 732608 b.b.vt.ct.tmp[8] : 0 [by b.b.vt.ct.C2Els[1]._y:=1] + 733344 b.b.vt.ct.C3Els[0]._y : 1 [by b.b.vt.ct.in[5]:=0] + 733357 b.b.vt.ct.tmp[9] : 0 [by b.b.vt.ct.C3Els[0]._y:=1] + 750341 b.b.vt.ct.C3Els[1]._y : 1 [by b.b.vt.ct.tmp[9]:=0] + 750698 b.b.vt.out : 0 [by b.b.vt.ct.C3Els[1]._y:=1] + 750723 b.b.in_v_buf._y : 1 [by b.b.vt.out:=0] + 750744 b.in.v : 0 [by b.b.in_v_buf._y:=1] + 750745 b.b.sb_in_v.buf4._y : 1 [by b.in.v:=0] + 760393 b.b.and_f[0].c : 0 [by b.b.sb_in_v.buf4._y:=1] + 760393 b.out.a : 0 + 760394 b.b.or2._y : 1 [by b.out.a:=0] + 760395 b.b.or2.y : 0 [by b.b.or2._y:=1] + 760556 b.b.ack_Cel._y : 1 [by b.b.or2.y:=0] + 761593 b.in.a : 0 [by b.b.ack_Cel._y:=1] +[] Enabling drop + 761593 b.drop : 1 + 761598 b.b._dropB : 0 [by b.drop:=1] + 762179 b.b.sb_dropB.buf4._y : 1 [by b.b._dropB:=0] + 762587 b.b.and_f[0].b : 0 [by b.b.sb_dropB.buf4._y:=1] +[] Sending in valid data + 762587 b.b.and_t[0].a : 1 + 762587 b.b.and_f[6].a : 1 + 762587 b.b.and_t[2].a : 1 + 762587 b.b.and_t[5].a : 1 + 762587 b.b.and_f[1].a : 1 + 762587 b.b.and_f[4].a : 1 + 762587 b.b.and_t[3].a : 1 + 762591 b.b.vt.OR2_tf[1]._y : 0 [by b.b.and_f[1].a:=1] + 762598 b.b.vt.OR2_tf[0]._y : 0 [by b.b.and_t[0].a:=1] + 762601 b.b.vt.OR2_tf[2]._y : 0 [by b.b.and_t[2].a:=1] + 762605 b.b.vt.OR2_tf[5]._y : 0 [by b.b.and_t[5].a:=1] + 762691 b.b.vt.OR2_tf[4]._y : 0 [by b.b.and_f[4].a:=1] + 762829 b.b.vt.ct.in[2] : 1 [by b.b.vt.OR2_tf[2]._y:=0] + 763448 b.b.vt.ct.in[5] : 1 [by b.b.vt.OR2_tf[5]._y:=0] + 763634 b.b.vt.OR2_tf[6]._y : 0 [by b.b.and_f[6].a:=1] + 763704 b.b.vt.ct.in[6] : 1 [by b.b.vt.OR2_tf[6]._y:=0] + 763795 b.b.vt.ct.in[1] : 1 [by b.b.vt.OR2_tf[1]._y:=0] + 764150 b.b.vt.ct.in[4] : 1 [by b.b.vt.OR2_tf[4]._y:=0] + 771053 b.b.vt.ct.in[0] : 1 [by b.b.vt.OR2_tf[0]._y:=0] + 771064 b.b.vt.ct.C2Els[0]._y : 0 [by b.b.vt.ct.in[0]:=1] + 771067 b.b.vt.ct.tmp[7] : 1 [by b.b.vt.ct.C2Els[0]._y:=0] + 794031 b.b.vt.OR2_tf[3]._y : 0 [by b.b.and_t[3].a:=1] + 794085 b.b.vt.ct.in[3] : 1 [by b.b.vt.OR2_tf[3]._y:=0] + 795233 b.b.vt.ct.C2Els[1]._y : 0 [by b.b.vt.ct.in[3]:=1] + 796394 b.b.vt.ct.tmp[8] : 1 [by b.b.vt.ct.C2Els[1]._y:=0] + 814572 b.b.vt.ct.C3Els[0]._y : 0 [by b.b.vt.ct.in[4]:=1] + 823224 b.b.vt.ct.tmp[9] : 1 [by b.b.vt.ct.C3Els[0]._y:=0] + 823305 b.b.vt.ct.C3Els[1]._y : 0 [by b.b.vt.ct.tmp[9]:=1] + 834382 b.b.vt.out : 1 [by b.b.vt.ct.C3Els[1]._y:=0] + 852365 b.b.in_v_buf._y : 0 [by b.b.vt.out:=1] + 852457 b.in.v : 1 [by b.b.in_v_buf._y:=0] + 854201 b.b.sb_in_v.buf4._y : 0 [by b.in.v:=1] + 854814 b.b.and_f[0].c : 1 [by b.b.sb_in_v.buf4._y:=0] + 860768 b.b.and2._y : 0 [by b.in.v:=1] + 874790 b.b.or2.b : 1 [by b.b.and2._y:=0] + 874835 b.b.or2._y : 0 [by b.b.or2.b:=1] + 875832 b.b.or2.y : 1 [by b.b.or2._y:=0] + 877481 b.b.ack_Cel._y : 0 [by b.b.or2.y:=1] + 878006 b.in.a : 1 [by b.b.ack_Cel._y:=0] +[] Removing data + 878006 b.b.and_t[0].a : 0 + 878006 b.b.and_f[6].a : 0 + 878006 b.b.and_t[2].a : 0 + 878006 b.b.and_t[5].a : 0 + 878006 b.b.and_f[1].a : 0 + 878006 b.b.and_f[4].a : 0 + 878006 b.b.and_t[3].a : 0 + 878008 b.b.vt.OR2_tf[4]._y : 1 [by b.b.and_f[4].a:=0] + 878013 b.b.vt.OR2_tf[2]._y : 1 [by b.b.and_t[2].a:=0] + 878014 b.b.vt.ct.in[2] : 0 [by b.b.vt.OR2_tf[2]._y:=1] + 878058 b.b.vt.OR2_tf[6]._y : 1 [by b.b.and_f[6].a:=0] + 878062 b.b.vt.ct.in[6] : 0 [by b.b.vt.OR2_tf[6]._y:=1] + 878141 b.b.vt.ct.in[4] : 0 [by b.b.vt.OR2_tf[4]._y:=1] + 878360 b.b.vt.OR2_tf[3]._y : 1 [by b.b.and_t[3].a:=0] + 878906 b.b.vt.OR2_tf[0]._y : 1 [by b.b.and_t[0].a:=0] + 878906 b.b.vt.ct.in[3] : 0 [by b.b.vt.OR2_tf[3]._y:=1] + 878907 b.b.vt.ct.C2Els[1]._y : 1 [by b.b.vt.ct.in[3]:=0] + 884473 b.b.vt.OR2_tf[1]._y : 1 [by b.b.and_f[1].a:=0] + 884552 b.b.vt.ct.in[1] : 0 [by b.b.vt.OR2_tf[1]._y:=1] + 891285 b.b.vt.ct.tmp[8] : 0 [by b.b.vt.ct.C2Els[1]._y:=1] + 893618 b.b.vt.OR2_tf[5]._y : 1 [by b.b.and_t[5].a:=0] + 896051 b.b.vt.ct.in[5] : 0 [by b.b.vt.OR2_tf[5]._y:=1] + 896139 b.b.vt.ct.C3Els[0]._y : 1 [by b.b.vt.ct.in[5]:=0] + 903921 b.b.vt.ct.tmp[9] : 0 [by b.b.vt.ct.C3Els[0]._y:=1] + 924469 b.b.vt.ct.in[0] : 0 [by b.b.vt.OR2_tf[0]._y:=1] + 952796 b.b.vt.ct.C2Els[0]._y : 1 [by b.b.vt.ct.in[0]:=0] + 952855 b.b.vt.ct.tmp[7] : 0 [by b.b.vt.ct.C2Els[0]._y:=1] + 952885 b.b.vt.ct.C3Els[1]._y : 1 [by b.b.vt.ct.tmp[7]:=0] + 954352 b.b.vt.out : 0 [by b.b.vt.ct.C3Els[1]._y:=1] + 1013856 b.b.in_v_buf._y : 1 [by b.b.vt.out:=0] + 1033240 b.in.v : 0 [by b.b.in_v_buf._y:=1] + 1033925 b.b.and2._y : 1 [by b.in.v:=0] + 1034052 b.b.or2.b : 0 [by b.b.and2._y:=1] + 1034221 b.b.or2._y : 1 [by b.b.or2.b:=0] + 1034264 b.b.or2.y : 0 [by b.b.or2._y:=1] + 1034276 b.b.ack_Cel._y : 1 [by b.b.or2.y:=0] + 1035555 b.in.a : 0 [by b.b.ack_Cel._y:=1] + 1049955 b.b.sb_in_v.buf4._y : 1 [by b.in.v:=0] + 1050188 b.b.and_f[0].c : 0 [by b.b.sb_in_v.buf4._y:=1] diff --git a/test/unit_tests/dropper_static/run/test.prs b/test/unit_tests/dropper_static/run/test.prs new file mode 100644 index 0000000..43381e9 --- /dev/null +++ b/test/unit_tests/dropper_static/run/test.prs @@ -0,0 +1,717 @@ += "GND" "GND" += "Vdd" "Vdd" += "Reset" "Reset" +"Reset"->"b._reset_B"- +~("Reset")->"b._reset_B"+ += "b.b._dropB" "b.b.sb_dropB.in" += "b.b._dropB" "b.b.inv.y" +"b.b.in_v_buf.a"->"b.b.in_v_buf._y"- +~("b.b.in_v_buf.a")->"b.b.in_v_buf._y"+ +"b.b.in_v_buf._y"->"b.b.in_v_buf.y"- +~("b.b.in_v_buf._y")->"b.b.in_v_buf.y"+ +"b.b.sb_dropB.buf4.a"->"b.b.sb_dropB.buf4._y"- +~("b.b.sb_dropB.buf4.a")->"b.b.sb_dropB.buf4._y"+ +"b.b.sb_dropB.buf4._y"->"b.b.sb_dropB.buf4.y"- +~("b.b.sb_dropB.buf4._y")->"b.b.sb_dropB.buf4.y"+ += "b.b.sb_dropB.supply.vdd" "b.b.sb_dropB.buf4.vdd" += "b.b.sb_dropB.supply.vss" "b.b.sb_dropB.buf4.vss" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[13]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[12]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[11]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[10]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[9]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[8]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[7]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[6]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[5]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[4]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[3]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[2]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.out[1]" += "b.b.sb_dropB.out[0]" "b.b.sb_dropB.buf4.y" += "b.b.sb_dropB.in" "b.b.sb_dropB.buf4.a" += "b.b.supply.vss" "b.b.sb_in_v.supply.vss" += "b.b.supply.vdd" "b.b.sb_in_v.supply.vdd" += "b.b.supply.vss" "b.b.sb_dropB.supply.vss" += "b.b.supply.vdd" "b.b.sb_dropB.supply.vdd" += "b.b.supply.vss" "b.b.vt.supply.vss" += "b.b.supply.vdd" "b.b.vt.supply.vdd" += "b.b.supply.vdd" "b.b.and_t[6].vdd" += "b.b.supply.vdd" "b.b.and_t[5].vdd" += "b.b.supply.vdd" "b.b.and_t[4].vdd" += "b.b.supply.vdd" "b.b.and_t[3].vdd" += "b.b.supply.vdd" "b.b.and_t[2].vdd" += "b.b.supply.vdd" "b.b.and_t[1].vdd" += "b.b.supply.vdd" "b.b.and_t[0].vdd" += "b.b.supply.vdd" "b.b.or2.vdd" += "b.b.supply.vdd" "b.b.and2.vdd" += "b.b.supply.vdd" "b.b.in_v_buf.vdd" += "b.b.supply.vdd" "b.b.inv.vdd" += "b.b.supply.vss" "b.b.and_t[6].vss" += "b.b.supply.vss" "b.b.and_t[5].vss" += "b.b.supply.vss" "b.b.and_t[4].vss" += "b.b.supply.vss" "b.b.and_t[3].vss" += "b.b.supply.vss" "b.b.and_t[2].vss" += "b.b.supply.vss" "b.b.and_t[1].vss" += "b.b.supply.vss" "b.b.and_t[0].vss" += "b.b.supply.vss" "b.b.or2.vss" += "b.b.supply.vss" "b.b.and2.vss" += "b.b.supply.vss" "b.b.in_v_buf.vss" += "b.b.supply.vss" "b.b.inv.vss" += "b.b.cond" "b.b.and2.a" += "b.b.cond" "b.b._drop" += "b.b.cond" "b.b.inv.a" += "b.b.out.d.d[0].d[0]" "b.b.out.d.d[0].f" += "b.b.out.d.d[0].d[1]" "b.b.out.d.d[0].t" += "b.b.out.d.d[1].d[0]" "b.b.out.d.d[1].f" += "b.b.out.d.d[1].d[1]" "b.b.out.d.d[1].t" += "b.b.out.d.d[2].d[0]" "b.b.out.d.d[2].f" += "b.b.out.d.d[2].d[1]" "b.b.out.d.d[2].t" += "b.b.out.d.d[3].d[0]" "b.b.out.d.d[3].f" += "b.b.out.d.d[3].d[1]" "b.b.out.d.d[3].t" += "b.b.out.d.d[4].d[0]" "b.b.out.d.d[4].f" += "b.b.out.d.d[4].d[1]" "b.b.out.d.d[4].t" += "b.b.out.d.d[5].d[0]" "b.b.out.d.d[5].f" += "b.b.out.d.d[5].d[1]" "b.b.out.d.d[5].t" += "b.b.out.d.d[6].d[0]" "b.b.out.d.d[6].f" += "b.b.out.d.d[6].d[1]" "b.b.out.d.d[6].t" += "b.b.out.d.d[6].d[0]" "b.b.out.d.d[6].f" += "b.b.out.d.d[6].d[1]" "b.b.out.d.d[6].t" += "b.b.out.d.d[5].d[0]" "b.b.out.d.d[5].f" += "b.b.out.d.d[5].d[1]" "b.b.out.d.d[5].t" += "b.b.out.d.d[4].d[0]" "b.b.out.d.d[4].f" += "b.b.out.d.d[4].d[1]" "b.b.out.d.d[4].t" += "b.b.out.d.d[3].d[0]" "b.b.out.d.d[3].f" += "b.b.out.d.d[3].d[1]" "b.b.out.d.d[3].t" += "b.b.out.d.d[2].d[0]" "b.b.out.d.d[2].f" += "b.b.out.d.d[2].d[1]" "b.b.out.d.d[2].t" += "b.b.out.d.d[1].d[0]" "b.b.out.d.d[1].f" += "b.b.out.d.d[1].d[1]" "b.b.out.d.d[1].t" += "b.b.out.d.d[0].d[0]" "b.b.out.d.d[0].f" += "b.b.out.d.d[0].d[1]" "b.b.out.d.d[0].t" += "b.b.out.d.d[6].d[0]" "b.b.out.d.d[6].f" += "b.b.out.d.d[6].d[1]" "b.b.out.d.d[6].t" += "b.b.out.d.d[5].d[0]" "b.b.out.d.d[5].f" += "b.b.out.d.d[5].d[1]" "b.b.out.d.d[5].t" += "b.b.out.d.d[4].d[0]" "b.b.out.d.d[4].f" += "b.b.out.d.d[4].d[1]" "b.b.out.d.d[4].t" += "b.b.out.d.d[3].d[0]" "b.b.out.d.d[3].f" += "b.b.out.d.d[3].d[1]" "b.b.out.d.d[3].t" += "b.b.out.d.d[2].d[0]" "b.b.out.d.d[2].f" += "b.b.out.d.d[2].d[1]" "b.b.out.d.d[2].t" += "b.b.out.d.d[1].d[0]" "b.b.out.d.d[1].f" += "b.b.out.d.d[1].d[1]" "b.b.out.d.d[1].t" += "b.b.out.d.d[0].d[0]" "b.b.out.d.d[0].f" += "b.b.out.d.d[0].d[1]" "b.b.out.d.d[0].t" += "b.b.out.a" "b.b.or2.a" += "b.b.out.d.d[6].d[0]" "b.b.and_f[6].y" += "b.b.out.d.d[6].d[0]" "b.b.out.d.d[6].f" += "b.b.out.d.d[6].d[1]" "b.b.and_t[6].y" += "b.b.out.d.d[6].d[1]" "b.b.out.d.d[6].t" += "b.b.out.d.d[5].d[0]" "b.b.and_f[5].y" += "b.b.out.d.d[5].d[0]" "b.b.out.d.d[5].f" += "b.b.out.d.d[5].d[1]" "b.b.and_t[5].y" += "b.b.out.d.d[5].d[1]" "b.b.out.d.d[5].t" += "b.b.out.d.d[4].d[0]" "b.b.and_f[4].y" += "b.b.out.d.d[4].d[0]" "b.b.out.d.d[4].f" += "b.b.out.d.d[4].d[1]" "b.b.and_t[4].y" += "b.b.out.d.d[4].d[1]" "b.b.out.d.d[4].t" += "b.b.out.d.d[3].d[0]" "b.b.and_f[3].y" += "b.b.out.d.d[3].d[0]" "b.b.out.d.d[3].f" += "b.b.out.d.d[3].d[1]" "b.b.and_t[3].y" += "b.b.out.d.d[3].d[1]" "b.b.out.d.d[3].t" += "b.b.out.d.d[2].d[0]" "b.b.and_f[2].y" += "b.b.out.d.d[2].d[0]" "b.b.out.d.d[2].f" += "b.b.out.d.d[2].d[1]" "b.b.and_t[2].y" += "b.b.out.d.d[2].d[1]" "b.b.out.d.d[2].t" += "b.b.out.d.d[1].d[0]" "b.b.and_f[1].y" += "b.b.out.d.d[1].d[0]" "b.b.out.d.d[1].f" += "b.b.out.d.d[1].d[1]" "b.b.and_t[1].y" += "b.b.out.d.d[1].d[1]" "b.b.out.d.d[1].t" += "b.b.out.d.d[0].d[0]" "b.b.and_f[0].y" += "b.b.out.d.d[0].d[0]" "b.b.out.d.d[0].f" += "b.b.out.d.d[0].d[1]" "b.b.and_t[0].y" += "b.b.out.d.d[0].d[1]" "b.b.out.d.d[0].t" += "b.b.in.d.d[0].d[0]" "b.b.in.d.d[0].f" += "b.b.in.d.d[0].d[1]" "b.b.in.d.d[0].t" += "b.b.in.d.d[1].d[0]" "b.b.in.d.d[1].f" += "b.b.in.d.d[1].d[1]" "b.b.in.d.d[1].t" += "b.b.in.d.d[2].d[0]" "b.b.in.d.d[2].f" += "b.b.in.d.d[2].d[1]" "b.b.in.d.d[2].t" += "b.b.in.d.d[3].d[0]" "b.b.in.d.d[3].f" += "b.b.in.d.d[3].d[1]" "b.b.in.d.d[3].t" += "b.b.in.d.d[4].d[0]" "b.b.in.d.d[4].f" += "b.b.in.d.d[4].d[1]" "b.b.in.d.d[4].t" += "b.b.in.d.d[5].d[0]" "b.b.in.d.d[5].f" += "b.b.in.d.d[5].d[1]" "b.b.in.d.d[5].t" += "b.b.in.d.d[6].d[0]" "b.b.in.d.d[6].f" += "b.b.in.d.d[6].d[1]" "b.b.in.d.d[6].t" += "b.b.in.d.d[6].d[0]" "b.b.in.d.d[6].f" += "b.b.in.d.d[6].d[1]" "b.b.in.d.d[6].t" += "b.b.in.d.d[5].d[0]" "b.b.in.d.d[5].f" += "b.b.in.d.d[5].d[1]" "b.b.in.d.d[5].t" += "b.b.in.d.d[4].d[0]" "b.b.in.d.d[4].f" += "b.b.in.d.d[4].d[1]" "b.b.in.d.d[4].t" += "b.b.in.d.d[3].d[0]" "b.b.in.d.d[3].f" += "b.b.in.d.d[3].d[1]" "b.b.in.d.d[3].t" += "b.b.in.d.d[2].d[0]" "b.b.in.d.d[2].f" += "b.b.in.d.d[2].d[1]" "b.b.in.d.d[2].t" += "b.b.in.d.d[1].d[0]" "b.b.in.d.d[1].f" += "b.b.in.d.d[1].d[1]" "b.b.in.d.d[1].t" += "b.b.in.d.d[0].d[0]" "b.b.in.d.d[0].f" += "b.b.in.d.d[0].d[1]" "b.b.in.d.d[0].t" += "b.b.in.d.d[6].d[0]" "b.b.in.d.d[6].f" += "b.b.in.d.d[6].d[1]" "b.b.in.d.d[6].t" += "b.b.in.d.d[5].d[0]" "b.b.in.d.d[5].f" += "b.b.in.d.d[5].d[1]" "b.b.in.d.d[5].t" += "b.b.in.d.d[4].d[0]" "b.b.in.d.d[4].f" += "b.b.in.d.d[4].d[1]" "b.b.in.d.d[4].t" += "b.b.in.d.d[3].d[0]" "b.b.in.d.d[3].f" += "b.b.in.d.d[3].d[1]" "b.b.in.d.d[3].t" += "b.b.in.d.d[2].d[0]" "b.b.in.d.d[2].f" += "b.b.in.d.d[2].d[1]" "b.b.in.d.d[2].t" += "b.b.in.d.d[1].d[0]" "b.b.in.d.d[1].f" += "b.b.in.d.d[1].d[1]" "b.b.in.d.d[1].t" += "b.b.in.d.d[0].d[0]" "b.b.in.d.d[0].f" += "b.b.in.d.d[0].d[1]" "b.b.in.d.d[0].t" += "b.b.in.d.d[0].f" "b.b.vt.in.d[0].f" += "b.b.in.d.d[0].t" "b.b.vt.in.d[0].t" += "b.b.in.d.d[0].d[0]" "b.b.vt.in.d[0].d[0]" += "b.b.in.d.d[0].d[1]" "b.b.vt.in.d[0].d[1]" += "b.b.in.d.d[1].f" "b.b.vt.in.d[1].f" += "b.b.in.d.d[1].t" "b.b.vt.in.d[1].t" += "b.b.in.d.d[1].d[0]" "b.b.vt.in.d[1].d[0]" += "b.b.in.d.d[1].d[1]" "b.b.vt.in.d[1].d[1]" += "b.b.in.d.d[2].f" "b.b.vt.in.d[2].f" += "b.b.in.d.d[2].t" "b.b.vt.in.d[2].t" += "b.b.in.d.d[2].d[0]" "b.b.vt.in.d[2].d[0]" += "b.b.in.d.d[2].d[1]" "b.b.vt.in.d[2].d[1]" += "b.b.in.d.d[3].f" "b.b.vt.in.d[3].f" += "b.b.in.d.d[3].t" "b.b.vt.in.d[3].t" += "b.b.in.d.d[3].d[0]" "b.b.vt.in.d[3].d[0]" += "b.b.in.d.d[3].d[1]" "b.b.vt.in.d[3].d[1]" += "b.b.in.d.d[4].f" "b.b.vt.in.d[4].f" += "b.b.in.d.d[4].t" "b.b.vt.in.d[4].t" += "b.b.in.d.d[4].d[0]" "b.b.vt.in.d[4].d[0]" += "b.b.in.d.d[4].d[1]" "b.b.vt.in.d[4].d[1]" += "b.b.in.d.d[5].f" "b.b.vt.in.d[5].f" += "b.b.in.d.d[5].t" "b.b.vt.in.d[5].t" += "b.b.in.d.d[5].d[0]" "b.b.vt.in.d[5].d[0]" += "b.b.in.d.d[5].d[1]" "b.b.vt.in.d[5].d[1]" += "b.b.in.d.d[6].f" "b.b.vt.in.d[6].f" += "b.b.in.d.d[6].t" "b.b.vt.in.d[6].t" += "b.b.in.d.d[6].d[0]" "b.b.vt.in.d[6].d[0]" += "b.b.in.d.d[6].d[1]" "b.b.vt.in.d[6].d[1]" += "b.b.in.a" "b.b.ack_Cel.y" += "b.b.in.v" "b.b.sb_in_v.in" += "b.b.in.v" "b.b.ack_Cel.c2" += "b.b.in.v" "b.b.and2.b" += "b.b.in.v" "b.b.in_v_buf.y" += "b.b.in.v" "b.b._in_vX" += "b.b.in.d.d[6].d[0]" "b.b.and_f[6].a" += "b.b.in.d.d[6].d[0]" "b.b.in.d.d[6].f" += "b.b.in.d.d[6].d[1]" "b.b.and_t[6].a" += "b.b.in.d.d[6].d[1]" "b.b.in.d.d[6].t" += "b.b.in.d.d[5].d[0]" "b.b.and_f[5].a" += "b.b.in.d.d[5].d[0]" "b.b.in.d.d[5].f" += "b.b.in.d.d[5].d[1]" "b.b.and_t[5].a" += "b.b.in.d.d[5].d[1]" "b.b.in.d.d[5].t" += "b.b.in.d.d[4].d[0]" "b.b.and_f[4].a" += "b.b.in.d.d[4].d[0]" "b.b.in.d.d[4].f" += "b.b.in.d.d[4].d[1]" "b.b.and_t[4].a" += "b.b.in.d.d[4].d[1]" "b.b.in.d.d[4].t" += "b.b.in.d.d[3].d[0]" "b.b.and_f[3].a" += "b.b.in.d.d[3].d[0]" "b.b.in.d.d[3].f" += "b.b.in.d.d[3].d[1]" "b.b.and_t[3].a" += "b.b.in.d.d[3].d[1]" "b.b.in.d.d[3].t" += "b.b.in.d.d[2].d[0]" "b.b.and_f[2].a" += "b.b.in.d.d[2].d[0]" "b.b.in.d.d[2].f" += "b.b.in.d.d[2].d[1]" "b.b.and_t[2].a" += "b.b.in.d.d[2].d[1]" "b.b.in.d.d[2].t" += "b.b.in.d.d[1].d[0]" "b.b.and_f[1].a" += "b.b.in.d.d[1].d[0]" "b.b.in.d.d[1].f" += "b.b.in.d.d[1].d[1]" "b.b.and_t[1].a" += "b.b.in.d.d[1].d[1]" "b.b.in.d.d[1].t" += "b.b.in.d.d[0].d[0]" "b.b.and_f[0].a" += "b.b.in.d.d[0].d[0]" "b.b.in.d.d[0].f" += "b.b.in.d.d[0].d[1]" "b.b.and_t[0].a" += "b.b.in.d.d[0].d[1]" "b.b.in.d.d[0].t" +"b.b.or2.a"|"b.b.or2.b"->"b.b.or2._y"- +~("b.b.or2.a"|"b.b.or2.b")->"b.b.or2._y"+ +"b.b.or2._y"->"b.b.or2.y"- +~("b.b.or2._y")->"b.b.or2.y"+ += "b.b.or2.y" "b.b.ack_Cel.c1" += "b.b.or2.b" "b.b.and2.y" +"b.b.and2.a"&"b.b.and2.b"->"b.b.and2._y"- +~("b.b.and2.a"&"b.b.and2.b")->"b.b.and2._y"+ +"b.b.and2._y"->"b.b.and2.y"- +~("b.b.and2._y")->"b.b.and2.y"+ +"b.b.sb_in_v.buf4.a"->"b.b.sb_in_v.buf4._y"- +~("b.b.sb_in_v.buf4.a")->"b.b.sb_in_v.buf4._y"+ +"b.b.sb_in_v.buf4._y"->"b.b.sb_in_v.buf4.y"- +~("b.b.sb_in_v.buf4._y")->"b.b.sb_in_v.buf4.y"+ += "b.b.sb_in_v.supply.vdd" "b.b.sb_in_v.buf4.vdd" += "b.b.sb_in_v.supply.vss" "b.b.sb_in_v.buf4.vss" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[13]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[12]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[11]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[10]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[9]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[8]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[7]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[6]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[5]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[4]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[3]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[2]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.out[1]" += "b.b.sb_in_v.out[0]" "b.b.sb_in_v.buf4.y" += "b.b.sb_in_v.in" "b.b.sb_in_v.buf4.a" +"b.b.and_f[0].a"&"b.b.and_f[0].b"&"b.b.and_f[0].c"->"b.b.and_f[0]._y"- +~("b.b.and_f[0].a"&"b.b.and_f[0].b"&"b.b.and_f[0].c")->"b.b.and_f[0]._y"+ +"b.b.and_f[0]._y"->"b.b.and_f[0].y"- +~("b.b.and_f[0]._y")->"b.b.and_f[0].y"+ +"b.b.and_f[1].a"&"b.b.and_f[1].b"&"b.b.and_f[1].c"->"b.b.and_f[1]._y"- +~("b.b.and_f[1].a"&"b.b.and_f[1].b"&"b.b.and_f[1].c")->"b.b.and_f[1]._y"+ +"b.b.and_f[1]._y"->"b.b.and_f[1].y"- +~("b.b.and_f[1]._y")->"b.b.and_f[1].y"+ +"b.b.and_f[2].a"&"b.b.and_f[2].b"&"b.b.and_f[2].c"->"b.b.and_f[2]._y"- +~("b.b.and_f[2].a"&"b.b.and_f[2].b"&"b.b.and_f[2].c")->"b.b.and_f[2]._y"+ +"b.b.and_f[2]._y"->"b.b.and_f[2].y"- +~("b.b.and_f[2]._y")->"b.b.and_f[2].y"+ +"b.b.and_f[3].a"&"b.b.and_f[3].b"&"b.b.and_f[3].c"->"b.b.and_f[3]._y"- +~("b.b.and_f[3].a"&"b.b.and_f[3].b"&"b.b.and_f[3].c")->"b.b.and_f[3]._y"+ +"b.b.and_f[3]._y"->"b.b.and_f[3].y"- +~("b.b.and_f[3]._y")->"b.b.and_f[3].y"+ +"b.b.and_f[4].a"&"b.b.and_f[4].b"&"b.b.and_f[4].c"->"b.b.and_f[4]._y"- +~("b.b.and_f[4].a"&"b.b.and_f[4].b"&"b.b.and_f[4].c")->"b.b.and_f[4]._y"+ +"b.b.and_f[4]._y"->"b.b.and_f[4].y"- +~("b.b.and_f[4]._y")->"b.b.and_f[4].y"+ +"b.b.and_f[5].a"&"b.b.and_f[5].b"&"b.b.and_f[5].c"->"b.b.and_f[5]._y"- +~("b.b.and_f[5].a"&"b.b.and_f[5].b"&"b.b.and_f[5].c")->"b.b.and_f[5]._y"+ +"b.b.and_f[5]._y"->"b.b.and_f[5].y"- +~("b.b.and_f[5]._y")->"b.b.and_f[5].y"+ +"b.b.and_f[6].a"&"b.b.and_f[6].b"&"b.b.and_f[6].c"->"b.b.and_f[6]._y"- +~("b.b.and_f[6].a"&"b.b.and_f[6].b"&"b.b.and_f[6].c")->"b.b.and_f[6]._y"+ +"b.b.and_f[6]._y"->"b.b.and_f[6].y"- +~("b.b.and_f[6]._y")->"b.b.and_f[6].y"+ += "b.b.and_f[6].b" "b.b.and_t[6].b" += "b.b.and_f[6].b" "b.b.and_t[5].b" += "b.b.and_f[6].b" "b.b.and_t[4].b" += "b.b.and_f[6].b" "b.b.and_t[3].b" += "b.b.and_f[6].b" "b.b.and_t[2].b" += "b.b.and_f[6].b" "b.b.and_t[1].b" += "b.b.and_f[6].b" "b.b.sb_dropB.out[13]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[12]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[11]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[10]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[9]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[8]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[7]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[6]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[5]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[4]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[3]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[2]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[1]" += "b.b.and_f[6].b" "b.b.sb_dropB.out[0]" += "b.b.and_f[6].b" "b.b.and_t[0].b" += "b.b.and_f[6].b" "b.b.and_f[0].b" += "b.b.and_f[6].b" "b.b.and_f[1].b" += "b.b.and_f[6].b" "b.b.and_f[2].b" += "b.b.and_f[6].b" "b.b.and_f[3].b" += "b.b.and_f[6].b" "b.b.and_f[4].b" += "b.b.and_f[6].b" "b.b.and_f[5].b" += "b.b.and_f[6].c" "b.b.and_t[6].c" += "b.b.and_f[6].c" "b.b.and_t[5].c" += "b.b.and_f[6].c" "b.b.and_t[4].c" += "b.b.and_f[6].c" "b.b.and_t[3].c" += "b.b.and_f[6].c" "b.b.and_t[2].c" += "b.b.and_f[6].c" "b.b.and_t[1].c" += "b.b.and_f[6].c" "b.b.sb_in_v.out[13]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[12]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[11]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[10]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[9]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[8]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[7]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[6]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[5]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[4]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[3]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[2]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[1]" += "b.b.and_f[6].c" "b.b.sb_in_v.out[0]" += "b.b.and_f[6].c" "b.b.and_t[0].c" += "b.b.and_f[6].c" "b.b.and_f[0].c" += "b.b.and_f[6].c" "b.b.and_f[1].c" += "b.b.and_f[6].c" "b.b.and_f[2].c" += "b.b.and_f[6].c" "b.b.and_f[3].c" += "b.b.and_f[6].c" "b.b.and_f[4].c" += "b.b.and_f[6].c" "b.b.and_f[5].c" +"b.b.and_t[0].a"&"b.b.and_t[0].b"&"b.b.and_t[0].c"->"b.b.and_t[0]._y"- +~("b.b.and_t[0].a"&"b.b.and_t[0].b"&"b.b.and_t[0].c")->"b.b.and_t[0]._y"+ +"b.b.and_t[0]._y"->"b.b.and_t[0].y"- +~("b.b.and_t[0]._y")->"b.b.and_t[0].y"+ +"b.b.and_t[1].a"&"b.b.and_t[1].b"&"b.b.and_t[1].c"->"b.b.and_t[1]._y"- +~("b.b.and_t[1].a"&"b.b.and_t[1].b"&"b.b.and_t[1].c")->"b.b.and_t[1]._y"+ +"b.b.and_t[1]._y"->"b.b.and_t[1].y"- +~("b.b.and_t[1]._y")->"b.b.and_t[1].y"+ +"b.b.and_t[2].a"&"b.b.and_t[2].b"&"b.b.and_t[2].c"->"b.b.and_t[2]._y"- +~("b.b.and_t[2].a"&"b.b.and_t[2].b"&"b.b.and_t[2].c")->"b.b.and_t[2]._y"+ +"b.b.and_t[2]._y"->"b.b.and_t[2].y"- +~("b.b.and_t[2]._y")->"b.b.and_t[2].y"+ +"b.b.and_t[3].a"&"b.b.and_t[3].b"&"b.b.and_t[3].c"->"b.b.and_t[3]._y"- +~("b.b.and_t[3].a"&"b.b.and_t[3].b"&"b.b.and_t[3].c")->"b.b.and_t[3]._y"+ +"b.b.and_t[3]._y"->"b.b.and_t[3].y"- +~("b.b.and_t[3]._y")->"b.b.and_t[3].y"+ +"b.b.and_t[4].a"&"b.b.and_t[4].b"&"b.b.and_t[4].c"->"b.b.and_t[4]._y"- +~("b.b.and_t[4].a"&"b.b.and_t[4].b"&"b.b.and_t[4].c")->"b.b.and_t[4]._y"+ +"b.b.and_t[4]._y"->"b.b.and_t[4].y"- +~("b.b.and_t[4]._y")->"b.b.and_t[4].y"+ +"b.b.and_t[5].a"&"b.b.and_t[5].b"&"b.b.and_t[5].c"->"b.b.and_t[5]._y"- +~("b.b.and_t[5].a"&"b.b.and_t[5].b"&"b.b.and_t[5].c")->"b.b.and_t[5]._y"+ +"b.b.and_t[5]._y"->"b.b.and_t[5].y"- +~("b.b.and_t[5]._y")->"b.b.and_t[5].y"+ +"b.b.and_t[6].a"&"b.b.and_t[6].b"&"b.b.and_t[6].c"->"b.b.and_t[6]._y"- +~("b.b.and_t[6].a"&"b.b.and_t[6].b"&"b.b.and_t[6].c")->"b.b.and_t[6]._y"+ +"b.b.and_t[6]._y"->"b.b.and_t[6].y"- +~("b.b.and_t[6]._y")->"b.b.and_t[6].y"+ +"b.b.inv.a"->"b.b.inv.y"- +~("b.b.inv.a")->"b.b.inv.y"+ +~"b.b.vt.ct.C2Els[0].c1"&~"b.b.vt.ct.C2Els[0].c2"->"b.b.vt.ct.C2Els[0]._y"+ +"b.b.vt.ct.C2Els[0].c1"&"b.b.vt.ct.C2Els[0].c2"->"b.b.vt.ct.C2Els[0]._y"- +"b.b.vt.ct.C2Els[0]._y"->"b.b.vt.ct.C2Els[0].y"- +~("b.b.vt.ct.C2Els[0]._y")->"b.b.vt.ct.C2Els[0].y"+ +~"b.b.vt.ct.C2Els[1].c1"&~"b.b.vt.ct.C2Els[1].c2"->"b.b.vt.ct.C2Els[1]._y"+ +"b.b.vt.ct.C2Els[1].c1"&"b.b.vt.ct.C2Els[1].c2"->"b.b.vt.ct.C2Els[1]._y"- +"b.b.vt.ct.C2Els[1]._y"->"b.b.vt.ct.C2Els[1].y"- +~("b.b.vt.ct.C2Els[1]._y")->"b.b.vt.ct.C2Els[1].y"+ +~"b.b.vt.ct.C3Els[0].c1"&~"b.b.vt.ct.C3Els[0].c2"&~"b.b.vt.ct.C3Els[0].c3"->"b.b.vt.ct.C3Els[0]._y"+ +"b.b.vt.ct.C3Els[0].c1"&"b.b.vt.ct.C3Els[0].c2"&"b.b.vt.ct.C3Els[0].c3"->"b.b.vt.ct.C3Els[0]._y"- +"b.b.vt.ct.C3Els[0]._y"->"b.b.vt.ct.C3Els[0].y"- +~("b.b.vt.ct.C3Els[0]._y")->"b.b.vt.ct.C3Els[0].y"+ +~"b.b.vt.ct.C3Els[1].c1"&~"b.b.vt.ct.C3Els[1].c2"&~"b.b.vt.ct.C3Els[1].c3"->"b.b.vt.ct.C3Els[1]._y"+ +"b.b.vt.ct.C3Els[1].c1"&"b.b.vt.ct.C3Els[1].c2"&"b.b.vt.ct.C3Els[1].c3"->"b.b.vt.ct.C3Els[1]._y"- +"b.b.vt.ct.C3Els[1]._y"->"b.b.vt.ct.C3Els[1].y"- +~("b.b.vt.ct.C3Els[1]._y")->"b.b.vt.ct.C3Els[1].y"+ += "b.b.vt.ct.tmp[7]" "b.b.vt.ct.C3Els[1].c1" += "b.b.vt.ct.tmp[7]" "b.b.vt.ct.C2Els[0].y" += "b.b.vt.ct.tmp[8]" "b.b.vt.ct.C3Els[1].c2" += "b.b.vt.ct.tmp[8]" "b.b.vt.ct.C2Els[1].y" += "b.b.vt.ct.tmp[9]" "b.b.vt.ct.C3Els[1].c3" += "b.b.vt.ct.tmp[9]" "b.b.vt.ct.C3Els[0].y" += "b.b.vt.ct.supply.vdd" "b.b.vt.ct.C3Els[1].vdd" += "b.b.vt.ct.supply.vdd" "b.b.vt.ct.C3Els[0].vdd" += "b.b.vt.ct.supply.vdd" "b.b.vt.ct.C2Els[1].vdd" += "b.b.vt.ct.supply.vdd" "b.b.vt.ct.C2Els[0].vdd" += "b.b.vt.ct.supply.vss" "b.b.vt.ct.C3Els[1].vss" += "b.b.vt.ct.supply.vss" "b.b.vt.ct.C3Els[0].vss" += "b.b.vt.ct.supply.vss" "b.b.vt.ct.C2Els[1].vss" += "b.b.vt.ct.supply.vss" "b.b.vt.ct.C2Els[0].vss" += "b.b.vt.ct.in[0]" "b.b.vt.ct.C2Els[0].c1" += "b.b.vt.ct.in[0]" "b.b.vt.ct.tmp[0]" += "b.b.vt.ct.in[1]" "b.b.vt.ct.C2Els[0].c2" += "b.b.vt.ct.in[1]" "b.b.vt.ct.tmp[1]" += "b.b.vt.ct.in[2]" "b.b.vt.ct.C2Els[1].c1" += "b.b.vt.ct.in[2]" "b.b.vt.ct.tmp[2]" += "b.b.vt.ct.in[3]" "b.b.vt.ct.C2Els[1].c2" += "b.b.vt.ct.in[3]" "b.b.vt.ct.tmp[3]" += "b.b.vt.ct.in[4]" "b.b.vt.ct.C3Els[0].c1" += "b.b.vt.ct.in[4]" "b.b.vt.ct.tmp[4]" += "b.b.vt.ct.in[5]" "b.b.vt.ct.C3Els[0].c2" += "b.b.vt.ct.in[5]" "b.b.vt.ct.tmp[5]" += "b.b.vt.ct.in[6]" "b.b.vt.ct.C3Els[0].c3" += "b.b.vt.ct.in[6]" "b.b.vt.ct.tmp[6]" += "b.b.vt.ct.out" "b.b.vt.ct.C3Els[1].y" += "b.b.vt.ct.out" "b.b.vt.ct.tmp[10]" += "b.b.vt.ct.in[0]" "b.b.vt.OR2_tf[0].y" += "b.b.vt.ct.in[1]" "b.b.vt.OR2_tf[1].y" += "b.b.vt.ct.in[2]" "b.b.vt.OR2_tf[2].y" += "b.b.vt.ct.in[3]" "b.b.vt.OR2_tf[3].y" += "b.b.vt.ct.in[4]" "b.b.vt.OR2_tf[4].y" += "b.b.vt.ct.in[5]" "b.b.vt.OR2_tf[5].y" += "b.b.vt.ct.in[6]" "b.b.vt.OR2_tf[6].y" +"b.b.vt.OR2_tf[0].a"|"b.b.vt.OR2_tf[0].b"->"b.b.vt.OR2_tf[0]._y"- +~("b.b.vt.OR2_tf[0].a"|"b.b.vt.OR2_tf[0].b")->"b.b.vt.OR2_tf[0]._y"+ +"b.b.vt.OR2_tf[0]._y"->"b.b.vt.OR2_tf[0].y"- +~("b.b.vt.OR2_tf[0]._y")->"b.b.vt.OR2_tf[0].y"+ +"b.b.vt.OR2_tf[1].a"|"b.b.vt.OR2_tf[1].b"->"b.b.vt.OR2_tf[1]._y"- +~("b.b.vt.OR2_tf[1].a"|"b.b.vt.OR2_tf[1].b")->"b.b.vt.OR2_tf[1]._y"+ +"b.b.vt.OR2_tf[1]._y"->"b.b.vt.OR2_tf[1].y"- +~("b.b.vt.OR2_tf[1]._y")->"b.b.vt.OR2_tf[1].y"+ +"b.b.vt.OR2_tf[2].a"|"b.b.vt.OR2_tf[2].b"->"b.b.vt.OR2_tf[2]._y"- +~("b.b.vt.OR2_tf[2].a"|"b.b.vt.OR2_tf[2].b")->"b.b.vt.OR2_tf[2]._y"+ +"b.b.vt.OR2_tf[2]._y"->"b.b.vt.OR2_tf[2].y"- +~("b.b.vt.OR2_tf[2]._y")->"b.b.vt.OR2_tf[2].y"+ +"b.b.vt.OR2_tf[3].a"|"b.b.vt.OR2_tf[3].b"->"b.b.vt.OR2_tf[3]._y"- +~("b.b.vt.OR2_tf[3].a"|"b.b.vt.OR2_tf[3].b")->"b.b.vt.OR2_tf[3]._y"+ +"b.b.vt.OR2_tf[3]._y"->"b.b.vt.OR2_tf[3].y"- +~("b.b.vt.OR2_tf[3]._y")->"b.b.vt.OR2_tf[3].y"+ +"b.b.vt.OR2_tf[4].a"|"b.b.vt.OR2_tf[4].b"->"b.b.vt.OR2_tf[4]._y"- +~("b.b.vt.OR2_tf[4].a"|"b.b.vt.OR2_tf[4].b")->"b.b.vt.OR2_tf[4]._y"+ +"b.b.vt.OR2_tf[4]._y"->"b.b.vt.OR2_tf[4].y"- +~("b.b.vt.OR2_tf[4]._y")->"b.b.vt.OR2_tf[4].y"+ +"b.b.vt.OR2_tf[5].a"|"b.b.vt.OR2_tf[5].b"->"b.b.vt.OR2_tf[5]._y"- +~("b.b.vt.OR2_tf[5].a"|"b.b.vt.OR2_tf[5].b")->"b.b.vt.OR2_tf[5]._y"+ +"b.b.vt.OR2_tf[5]._y"->"b.b.vt.OR2_tf[5].y"- +~("b.b.vt.OR2_tf[5]._y")->"b.b.vt.OR2_tf[5].y"+ +"b.b.vt.OR2_tf[6].a"|"b.b.vt.OR2_tf[6].b"->"b.b.vt.OR2_tf[6]._y"- +~("b.b.vt.OR2_tf[6].a"|"b.b.vt.OR2_tf[6].b")->"b.b.vt.OR2_tf[6]._y"+ +"b.b.vt.OR2_tf[6]._y"->"b.b.vt.OR2_tf[6].y"- +~("b.b.vt.OR2_tf[6]._y")->"b.b.vt.OR2_tf[6].y"+ += "b.b.vt.supply.vss" "b.b.vt.ct.supply.vss" += "b.b.vt.supply.vdd" "b.b.vt.ct.supply.vdd" += "b.b.vt.supply.vdd" "b.b.vt.OR2_tf[6].vdd" += "b.b.vt.supply.vdd" "b.b.vt.OR2_tf[5].vdd" += "b.b.vt.supply.vdd" "b.b.vt.OR2_tf[4].vdd" += "b.b.vt.supply.vdd" "b.b.vt.OR2_tf[3].vdd" += "b.b.vt.supply.vdd" "b.b.vt.OR2_tf[2].vdd" += "b.b.vt.supply.vdd" "b.b.vt.OR2_tf[1].vdd" += "b.b.vt.supply.vdd" "b.b.vt.OR2_tf[0].vdd" += "b.b.vt.supply.vss" "b.b.vt.OR2_tf[6].vss" += "b.b.vt.supply.vss" "b.b.vt.OR2_tf[5].vss" += "b.b.vt.supply.vss" "b.b.vt.OR2_tf[4].vss" += "b.b.vt.supply.vss" "b.b.vt.OR2_tf[3].vss" += "b.b.vt.supply.vss" "b.b.vt.OR2_tf[2].vss" += "b.b.vt.supply.vss" "b.b.vt.OR2_tf[1].vss" += "b.b.vt.supply.vss" "b.b.vt.OR2_tf[0].vss" += "b.b.vt.out" "b.b.vt.ct.out" += "b.b.vt.in.d[0].d[0]" "b.b.vt.in.d[0].f" += "b.b.vt.in.d[0].d[1]" "b.b.vt.in.d[0].t" += "b.b.vt.in.d[1].d[0]" "b.b.vt.in.d[1].f" += "b.b.vt.in.d[1].d[1]" "b.b.vt.in.d[1].t" += "b.b.vt.in.d[2].d[0]" "b.b.vt.in.d[2].f" += "b.b.vt.in.d[2].d[1]" "b.b.vt.in.d[2].t" += "b.b.vt.in.d[3].d[0]" "b.b.vt.in.d[3].f" += "b.b.vt.in.d[3].d[1]" "b.b.vt.in.d[3].t" += "b.b.vt.in.d[4].d[0]" "b.b.vt.in.d[4].f" += "b.b.vt.in.d[4].d[1]" "b.b.vt.in.d[4].t" += "b.b.vt.in.d[5].d[0]" "b.b.vt.in.d[5].f" += "b.b.vt.in.d[5].d[1]" "b.b.vt.in.d[5].t" += "b.b.vt.in.d[6].d[0]" "b.b.vt.in.d[6].f" += "b.b.vt.in.d[6].d[1]" "b.b.vt.in.d[6].t" += "b.b.vt.in.d[6].d[0]" "b.b.vt.in.d[6].f" += "b.b.vt.in.d[6].d[1]" "b.b.vt.in.d[6].t" += "b.b.vt.in.d[5].d[0]" "b.b.vt.in.d[5].f" += "b.b.vt.in.d[5].d[1]" "b.b.vt.in.d[5].t" += "b.b.vt.in.d[4].d[0]" "b.b.vt.in.d[4].f" += "b.b.vt.in.d[4].d[1]" "b.b.vt.in.d[4].t" += "b.b.vt.in.d[3].d[0]" "b.b.vt.in.d[3].f" += "b.b.vt.in.d[3].d[1]" "b.b.vt.in.d[3].t" += "b.b.vt.in.d[2].d[0]" "b.b.vt.in.d[2].f" += "b.b.vt.in.d[2].d[1]" "b.b.vt.in.d[2].t" += "b.b.vt.in.d[1].d[0]" "b.b.vt.in.d[1].f" += "b.b.vt.in.d[1].d[1]" "b.b.vt.in.d[1].t" += "b.b.vt.in.d[0].d[0]" "b.b.vt.in.d[0].f" += "b.b.vt.in.d[0].d[1]" "b.b.vt.in.d[0].t" += "b.b.vt.in.d[6].d[0]" "b.b.vt.OR2_tf[6].b" += "b.b.vt.in.d[6].d[0]" "b.b.vt.in.d[6].f" += "b.b.vt.in.d[6].d[1]" "b.b.vt.OR2_tf[6].a" += "b.b.vt.in.d[6].d[1]" "b.b.vt.in.d[6].t" += "b.b.vt.in.d[5].d[0]" "b.b.vt.OR2_tf[5].b" += "b.b.vt.in.d[5].d[0]" "b.b.vt.in.d[5].f" += "b.b.vt.in.d[5].d[1]" "b.b.vt.OR2_tf[5].a" += "b.b.vt.in.d[5].d[1]" "b.b.vt.in.d[5].t" += "b.b.vt.in.d[4].d[0]" "b.b.vt.OR2_tf[4].b" += "b.b.vt.in.d[4].d[0]" "b.b.vt.in.d[4].f" += "b.b.vt.in.d[4].d[1]" "b.b.vt.OR2_tf[4].a" += "b.b.vt.in.d[4].d[1]" "b.b.vt.in.d[4].t" += "b.b.vt.in.d[3].d[0]" "b.b.vt.OR2_tf[3].b" += "b.b.vt.in.d[3].d[0]" "b.b.vt.in.d[3].f" += "b.b.vt.in.d[3].d[1]" "b.b.vt.OR2_tf[3].a" += "b.b.vt.in.d[3].d[1]" "b.b.vt.in.d[3].t" += "b.b.vt.in.d[2].d[0]" "b.b.vt.OR2_tf[2].b" += "b.b.vt.in.d[2].d[0]" "b.b.vt.in.d[2].f" += "b.b.vt.in.d[2].d[1]" "b.b.vt.OR2_tf[2].a" += "b.b.vt.in.d[2].d[1]" "b.b.vt.in.d[2].t" += "b.b.vt.in.d[1].d[0]" "b.b.vt.OR2_tf[1].b" += "b.b.vt.in.d[1].d[0]" "b.b.vt.in.d[1].f" += "b.b.vt.in.d[1].d[1]" "b.b.vt.OR2_tf[1].a" += "b.b.vt.in.d[1].d[1]" "b.b.vt.in.d[1].t" += "b.b.vt.in.d[0].d[0]" "b.b.vt.OR2_tf[0].b" += "b.b.vt.in.d[0].d[0]" "b.b.vt.in.d[0].f" += "b.b.vt.in.d[0].d[1]" "b.b.vt.OR2_tf[0].a" += "b.b.vt.in.d[0].d[1]" "b.b.vt.in.d[0].t" += "b.b.vt.out" "b.b.in_v_buf.a" +~"b.b.ack_Cel.c1"&~"b.b.ack_Cel.c2"->"b.b.ack_Cel._y"+ +"b.b.ack_Cel.c1"&"b.b.ack_Cel.c2"->"b.b.ack_Cel._y"- +"b.b.ack_Cel._y"->"b.b.ack_Cel.y"- +~("b.b.ack_Cel._y")->"b.b.ack_Cel.y"+ += "b.supply.vss" "b.b.supply.vss" += "b.supply.vdd" "b.b.supply.vdd" += "Vdd" "b.supply.vdd" += "GND" "b.supply.vss" += "b.drop" "b.b.cond" += "b.out.d.d[0].d[0]" "b.out.d.d[0].f" += "b.out.d.d[0].d[1]" "b.out.d.d[0].t" += "b.out.d.d[1].d[0]" "b.out.d.d[1].f" += "b.out.d.d[1].d[1]" "b.out.d.d[1].t" += "b.out.d.d[2].d[0]" "b.out.d.d[2].f" += "b.out.d.d[2].d[1]" "b.out.d.d[2].t" += "b.out.d.d[3].d[0]" "b.out.d.d[3].f" += "b.out.d.d[3].d[1]" "b.out.d.d[3].t" += "b.out.d.d[4].d[0]" "b.out.d.d[4].f" += "b.out.d.d[4].d[1]" "b.out.d.d[4].t" += "b.out.d.d[5].d[0]" "b.out.d.d[5].f" += "b.out.d.d[5].d[1]" "b.out.d.d[5].t" += "b.out.d.d[6].d[0]" "b.out.d.d[6].f" += "b.out.d.d[6].d[1]" "b.out.d.d[6].t" += "b.out.d.d[6].d[0]" "b.out.d.d[6].f" += "b.out.d.d[6].d[1]" "b.out.d.d[6].t" += "b.out.d.d[5].d[0]" "b.out.d.d[5].f" += "b.out.d.d[5].d[1]" "b.out.d.d[5].t" += "b.out.d.d[4].d[0]" "b.out.d.d[4].f" += "b.out.d.d[4].d[1]" "b.out.d.d[4].t" += "b.out.d.d[3].d[0]" "b.out.d.d[3].f" += "b.out.d.d[3].d[1]" "b.out.d.d[3].t" += "b.out.d.d[2].d[0]" "b.out.d.d[2].f" += "b.out.d.d[2].d[1]" "b.out.d.d[2].t" += "b.out.d.d[1].d[0]" "b.out.d.d[1].f" += "b.out.d.d[1].d[1]" "b.out.d.d[1].t" += "b.out.d.d[0].d[0]" "b.out.d.d[0].f" += "b.out.d.d[0].d[1]" "b.out.d.d[0].t" += "b.out.d.d[6].d[0]" "b.out.d.d[6].f" += "b.out.d.d[6].d[1]" "b.out.d.d[6].t" += "b.out.d.d[5].d[0]" "b.out.d.d[5].f" += "b.out.d.d[5].d[1]" "b.out.d.d[5].t" += "b.out.d.d[4].d[0]" "b.out.d.d[4].f" += "b.out.d.d[4].d[1]" "b.out.d.d[4].t" += "b.out.d.d[3].d[0]" "b.out.d.d[3].f" += "b.out.d.d[3].d[1]" "b.out.d.d[3].t" += "b.out.d.d[2].d[0]" "b.out.d.d[2].f" += "b.out.d.d[2].d[1]" "b.out.d.d[2].t" += "b.out.d.d[1].d[0]" "b.out.d.d[1].f" += "b.out.d.d[1].d[1]" "b.out.d.d[1].t" += "b.out.d.d[0].d[0]" "b.out.d.d[0].f" += "b.out.d.d[0].d[1]" "b.out.d.d[0].t" += "b.out.v" "b.b.out.v" += "b.out.a" "b.b.out.a" += "b.out.d.d[0].f" "b.b.out.d.d[0].f" += "b.out.d.d[0].t" "b.b.out.d.d[0].t" += "b.out.d.d[0].d[0]" "b.b.out.d.d[0].d[0]" += "b.out.d.d[0].d[1]" "b.b.out.d.d[0].d[1]" += "b.out.d.d[1].f" "b.b.out.d.d[1].f" += "b.out.d.d[1].t" "b.b.out.d.d[1].t" += "b.out.d.d[1].d[0]" "b.b.out.d.d[1].d[0]" += "b.out.d.d[1].d[1]" "b.b.out.d.d[1].d[1]" += "b.out.d.d[2].f" "b.b.out.d.d[2].f" += "b.out.d.d[2].t" "b.b.out.d.d[2].t" += "b.out.d.d[2].d[0]" "b.b.out.d.d[2].d[0]" += "b.out.d.d[2].d[1]" "b.b.out.d.d[2].d[1]" += "b.out.d.d[3].f" "b.b.out.d.d[3].f" += "b.out.d.d[3].t" "b.b.out.d.d[3].t" += "b.out.d.d[3].d[0]" "b.b.out.d.d[3].d[0]" += "b.out.d.d[3].d[1]" "b.b.out.d.d[3].d[1]" += "b.out.d.d[4].f" "b.b.out.d.d[4].f" += "b.out.d.d[4].t" "b.b.out.d.d[4].t" += "b.out.d.d[4].d[0]" "b.b.out.d.d[4].d[0]" += "b.out.d.d[4].d[1]" "b.b.out.d.d[4].d[1]" += "b.out.d.d[5].f" "b.b.out.d.d[5].f" += "b.out.d.d[5].t" "b.b.out.d.d[5].t" += "b.out.d.d[5].d[0]" "b.b.out.d.d[5].d[0]" += "b.out.d.d[5].d[1]" "b.b.out.d.d[5].d[1]" += "b.out.d.d[6].f" "b.b.out.d.d[6].f" += "b.out.d.d[6].t" "b.b.out.d.d[6].t" += "b.out.d.d[6].d[0]" "b.b.out.d.d[6].d[0]" += "b.out.d.d[6].d[1]" "b.b.out.d.d[6].d[1]" += "b.out.d.d[6].d[0]" "b.out.d.d[6].f" += "b.out.d.d[6].d[1]" "b.out.d.d[6].t" += "b.out.d.d[5].d[0]" "b.out.d.d[5].f" += "b.out.d.d[5].d[1]" "b.out.d.d[5].t" += "b.out.d.d[4].d[0]" "b.out.d.d[4].f" += "b.out.d.d[4].d[1]" "b.out.d.d[4].t" += "b.out.d.d[3].d[0]" "b.out.d.d[3].f" += "b.out.d.d[3].d[1]" "b.out.d.d[3].t" += "b.out.d.d[2].d[0]" "b.out.d.d[2].f" += "b.out.d.d[2].d[1]" "b.out.d.d[2].t" += "b.out.d.d[1].d[0]" "b.out.d.d[1].f" += "b.out.d.d[1].d[1]" "b.out.d.d[1].t" += "b.out.d.d[0].d[0]" "b.out.d.d[0].f" += "b.out.d.d[0].d[1]" "b.out.d.d[0].t" += "b.in.d.d[0].d[0]" "b.in.d.d[0].f" += "b.in.d.d[0].d[1]" "b.in.d.d[0].t" += "b.in.d.d[1].d[0]" "b.in.d.d[1].f" += "b.in.d.d[1].d[1]" "b.in.d.d[1].t" += "b.in.d.d[2].d[0]" "b.in.d.d[2].f" += "b.in.d.d[2].d[1]" "b.in.d.d[2].t" += "b.in.d.d[3].d[0]" "b.in.d.d[3].f" += "b.in.d.d[3].d[1]" "b.in.d.d[3].t" += "b.in.d.d[4].d[0]" "b.in.d.d[4].f" += "b.in.d.d[4].d[1]" "b.in.d.d[4].t" += "b.in.d.d[5].d[0]" "b.in.d.d[5].f" += "b.in.d.d[5].d[1]" "b.in.d.d[5].t" += "b.in.d.d[6].d[0]" "b.in.d.d[6].f" += "b.in.d.d[6].d[1]" "b.in.d.d[6].t" += "b.in.d.d[6].d[0]" "b.in.d.d[6].f" += "b.in.d.d[6].d[1]" "b.in.d.d[6].t" += "b.in.d.d[5].d[0]" "b.in.d.d[5].f" += "b.in.d.d[5].d[1]" "b.in.d.d[5].t" += "b.in.d.d[4].d[0]" "b.in.d.d[4].f" += "b.in.d.d[4].d[1]" "b.in.d.d[4].t" += "b.in.d.d[3].d[0]" "b.in.d.d[3].f" += "b.in.d.d[3].d[1]" "b.in.d.d[3].t" += "b.in.d.d[2].d[0]" "b.in.d.d[2].f" += "b.in.d.d[2].d[1]" "b.in.d.d[2].t" += "b.in.d.d[1].d[0]" "b.in.d.d[1].f" += "b.in.d.d[1].d[1]" "b.in.d.d[1].t" += "b.in.d.d[0].d[0]" "b.in.d.d[0].f" += "b.in.d.d[0].d[1]" "b.in.d.d[0].t" += "b.in.d.d[6].d[0]" "b.in.d.d[6].f" += "b.in.d.d[6].d[1]" "b.in.d.d[6].t" += "b.in.d.d[5].d[0]" "b.in.d.d[5].f" += "b.in.d.d[5].d[1]" "b.in.d.d[5].t" += "b.in.d.d[4].d[0]" "b.in.d.d[4].f" += "b.in.d.d[4].d[1]" "b.in.d.d[4].t" += "b.in.d.d[3].d[0]" "b.in.d.d[3].f" += "b.in.d.d[3].d[1]" "b.in.d.d[3].t" += "b.in.d.d[2].d[0]" "b.in.d.d[2].f" += "b.in.d.d[2].d[1]" "b.in.d.d[2].t" += "b.in.d.d[1].d[0]" "b.in.d.d[1].f" += "b.in.d.d[1].d[1]" "b.in.d.d[1].t" += "b.in.d.d[0].d[0]" "b.in.d.d[0].f" += "b.in.d.d[0].d[1]" "b.in.d.d[0].t" += "b.in.v" "b.b.in.v" += "b.in.a" "b.b.in.a" += "b.in.d.d[0].f" "b.b.in.d.d[0].f" += "b.in.d.d[0].t" "b.b.in.d.d[0].t" += "b.in.d.d[0].d[0]" "b.b.in.d.d[0].d[0]" += "b.in.d.d[0].d[1]" "b.b.in.d.d[0].d[1]" += "b.in.d.d[1].f" "b.b.in.d.d[1].f" += "b.in.d.d[1].t" "b.b.in.d.d[1].t" += "b.in.d.d[1].d[0]" "b.b.in.d.d[1].d[0]" += "b.in.d.d[1].d[1]" "b.b.in.d.d[1].d[1]" += "b.in.d.d[2].f" "b.b.in.d.d[2].f" += "b.in.d.d[2].t" "b.b.in.d.d[2].t" += "b.in.d.d[2].d[0]" "b.b.in.d.d[2].d[0]" += "b.in.d.d[2].d[1]" "b.b.in.d.d[2].d[1]" += "b.in.d.d[3].f" "b.b.in.d.d[3].f" += "b.in.d.d[3].t" "b.b.in.d.d[3].t" += "b.in.d.d[3].d[0]" "b.b.in.d.d[3].d[0]" += "b.in.d.d[3].d[1]" "b.b.in.d.d[3].d[1]" += "b.in.d.d[4].f" "b.b.in.d.d[4].f" += "b.in.d.d[4].t" "b.b.in.d.d[4].t" += "b.in.d.d[4].d[0]" "b.b.in.d.d[4].d[0]" += "b.in.d.d[4].d[1]" "b.b.in.d.d[4].d[1]" += "b.in.d.d[5].f" "b.b.in.d.d[5].f" += "b.in.d.d[5].t" "b.b.in.d.d[5].t" += "b.in.d.d[5].d[0]" "b.b.in.d.d[5].d[0]" += "b.in.d.d[5].d[1]" "b.b.in.d.d[5].d[1]" += "b.in.d.d[6].f" "b.b.in.d.d[6].f" += "b.in.d.d[6].t" "b.b.in.d.d[6].t" += "b.in.d.d[6].d[0]" "b.b.in.d.d[6].d[0]" += "b.in.d.d[6].d[1]" "b.b.in.d.d[6].d[1]" += "b.in.d.d[6].d[0]" "b.in.d.d[6].f" += "b.in.d.d[6].d[1]" "b.in.d.d[6].t" += "b.in.d.d[5].d[0]" "b.in.d.d[5].f" += "b.in.d.d[5].d[1]" "b.in.d.d[5].t" += "b.in.d.d[4].d[0]" "b.in.d.d[4].f" += "b.in.d.d[4].d[1]" "b.in.d.d[4].t" += "b.in.d.d[3].d[0]" "b.in.d.d[3].f" += "b.in.d.d[3].d[1]" "b.in.d.d[3].t" += "b.in.d.d[2].d[0]" "b.in.d.d[2].f" += "b.in.d.d[2].d[1]" "b.in.d.d[2].t" += "b.in.d.d[1].d[0]" "b.in.d.d[1].f" += "b.in.d.d[1].d[1]" "b.in.d.d[1].t" += "b.in.d.d[0].d[0]" "b.in.d.d[0].f" += "b.in.d.d[0].d[1]" "b.in.d.d[0].t" diff --git a/test/unit_tests/dropper_static/test.act b/test/unit_tests/dropper_static/test.act new file mode 100644 index 0000000..a8d18c7 --- /dev/null +++ b/test/unit_tests/dropper_static/test.act @@ -0,0 +1,52 @@ +/************************************************************************* + * + * 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; +import std::data; + +open std::data; + +open tmpl::dataflow_neuro; + +defproc dropper_static_7 (avMx1of2<7> in; avMx1of2<7> out; bool? drop){ + bool _reset_B; + prs { + Reset => _reset_B- + } + power supply; + supply.vdd = Vdd; + supply.vss = GND; + + dropper_static<7, true> b(.in = in, .out = out, .cond = drop, .supply = supply); +} + + +// fifo_decoder_neurons_encoder_fifo e; +dropper_static_7 b; \ No newline at end of file diff --git a/test/unit_tests/dropper_static/test.prsim b/test/unit_tests/dropper_static/test.prsim new file mode 100644 index 0000000..89035ab --- /dev/null +++ b/test/unit_tests/dropper_static/test.prsim @@ -0,0 +1,73 @@ +watchall + +set-qdi-channel-neutral "b.in" 7 +set b.out.a 0 +set b.out.v 0 +set b.drop 0 +cycle + +mode run +system "echo '[] Set reset 0'" +status X +set Reset 0 +cycle +status X +assert b.in.a 0 +assert b.in.v 0 + +system "echo '[] Sending in valid data'" +set-qdi-channel-valid "b.in" 7 45 +cycle +assert-qdi-channel-valid "b.out" 7 45 +assert b.in.v 1 +cycle +set b.out.a 1 +cycle +assert b.in.a 1 +assert b.in.v 1 + +system "echo '[] Removing data'" +set-qdi-channel-neutral "b.in" 7 +cycle +assert-qdi-channel-neutral "b.out" 7 +assert b.in.v 0 +set b.out.a 0 +cycle +assert b.in.a 0 + +system "echo '[] Sending in valid data'" +set-qdi-channel-valid "b.in" 7 37 +cycle +assert-qdi-channel-valid "b.out" 7 37 +assert b.in.v 1 +cycle +set b.out.a 1 +cycle +assert b.in.a 1 +assert b.in.v 1 + +system "echo '[] Removing data'" +set-qdi-channel-neutral "b.in" 7 +cycle +assert-qdi-channel-neutral "b.out" 7 +assert b.in.v 0 +set b.out.a 0 +cycle +assert b.in.a 0 + +system "echo '[] Enabling drop'" +set b.drop 1 +cycle +system "echo '[] Sending in valid data'" +set-qdi-channel-valid "b.in" 7 45 +cycle +assert-qdi-channel-neutral "b.out" 7 +assert b.in.v 1 +assert b.in.a 1 + +system "echo '[] Removing data'" +set-qdi-channel-neutral "b.in" 7 +cycle +assert-qdi-channel-neutral "b.out" 7 +assert b.in.v 0 +assert b.in.a 0 \ No newline at end of file