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 0000000..0aeb32c Binary files /dev/null and b/test/unit_tests/buffer_register_7/run/prsim.pdf differ 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