From ab248d608e7693b37d55a27bf0feda436b910156 Mon Sep 17 00:00:00 2001 From: alexmadison Date: Fri, 1 Apr 2022 16:58:12 +0200 Subject: [PATCH] init and unit tests for register buffer --- dataflow_neuro/registers.act | 79 ++ .../buffer_register_7/run/prsim.out | 417 ++++++++++ .../buffer_register_7/run/prsim.pdf | Bin 0 -> 27571 bytes .../unit_tests/buffer_register_7/run/test.prs | 746 ++++++++++++++++++ test/unit_tests/buffer_register_7/test.act | 52 ++ test/unit_tests/buffer_register_7/test.prsim | 163 ++++ 6 files changed, 1457 insertions(+) create mode 100644 test/unit_tests/buffer_register_7/run/prsim.out create mode 100644 test/unit_tests/buffer_register_7/run/prsim.pdf create mode 100644 test/unit_tests/buffer_register_7/run/test.prs create mode 100644 test/unit_tests/buffer_register_7/test.act create mode 100644 test/unit_tests/buffer_register_7/test.prsim diff --git a/dataflow_neuro/registers.act b/dataflow_neuro/registers.act index 3d80056..974ba41 100644 --- a/dataflow_neuro/registers.act +++ b/dataflow_neuro/registers.act @@ -254,5 +254,84 @@ defproc register_rw (avMx1of2<1+lognw+wl> in; avMx1of2 out; d1of d } + +/** + * Buffer for use in an A-cell register. + * Basically the same as a normal buffer, except that when out.v goes high, + * in.a goes high too. + * Also, in.a does not wait for out.v to go low to go to low. + * Means have a buffer that completes its Right handshake as soon as out data is valid. + */ +export template +defproc buffer_register(avMx1of2 in; Mx1of2 out; bool? out_v, flush, + reset_B; power supply) { + +//control +bool _en, _reset_BX,_reset_BXX[N]; +bool _in_aB; + +bool _reset; +INV_X1 reset_inv(.a = reset_B, .y = _reset); + +A_2C1N_R_X1 inack_ctl(.c1=_in_aB,.c2=in.v,.n1=out_v,.y=_in_aB, + .pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); + +INV_X1 inack_inv(.a = _in_aB, .y = in.a, .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); + +bool _flushB; +INV_X1 flush_inv(.a = flush, .y = _flushB); +// AND2_X1 flush_en(.a = _flushB, .b = _in_aB, .y = _en); +_en = _in_aB; + +BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); + sigbuf reset_bufarray(.in=_reset_BX, .out=_reset_BXX); + +//validity +bool _in_v; +vtree vc(.in=in.d,.out=_in_v,.supply=supply); +BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss); + +//function +bool _out_a_BX_t[N],_out_a_BX_f[N],_out_a_B,_en_X_t[N],_en_X_f[N]; +A_1C2N_RB_X4 f_buf_func[N]; +A_1C2N_SB_X4 t_buf_func[N]; +sigbuf en_buf_t(.in=_en, .out=_en_X_t, .supply=supply); +sigbuf en_buf_f(.in=_en, .out=_en_X_f, .supply=supply); +// INV_X1 out_a_inv(.a=out.a,.y=_out_a_B, .vss = supply.vss, .vdd = supply.vdd); +// sigbuf out_a_B_buf_f(.in=_out_a_B,.out=_out_a_BX_t); +// sigbuf out_a_B_buf_t(.in=_out_a_B,.out=_out_a_BX_f); +// check if you can also do single var to array connect a=b[N] +// and remove them from the loop +(i:N: + f_buf_func[i].y=out.d[i].f; + t_buf_func[i].y=out.d[i].t; + + f_buf_func[i].c1=_flushB; + t_buf_func[i].c1=_flushB; + + + f_buf_func[i].n2=_en_X_f[i]; + t_buf_func[i].n2=_en_X_t[i]; + // f_buf_func[i].c2=_out_a_BX_f[i]; + // t_buf_func[i].c2=_out_a_BX_t[i]; + f_buf_func[i].n1=in.d.d[i].f; + t_buf_func[i].n1=in.d.d[i].t; + f_buf_func[i].vdd=supply.vdd; + t_buf_func[i].vdd=supply.vdd; + f_buf_func[i].vss=supply.vss; + t_buf_func[i].vss=supply.vss; + t_buf_func[i].pr = _reset; + t_buf_func[i].sr = _reset; + f_buf_func[i].pr_B = _reset_BXX[i]; + f_buf_func[i].sr_B = _reset_BXX[i]; +) + + +} + + }} diff --git a/test/unit_tests/buffer_register_7/run/prsim.out b/test/unit_tests/buffer_register_7/run/prsim.out new file mode 100644 index 0000000..e02f011 --- /dev/null +++ b/test/unit_tests/buffer_register_7/run/prsim.out @@ -0,0 +1,417 @@ +b.b.f_buf_func[3].n1 b.b.t_buf_func[1].n1 b.b.vc.OR2_tf[1]._y b.b.f_buf_func[5].n1 b.b.vc.ct.in[6] b.in.v b.b._flushB b.b.f_buf_func[1].n1 b.b.t_buf_func[3].n1 b.b.f_buf_func[6].n1 b.b.vc.OR2_tf[6]._y b.b.vc.ct.in[1] b.out_v b.b.f_buf_func[0].n1 b.b.f_buf_func[2].n1 b.b.t_buf_func[4].n1 b.b.vc.ct.C3Els[1]._y b.b.t_buf_func[2].n1 b.b.t_buf_func[6].n1 b.b.vc.OR2_tf[0]._y b.b.vc.ct.in[3] b.b.t_buf_func[0].n1 b.flush b.b._in_v b.b.vc.ct.in[4] b.b.f_buf_func[4].n1 b.b.vc.ct.in[5] b.b.vc.OR2_tf[2]._y b.b.vc.ct.tmp[8] b.b.vc.ct.tmp[9] b.b.vc.ct.C2Els[0]._y b.b.t_buf_func[5].n1 b.b.vc.OR2_tf[4]._y b.b.vc.ct.in[2] b.b.vc.ct.tmp[7] b.b.vc.OR2_tf[5]._y b.b.vc.ct.in[0] b.b.vc.OR2_tf[3]._y b.b.in_v_buf._y b.b.vc.ct.C3Els[0]._y b.b.vc.ct.C2Els[1]._y + 74426 b.out_v : 0 + 74426 b.b.t_buf_func[6].n1 : 0 + 74426 b.b.f_buf_func[6].n1 : 0 + 74426 b.b.t_buf_func[5].n1 : 0 + 74426 b.b.f_buf_func[0].n1 : 0 + 74426 b.b.f_buf_func[5].n1 : 0 + 74426 b.b.t_buf_func[4].n1 : 0 + 74426 b.b.f_buf_func[2].n1 : 0 + 74426 b.b.f_buf_func[4].n1 : 0 + 74426 b.b.t_buf_func[3].n1 : 0 + 74426 b.b.t_buf_func[1].n1 : 0 + 74426 b.b.f_buf_func[3].n1 : 0 + 74426 b.b.t_buf_func[2].n1 : 0 + 74426 b.flush : 0 + 74426 b.b.f_buf_func[1].n1 : 0 + 74426 b.b.t_buf_func[0].n1 : 0 + 74444 b.b.vc.OR2_tf[0]._y : 1 [by b.b.t_buf_func[0].n1:=0] + 74977 b.b.vc.OR2_tf[5]._y : 1 [by b.b.f_buf_func[5].n1:=0] + 75380 b.b.vc.OR2_tf[3]._y : 1 [by b.b.f_buf_func[3].n1:=0] + 75408 b.b.vc.OR2_tf[1]._y : 1 [by b.b.f_buf_func[1].n1:=0] + 75497 b.b.vc.OR2_tf[4]._y : 1 [by b.b.f_buf_func[4].n1:=0] + 75507 b.b.vc.OR2_tf[2]._y : 1 [by b.b.t_buf_func[2].n1:=0] + 76009 b.b.vc.ct.in[2] : 0 [by b.b.vc.OR2_tf[2]._y:=1] + 78457 b.b.vc.ct.in[0] : 0 [by b.b.vc.OR2_tf[0]._y:=1] + 78980 b.b.vc.ct.in[5] : 0 [by b.b.vc.OR2_tf[5]._y:=1] + 80257 b.b.vc.ct.in[4] : 0 [by b.b.vc.OR2_tf[4]._y:=1] + 96867 b.b.vc.OR2_tf[6]._y : 1 [by b.b.f_buf_func[6].n1:=0] + 96992 b.b.vc.ct.in[1] : 0 [by b.b.vc.OR2_tf[1]._y:=1] + 97070 b.b.vc.ct.in[6] : 0 [by b.b.vc.OR2_tf[6]._y:=1] + 97209 b.b.vc.ct.C3Els[0]._y : 1 [by b.b.vc.ct.in[6]:=0] + 98846 b.b.vc.ct.C2Els[0]._y : 1 [by b.b.vc.ct.in[1]:=0] + 98915 b.b.vc.ct.tmp[7] : 0 [by b.b.vc.ct.C2Els[0]._y:=1] + 120281 b.b.vc.ct.in[3] : 0 [by b.b.vc.OR2_tf[3]._y:=1] + 120292 b.b.vc.ct.C2Els[1]._y : 1 [by b.b.vc.ct.in[3]:=0] + 128896 b.b._flushB : 1 [by b.flush:=0] + 133555 b.b.vc.ct.tmp[9] : 0 [by b.b.vc.ct.C3Els[0]._y:=1] + 172078 b.b.vc.ct.tmp[8] : 0 [by b.b.vc.ct.C2Els[1]._y:=1] + 172282 b.b.vc.ct.C3Els[1]._y : 1 [by b.b.vc.ct.tmp[8]:=0] + 172297 b.b._in_v : 0 [by b.b.vc.ct.C3Els[1]._y:=1] + 172298 b.b.in_v_buf._y : 1 [by b.b._in_v:=0] + 172335 b.in.v : 0 [by b.b.in_v_buf._y:=1] +[] Set reset 0 + + 172335 Reset : 0 + 173074 b._reset_B : 1 [by Reset:=0] + 173186 b.b.reset_buf._y : 0 [by b._reset_B:=1] + 173226 b.b._reset_BX : 1 [by b.b.reset_buf._y:=0] + 173483 b.b.reset_bufarray.buf2._y : 0 [by b.b._reset_BX:=1] + 173570 b.b._reset_BXX[0] : 1 [by b.b.reset_bufarray.buf2._y:=0] + 220586 b.b._reset : 0 [by b._reset_B:=1] +[] Flushing data + 220586 b.flush : 1 + 220880 b.b._flushB : 0 [by b.flush:=1] + 220881 b.b.t_buf_func[0]._y : 1 [by b.b._flushB:=0] + 221045 b.out.d[0].t : 0 [by b.b.t_buf_func[0]._y:=1] + 221058 b.b.t_buf_func[5]._y : 1 [by b.b._flushB:=0] + 221470 b.b.t_buf_func[4]._y : 1 [by b.b._flushB:=0] + 221492 b.out.d[4].t : 0 [by b.b.t_buf_func[4]._y:=1] + 221683 b.b.t_buf_func[6]._y : 1 [by b.b._flushB:=0] + 222089 b.b.t_buf_func[3]._y : 1 [by b.b._flushB:=0] + 222530 b.out.d[6].t : 0 [by b.b.t_buf_func[6]._y:=1] + 222686 b.b.t_buf_func[1]._y : 1 [by b.b._flushB:=0] + 222819 b.out.d[1].t : 0 [by b.b.t_buf_func[1]._y:=1] + 222887 b.b.t_buf_func[2]._y : 1 [by b.b._flushB:=0] + 223253 b.out.d[5].t : 0 [by b.b.t_buf_func[5]._y:=1] + 238549 b.out.d[2].t : 0 [by b.b.t_buf_func[2]._y:=1] + 252217 b.out.d[3].t : 0 [by b.b.t_buf_func[3]._y:=1] + 252217 b.flush : 0 + 252576 b.b._flushB : 1 [by b.flush:=0] +[] Sending in a 0 + 252576 b.b.f_buf_func[0].n1 : 1 + 252576 b.b.f_buf_func[6].n1 : 1 + 252576 b.b.f_buf_func[2].n1 : 1 + 252576 b.b.f_buf_func[5].n1 : 1 + 252576 b.b.f_buf_func[1].n1 : 1 + 252576 b.b.f_buf_func[4].n1 : 1 + 252576 b.b.f_buf_func[3].n1 : 1 + 252583 b.b.vc.OR2_tf[1]._y : 0 [by b.b.f_buf_func[1].n1:=1] + 252583 b.b.vc.OR2_tf[6]._y : 0 [by b.b.f_buf_func[6].n1:=1] + 252595 b.b.vc.ct.in[6] : 1 [by b.b.vc.OR2_tf[6]._y:=0] + 252606 b.b.f_buf_func[6]._y : 0 [by b.b.f_buf_func[6].n1:=1] + 252654 b.b.f_buf_func[4]._y : 0 [by b.b.f_buf_func[4].n1:=1] + 252666 b.out.d[4].f : 1 [by b.b.f_buf_func[4]._y:=0] + 252667 b.b.vc.OR2_tf[5]._y : 0 [by b.b.f_buf_func[5].n1:=1] + 252682 b.b.vc.OR2_tf[4]._y : 0 [by b.b.f_buf_func[4].n1:=1] + 252797 b.b.f_buf_func[0]._y : 0 [by b.b.f_buf_func[0].n1:=1] + 252851 b.b.vc.OR2_tf[3]._y : 0 [by b.b.f_buf_func[3].n1:=1] + 253010 b.out.d[6].f : 1 [by b.b.f_buf_func[6]._y:=0] + 253038 b.b.vc.ct.in[1] : 1 [by b.b.vc.OR2_tf[1]._y:=0] + 254765 b.b.f_buf_func[5]._y : 0 [by b.b.f_buf_func[5].n1:=1] + 254767 b.out.d[5].f : 1 [by b.b.f_buf_func[5]._y:=0] + 255363 b.b.f_buf_func[1]._y : 0 [by b.b.f_buf_func[1].n1:=1] + 255696 b.out.d[0].f : 1 [by b.b.f_buf_func[0]._y:=0] + 256958 b.b.vc.ct.in[4] : 1 [by b.b.vc.OR2_tf[4]._y:=0] + 257146 b.b.vc.ct.in[3] : 1 [by b.b.vc.OR2_tf[3]._y:=0] + 258583 b.b.vc.ct.in[5] : 1 [by b.b.vc.OR2_tf[5]._y:=0] + 259289 b.b.vc.OR2_tf[2]._y : 0 [by b.b.f_buf_func[2].n1:=1] + 259832 b.b.vc.ct.C3Els[0]._y : 0 [by b.b.vc.ct.in[5]:=1] + 259898 b.out.d[1].f : 1 [by b.b.f_buf_func[1]._y:=0] + 259998 b.b.vc.ct.tmp[9] : 1 [by b.b.vc.ct.C3Els[0]._y:=0] + 262788 b.b.vc.ct.in[2] : 1 [by b.b.vc.OR2_tf[2]._y:=0] + 262863 b.b.vc.ct.C2Els[1]._y : 0 [by b.b.vc.ct.in[2]:=1] + 263208 b.b.vc.ct.tmp[8] : 1 [by b.b.vc.ct.C2Els[1]._y:=0] + 266692 b.b.vc.OR2_tf[0]._y : 0 [by b.b.f_buf_func[0].n1:=1] + 266830 b.b.vc.ct.in[0] : 1 [by b.b.vc.OR2_tf[0]._y:=0] + 271572 b.b.f_buf_func[3]._y : 0 [by b.b.f_buf_func[3].n1:=1] + 271574 b.out.d[3].f : 1 [by b.b.f_buf_func[3]._y:=0] + 272093 b.b.vc.ct.C2Els[0]._y : 0 [by b.b.vc.ct.in[0]:=1] + 310037 b.b.f_buf_func[2]._y : 0 [by b.b.f_buf_func[2].n1:=1] + 310038 b.out.d[2].f : 1 [by b.b.f_buf_func[2]._y:=0] + 316010 b.b.vc.ct.tmp[7] : 1 [by b.b.vc.ct.C2Els[0]._y:=0] + 316558 b.b.vc.ct.C3Els[1]._y : 0 [by b.b.vc.ct.tmp[7]:=1] + 316569 b.b._in_v : 1 [by b.b.vc.ct.C3Els[1]._y:=0] + 316939 b.b.in_v_buf._y : 0 [by b.b._in_v:=1] + 317006 b.in.v : 1 [by b.b.in_v_buf._y:=0] +[] Sending in output valid + 317006 b.out_v : 1 + 319647 b.b._en : 0 [by b.out_v:=1] + 319663 b.in.a : 1 [by b.b._en:=0] + 320175 b.b.en_buf_t.buf2._y : 1 [by b.b._en:=0] + 322610 b.b._en_X_t[0] : 0 [by b.b.en_buf_t.buf2._y:=1] + 324209 b.b.en_buf_f.buf2._y : 1 [by b.b._en:=0] + 351089 b.b._en_X_f[0] : 0 [by b.b.en_buf_f.buf2._y:=1] +[] Removing input + 351089 b.b.f_buf_func[0].n1 : 0 + 351089 b.b.f_buf_func[6].n1 : 0 + 351089 b.b.f_buf_func[2].n1 : 0 + 351089 b.b.f_buf_func[5].n1 : 0 + 351089 b.b.f_buf_func[1].n1 : 0 + 351089 b.b.f_buf_func[4].n1 : 0 + 351089 b.b.f_buf_func[3].n1 : 0 + 351091 b.b.vc.OR2_tf[2]._y : 1 [by b.b.f_buf_func[2].n1:=0] + 351092 b.b.vc.OR2_tf[1]._y : 1 [by b.b.f_buf_func[1].n1:=0] + 351118 b.b.vc.OR2_tf[4]._y : 1 [by b.b.f_buf_func[4].n1:=0] + 351162 b.b.vc.ct.in[4] : 0 [by b.b.vc.OR2_tf[4]._y:=1] + 351245 b.b.vc.ct.in[1] : 0 [by b.b.vc.OR2_tf[1]._y:=1] + 351406 b.b.vc.OR2_tf[3]._y : 1 [by b.b.f_buf_func[3].n1:=0] + 352692 b.b.vc.ct.in[2] : 0 [by b.b.vc.OR2_tf[2]._y:=1] + 354167 b.b.vc.ct.in[3] : 0 [by b.b.vc.OR2_tf[3]._y:=1] + 364130 b.b.vc.OR2_tf[6]._y : 1 [by b.b.f_buf_func[6].n1:=0] + 364131 b.b.vc.ct.in[6] : 0 [by b.b.vc.OR2_tf[6]._y:=1] + 367850 b.b.vc.ct.C2Els[1]._y : 1 [by b.b.vc.ct.in[3]:=0] + 368067 b.b.vc.ct.tmp[8] : 0 [by b.b.vc.ct.C2Els[1]._y:=1] + 375014 b.b.vc.OR2_tf[0]._y : 1 [by b.b.f_buf_func[0].n1:=0] + 375036 b.b.vc.ct.in[0] : 0 [by b.b.vc.OR2_tf[0]._y:=1] + 375037 b.b.vc.ct.C2Els[0]._y : 1 [by b.b.vc.ct.in[0]:=0] + 376618 b.b.vc.ct.tmp[7] : 0 [by b.b.vc.ct.C2Els[0]._y:=1] + 412047 b.b.vc.OR2_tf[5]._y : 1 [by b.b.f_buf_func[5].n1:=0] + 421392 b.b.vc.ct.in[5] : 0 [by b.b.vc.OR2_tf[5]._y:=1] + 421551 b.b.vc.ct.C3Els[0]._y : 1 [by b.b.vc.ct.in[5]:=0] + 441227 b.b.vc.ct.tmp[9] : 0 [by b.b.vc.ct.C3Els[0]._y:=1] + 442514 b.b.vc.ct.C3Els[1]._y : 1 [by b.b.vc.ct.tmp[9]:=0] + 444746 b.b._in_v : 0 [by b.b.vc.ct.C3Els[1]._y:=1] + 444891 b.b.in_v_buf._y : 1 [by b.b._in_v:=0] + 447723 b.in.v : 0 [by b.b.in_v_buf._y:=1] + 454077 b.b._en : 1 [by b.in.v:=0] + 454078 b.in.a : 0 [by b.b._en:=1] + 454239 b.b.en_buf_t.buf2._y : 0 [by b.b._en:=1] + 461608 b.b._en_X_t[0] : 1 [by b.b.en_buf_t.buf2._y:=0] + 493361 b.b.en_buf_f.buf2._y : 0 [by b.b._en:=1] + 493375 b.b._en_X_f[0] : 1 [by b.b.en_buf_f.buf2._y:=0] +[] Flushing data + 493375 b.flush : 1 + 493382 b.b._flushB : 0 [by b.flush:=1] + 493383 b.b.f_buf_func[2]._y : 1 [by b.b._flushB:=0] + 493383 b.b.f_buf_func[3]._y : 1 [by b.b._flushB:=0] + 493383 b.b.f_buf_func[4]._y : 1 [by b.b._flushB:=0] + 493384 b.out.d[2].f : 0 [by b.b.f_buf_func[2]._y:=1] + 493542 b.b.f_buf_func[0]._y : 1 [by b.b._flushB:=0] + 493543 b.out.d[0].f : 0 [by b.b.f_buf_func[0]._y:=1] + 493569 b.b.f_buf_func[6]._y : 1 [by b.b._flushB:=0] + 494422 b.out.d[6].f : 0 [by b.b.f_buf_func[6]._y:=1] + 495625 b.b.f_buf_func[5]._y : 1 [by b.b._flushB:=0] + 495630 b.out.d[5].f : 0 [by b.b.f_buf_func[5]._y:=1] + 497565 b.out.d[3].f : 0 [by b.b.f_buf_func[3]._y:=1] + 514939 b.b.f_buf_func[1]._y : 1 [by b.b._flushB:=0] + 515830 b.out.d[1].f : 0 [by b.b.f_buf_func[1]._y:=1] + 528165 b.out.d[4].f : 0 [by b.b.f_buf_func[4]._y:=1] + 528165 b.out_v : 0 + 528165 b.flush : 0 + 528166 b.b._flushB : 1 [by b.flush:=0] +[] Sending in a 127 + 528166 b.b.t_buf_func[0].n1 : 1 + 528166 b.b.t_buf_func[6].n1 : 1 + 528166 b.b.t_buf_func[2].n1 : 1 + 528166 b.b.t_buf_func[5].n1 : 1 + 528166 b.b.t_buf_func[1].n1 : 1 + 528166 b.b.t_buf_func[4].n1 : 1 + 528166 b.b.t_buf_func[3].n1 : 1 + 528167 b.b.vc.OR2_tf[5]._y : 0 [by b.b.t_buf_func[5].n1:=1] + 528169 b.b.t_buf_func[6]._y : 0 [by b.b.t_buf_func[6].n1:=1] + 528174 b.b.vc.OR2_tf[3]._y : 0 [by b.b.t_buf_func[3].n1:=1] + 528178 b.b.vc.ct.in[3] : 1 [by b.b.vc.OR2_tf[3]._y:=0] + 528183 b.b.vc.OR2_tf[0]._y : 0 [by b.b.t_buf_func[0].n1:=1] + 528200 b.b.t_buf_func[3]._y : 0 [by b.b.t_buf_func[3].n1:=1] + 528208 b.b.t_buf_func[5]._y : 0 [by b.b.t_buf_func[5].n1:=1] + 528261 b.b.vc.OR2_tf[4]._y : 0 [by b.b.t_buf_func[4].n1:=1] + 528501 b.b.t_buf_func[4]._y : 0 [by b.b.t_buf_func[4].n1:=1] + 528549 b.out.d[4].t : 1 [by b.b.t_buf_func[4]._y:=0] + 529087 b.out.d[6].t : 1 [by b.b.t_buf_func[6]._y:=0] + 529107 b.b.vc.OR2_tf[2]._y : 0 [by b.b.t_buf_func[2].n1:=1] + 529110 b.b.vc.ct.in[2] : 1 [by b.b.vc.OR2_tf[2]._y:=0] + 529288 b.b.vc.ct.C2Els[1]._y : 0 [by b.b.vc.ct.in[2]:=1] + 530598 b.out.d[3].t : 1 [by b.b.t_buf_func[3]._y:=0] + 530739 b.b.t_buf_func[0]._y : 0 [by b.b.t_buf_func[0].n1:=1] + 530983 b.b.vc.OR2_tf[1]._y : 0 [by b.b.t_buf_func[1].n1:=1] + 531423 b.out.d[5].t : 1 [by b.b.t_buf_func[5]._y:=0] + 536527 b.b.vc.OR2_tf[6]._y : 0 [by b.b.t_buf_func[6].n1:=1] + 536934 b.b.vc.ct.in[1] : 1 [by b.b.vc.OR2_tf[1]._y:=0] + 541899 b.b.t_buf_func[1]._y : 0 [by b.b.t_buf_func[1].n1:=1] + 542054 b.b.vc.ct.in[5] : 1 [by b.b.vc.OR2_tf[5]._y:=0] + 542638 b.out.d[0].t : 1 [by b.b.t_buf_func[0]._y:=0] + 542726 b.out.d[1].t : 1 [by b.b.t_buf_func[1]._y:=0] + 550265 b.b.vc.ct.tmp[8] : 1 [by b.b.vc.ct.C2Els[1]._y:=0] + 574561 b.b.vc.ct.in[0] : 1 [by b.b.vc.OR2_tf[0]._y:=0] + 574734 b.b.vc.ct.C2Els[0]._y : 0 [by b.b.vc.ct.in[0]:=1] + 574918 b.b.vc.ct.tmp[7] : 1 [by b.b.vc.ct.C2Els[0]._y:=0] + 575380 b.b.vc.ct.in[4] : 1 [by b.b.vc.OR2_tf[4]._y:=0] + 576012 b.b.vc.ct.in[6] : 1 [by b.b.vc.OR2_tf[6]._y:=0] + 576013 b.b.vc.ct.C3Els[0]._y : 0 [by b.b.vc.ct.in[6]:=1] + 576086 b.b.vc.ct.tmp[9] : 1 [by b.b.vc.ct.C3Els[0]._y:=0] + 576090 b.b.vc.ct.C3Els[1]._y : 0 [by b.b.vc.ct.tmp[9]:=1] + 587128 b.b.t_buf_func[2]._y : 0 [by b.b.t_buf_func[2].n1:=1] + 587224 b.out.d[2].t : 1 [by b.b.t_buf_func[2]._y:=0] + 613378 b.b._in_v : 1 [by b.b.vc.ct.C3Els[1]._y:=0] + 613514 b.b.in_v_buf._y : 0 [by b.b._in_v:=1] + 613515 b.in.v : 1 [by b.b.in_v_buf._y:=0] +[] Sending in output valid + 613515 b.out_v : 1 + 632561 b.b._en : 0 [by b.out_v:=1] + 632573 b.b.en_buf_t.buf2._y : 1 [by b.b._en:=0] + 632802 b.in.a : 1 [by b.b._en:=0] + 636473 b.b._en_X_t[0] : 0 [by b.b.en_buf_t.buf2._y:=1] + 636520 b.b.en_buf_f.buf2._y : 1 [by b.b._en:=0] + 637549 b.b._en_X_f[0] : 0 [by b.b.en_buf_f.buf2._y:=1] +[] Removing input + 637549 b.b.t_buf_func[0].n1 : 0 + 637549 b.b.t_buf_func[6].n1 : 0 + 637549 b.b.t_buf_func[2].n1 : 0 + 637549 b.b.t_buf_func[5].n1 : 0 + 637549 b.b.t_buf_func[1].n1 : 0 + 637549 b.b.t_buf_func[4].n1 : 0 + 637549 b.b.t_buf_func[3].n1 : 0 + 637550 b.b.vc.OR2_tf[0]._y : 1 [by b.b.t_buf_func[0].n1:=0] + 637550 b.b.vc.OR2_tf[3]._y : 1 [by b.b.t_buf_func[3].n1:=0] + 637550 b.b.vc.OR2_tf[5]._y : 1 [by b.b.t_buf_func[5].n1:=0] + 637563 b.b.vc.ct.in[5] : 0 [by b.b.vc.OR2_tf[5]._y:=1] + 637586 b.b.vc.OR2_tf[1]._y : 1 [by b.b.t_buf_func[1].n1:=0] + 637605 b.b.vc.OR2_tf[6]._y : 1 [by b.b.t_buf_func[6].n1:=0] + 637962 b.b.vc.ct.in[6] : 0 [by b.b.vc.OR2_tf[6]._y:=1] + 639242 b.b.vc.ct.in[3] : 0 [by b.b.vc.OR2_tf[3]._y:=1] + 641114 b.b.vc.ct.in[0] : 0 [by b.b.vc.OR2_tf[0]._y:=1] + 654570 b.b.vc.ct.in[1] : 0 [by b.b.vc.OR2_tf[1]._y:=1] + 654595 b.b.vc.ct.C2Els[0]._y : 1 [by b.b.vc.ct.in[1]:=0] + 654616 b.b.vc.ct.tmp[7] : 0 [by b.b.vc.ct.C2Els[0]._y:=1] + 660924 b.b.vc.OR2_tf[4]._y : 1 [by b.b.t_buf_func[4].n1:=0] + 660925 b.b.vc.ct.in[4] : 0 [by b.b.vc.OR2_tf[4]._y:=1] + 670573 b.b.vc.ct.C3Els[0]._y : 1 [by b.b.vc.ct.in[4]:=0] + 670574 b.b.vc.ct.tmp[9] : 0 [by b.b.vc.ct.C3Els[0]._y:=1] + 682555 b.b.vc.OR2_tf[2]._y : 1 [by b.b.t_buf_func[2].n1:=0] + 682556 b.b.vc.ct.in[2] : 0 [by b.b.vc.OR2_tf[2]._y:=1] + 682717 b.b.vc.ct.C2Els[1]._y : 1 [by b.b.vc.ct.in[2]:=0] + 683754 b.b.vc.ct.tmp[8] : 0 [by b.b.vc.ct.C2Els[1]._y:=1] + 683759 b.b.vc.ct.C3Els[1]._y : 1 [by b.b.vc.ct.tmp[8]:=0] + 684340 b.b._in_v : 0 [by b.b.vc.ct.C3Els[1]._y:=1] + 684748 b.b.in_v_buf._y : 1 [by b.b._in_v:=0] + 684759 b.in.v : 0 [by b.b.in_v_buf._y:=1] + 685806 b.b._en : 1 [by b.in.v:=0] + 685810 b.b.en_buf_t.buf2._y : 0 [by b.b._en:=1] + 685820 b.in.a : 0 [by b.b._en:=1] + 685824 b.b.en_buf_f.buf2._y : 0 [by b.b._en:=1] + 685914 b.b._en_X_t[0] : 1 [by b.b.en_buf_t.buf2._y:=0] + 717268 b.b._en_X_f[0] : 1 [by b.b.en_buf_f.buf2._y:=0] +[] Flushing data + 717268 b.flush : 1 + 718472 b.b._flushB : 0 [by b.flush:=1] + 718483 b.b.t_buf_func[6]._y : 1 [by b.b._flushB:=0] + 718486 b.out.d[6].t : 0 [by b.b.t_buf_func[6]._y:=1] + 718542 b.b.t_buf_func[4]._y : 1 [by b.b._flushB:=0] + 718596 b.out.d[4].t : 0 [by b.b.t_buf_func[4]._y:=1] + 718700 b.b.t_buf_func[1]._y : 1 [by b.b._flushB:=0] + 719315 b.b.t_buf_func[2]._y : 1 [by b.b._flushB:=0] + 719848 b.out.d[1].t : 0 [by b.b.t_buf_func[1]._y:=1] + 719931 b.b.t_buf_func[3]._y : 1 [by b.b._flushB:=0] + 720476 b.out.d[2].t : 0 [by b.b.t_buf_func[2]._y:=1] + 726927 b.b.t_buf_func[0]._y : 1 [by b.b._flushB:=0] + 727008 b.out.d[0].t : 0 [by b.b.t_buf_func[0]._y:=1] + 728583 b.out.d[3].t : 0 [by b.b.t_buf_func[3]._y:=1] + 768894 b.b.t_buf_func[5]._y : 1 [by b.b._flushB:=0] + 779971 b.out.d[5].t : 0 [by b.b.t_buf_func[5]._y:=1] + 779971 b.out_v : 0 + 779971 b.flush : 0 + 797954 b.b._flushB : 1 [by b.flush:=0] +[] Sending in a 56 + 797954 b.b.f_buf_func[0].n1 : 1 + 797954 b.b.f_buf_func[6].n1 : 1 + 797954 b.b.f_buf_func[2].n1 : 1 + 797954 b.b.t_buf_func[5].n1 : 1 + 797954 b.b.f_buf_func[1].n1 : 1 + 797954 b.b.t_buf_func[4].n1 : 1 + 797954 b.b.t_buf_func[3].n1 : 1 + 797961 b.b.t_buf_func[4]._y : 0 [by b.b.t_buf_func[4].n1:=1] + 797963 b.out.d[4].t : 1 [by b.b.t_buf_func[4]._y:=0] + 797999 b.b.f_buf_func[2]._y : 0 [by b.b.f_buf_func[2].n1:=1] + 798006 b.b.vc.OR2_tf[4]._y : 0 [by b.b.t_buf_func[4].n1:=1] + 798046 b.b.vc.OR2_tf[0]._y : 0 [by b.b.f_buf_func[0].n1:=1] + 798047 b.b.vc.ct.in[0] : 1 [by b.b.vc.OR2_tf[0]._y:=0] + 798139 b.b.vc.ct.in[4] : 1 [by b.b.vc.OR2_tf[4]._y:=0] + 798353 b.out.d[2].f : 1 [by b.b.f_buf_func[2]._y:=0] + 798479 b.b.vc.OR2_tf[1]._y : 0 [by b.b.f_buf_func[1].n1:=1] + 798483 b.b.vc.ct.in[1] : 1 [by b.b.vc.OR2_tf[1]._y:=0] + 798567 b.b.f_buf_func[6]._y : 0 [by b.b.f_buf_func[6].n1:=1] + 798854 b.b.f_buf_func[1]._y : 0 [by b.b.f_buf_func[1].n1:=1] + 798855 b.out.d[1].f : 1 [by b.b.f_buf_func[1]._y:=0] + 798951 b.b.vc.OR2_tf[5]._y : 0 [by b.b.t_buf_func[5].n1:=1] + 799029 b.b.vc.ct.C2Els[0]._y : 0 [by b.b.vc.ct.in[1]:=1] + 799108 b.b.vc.ct.tmp[7] : 1 [by b.b.vc.ct.C2Els[0]._y:=0] + 799603 b.b.t_buf_func[5]._y : 0 [by b.b.t_buf_func[5].n1:=1] + 799698 b.b.vc.OR2_tf[6]._y : 0 [by b.b.f_buf_func[6].n1:=1] + 799786 b.b.vc.ct.in[6] : 1 [by b.b.vc.OR2_tf[6]._y:=0] + 802036 b.out.d[5].t : 1 [by b.b.t_buf_func[5]._y:=0] + 804421 b.b.t_buf_func[3]._y : 0 [by b.b.t_buf_func[3].n1:=1] + 806265 b.b.f_buf_func[0]._y : 0 [by b.b.f_buf_func[0].n1:=1] + 811329 b.b.vc.ct.in[5] : 1 [by b.b.vc.OR2_tf[5]._y:=0] + 811388 b.b.vc.ct.C3Els[0]._y : 0 [by b.b.vc.ct.in[5]:=1] + 811418 b.b.vc.ct.tmp[9] : 1 [by b.b.vc.ct.C3Els[0]._y:=0] + 811976 b.b.vc.OR2_tf[2]._y : 0 [by b.b.f_buf_func[2].n1:=1] + 812203 b.out.d[3].t : 1 [by b.b.t_buf_func[3]._y:=0] + 813443 b.b.vc.ct.in[2] : 1 [by b.b.vc.OR2_tf[2]._y:=0] + 813566 b.b.vc.OR2_tf[3]._y : 0 [by b.b.t_buf_func[3].n1:=1] + 834592 b.out.d[0].f : 1 [by b.b.f_buf_func[0]._y:=0] + 844130 b.out.d[6].f : 1 [by b.b.f_buf_func[6]._y:=0] + 873070 b.b.vc.ct.in[3] : 1 [by b.b.vc.OR2_tf[3]._y:=0] + 892454 b.b.vc.ct.C2Els[1]._y : 0 [by b.b.vc.ct.in[3]:=1] + 893139 b.b.vc.ct.tmp[8] : 1 [by b.b.vc.ct.C2Els[1]._y:=0] + 909854 b.b.vc.ct.C3Els[1]._y : 0 [by b.b.vc.ct.tmp[8]:=1] + 909981 b.b._in_v : 1 [by b.b.vc.ct.C3Els[1]._y:=0] + 910150 b.b.in_v_buf._y : 0 [by b.b._in_v:=1] + 910193 b.in.v : 1 [by b.b.in_v_buf._y:=0] +[] Sending in output valid + 910193 b.out_v : 1 + 910205 b.b._en : 0 [by b.out_v:=1] + 910208 b.b.en_buf_t.buf2._y : 1 [by b.b._en:=0] + 910246 b.b._en_X_t[0] : 0 [by b.b.en_buf_t.buf2._y:=1] + 910438 b.b.en_buf_f.buf2._y : 1 [by b.b._en:=0] + 910439 b.b._en_X_f[0] : 0 [by b.b.en_buf_f.buf2._y:=1] + 911484 b.in.a : 1 [by b.b._en:=0] +[] Removing input + 911484 b.b.f_buf_func[0].n1 : 0 + 911484 b.b.f_buf_func[6].n1 : 0 + 911484 b.b.f_buf_func[2].n1 : 0 + 911484 b.b.t_buf_func[5].n1 : 0 + 911484 b.b.f_buf_func[1].n1 : 0 + 911484 b.b.t_buf_func[4].n1 : 0 + 911484 b.b.t_buf_func[3].n1 : 0 + 911485 b.b.vc.OR2_tf[1]._y : 1 [by b.b.f_buf_func[1].n1:=0] + 911486 b.b.vc.OR2_tf[3]._y : 1 [by b.b.t_buf_func[3].n1:=0] + 911486 b.b.vc.OR2_tf[5]._y : 1 [by b.b.t_buf_func[5].n1:=0] + 911503 b.b.vc.ct.in[1] : 0 [by b.b.vc.OR2_tf[1]._y:=1] + 911576 b.b.vc.OR2_tf[6]._y : 1 [by b.b.f_buf_func[6].n1:=0] + 911584 b.b.vc.ct.in[6] : 0 [by b.b.vc.OR2_tf[6]._y:=1] + 911605 b.b.vc.ct.in[3] : 0 [by b.b.vc.OR2_tf[3]._y:=1] + 912985 b.b.vc.OR2_tf[4]._y : 1 [by b.b.t_buf_func[4].n1:=0] + 913039 b.b.vc.ct.in[4] : 0 [by b.b.vc.OR2_tf[4]._y:=1] + 914211 b.b.vc.OR2_tf[2]._y : 1 [by b.b.f_buf_func[2].n1:=0] + 917206 b.b.vc.ct.in[5] : 0 [by b.b.vc.OR2_tf[5]._y:=1] + 917211 b.b.vc.ct.C3Els[0]._y : 1 [by b.b.vc.ct.in[5]:=0] + 918278 b.b.vc.ct.tmp[9] : 0 [by b.b.vc.ct.C3Els[0]._y:=1] + 924236 b.b.vc.OR2_tf[0]._y : 1 [by b.b.f_buf_func[0].n1:=0] + 924237 b.b.vc.ct.in[0] : 0 [by b.b.vc.OR2_tf[0]._y:=1] + 924375 b.b.vc.ct.C2Els[0]._y : 1 [by b.b.vc.ct.in[0]:=0] + 924376 b.b.vc.ct.tmp[7] : 0 [by b.b.vc.ct.C2Els[0]._y:=1] + 964749 b.b.vc.ct.in[2] : 0 [by b.b.vc.OR2_tf[2]._y:=1] + 964813 b.b.vc.ct.C2Els[1]._y : 1 [by b.b.vc.ct.in[2]:=0] + 964936 b.b.vc.ct.tmp[8] : 0 [by b.b.vc.ct.C2Els[1]._y:=1] + 964938 b.b.vc.ct.C3Els[1]._y : 1 [by b.b.vc.ct.tmp[8]:=0] + 964975 b.b._in_v : 0 [by b.b.vc.ct.C3Els[1]._y:=1] + 965118 b.b.in_v_buf._y : 1 [by b.b._in_v:=0] + 965169 b.in.v : 0 [by b.b.in_v_buf._y:=1] + 965611 b.b._en : 1 [by b.in.v:=0] + 965612 b.b.en_buf_f.buf2._y : 0 [by b.b._en:=1] + 965620 b.b.en_buf_t.buf2._y : 0 [by b.b._en:=1] + 965622 b.in.a : 0 [by b.b._en:=1] + 965637 b.b._en_X_f[0] : 1 [by b.b.en_buf_f.buf2._y:=0] + 975873 b.b._en_X_t[0] : 1 [by b.b.en_buf_t.buf2._y:=0] +[] Resetting + 975873 Reset : 1 + 979394 b._reset_B : 0 [by Reset:=1] + 979539 b.b.reset_buf._y : 1 [by b._reset_B:=0] + 979769 b.b._reset_BX : 0 [by b.b.reset_buf._y:=1] + 980460 b.b.reset_bufarray.buf2._y : 1 [by b.b._reset_BX:=0] + 980474 b.b._reset_BXX[0] : 0 [by b.b.reset_bufarray.buf2._y:=1] + 980485 b.b.f_buf_func[6]._y : 1 [by b.b._reset_BXX[0]:=0] + 980486 b.out.d[6].f : 0 [by b.b.f_buf_func[6]._y:=1] + 982017 b.b.f_buf_func[0]._y : 1 [by b.b._reset_BXX[0]:=0] + 982018 b.out.d[0].f : 0 [by b.b.f_buf_func[0]._y:=1] + 982085 b.b.f_buf_func[1]._y : 1 [by b.b._reset_BXX[0]:=0] + 988586 b.out.d[1].f : 0 [by b.b.f_buf_func[1]._y:=1] + 995562 b.b._reset : 1 [by b._reset_B:=0] + 995563 b.b.t_buf_func[6]._y : 0 [by b.b._reset:=1] + 995580 b.out.d[6].t : 1 [by b.b.t_buf_func[6]._y:=0] + 995694 b.b.t_buf_func[2]._y : 0 [by b.b._reset:=1] + 995846 b.out.d[2].t : 1 [by b.b.t_buf_func[2]._y:=0] + 996201 b.b.t_buf_func[0]._y : 0 [by b.b._reset:=1] + 997355 b.b.t_buf_func[1]._y : 0 [by b.b._reset:=1] + 997358 b.out.d[1].t : 1 [by b.b.t_buf_func[1]._y:=0] + 997986 b.b.f_buf_func[2]._y : 1 [by b.b._reset_BXX[0]:=0] + 998410 b.out.d[2].f : 0 [by b.b.f_buf_func[2]._y:=1] + 999184 b.out.d[0].t : 1 [by b.b.t_buf_func[0]._y:=0] + 999184 Reset : 0 + 999190 b._reset_B : 1 [by Reset:=0] + 1001651 b.b._reset : 0 [by b._reset_B:=1] + 1001778 b.b.reset_buf._y : 0 [by b._reset_B:=1] + 1002608 b.b._reset_BX : 1 [by b.b.reset_buf._y:=0] + 1025540 b.b.reset_bufarray.buf2._y : 0 [by b.b._reset_BX:=1] + 1025542 b.b._reset_BXX[0] : 1 [by b.b.reset_bufarray.buf2._y:=0] diff --git a/test/unit_tests/buffer_register_7/run/prsim.pdf b/test/unit_tests/buffer_register_7/run/prsim.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0aeb32c369006234df693d1a56789f0de02a654e GIT binary patch literal 27571 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 literal 0 HcmV?d00001 diff --git a/test/unit_tests/buffer_register_7/run/test.prs b/test/unit_tests/buffer_register_7/run/test.prs new file mode 100644 index 0000000..c922afd --- /dev/null +++ b/test/unit_tests/buffer_register_7/run/test.prs @@ -0,0 +1,746 @@ += "GND" "GND" += "Vdd" "Vdd" += "Reset" "Reset" +"Reset"->"b._reset_B"- +~("Reset")->"b._reset_B"+ += "b.b._en_X_f[0]" "b.b.en_buf_f.out[0]" += "b.b._en_X_f[1]" "b.b.en_buf_f.out[1]" += "b.b._en_X_f[2]" "b.b.en_buf_f.out[2]" += "b.b._en_X_f[3]" "b.b.en_buf_f.out[3]" += "b.b._en_X_f[4]" "b.b.en_buf_f.out[4]" += "b.b._en_X_f[5]" "b.b.en_buf_f.out[5]" += "b.b._en_X_f[6]" "b.b.en_buf_f.out[6]" += "b.b._en_X_f[0]" "b.b.f_buf_func[6].n2" += "b.b._en_X_f[0]" "b.b.f_buf_func[5].n2" += "b.b._en_X_f[0]" "b.b.f_buf_func[4].n2" += "b.b._en_X_f[0]" "b.b.f_buf_func[3].n2" += "b.b._en_X_f[0]" "b.b.f_buf_func[2].n2" += "b.b._en_X_f[0]" "b.b.f_buf_func[1].n2" += "b.b._en_X_f[0]" "b.b.f_buf_func[0].n2" += "b.b._en_X_f[0]" "b.b._en_X_f[6]" += "b.b._en_X_f[0]" "b.b._en_X_f[5]" += "b.b._en_X_f[0]" "b.b._en_X_f[4]" += "b.b._en_X_f[0]" "b.b._en_X_f[3]" += "b.b._en_X_f[0]" "b.b._en_X_f[2]" += "b.b._en_X_f[0]" "b.b._en_X_f[1]" +"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.reset_bufarray.buf2.a"->"b.b.reset_bufarray.buf2._y"- +~("b.b.reset_bufarray.buf2.a")->"b.b.reset_bufarray.buf2._y"+ +"b.b.reset_bufarray.buf2._y"->"b.b.reset_bufarray.buf2.y"- +~("b.b.reset_bufarray.buf2._y")->"b.b.reset_bufarray.buf2.y"+ += "b.b.reset_bufarray.supply.vdd" "b.b.reset_bufarray.buf2.vdd" += "b.b.reset_bufarray.supply.vss" "b.b.reset_bufarray.buf2.vss" += "b.b.reset_bufarray.out[0]" "b.b.reset_bufarray.out[6]" += "b.b.reset_bufarray.out[0]" "b.b.reset_bufarray.out[5]" += "b.b.reset_bufarray.out[0]" "b.b.reset_bufarray.out[4]" += "b.b.reset_bufarray.out[0]" "b.b.reset_bufarray.out[3]" += "b.b.reset_bufarray.out[0]" "b.b.reset_bufarray.out[2]" += "b.b.reset_bufarray.out[0]" "b.b.reset_bufarray.out[1]" += "b.b.reset_bufarray.out[0]" "b.b.reset_bufarray.buf2.y" += "b.b.reset_bufarray.in" "b.b.reset_bufarray.buf2.a" += "b.b.flush" "b.b.flush_inv.a" +~"b.b.inack_ctl.c1"&~"b.b.inack_ctl.c2"|~"b.b.inack_ctl.pr_B"->"b.b.inack_ctl.y"+ +"b.b.inack_ctl.c1"&"b.b.inack_ctl.c2"&"b.b.inack_ctl.n1"&"b.b.inack_ctl.sr_B"->"b.b.inack_ctl.y"- +~"b.b.vc.ct.C2Els[0].c1"&~"b.b.vc.ct.C2Els[0].c2"->"b.b.vc.ct.C2Els[0]._y"+ +"b.b.vc.ct.C2Els[0].c1"&"b.b.vc.ct.C2Els[0].c2"->"b.b.vc.ct.C2Els[0]._y"- +"b.b.vc.ct.C2Els[0]._y"->"b.b.vc.ct.C2Els[0].y"- +~("b.b.vc.ct.C2Els[0]._y")->"b.b.vc.ct.C2Els[0].y"+ +~"b.b.vc.ct.C2Els[1].c1"&~"b.b.vc.ct.C2Els[1].c2"->"b.b.vc.ct.C2Els[1]._y"+ +"b.b.vc.ct.C2Els[1].c1"&"b.b.vc.ct.C2Els[1].c2"->"b.b.vc.ct.C2Els[1]._y"- +"b.b.vc.ct.C2Els[1]._y"->"b.b.vc.ct.C2Els[1].y"- +~("b.b.vc.ct.C2Els[1]._y")->"b.b.vc.ct.C2Els[1].y"+ +~"b.b.vc.ct.C3Els[0].c1"&~"b.b.vc.ct.C3Els[0].c2"&~"b.b.vc.ct.C3Els[0].c3"->"b.b.vc.ct.C3Els[0]._y"+ +"b.b.vc.ct.C3Els[0].c1"&"b.b.vc.ct.C3Els[0].c2"&"b.b.vc.ct.C3Els[0].c3"->"b.b.vc.ct.C3Els[0]._y"- +"b.b.vc.ct.C3Els[0]._y"->"b.b.vc.ct.C3Els[0].y"- +~("b.b.vc.ct.C3Els[0]._y")->"b.b.vc.ct.C3Els[0].y"+ +~"b.b.vc.ct.C3Els[1].c1"&~"b.b.vc.ct.C3Els[1].c2"&~"b.b.vc.ct.C3Els[1].c3"->"b.b.vc.ct.C3Els[1]._y"+ +"b.b.vc.ct.C3Els[1].c1"&"b.b.vc.ct.C3Els[1].c2"&"b.b.vc.ct.C3Els[1].c3"->"b.b.vc.ct.C3Els[1]._y"- +"b.b.vc.ct.C3Els[1]._y"->"b.b.vc.ct.C3Els[1].y"- +~("b.b.vc.ct.C3Els[1]._y")->"b.b.vc.ct.C3Els[1].y"+ += "b.b.vc.ct.tmp[7]" "b.b.vc.ct.C3Els[1].c1" += "b.b.vc.ct.tmp[7]" "b.b.vc.ct.C2Els[0].y" += "b.b.vc.ct.tmp[8]" "b.b.vc.ct.C3Els[1].c2" += "b.b.vc.ct.tmp[8]" "b.b.vc.ct.C2Els[1].y" += "b.b.vc.ct.tmp[9]" "b.b.vc.ct.C3Els[1].c3" += "b.b.vc.ct.tmp[9]" "b.b.vc.ct.C3Els[0].y" += "b.b.vc.ct.supply.vdd" "b.b.vc.ct.C3Els[1].vdd" += "b.b.vc.ct.supply.vdd" "b.b.vc.ct.C3Els[0].vdd" += "b.b.vc.ct.supply.vdd" "b.b.vc.ct.C2Els[1].vdd" += "b.b.vc.ct.supply.vdd" "b.b.vc.ct.C2Els[0].vdd" += "b.b.vc.ct.supply.vss" "b.b.vc.ct.C3Els[1].vss" += "b.b.vc.ct.supply.vss" "b.b.vc.ct.C3Els[0].vss" += "b.b.vc.ct.supply.vss" "b.b.vc.ct.C2Els[1].vss" += "b.b.vc.ct.supply.vss" "b.b.vc.ct.C2Els[0].vss" += "b.b.vc.ct.in[0]" "b.b.vc.ct.C2Els[0].c1" += "b.b.vc.ct.in[0]" "b.b.vc.ct.tmp[0]" += "b.b.vc.ct.in[1]" "b.b.vc.ct.C2Els[0].c2" += "b.b.vc.ct.in[1]" "b.b.vc.ct.tmp[1]" += "b.b.vc.ct.in[2]" "b.b.vc.ct.C2Els[1].c1" += "b.b.vc.ct.in[2]" "b.b.vc.ct.tmp[2]" += "b.b.vc.ct.in[3]" "b.b.vc.ct.C2Els[1].c2" += "b.b.vc.ct.in[3]" "b.b.vc.ct.tmp[3]" += "b.b.vc.ct.in[4]" "b.b.vc.ct.C3Els[0].c1" += "b.b.vc.ct.in[4]" "b.b.vc.ct.tmp[4]" += "b.b.vc.ct.in[5]" "b.b.vc.ct.C3Els[0].c2" += "b.b.vc.ct.in[5]" "b.b.vc.ct.tmp[5]" += "b.b.vc.ct.in[6]" "b.b.vc.ct.C3Els[0].c3" += "b.b.vc.ct.in[6]" "b.b.vc.ct.tmp[6]" += "b.b.vc.ct.out" "b.b.vc.ct.C3Els[1].y" += "b.b.vc.ct.out" "b.b.vc.ct.tmp[10]" += "b.b.vc.ct.in[0]" "b.b.vc.OR2_tf[0].y" += "b.b.vc.ct.in[1]" "b.b.vc.OR2_tf[1].y" += "b.b.vc.ct.in[2]" "b.b.vc.OR2_tf[2].y" += "b.b.vc.ct.in[3]" "b.b.vc.OR2_tf[3].y" += "b.b.vc.ct.in[4]" "b.b.vc.OR2_tf[4].y" += "b.b.vc.ct.in[5]" "b.b.vc.OR2_tf[5].y" += "b.b.vc.ct.in[6]" "b.b.vc.OR2_tf[6].y" +"b.b.vc.OR2_tf[0].a"|"b.b.vc.OR2_tf[0].b"->"b.b.vc.OR2_tf[0]._y"- +~("b.b.vc.OR2_tf[0].a"|"b.b.vc.OR2_tf[0].b")->"b.b.vc.OR2_tf[0]._y"+ +"b.b.vc.OR2_tf[0]._y"->"b.b.vc.OR2_tf[0].y"- +~("b.b.vc.OR2_tf[0]._y")->"b.b.vc.OR2_tf[0].y"+ +"b.b.vc.OR2_tf[1].a"|"b.b.vc.OR2_tf[1].b"->"b.b.vc.OR2_tf[1]._y"- +~("b.b.vc.OR2_tf[1].a"|"b.b.vc.OR2_tf[1].b")->"b.b.vc.OR2_tf[1]._y"+ +"b.b.vc.OR2_tf[1]._y"->"b.b.vc.OR2_tf[1].y"- +~("b.b.vc.OR2_tf[1]._y")->"b.b.vc.OR2_tf[1].y"+ +"b.b.vc.OR2_tf[2].a"|"b.b.vc.OR2_tf[2].b"->"b.b.vc.OR2_tf[2]._y"- +~("b.b.vc.OR2_tf[2].a"|"b.b.vc.OR2_tf[2].b")->"b.b.vc.OR2_tf[2]._y"+ +"b.b.vc.OR2_tf[2]._y"->"b.b.vc.OR2_tf[2].y"- +~("b.b.vc.OR2_tf[2]._y")->"b.b.vc.OR2_tf[2].y"+ +"b.b.vc.OR2_tf[3].a"|"b.b.vc.OR2_tf[3].b"->"b.b.vc.OR2_tf[3]._y"- +~("b.b.vc.OR2_tf[3].a"|"b.b.vc.OR2_tf[3].b")->"b.b.vc.OR2_tf[3]._y"+ +"b.b.vc.OR2_tf[3]._y"->"b.b.vc.OR2_tf[3].y"- +~("b.b.vc.OR2_tf[3]._y")->"b.b.vc.OR2_tf[3].y"+ +"b.b.vc.OR2_tf[4].a"|"b.b.vc.OR2_tf[4].b"->"b.b.vc.OR2_tf[4]._y"- +~("b.b.vc.OR2_tf[4].a"|"b.b.vc.OR2_tf[4].b")->"b.b.vc.OR2_tf[4]._y"+ +"b.b.vc.OR2_tf[4]._y"->"b.b.vc.OR2_tf[4].y"- +~("b.b.vc.OR2_tf[4]._y")->"b.b.vc.OR2_tf[4].y"+ +"b.b.vc.OR2_tf[5].a"|"b.b.vc.OR2_tf[5].b"->"b.b.vc.OR2_tf[5]._y"- +~("b.b.vc.OR2_tf[5].a"|"b.b.vc.OR2_tf[5].b")->"b.b.vc.OR2_tf[5]._y"+ +"b.b.vc.OR2_tf[5]._y"->"b.b.vc.OR2_tf[5].y"- +~("b.b.vc.OR2_tf[5]._y")->"b.b.vc.OR2_tf[5].y"+ +"b.b.vc.OR2_tf[6].a"|"b.b.vc.OR2_tf[6].b"->"b.b.vc.OR2_tf[6]._y"- +~("b.b.vc.OR2_tf[6].a"|"b.b.vc.OR2_tf[6].b")->"b.b.vc.OR2_tf[6]._y"+ +"b.b.vc.OR2_tf[6]._y"->"b.b.vc.OR2_tf[6].y"- +~("b.b.vc.OR2_tf[6]._y")->"b.b.vc.OR2_tf[6].y"+ += "b.b.vc.supply.vss" "b.b.vc.ct.supply.vss" += "b.b.vc.supply.vdd" "b.b.vc.ct.supply.vdd" += "b.b.vc.supply.vdd" "b.b.vc.OR2_tf[6].vdd" += "b.b.vc.supply.vdd" "b.b.vc.OR2_tf[5].vdd" += "b.b.vc.supply.vdd" "b.b.vc.OR2_tf[4].vdd" += "b.b.vc.supply.vdd" "b.b.vc.OR2_tf[3].vdd" += "b.b.vc.supply.vdd" "b.b.vc.OR2_tf[2].vdd" += "b.b.vc.supply.vdd" "b.b.vc.OR2_tf[1].vdd" += "b.b.vc.supply.vdd" "b.b.vc.OR2_tf[0].vdd" += "b.b.vc.supply.vss" "b.b.vc.OR2_tf[6].vss" += "b.b.vc.supply.vss" "b.b.vc.OR2_tf[5].vss" += "b.b.vc.supply.vss" "b.b.vc.OR2_tf[4].vss" += "b.b.vc.supply.vss" "b.b.vc.OR2_tf[3].vss" += "b.b.vc.supply.vss" "b.b.vc.OR2_tf[2].vss" += "b.b.vc.supply.vss" "b.b.vc.OR2_tf[1].vss" += "b.b.vc.supply.vss" "b.b.vc.OR2_tf[0].vss" += "b.b.vc.out" "b.b.vc.ct.out" += "b.b.vc.in.d[0].d[0]" "b.b.vc.in.d[0].f" += "b.b.vc.in.d[0].d[1]" "b.b.vc.in.d[0].t" += "b.b.vc.in.d[1].d[0]" "b.b.vc.in.d[1].f" += "b.b.vc.in.d[1].d[1]" "b.b.vc.in.d[1].t" += "b.b.vc.in.d[2].d[0]" "b.b.vc.in.d[2].f" += "b.b.vc.in.d[2].d[1]" "b.b.vc.in.d[2].t" += "b.b.vc.in.d[3].d[0]" "b.b.vc.in.d[3].f" += "b.b.vc.in.d[3].d[1]" "b.b.vc.in.d[3].t" += "b.b.vc.in.d[4].d[0]" "b.b.vc.in.d[4].f" += "b.b.vc.in.d[4].d[1]" "b.b.vc.in.d[4].t" += "b.b.vc.in.d[5].d[0]" "b.b.vc.in.d[5].f" += "b.b.vc.in.d[5].d[1]" "b.b.vc.in.d[5].t" += "b.b.vc.in.d[6].d[0]" "b.b.vc.in.d[6].f" += "b.b.vc.in.d[6].d[1]" "b.b.vc.in.d[6].t" += "b.b.vc.in.d[6].d[0]" "b.b.vc.in.d[6].f" += "b.b.vc.in.d[6].d[1]" "b.b.vc.in.d[6].t" += "b.b.vc.in.d[5].d[0]" "b.b.vc.in.d[5].f" += "b.b.vc.in.d[5].d[1]" "b.b.vc.in.d[5].t" += "b.b.vc.in.d[4].d[0]" "b.b.vc.in.d[4].f" += "b.b.vc.in.d[4].d[1]" "b.b.vc.in.d[4].t" += "b.b.vc.in.d[3].d[0]" "b.b.vc.in.d[3].f" += "b.b.vc.in.d[3].d[1]" "b.b.vc.in.d[3].t" += "b.b.vc.in.d[2].d[0]" "b.b.vc.in.d[2].f" += "b.b.vc.in.d[2].d[1]" "b.b.vc.in.d[2].t" += "b.b.vc.in.d[1].d[0]" "b.b.vc.in.d[1].f" += "b.b.vc.in.d[1].d[1]" "b.b.vc.in.d[1].t" += "b.b.vc.in.d[0].d[0]" "b.b.vc.in.d[0].f" += "b.b.vc.in.d[0].d[1]" "b.b.vc.in.d[0].t" += "b.b.vc.in.d[6].d[0]" "b.b.vc.OR2_tf[6].b" += "b.b.vc.in.d[6].d[0]" "b.b.vc.in.d[6].f" += "b.b.vc.in.d[6].d[1]" "b.b.vc.OR2_tf[6].a" += "b.b.vc.in.d[6].d[1]" "b.b.vc.in.d[6].t" += "b.b.vc.in.d[5].d[0]" "b.b.vc.OR2_tf[5].b" += "b.b.vc.in.d[5].d[0]" "b.b.vc.in.d[5].f" += "b.b.vc.in.d[5].d[1]" "b.b.vc.OR2_tf[5].a" += "b.b.vc.in.d[5].d[1]" "b.b.vc.in.d[5].t" += "b.b.vc.in.d[4].d[0]" "b.b.vc.OR2_tf[4].b" += "b.b.vc.in.d[4].d[0]" "b.b.vc.in.d[4].f" += "b.b.vc.in.d[4].d[1]" "b.b.vc.OR2_tf[4].a" += "b.b.vc.in.d[4].d[1]" "b.b.vc.in.d[4].t" += "b.b.vc.in.d[3].d[0]" "b.b.vc.OR2_tf[3].b" += "b.b.vc.in.d[3].d[0]" "b.b.vc.in.d[3].f" += "b.b.vc.in.d[3].d[1]" "b.b.vc.OR2_tf[3].a" += "b.b.vc.in.d[3].d[1]" "b.b.vc.in.d[3].t" += "b.b.vc.in.d[2].d[0]" "b.b.vc.OR2_tf[2].b" += "b.b.vc.in.d[2].d[0]" "b.b.vc.in.d[2].f" += "b.b.vc.in.d[2].d[1]" "b.b.vc.OR2_tf[2].a" += "b.b.vc.in.d[2].d[1]" "b.b.vc.in.d[2].t" += "b.b.vc.in.d[1].d[0]" "b.b.vc.OR2_tf[1].b" += "b.b.vc.in.d[1].d[0]" "b.b.vc.in.d[1].f" += "b.b.vc.in.d[1].d[1]" "b.b.vc.OR2_tf[1].a" += "b.b.vc.in.d[1].d[1]" "b.b.vc.in.d[1].t" += "b.b.vc.in.d[0].d[0]" "b.b.vc.OR2_tf[0].b" += "b.b.vc.in.d[0].d[0]" "b.b.vc.in.d[0].f" += "b.b.vc.in.d[0].d[1]" "b.b.vc.OR2_tf[0].a" += "b.b.vc.in.d[0].d[1]" "b.b.vc.in.d[0].t" += "b.b.supply.vss" "b.b.en_buf_f.supply.vss" += "b.b.supply.vdd" "b.b.en_buf_f.supply.vdd" += "b.b.supply.vss" "b.b.en_buf_t.supply.vss" += "b.b.supply.vdd" "b.b.en_buf_t.supply.vdd" += "b.b.supply.vss" "b.b.vc.supply.vss" += "b.b.supply.vdd" "b.b.vc.supply.vdd" += "b.b.supply.vdd" "b.b.t_buf_func[6].vdd" += "b.b.supply.vdd" "b.b.f_buf_func[6].vdd" += "b.b.supply.vdd" "b.b.t_buf_func[5].vdd" += "b.b.supply.vdd" "b.b.f_buf_func[5].vdd" += "b.b.supply.vdd" "b.b.t_buf_func[4].vdd" += "b.b.supply.vdd" "b.b.f_buf_func[4].vdd" += "b.b.supply.vdd" "b.b.t_buf_func[3].vdd" += "b.b.supply.vdd" "b.b.f_buf_func[3].vdd" += "b.b.supply.vdd" "b.b.t_buf_func[2].vdd" += "b.b.supply.vdd" "b.b.f_buf_func[2].vdd" += "b.b.supply.vdd" "b.b.t_buf_func[1].vdd" += "b.b.supply.vdd" "b.b.f_buf_func[1].vdd" += "b.b.supply.vdd" "b.b.t_buf_func[0].vdd" += "b.b.supply.vdd" "b.b.f_buf_func[0].vdd" += "b.b.supply.vdd" "b.b.in_v_buf.vdd" += "b.b.supply.vdd" "b.b.reset_buf.vdd" += "b.b.supply.vdd" "b.b.inack_inv.vdd" += "b.b.supply.vdd" "b.b.inack_ctl.vdd" += "b.b.supply.vss" "b.b.t_buf_func[6].vss" += "b.b.supply.vss" "b.b.f_buf_func[6].vss" += "b.b.supply.vss" "b.b.t_buf_func[5].vss" += "b.b.supply.vss" "b.b.f_buf_func[5].vss" += "b.b.supply.vss" "b.b.t_buf_func[4].vss" += "b.b.supply.vss" "b.b.f_buf_func[4].vss" += "b.b.supply.vss" "b.b.t_buf_func[3].vss" += "b.b.supply.vss" "b.b.f_buf_func[3].vss" += "b.b.supply.vss" "b.b.t_buf_func[2].vss" += "b.b.supply.vss" "b.b.f_buf_func[2].vss" += "b.b.supply.vss" "b.b.t_buf_func[1].vss" += "b.b.supply.vss" "b.b.f_buf_func[1].vss" += "b.b.supply.vss" "b.b.t_buf_func[0].vss" += "b.b.supply.vss" "b.b.f_buf_func[0].vss" += "b.b.supply.vss" "b.b.in_v_buf.vss" += "b.b.supply.vss" "b.b.reset_buf.vss" += "b.b.supply.vss" "b.b.inack_inv.vss" += "b.b.supply.vss" "b.b.inack_ctl.vss" += "b.b._en" "b.b.en_buf_f.in" += "b.b._en" "b.b.en_buf_t.in" += "b.b._en" "b.b.inack_inv.a" += "b.b._en" "b.b.inack_ctl.y" += "b.b._en" "b.b.inack_ctl.c1" += "b.b._en" "b.b._in_aB" +"b.b.reset_inv.a"->"b.b.reset_inv.y"- +~("b.b.reset_inv.a")->"b.b.reset_inv.y"+ += "b.b.out.d[0].d[0]" "b.b.out.d[0].f" += "b.b.out.d[0].d[1]" "b.b.out.d[0].t" += "b.b.out.d[1].d[0]" "b.b.out.d[1].f" += "b.b.out.d[1].d[1]" "b.b.out.d[1].t" += "b.b.out.d[2].d[0]" "b.b.out.d[2].f" += "b.b.out.d[2].d[1]" "b.b.out.d[2].t" += "b.b.out.d[3].d[0]" "b.b.out.d[3].f" += "b.b.out.d[3].d[1]" "b.b.out.d[3].t" += "b.b.out.d[4].d[0]" "b.b.out.d[4].f" += "b.b.out.d[4].d[1]" "b.b.out.d[4].t" += "b.b.out.d[5].d[0]" "b.b.out.d[5].f" += "b.b.out.d[5].d[1]" "b.b.out.d[5].t" += "b.b.out.d[6].d[0]" "b.b.out.d[6].f" += "b.b.out.d[6].d[1]" "b.b.out.d[6].t" += "b.b.out.d[6].d[0]" "b.b.out.d[6].f" += "b.b.out.d[6].d[1]" "b.b.out.d[6].t" += "b.b.out.d[5].d[0]" "b.b.out.d[5].f" += "b.b.out.d[5].d[1]" "b.b.out.d[5].t" += "b.b.out.d[4].d[0]" "b.b.out.d[4].f" += "b.b.out.d[4].d[1]" "b.b.out.d[4].t" += "b.b.out.d[3].d[0]" "b.b.out.d[3].f" += "b.b.out.d[3].d[1]" "b.b.out.d[3].t" += "b.b.out.d[2].d[0]" "b.b.out.d[2].f" += "b.b.out.d[2].d[1]" "b.b.out.d[2].t" += "b.b.out.d[1].d[0]" "b.b.out.d[1].f" += "b.b.out.d[1].d[1]" "b.b.out.d[1].t" += "b.b.out.d[0].d[0]" "b.b.out.d[0].f" += "b.b.out.d[0].d[1]" "b.b.out.d[0].t" += "b.b.out.d[6].d[0]" "b.b.f_buf_func[6].y" += "b.b.out.d[6].d[0]" "b.b.out.d[6].f" += "b.b.out.d[6].d[1]" "b.b.t_buf_func[6].y" += "b.b.out.d[6].d[1]" "b.b.out.d[6].t" += "b.b.out.d[5].d[0]" "b.b.f_buf_func[5].y" += "b.b.out.d[5].d[0]" "b.b.out.d[5].f" += "b.b.out.d[5].d[1]" "b.b.t_buf_func[5].y" += "b.b.out.d[5].d[1]" "b.b.out.d[5].t" += "b.b.out.d[4].d[0]" "b.b.f_buf_func[4].y" += "b.b.out.d[4].d[0]" "b.b.out.d[4].f" += "b.b.out.d[4].d[1]" "b.b.t_buf_func[4].y" += "b.b.out.d[4].d[1]" "b.b.out.d[4].t" += "b.b.out.d[3].d[0]" "b.b.f_buf_func[3].y" += "b.b.out.d[3].d[0]" "b.b.out.d[3].f" += "b.b.out.d[3].d[1]" "b.b.t_buf_func[3].y" += "b.b.out.d[3].d[1]" "b.b.out.d[3].t" += "b.b.out.d[2].d[0]" "b.b.f_buf_func[2].y" += "b.b.out.d[2].d[0]" "b.b.out.d[2].f" += "b.b.out.d[2].d[1]" "b.b.t_buf_func[2].y" += "b.b.out.d[2].d[1]" "b.b.out.d[2].t" += "b.b.out.d[1].d[0]" "b.b.f_buf_func[1].y" += "b.b.out.d[1].d[0]" "b.b.out.d[1].f" += "b.b.out.d[1].d[1]" "b.b.t_buf_func[1].y" += "b.b.out.d[1].d[1]" "b.b.out.d[1].t" += "b.b.out.d[0].d[0]" "b.b.f_buf_func[0].y" += "b.b.out.d[0].d[0]" "b.b.out.d[0].f" += "b.b.out.d[0].d[1]" "b.b.t_buf_func[0].y" += "b.b.out.d[0].d[1]" "b.b.out.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.vc.in.d[0].f" += "b.b.in.d.d[0].t" "b.b.vc.in.d[0].t" += "b.b.in.d.d[0].d[0]" "b.b.vc.in.d[0].d[0]" += "b.b.in.d.d[0].d[1]" "b.b.vc.in.d[0].d[1]" += "b.b.in.d.d[1].f" "b.b.vc.in.d[1].f" += "b.b.in.d.d[1].t" "b.b.vc.in.d[1].t" += "b.b.in.d.d[1].d[0]" "b.b.vc.in.d[1].d[0]" += "b.b.in.d.d[1].d[1]" "b.b.vc.in.d[1].d[1]" += "b.b.in.d.d[2].f" "b.b.vc.in.d[2].f" += "b.b.in.d.d[2].t" "b.b.vc.in.d[2].t" += "b.b.in.d.d[2].d[0]" "b.b.vc.in.d[2].d[0]" += "b.b.in.d.d[2].d[1]" "b.b.vc.in.d[2].d[1]" += "b.b.in.d.d[3].f" "b.b.vc.in.d[3].f" += "b.b.in.d.d[3].t" "b.b.vc.in.d[3].t" += "b.b.in.d.d[3].d[0]" "b.b.vc.in.d[3].d[0]" += "b.b.in.d.d[3].d[1]" "b.b.vc.in.d[3].d[1]" += "b.b.in.d.d[4].f" "b.b.vc.in.d[4].f" += "b.b.in.d.d[4].t" "b.b.vc.in.d[4].t" += "b.b.in.d.d[4].d[0]" "b.b.vc.in.d[4].d[0]" += "b.b.in.d.d[4].d[1]" "b.b.vc.in.d[4].d[1]" += "b.b.in.d.d[5].f" "b.b.vc.in.d[5].f" += "b.b.in.d.d[5].t" "b.b.vc.in.d[5].t" += "b.b.in.d.d[5].d[0]" "b.b.vc.in.d[5].d[0]" += "b.b.in.d.d[5].d[1]" "b.b.vc.in.d[5].d[1]" += "b.b.in.d.d[6].f" "b.b.vc.in.d[6].f" += "b.b.in.d.d[6].t" "b.b.vc.in.d[6].t" += "b.b.in.d.d[6].d[0]" "b.b.vc.in.d[6].d[0]" += "b.b.in.d.d[6].d[1]" "b.b.vc.in.d[6].d[1]" += "b.b.in.a" "b.b.inack_inv.y" += "b.b.in.v" "b.b.in_v_buf.y" += "b.b.in.v" "b.b.inack_ctl.c2" += "b.b.in.d.d[6].d[0]" "b.b.f_buf_func[6].n1" += "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.t_buf_func[6].n1" += "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.f_buf_func[5].n1" += "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.t_buf_func[5].n1" += "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.f_buf_func[4].n1" += "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.t_buf_func[4].n1" += "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.f_buf_func[3].n1" += "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.t_buf_func[3].n1" += "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.f_buf_func[2].n1" += "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.t_buf_func[2].n1" += "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.f_buf_func[1].n1" += "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.t_buf_func[1].n1" += "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.f_buf_func[0].n1" += "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.t_buf_func[0].n1" += "b.b.in.d.d[0].d[1]" "b.b.in.d.d[0].t" +"b.b.inack_inv.a"->"b.b.inack_inv.y"- +~("b.b.inack_inv.a")->"b.b.inack_inv.y"+ += "b.b._in_v" "b.b.in_v_buf.a" += "b.b._in_v" "b.b.vc.out" +"b.b.reset_buf.a"->"b.b.reset_buf._y"- +~("b.b.reset_buf.a")->"b.b.reset_buf._y"+ +"b.b.reset_buf._y"->"b.b.reset_buf.y"- +~("b.b.reset_buf._y")->"b.b.reset_buf.y"+ +"b.b.flush_inv.a"->"b.b.flush_inv.y"- +~("b.b.flush_inv.a")->"b.b.flush_inv.y"+ += "b.b._reset_BX" "b.b.reset_bufarray.in" += "b.b._reset_BX" "b.b.reset_buf.y" += "b.b._reset_BX" "b.b.inack_ctl.sr_B" += "b.b._reset_BX" "b.b.inack_ctl.pr_B" += "b.b.reset_B" "b.b.reset_buf.a" += "b.b.reset_B" "b.b.reset_inv.a" += "b.b._reset" "b.b.t_buf_func[6].sr" += "b.b._reset" "b.b.t_buf_func[6].pr" += "b.b._reset" "b.b.t_buf_func[5].sr" += "b.b._reset" "b.b.t_buf_func[5].pr" += "b.b._reset" "b.b.t_buf_func[4].sr" += "b.b._reset" "b.b.t_buf_func[4].pr" += "b.b._reset" "b.b.t_buf_func[3].sr" += "b.b._reset" "b.b.t_buf_func[3].pr" += "b.b._reset" "b.b.t_buf_func[2].sr" += "b.b._reset" "b.b.t_buf_func[2].pr" += "b.b._reset" "b.b.t_buf_func[1].sr" += "b.b._reset" "b.b.t_buf_func[1].pr" += "b.b._reset" "b.b.t_buf_func[0].sr" += "b.b._reset" "b.b.t_buf_func[0].pr" += "b.b._reset" "b.b.reset_inv.y" += "b.b._flushB" "b.b.t_buf_func[6].c1" += "b.b._flushB" "b.b.f_buf_func[6].c1" += "b.b._flushB" "b.b.t_buf_func[5].c1" += "b.b._flushB" "b.b.f_buf_func[5].c1" += "b.b._flushB" "b.b.t_buf_func[4].c1" += "b.b._flushB" "b.b.f_buf_func[4].c1" += "b.b._flushB" "b.b.t_buf_func[3].c1" += "b.b._flushB" "b.b.f_buf_func[3].c1" += "b.b._flushB" "b.b.t_buf_func[2].c1" += "b.b._flushB" "b.b.f_buf_func[2].c1" += "b.b._flushB" "b.b.t_buf_func[1].c1" += "b.b._flushB" "b.b.f_buf_func[1].c1" += "b.b._flushB" "b.b.t_buf_func[0].c1" += "b.b._flushB" "b.b.f_buf_func[0].c1" += "b.b._flushB" "b.b.flush_inv.y" +"b.b.en_buf_f.buf2.a"->"b.b.en_buf_f.buf2._y"- +~("b.b.en_buf_f.buf2.a")->"b.b.en_buf_f.buf2._y"+ +"b.b.en_buf_f.buf2._y"->"b.b.en_buf_f.buf2.y"- +~("b.b.en_buf_f.buf2._y")->"b.b.en_buf_f.buf2.y"+ += "b.b.en_buf_f.supply.vdd" "b.b.en_buf_f.buf2.vdd" += "b.b.en_buf_f.supply.vss" "b.b.en_buf_f.buf2.vss" += "b.b.en_buf_f.out[0]" "b.b.en_buf_f.out[6]" += "b.b.en_buf_f.out[0]" "b.b.en_buf_f.out[5]" += "b.b.en_buf_f.out[0]" "b.b.en_buf_f.out[4]" += "b.b.en_buf_f.out[0]" "b.b.en_buf_f.out[3]" += "b.b.en_buf_f.out[0]" "b.b.en_buf_f.out[2]" += "b.b.en_buf_f.out[0]" "b.b.en_buf_f.out[1]" += "b.b.en_buf_f.out[0]" "b.b.en_buf_f.buf2.y" += "b.b.en_buf_f.in" "b.b.en_buf_f.buf2.a" +"b.b.en_buf_t.buf2.a"->"b.b.en_buf_t.buf2._y"- +~("b.b.en_buf_t.buf2.a")->"b.b.en_buf_t.buf2._y"+ +"b.b.en_buf_t.buf2._y"->"b.b.en_buf_t.buf2.y"- +~("b.b.en_buf_t.buf2._y")->"b.b.en_buf_t.buf2.y"+ += "b.b.en_buf_t.supply.vdd" "b.b.en_buf_t.buf2.vdd" += "b.b.en_buf_t.supply.vss" "b.b.en_buf_t.buf2.vss" += "b.b.en_buf_t.out[0]" "b.b.en_buf_t.out[6]" += "b.b.en_buf_t.out[0]" "b.b.en_buf_t.out[5]" += "b.b.en_buf_t.out[0]" "b.b.en_buf_t.out[4]" += "b.b.en_buf_t.out[0]" "b.b.en_buf_t.out[3]" += "b.b.en_buf_t.out[0]" "b.b.en_buf_t.out[2]" += "b.b.en_buf_t.out[0]" "b.b.en_buf_t.out[1]" += "b.b.en_buf_t.out[0]" "b.b.en_buf_t.buf2.y" += "b.b.en_buf_t.in" "b.b.en_buf_t.buf2.a" += "b.b._reset_BXX[0]" "b.b.reset_bufarray.out[0]" += "b.b._reset_BXX[1]" "b.b.reset_bufarray.out[1]" += "b.b._reset_BXX[2]" "b.b.reset_bufarray.out[2]" += "b.b._reset_BXX[3]" "b.b.reset_bufarray.out[3]" += "b.b._reset_BXX[4]" "b.b.reset_bufarray.out[4]" += "b.b._reset_BXX[5]" "b.b.reset_bufarray.out[5]" += "b.b._reset_BXX[6]" "b.b.reset_bufarray.out[6]" += "b.b._reset_BXX[0]" "b.b.f_buf_func[6].sr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[6].pr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[5].sr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[5].pr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[4].sr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[4].pr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[3].sr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[3].pr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[2].sr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[2].pr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[1].sr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[1].pr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[0].sr_B" += "b.b._reset_BXX[0]" "b.b.f_buf_func[0].pr_B" += "b.b._reset_BXX[0]" "b.b._reset_BXX[6]" += "b.b._reset_BXX[0]" "b.b._reset_BXX[5]" += "b.b._reset_BXX[0]" "b.b._reset_BXX[4]" += "b.b._reset_BXX[0]" "b.b._reset_BXX[3]" += "b.b._reset_BXX[0]" "b.b._reset_BXX[2]" += "b.b._reset_BXX[0]" "b.b._reset_BXX[1]" +~"b.b.t_buf_func[0].c1"&~"b.b.t_buf_func[0].sr"->"b.b.t_buf_func[0]._y"+ +"b.b.t_buf_func[0].c1"&"b.b.t_buf_func[0].n1"&"b.b.t_buf_func[0].n2"|"b.b.t_buf_func[0].pr"->"b.b.t_buf_func[0]._y"- +"b.b.t_buf_func[0]._y"->"b.b.t_buf_func[0].y"- +~("b.b.t_buf_func[0]._y")->"b.b.t_buf_func[0].y"+ +~"b.b.t_buf_func[1].c1"&~"b.b.t_buf_func[1].sr"->"b.b.t_buf_func[1]._y"+ +"b.b.t_buf_func[1].c1"&"b.b.t_buf_func[1].n1"&"b.b.t_buf_func[1].n2"|"b.b.t_buf_func[1].pr"->"b.b.t_buf_func[1]._y"- +"b.b.t_buf_func[1]._y"->"b.b.t_buf_func[1].y"- +~("b.b.t_buf_func[1]._y")->"b.b.t_buf_func[1].y"+ +~"b.b.t_buf_func[2].c1"&~"b.b.t_buf_func[2].sr"->"b.b.t_buf_func[2]._y"+ +"b.b.t_buf_func[2].c1"&"b.b.t_buf_func[2].n1"&"b.b.t_buf_func[2].n2"|"b.b.t_buf_func[2].pr"->"b.b.t_buf_func[2]._y"- +"b.b.t_buf_func[2]._y"->"b.b.t_buf_func[2].y"- +~("b.b.t_buf_func[2]._y")->"b.b.t_buf_func[2].y"+ +~"b.b.t_buf_func[3].c1"&~"b.b.t_buf_func[3].sr"->"b.b.t_buf_func[3]._y"+ +"b.b.t_buf_func[3].c1"&"b.b.t_buf_func[3].n1"&"b.b.t_buf_func[3].n2"|"b.b.t_buf_func[3].pr"->"b.b.t_buf_func[3]._y"- +"b.b.t_buf_func[3]._y"->"b.b.t_buf_func[3].y"- +~("b.b.t_buf_func[3]._y")->"b.b.t_buf_func[3].y"+ +~"b.b.t_buf_func[4].c1"&~"b.b.t_buf_func[4].sr"->"b.b.t_buf_func[4]._y"+ +"b.b.t_buf_func[4].c1"&"b.b.t_buf_func[4].n1"&"b.b.t_buf_func[4].n2"|"b.b.t_buf_func[4].pr"->"b.b.t_buf_func[4]._y"- +"b.b.t_buf_func[4]._y"->"b.b.t_buf_func[4].y"- +~("b.b.t_buf_func[4]._y")->"b.b.t_buf_func[4].y"+ +~"b.b.t_buf_func[5].c1"&~"b.b.t_buf_func[5].sr"->"b.b.t_buf_func[5]._y"+ +"b.b.t_buf_func[5].c1"&"b.b.t_buf_func[5].n1"&"b.b.t_buf_func[5].n2"|"b.b.t_buf_func[5].pr"->"b.b.t_buf_func[5]._y"- +"b.b.t_buf_func[5]._y"->"b.b.t_buf_func[5].y"- +~("b.b.t_buf_func[5]._y")->"b.b.t_buf_func[5].y"+ +~"b.b.t_buf_func[6].c1"&~"b.b.t_buf_func[6].sr"->"b.b.t_buf_func[6]._y"+ +"b.b.t_buf_func[6].c1"&"b.b.t_buf_func[6].n1"&"b.b.t_buf_func[6].n2"|"b.b.t_buf_func[6].pr"->"b.b.t_buf_func[6]._y"- +"b.b.t_buf_func[6]._y"->"b.b.t_buf_func[6].y"- +~("b.b.t_buf_func[6]._y")->"b.b.t_buf_func[6].y"+ +~"b.b.f_buf_func[0].c1"|~"b.b.f_buf_func[0].pr_B"->"b.b.f_buf_func[0]._y"+ +"b.b.f_buf_func[0].c1"&"b.b.f_buf_func[0].n1"&"b.b.f_buf_func[0].n2"&"b.b.f_buf_func[0].sr_B"->"b.b.f_buf_func[0]._y"- +"b.b.f_buf_func[0]._y"->"b.b.f_buf_func[0].y"- +~("b.b.f_buf_func[0]._y")->"b.b.f_buf_func[0].y"+ +~"b.b.f_buf_func[1].c1"|~"b.b.f_buf_func[1].pr_B"->"b.b.f_buf_func[1]._y"+ +"b.b.f_buf_func[1].c1"&"b.b.f_buf_func[1].n1"&"b.b.f_buf_func[1].n2"&"b.b.f_buf_func[1].sr_B"->"b.b.f_buf_func[1]._y"- +"b.b.f_buf_func[1]._y"->"b.b.f_buf_func[1].y"- +~("b.b.f_buf_func[1]._y")->"b.b.f_buf_func[1].y"+ +~"b.b.f_buf_func[2].c1"|~"b.b.f_buf_func[2].pr_B"->"b.b.f_buf_func[2]._y"+ +"b.b.f_buf_func[2].c1"&"b.b.f_buf_func[2].n1"&"b.b.f_buf_func[2].n2"&"b.b.f_buf_func[2].sr_B"->"b.b.f_buf_func[2]._y"- +"b.b.f_buf_func[2]._y"->"b.b.f_buf_func[2].y"- +~("b.b.f_buf_func[2]._y")->"b.b.f_buf_func[2].y"+ +~"b.b.f_buf_func[3].c1"|~"b.b.f_buf_func[3].pr_B"->"b.b.f_buf_func[3]._y"+ +"b.b.f_buf_func[3].c1"&"b.b.f_buf_func[3].n1"&"b.b.f_buf_func[3].n2"&"b.b.f_buf_func[3].sr_B"->"b.b.f_buf_func[3]._y"- +"b.b.f_buf_func[3]._y"->"b.b.f_buf_func[3].y"- +~("b.b.f_buf_func[3]._y")->"b.b.f_buf_func[3].y"+ +~"b.b.f_buf_func[4].c1"|~"b.b.f_buf_func[4].pr_B"->"b.b.f_buf_func[4]._y"+ +"b.b.f_buf_func[4].c1"&"b.b.f_buf_func[4].n1"&"b.b.f_buf_func[4].n2"&"b.b.f_buf_func[4].sr_B"->"b.b.f_buf_func[4]._y"- +"b.b.f_buf_func[4]._y"->"b.b.f_buf_func[4].y"- +~("b.b.f_buf_func[4]._y")->"b.b.f_buf_func[4].y"+ +~"b.b.f_buf_func[5].c1"|~"b.b.f_buf_func[5].pr_B"->"b.b.f_buf_func[5]._y"+ +"b.b.f_buf_func[5].c1"&"b.b.f_buf_func[5].n1"&"b.b.f_buf_func[5].n2"&"b.b.f_buf_func[5].sr_B"->"b.b.f_buf_func[5]._y"- +"b.b.f_buf_func[5]._y"->"b.b.f_buf_func[5].y"- +~("b.b.f_buf_func[5]._y")->"b.b.f_buf_func[5].y"+ +~"b.b.f_buf_func[6].c1"|~"b.b.f_buf_func[6].pr_B"->"b.b.f_buf_func[6]._y"+ +"b.b.f_buf_func[6].c1"&"b.b.f_buf_func[6].n1"&"b.b.f_buf_func[6].n2"&"b.b.f_buf_func[6].sr_B"->"b.b.f_buf_func[6]._y"- +"b.b.f_buf_func[6]._y"->"b.b.f_buf_func[6].y"- +~("b.b.f_buf_func[6]._y")->"b.b.f_buf_func[6].y"+ += "b.b._en_X_t[0]" "b.b.en_buf_t.out[0]" += "b.b._en_X_t[1]" "b.b.en_buf_t.out[1]" += "b.b._en_X_t[2]" "b.b.en_buf_t.out[2]" += "b.b._en_X_t[3]" "b.b.en_buf_t.out[3]" += "b.b._en_X_t[4]" "b.b.en_buf_t.out[4]" += "b.b._en_X_t[5]" "b.b.en_buf_t.out[5]" += "b.b._en_X_t[6]" "b.b.en_buf_t.out[6]" += "b.b._en_X_t[0]" "b.b.t_buf_func[6].n2" += "b.b._en_X_t[0]" "b.b.t_buf_func[5].n2" += "b.b._en_X_t[0]" "b.b.t_buf_func[4].n2" += "b.b._en_X_t[0]" "b.b.t_buf_func[3].n2" += "b.b._en_X_t[0]" "b.b.t_buf_func[2].n2" += "b.b._en_X_t[0]" "b.b.t_buf_func[1].n2" += "b.b._en_X_t[0]" "b.b.t_buf_func[0].n2" += "b.b._en_X_t[0]" "b.b._en_X_t[6]" += "b.b._en_X_t[0]" "b.b._en_X_t[5]" += "b.b._en_X_t[0]" "b.b._en_X_t[4]" += "b.b._en_X_t[0]" "b.b._en_X_t[3]" += "b.b._en_X_t[0]" "b.b._en_X_t[2]" += "b.b._en_X_t[0]" "b.b._en_X_t[1]" += "b.b.out_v" "b.b.inack_ctl.n1" += "b._reset_B" "b.b.reset_B" += "b.flush" "b.b.flush" += "Vdd" "b.supply.vdd" += "GND" "b.supply.vss" += "b.out_v" "b.b.out_v" += "b.out.d[0].d[0]" "b.out.d[0].f" += "b.out.d[0].d[1]" "b.out.d[0].t" += "b.out.d[1].d[0]" "b.out.d[1].f" += "b.out.d[1].d[1]" "b.out.d[1].t" += "b.out.d[2].d[0]" "b.out.d[2].f" += "b.out.d[2].d[1]" "b.out.d[2].t" += "b.out.d[3].d[0]" "b.out.d[3].f" += "b.out.d[3].d[1]" "b.out.d[3].t" += "b.out.d[4].d[0]" "b.out.d[4].f" += "b.out.d[4].d[1]" "b.out.d[4].t" += "b.out.d[5].d[0]" "b.out.d[5].f" += "b.out.d[5].d[1]" "b.out.d[5].t" += "b.out.d[6].d[0]" "b.out.d[6].f" += "b.out.d[6].d[1]" "b.out.d[6].t" += "b.out.d[6].d[0]" "b.out.d[6].f" += "b.out.d[6].d[1]" "b.out.d[6].t" += "b.out.d[5].d[0]" "b.out.d[5].f" += "b.out.d[5].d[1]" "b.out.d[5].t" += "b.out.d[4].d[0]" "b.out.d[4].f" += "b.out.d[4].d[1]" "b.out.d[4].t" += "b.out.d[3].d[0]" "b.out.d[3].f" += "b.out.d[3].d[1]" "b.out.d[3].t" += "b.out.d[2].d[0]" "b.out.d[2].f" += "b.out.d[2].d[1]" "b.out.d[2].t" += "b.out.d[1].d[0]" "b.out.d[1].f" += "b.out.d[1].d[1]" "b.out.d[1].t" += "b.out.d[0].d[0]" "b.out.d[0].f" += "b.out.d[0].d[1]" "b.out.d[0].t" += "b.out.d[0].f" "b.b.out.d[0].f" += "b.out.d[0].t" "b.b.out.d[0].t" += "b.out.d[0].d[0]" "b.b.out.d[0].d[0]" += "b.out.d[0].d[1]" "b.b.out.d[0].d[1]" += "b.out.d[1].f" "b.b.out.d[1].f" += "b.out.d[1].t" "b.b.out.d[1].t" += "b.out.d[1].d[0]" "b.b.out.d[1].d[0]" += "b.out.d[1].d[1]" "b.b.out.d[1].d[1]" += "b.out.d[2].f" "b.b.out.d[2].f" += "b.out.d[2].t" "b.b.out.d[2].t" += "b.out.d[2].d[0]" "b.b.out.d[2].d[0]" += "b.out.d[2].d[1]" "b.b.out.d[2].d[1]" += "b.out.d[3].f" "b.b.out.d[3].f" += "b.out.d[3].t" "b.b.out.d[3].t" += "b.out.d[3].d[0]" "b.b.out.d[3].d[0]" += "b.out.d[3].d[1]" "b.b.out.d[3].d[1]" += "b.out.d[4].f" "b.b.out.d[4].f" += "b.out.d[4].t" "b.b.out.d[4].t" += "b.out.d[4].d[0]" "b.b.out.d[4].d[0]" += "b.out.d[4].d[1]" "b.b.out.d[4].d[1]" += "b.out.d[5].f" "b.b.out.d[5].f" += "b.out.d[5].t" "b.b.out.d[5].t" += "b.out.d[5].d[0]" "b.b.out.d[5].d[0]" += "b.out.d[5].d[1]" "b.b.out.d[5].d[1]" += "b.out.d[6].f" "b.b.out.d[6].f" += "b.out.d[6].t" "b.b.out.d[6].t" += "b.out.d[6].d[0]" "b.b.out.d[6].d[0]" += "b.out.d[6].d[1]" "b.b.out.d[6].d[1]" += "b.out.d[6].d[0]" "b.out.d[6].f" += "b.out.d[6].d[1]" "b.out.d[6].t" += "b.out.d[5].d[0]" "b.out.d[5].f" += "b.out.d[5].d[1]" "b.out.d[5].t" += "b.out.d[4].d[0]" "b.out.d[4].f" += "b.out.d[4].d[1]" "b.out.d[4].t" += "b.out.d[3].d[0]" "b.out.d[3].f" += "b.out.d[3].d[1]" "b.out.d[3].t" += "b.out.d[2].d[0]" "b.out.d[2].f" += "b.out.d[2].d[1]" "b.out.d[2].t" += "b.out.d[1].d[0]" "b.out.d[1].f" += "b.out.d[1].d[1]" "b.out.d[1].t" += "b.out.d[0].d[0]" "b.out.d[0].f" += "b.out.d[0].d[1]" "b.out.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/buffer_register_7/test.act b/test/unit_tests/buffer_register_7/test.act new file mode 100644 index 0000000..9ad49e0 --- /dev/null +++ b/test/unit_tests/buffer_register_7/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/registers.act"; + +import globals; +import std::data; + +open std::data; + +open tmpl::dataflow_neuro; + +defproc buffer_register_7 (avMx1of2<7> in; Mx1of2<7> out; bool? out_v, flush){ + bool _reset_B; + prs { + Reset => _reset_B- + } + power supply; + supply.vdd = Vdd; + supply.vss = GND; + + buffer_register<7> b(.in = in, .out = out, .out_v = out_v, .flush = flush, .reset_B = _reset_B); +} + + +// fifo_decoder_neurons_encoder_fifo e; +buffer_register_7 b; \ No newline at end of file diff --git a/test/unit_tests/buffer_register_7/test.prsim b/test/unit_tests/buffer_register_7/test.prsim new file mode 100644 index 0000000..b5942bd --- /dev/null +++ b/test/unit_tests/buffer_register_7/test.prsim @@ -0,0 +1,163 @@ +watchall + +set b.out_v 0 +set b.flush 0 +set-qdi-channel-neutral "b.in" 7 + +cycle + + +mode run +system "echo '[] Set reset 0'" +status X +set Reset 0 +cycle +assert b.in.a 0 +assert b.in.v 0 + + +system "echo '[] Flushing data'" +set b.flush 1 +cycle +assert b.out.d[0].t 0 +assert b.out.d[1].t 0 +assert b.out.d[2].t 0 +assert b.out.d[3].t 0 +assert b.out.d[4].t 0 +assert b.out.d[5].t 0 +assert b.out.d[6].t 0 +assert b.out.d[0].f 0 +assert b.out.d[1].f 0 +assert b.out.d[2].f 0 +assert b.out.d[3].f 0 +assert b.out.d[4].f 0 +assert b.out.d[5].f 0 +assert b.out.d[6].f 0 +set b.out_v 0 +set b.flush 0 +cycle + +system "echo '[] Sending in a 0'" +set-qdi-channel-valid "b.in" 7 0 +cycle +# assert-qdi-channel-valid 'b.out' 7 127 +assert b.in.a 0 +assert b.in.v 1 +assert-var-int "b.out" 7 0 + +system "echo '[] Sending in output valid'" +set b.out_v 1 +cycle +assert b.in.a 1 +assert b.in.v 1 +assert-var-int "b.out" 7 0 + +system "echo '[] Removing input'" +set-qdi-channel-neutral "b.in" 7 +cycle +assert b.in.a 0 +assert b.in.v 0 +assert-var-int "b.out" 7 0 + + +system "echo '[] Flushing data'" +set b.flush 1 +cycle +assert b.out.d[0].t 0 +assert b.out.d[1].t 0 +assert b.out.d[2].t 0 +assert b.out.d[3].t 0 +assert b.out.d[4].t 0 +assert b.out.d[5].t 0 +assert b.out.d[6].t 0 +assert b.out.d[0].f 0 +assert b.out.d[1].f 0 +assert b.out.d[2].f 0 +assert b.out.d[3].f 0 +assert b.out.d[4].f 0 +assert b.out.d[5].f 0 +assert b.out.d[6].f 0 +set b.out_v 0 +cycle +set b.flush 0 +cycle + + +system "echo '[] Sending in a 127'" +set-qdi-channel-valid "b.in" 7 127 +cycle +# assert-qdi-channel-valid 'b.out' 7 127 +assert b.in.a 0 +assert b.in.v 1 +assert-var-int "b.out" 7 127 + +system "echo '[] Sending in output valid'" +set b.out_v 1 +cycle +assert b.in.a 1 +assert b.in.v 1 +assert-var-int "b.out" 7 127 + +system "echo '[] Removing input'" +set-qdi-channel-neutral "b.in" 7 +cycle +assert b.in.a 0 +assert b.in.v 0 +assert-var-int "b.out" 7 127 + + + + +system "echo '[] Flushing data'" +set b.flush 1 +cycle +assert b.out.d[0].t 0 +assert b.out.d[1].t 0 +assert b.out.d[2].t 0 +assert b.out.d[3].t 0 +assert b.out.d[4].t 0 +assert b.out.d[5].t 0 +assert b.out.d[6].t 0 +assert b.out.d[0].f 0 +assert b.out.d[1].f 0 +assert b.out.d[2].f 0 +assert b.out.d[3].f 0 +assert b.out.d[4].f 0 +assert b.out.d[5].f 0 +assert b.out.d[6].f 0 +set b.out_v 0 +cycle +set b.flush 0 +cycle + + + + +system "echo '[] Sending in a 56'" +set-qdi-channel-valid "b.in" 7 56 +cycle +assert b.in.a 0 +assert b.in.v 1 +assert-var-int "b.out" 7 56 + +system "echo '[] Sending in output valid'" +set b.out_v 1 +cycle +assert b.in.a 1 +assert b.in.v 1 +assert-var-int "b.out" 7 56 + +system "echo '[] Removing input'" +set-qdi-channel-neutral "b.in" 7 +cycle +assert b.in.a 0 +assert b.in.v 0 +assert-var-int "b.out" 7 56 + +system "echo '[] Resetting'" +set Reset 1 +cycle +assert-var-int "b.out" 7 127 +set Reset 0 +cycle +assert-var-int "b.out" 7 127