Compare commits
31 Commits
225d481ae1
...
encoder_wi
Author | SHA1 | Date | |
---|---|---|---|
97732b2f72 | |||
9e144e1c17 | |||
9f5bbc487d | |||
c99ed439a6 | |||
d507deba84 | |||
3d273b164d | |||
b15d8c11e9 | |||
ba5e695be5 | |||
357df7f66e | |||
018b308f61 | |||
97784db492 | |||
79a96ed511 | |||
233c9a7d10 | |||
00869fc16e | |||
8268379572 | |||
18f84bc652 | |||
05f46ccf33 | |||
0a8496d4f7 | |||
340a20e49e | |||
fc4ccea3c0 | |||
c947b28b03 | |||
aeed4e5527 | |||
a8b1710f65 | |||
66cbbe3da7 | |||
8b40e70058 | |||
92b0b36325 | |||
1bb1d0be40 | |||
2678dfc1e1 | |||
84b2831d89 | |||
3fc4b1fb1a | |||
5bae88d56f |
@ -99,6 +99,18 @@ namespace tmpl {
|
|||||||
sizing { _y {-6,2}; y {-12,4} }
|
sizing { _y {-6,2}; y {-12,4} }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-- delay cells --*/
|
||||||
|
// TODO properly
|
||||||
|
|
||||||
|
export defcell DLY4_X1(bool! y; bool? a, vdd, vss)
|
||||||
|
{
|
||||||
|
bool _y;
|
||||||
|
prs {
|
||||||
|
a => _y-
|
||||||
|
_y => y-
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*-- simple gates --*/
|
/*-- simple gates --*/
|
||||||
|
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
* Copyright (c) 2022 University of Groningen - Ole Richter
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
*
|
*
|
||||||
@ -116,7 +118,7 @@ namespace tmpl {
|
|||||||
|
|
||||||
//validity
|
//validity
|
||||||
bool _in_v;
|
bool _in_v;
|
||||||
ctree<N> vc(.in=in.d,.out=_in_v,.supply=supply);
|
vtree<N> vc(.in=in.d,.out=_in_v,.supply=supply);
|
||||||
BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
|
||||||
//function
|
//function
|
||||||
@ -149,6 +151,85 @@ namespace tmpl {
|
|||||||
f_buf_func[i].sr_B = _reset_BXX[i];
|
f_buf_func[i].sr_B = _reset_BXX[i];
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
// A template creating a FIFO of M buffers with N bits each
|
||||||
|
export template<pint N;pint M>
|
||||||
|
defproc fifo(avMx1of2<N> in; avMx1of2<N> out; bool? reset_B; power supply)
|
||||||
|
{
|
||||||
|
buffer<N> fifo_element[M];
|
||||||
|
bool _reset_BXX[M];
|
||||||
|
fifo_element[0].in = in ;
|
||||||
|
fifo_element[0].supply = supply;
|
||||||
|
fifo_element[0].reset_B = _reset_BXX[0];
|
||||||
|
(i:1..M-1:
|
||||||
|
fifo_element[i].in = fifo_element[i-1].out;
|
||||||
|
fifo_element[i].supply = supply;
|
||||||
|
fifo_element[i].reset_B = _reset_BXX[i];
|
||||||
|
)
|
||||||
|
fifo_element[N-1].out = out;
|
||||||
|
|
||||||
|
// reset buffers
|
||||||
|
bool _reset_BX;
|
||||||
|
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
sigbuf<M> reset_bufarray(.in=_reset_BX, .out=_reset_BXX,.supply = supply);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Buffer_S template.
|
||||||
|
* S maybe stands for special.
|
||||||
|
* Like a buffer, except that the output function block does not load the data in
|
||||||
|
* until the input data is valid.
|
||||||
|
* Not entirely sure what the point of it is,
|
||||||
|
* Ole says is useful for funky timing scenarios.
|
||||||
|
*/
|
||||||
|
export template<pint N>
|
||||||
|
defproc buffer_s (avMx1of2<N> in; avMx1of2<N> out; bool? reset_B; power supply) {
|
||||||
|
//control
|
||||||
|
bool _en, _reset_BX,_reset_BXX[N];
|
||||||
|
A_3C_RB_X4 inack_ctl(.c1=_en,.c2=in.v,.c3=out.v,.y=in.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
A_1C1P_X1 en_ctl(.c1=in.a,.p1=out.v,.y=_en,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
|
||||||
|
|
||||||
|
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
sigbuf<N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX, .supply=supply);
|
||||||
|
|
||||||
|
//validity
|
||||||
|
bool _in_v, _in_vX[N];
|
||||||
|
vtree<N> vc(.in=in.d,.out=_in_v,.supply=supply);
|
||||||
|
BUF_X4 in_v_buf4(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
sigbuf<N> in_v_bufN(.in = in.v, .out = _in_vX, .supply = supply);
|
||||||
|
|
||||||
|
//function
|
||||||
|
bool _out_a_BX_t[N],_out_a_BX_f[N],_out_a_B,_en_X_t[N],_en_X_f[N];
|
||||||
|
A_2C2N_RB_X4 f_buf_func[N];
|
||||||
|
A_2C2N_RB_X4 t_buf_func[N];
|
||||||
|
sigbuf<N> en_buf_t(.in=_en, .out=_en_X_t, .supply=supply);
|
||||||
|
sigbuf<N> en_buf_f(.in=_en, .out=_en_X_f, .supply=supply);
|
||||||
|
INV_X1 out_a_inv(.a=out.a,.y=_out_a_B);
|
||||||
|
sigbuf<N> out_a_B_buf_f(.in=_out_a_B,.out=_out_a_BX_t, .supply=supply);
|
||||||
|
sigbuf<N> out_a_B_buf_t(.in=_out_a_B,.out=_out_a_BX_f, .supply=supply);
|
||||||
|
// 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.d[i].f;
|
||||||
|
t_buf_func[i].y=out.d.d[i].t;
|
||||||
|
f_buf_func[i].c1=_en_X_f[i];
|
||||||
|
t_buf_func[i].c1=_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].n2=_in_vX[i];
|
||||||
|
t_buf_func[i].n2=_in_vX[i];
|
||||||
|
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_B = _reset_BXX[i];
|
||||||
|
t_buf_func[i].sr_B = _reset_BXX[i];
|
||||||
|
f_buf_func[i].pr_B = _reset_BXX[i];
|
||||||
|
f_buf_func[i].sr_B = _reset_BXX[i];
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
export template<pint N>
|
export template<pint N>
|
||||||
defproc demux (avMx1of2<N> in; avMx1of2<N> out1; avMx1of2<N> out2; bool? reset_B; avMx1of2<1> cond; power supply) {
|
defproc demux (avMx1of2<N> in; avMx1of2<N> out1; avMx1of2<N> out2; bool? reset_B; avMx1of2<1> cond; power supply) {
|
||||||
@ -163,11 +244,11 @@ namespace tmpl {
|
|||||||
//validity
|
//validity
|
||||||
bool _in_v, _c_f_buf[N], _c_t_buf[N], _c_v;
|
bool _in_v, _c_f_buf[N], _c_t_buf[N], _c_v;
|
||||||
|
|
||||||
sigbuf<N> c_buf_t(.in=cond.d.d[0].t, .out=_c_t_buf);
|
sigbuf<N> c_buf_t(.in=cond.d.d[0].t, .out=_c_t_buf, .supply=supply);
|
||||||
sigbuf<N> c_buf_f(.in=cond.d.d[0].f, .out=_c_f_buf);
|
sigbuf<N> c_buf_f(.in=cond.d.d[0].f, .out=_c_f_buf, .supply=supply);
|
||||||
|
|
||||||
OR2_X1 c_f_c_t_or(.a=cond.d.d[0].t, .b=cond.d.d[0].f, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss);
|
OR2_X1 c_f_c_t_or(.a=cond.d.d[0].t, .b=cond.d.d[0].f, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
ctree<N> vc(.in=in.d,.out=_in_v,.supply=supply);
|
vtree<N> vc(.in=in.d,.out=_in_v,.supply=supply);
|
||||||
|
|
||||||
A_2C_B_X1 c_el(.c1=_c_v, .c2=_in_v, .y=_in_c_v_,.vdd=supply.vdd,.vss=supply.vss);
|
A_2C_B_X1 c_el(.c1=_c_v, .c2=_in_v, .y=_in_c_v_,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
@ -181,8 +262,8 @@ namespace tmpl {
|
|||||||
sigbuf<N> out1_en_buf_t(.in=_en, .out=_en1_X_t, .supply=supply);
|
sigbuf<N> out1_en_buf_t(.in=_en, .out=_en1_X_t, .supply=supply);
|
||||||
sigbuf<N> out1_en_buf_f(.in=_en, .out=_en1_X_f, .supply=supply);
|
sigbuf<N> out1_en_buf_f(.in=_en, .out=_en1_X_f, .supply=supply);
|
||||||
INV_X1 out1_a_inv(.a=out1.a,.y=_out1_a_B);
|
INV_X1 out1_a_inv(.a=out1.a,.y=_out1_a_B);
|
||||||
sigbuf<N> out1_a_B_buf_f(.in=_out1_a_B,.out=_out1_a_BX_t);
|
sigbuf<N> out1_a_B_buf_f(.in=_out1_a_B,.out=_out1_a_BX_t, .supply=supply);
|
||||||
sigbuf<N> out1_a_B_buf_t(.in=_out1_a_B,.out=_out1_a_BX_f);
|
sigbuf<N> out1_a_B_buf_t(.in=_out1_a_B,.out=_out1_a_BX_f, .supply=supply);
|
||||||
(i:N:
|
(i:N:
|
||||||
out1_f_buf_func[i].y=out1.d.d[i].f;
|
out1_f_buf_func[i].y=out1.d.d[i].f;
|
||||||
out1_t_buf_func[i].y=out1.d.d[i].t;
|
out1_t_buf_func[i].y=out1.d.d[i].t;
|
||||||
@ -251,7 +332,7 @@ namespace tmpl {
|
|||||||
|
|
||||||
//validity
|
//validity
|
||||||
bool _in_v;
|
bool _in_v;
|
||||||
ctree<N> vc(.in=in.d,.out=_in_v,.supply=supply);
|
vtree<N> vc(.in=in.d,.out=_in_v,.supply=supply);
|
||||||
BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
|
||||||
//function
|
//function
|
||||||
@ -312,31 +393,35 @@ namespace tmpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export template<pint N, pbool invout>
|
export template<pint N; pbool CONDITION_SIGN>
|
||||||
defproc demux_td (avMx1of2<N> in; avMx1of2<N> out1; avMx1of2<1> token; bool? reset_B; avMx1of2<1> cond; power supply) {
|
defproc demux_td (avMx1of2<N> in; avMx1of2<N> out1; a1of1 token; bool? reset_B; avMx1of2<1> cond; power supply) {
|
||||||
//control
|
//control
|
||||||
bool _en, _reset_BX,_reset_BXX[2*N], _out_v, _in_c_v_;
|
bool _en, _reset_BX,_reset_BXX[N], _out_v, _in_c_v_, _reset_BXt;
|
||||||
|
|
||||||
OR2_X1 out_or(.a=out1.v, .b=out2.v, .y=_out_v,.vdd=supply.vdd,.vss=supply.vss);
|
OR2_X1 out_or(.a=out1.v, .b=token.r, .y=_out_v,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
A_3C_RB_X4 inack_ctl(.c1=_en,.c2=_in_c_v_,.c3= _out_v,.y=in.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
A_3C_RB_X4 inack_ctl(.c1=_en,.c2=_in_c_v_,.c3= _out_v,.y=in.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
A_1C1P_X1 en_ctl(.c1=in.a,.p1=_out_v,.y=_en,.vdd=supply.vdd,.vss=supply.vss);
|
A_1C1P_X1 en_ctl(.c1=in.a,.p1=_out_v,.y=_en,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
sigbuf<2*N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX);
|
BUF_X1 reset_buf_token(.a=_reset_BX, .y=_reset_BXt,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
sigbuf<N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX);
|
||||||
//validity
|
//validity
|
||||||
bool _in_v, _c_f_buf[N], _c_t_buf[N], _c_v;
|
bool _in_v, _c_tk_buf, _c_d_buf[N], _c_v, cond_inv_t, cond_inv_f;
|
||||||
|
|
||||||
sigbuf<N> c_buf_t(.in=cond.d.d[0].t, .out=_c_t_buf);
|
|
||||||
sigbuf<N> c_buf_f(.in=cond.d.d[0].f, .out=_c_f_buf);
|
|
||||||
|
|
||||||
|
OR2_X1 c_f_c_t_or(.a=cond.d.d[0].t, .b=cond.d.d[0].f, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
|
||||||
//orientation of condition
|
//orientation of condition
|
||||||
[ invout < 0 ->
|
[ CONDITION_SIGN ->
|
||||||
OR2_X1 c_f_c_t_or(.a=cond.d.d[0].t, .b=cond.d.d[0].f, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X1 c_buf_tk(.a=cond.d.d[0].t, .y=_c_tk_buf);
|
||||||
[] invout > 0 ->
|
sigbuf<N> c_buf_d(.in=cond.d.d[0].f, .out=_c_d_buf);
|
||||||
OR2_X1 c_f_c_t_or(.a=cond.d.d[0].f, .b=cond.d.d[0].t, .y=_c_v,.vdd=supply.vdd,.vss=supply.vss);
|
[] else ->
|
||||||
|
INV_X1 invout_t(.a = cond.d.d[0].t,.y=cond_inv_t,.vdd = supply.vdd,.vss=supply.vss);
|
||||||
|
INV_X1 invout_f(.a = cond.d.d[0].f,.y=cond_inv_f,.vdd = supply.vdd,.vss=supply.vss);
|
||||||
|
BUF_X1 c_buf_tk_inv(.a=cond_inv_t, .y=_c_tk_buf);
|
||||||
|
sigbuf<N> c_buf_d_inv(.in=cond_inv_f, .out=_c_d_buf);
|
||||||
]
|
]
|
||||||
|
|
||||||
ctree<N> vc(.in=in.d,.out=_in_v,.supply=supply);
|
|
||||||
|
vtree<N> vc(.in=in.d,.out=_in_v,.supply=supply);
|
||||||
|
|
||||||
A_2C_B_X1 c_el(.c1=_c_v, .c2=_in_v, .y=_in_c_v_,.vdd=supply.vdd,.vss=supply.vss);
|
A_2C_B_X1 c_el(.c1=_c_v, .c2=_in_v, .y=_in_c_v_,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X4 in_v_buf(.a=_in_v, .y=in.v,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
@ -369,51 +454,29 @@ namespace tmpl {
|
|||||||
out1_t_buf_func[i].sr_B = _reset_BXX[i];
|
out1_t_buf_func[i].sr_B = _reset_BXX[i];
|
||||||
out1_f_buf_func[i].pr_B = _reset_BXX[i];
|
out1_f_buf_func[i].pr_B = _reset_BXX[i];
|
||||||
out1_f_buf_func[i].sr_B = _reset_BXX[i];
|
out1_f_buf_func[i].sr_B = _reset_BXX[i];
|
||||||
out1_f_buf_func[i].n2=_c_t_buf[i];
|
out1_f_buf_func[i].n2=_c_d_buf[i];
|
||||||
out1_t_buf_func[i].n2=_c_t_buf[i];
|
out1_t_buf_func[i].n2=_c_d_buf[i];
|
||||||
)
|
)
|
||||||
|
|
||||||
//token out
|
//token out
|
||||||
|
|
||||||
|
bool token_a_out;
|
||||||
A_2C2N_RB_X4 token_buf;
|
A_2C2N_RB_X4 token_buf;
|
||||||
|
INV_X1 outt_a_inv(.a=token.a,.y=token_a_out);
|
||||||
|
|
||||||
|
token_buf.y = token.r;
|
||||||
|
token_buf.c1 = _en;
|
||||||
|
token_buf.c2 = token_a_out;
|
||||||
|
token_buf.n1 = _c_tk_buf;
|
||||||
|
token_buf.n2 = _in_v;
|
||||||
|
|
||||||
token_buf.y = ;
|
|
||||||
token_buf.c1 = ;
|
|
||||||
token_buf.c2 = ;
|
|
||||||
token_buf.n1 = ;
|
|
||||||
token_buf.n2 = ;
|
|
||||||
token_buf.vdd = supply.vdd;
|
token_buf.vdd = supply.vdd;
|
||||||
token_buf.vss = supply.vss;
|
token_buf.vss = supply.vss;
|
||||||
token_buf.pr_B ;
|
token_buf.pr_B = _reset_BXt;
|
||||||
token_buf.sr_b ;
|
token_buf.sr_B = _reset_BXt;
|
||||||
}
|
}
|
||||||
|
|
||||||
// export template<pint N>
|
|
||||||
// defproc merge (avMx1of2<N> in1; avMx1of2<N> in2; avMx1of2<N> out ; bool? reset_B; power supply) {
|
|
||||||
|
|
||||||
// //control
|
|
||||||
// bool _en, _reset_BX,_reset_BXX[N];
|
|
||||||
// A_4C_RB_X4 in1ack_ctl(.c1=in1arb,.c2=_en,.c3=in1.v,.c4=out.v,.y=in1.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
|
||||||
// A_4C_RB_X4 in2ack_ctl(.c1=in2arb,.c2=_en,.c3=in2.v,.c4=out.v,.y=in2.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
|
||||||
// A_4P_1N1N en_ctl(.p1 = in1.a,.p2=in2.a,.p3=out_a_X,.p4 = out.v, .n1 = in1.a,.y = _en,.vdd=supply.vdd,.vss=supply.vss);
|
|
||||||
|
|
||||||
// //reset_buffers
|
|
||||||
// BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
|
||||||
// sigbuf<N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX);
|
|
||||||
|
|
||||||
// //validity
|
|
||||||
// bool _in1_v,_in2_v;
|
|
||||||
// a1of1 _in1_temp,_in2_temp,_out_temp;
|
|
||||||
// ctree<N> vc1(.in=in1.d,.out=in1.v,.supply=supply);
|
|
||||||
// ctree<N> vc2(.in=in2.d,.out=in2.v,.supply=supply);
|
|
||||||
// arbiter_handshake validity_arb(.in1 = _in1_temp,.in2 = _in2_temp,.out =_out_temp)
|
|
||||||
// _in1_temp.r = in1.v
|
|
||||||
// _in2_temp.r = in2.v
|
|
||||||
// _in1_temp.a =
|
|
||||||
// _in1_temp.a =
|
|
||||||
// _out_temp.r = _out_temp.a
|
|
||||||
//function
|
|
||||||
// }
|
|
||||||
export
|
export
|
||||||
defproc arbiter_handshake(a1of1 in1; a1of1 in2; a1of1 out; power supply)
|
defproc arbiter_handshake(a1of1 in1; a1of1 in2; a1of1 out; power supply)
|
||||||
{
|
{
|
||||||
@ -444,6 +507,190 @@ namespace tmpl {
|
|||||||
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A tree composed by arbiters. The first layer takes N signals
|
||||||
|
export template<pint N>
|
||||||
|
defproc arbiter_tree(a1of1 in[N]; a1of1 out; power supply)
|
||||||
|
{
|
||||||
|
|
||||||
|
bool tout;
|
||||||
|
|
||||||
|
{ N > 0 : "Invalid N, should be greater than 0" };
|
||||||
|
|
||||||
|
/* We calculate here how many arbiters we need to create for the full tree */
|
||||||
|
pint inputs_in_layer, end, elements_in_layer;
|
||||||
|
pint odd_element_idx = 0;
|
||||||
|
pint odd_element_flag = 0;
|
||||||
|
inputs_in_layer = 0;
|
||||||
|
end = N-1;
|
||||||
|
pint element_counter = 0;
|
||||||
|
// Here we start a for loop to count the elements in the tree
|
||||||
|
// The loop iterates for every successive layer
|
||||||
|
// i is the variable used to iterate the inputs,
|
||||||
|
// j counts the elements in the layer
|
||||||
|
*[ inputs_in_layer != end ->
|
||||||
|
elements_in_layer = 0; // At every layer the counter of the elements is resetted
|
||||||
|
*[ inputs_in_layer < end ->
|
||||||
|
[ inputs_in_layer + 1 >= end ->
|
||||||
|
//In this case, the number of input is even: the layer finishes
|
||||||
|
inputs_in_layer = end;
|
||||||
|
odd_element_flag = 0;
|
||||||
|
[] inputs_in_layer + 2 >= end ->
|
||||||
|
//In this case, we arrived at the last input, this means the inputs are odd
|
||||||
|
//We need to save the odd input index and move it to the next layer,
|
||||||
|
//up to when the resulting number is even
|
||||||
|
odd_element_idx = end;
|
||||||
|
odd_element_flag = 1;
|
||||||
|
inputs_in_layer = end;
|
||||||
|
[] else ->
|
||||||
|
//If we are not close to the end, analyzes the next two inputs
|
||||||
|
inputs_in_layer = inputs_in_layer +2;
|
||||||
|
]
|
||||||
|
elements_in_layer = elements_in_layer + 1; //At every step the elements count is updated
|
||||||
|
|
||||||
|
]
|
||||||
|
//Move the inputs_in_layer to the next layer
|
||||||
|
//Increase the end to account for the next layer elements
|
||||||
|
//If there was an odd element, count it also in the end
|
||||||
|
inputs_in_layer = end + 1;
|
||||||
|
end = end + elements_in_layer + odd_element_flag;
|
||||||
|
element_counter = element_counter + elements_in_layer;
|
||||||
|
]
|
||||||
|
|
||||||
|
{ element_counter = 4 : "Michele you did wrong" };
|
||||||
|
|
||||||
|
// Creating the elements of the tree
|
||||||
|
arbiter_handshake arb_array[element_counter];
|
||||||
|
(i:element_counter:arb_array[i].supply = supply;)
|
||||||
|
// These are the wires that connect one element of the tree to the others
|
||||||
|
a1of1 channels[element_counter*2];
|
||||||
|
|
||||||
|
//Connecting the first channels to the inputs
|
||||||
|
(i:N:channels[i] = in[i];)
|
||||||
|
channels[element_counter*2-1] = out;
|
||||||
|
//Now we redo the for loop but here to assign the channels to the elements
|
||||||
|
odd_element_idx = 0;
|
||||||
|
odd_element_flag = 0;
|
||||||
|
inputs_in_layer = 0;
|
||||||
|
end = N-1;
|
||||||
|
{ end=4 : "Michele you did wrong" };
|
||||||
|
// Here we start a for loop to count the elements in the tree
|
||||||
|
// The loop iterates for every successive layer
|
||||||
|
// i is the variable used to iterate the inputs,
|
||||||
|
// j counts the elements in the layer
|
||||||
|
*[ inputs_in_layer != end ->
|
||||||
|
elements_in_layer = 0; // At every layer the counter of the elements is resetted
|
||||||
|
*[ inputs_in_layer < end ->
|
||||||
|
[ inputs_in_layer + 1 >= end ->
|
||||||
|
//In this case, the number of input is even: the layer finishes
|
||||||
|
[ odd_element_flag >= 1 ->
|
||||||
|
arb_array[elements_in_layer].in1 = channels[inputs_in_layer];
|
||||||
|
arb_array[elements_in_layer].in2 = channels[odd_element_idx];
|
||||||
|
[] else ->
|
||||||
|
arb_array[elements_in_layer].in1 = channels[inputs_in_layer];
|
||||||
|
arb_array[elements_in_layer].in2 = channels[inputs_in_layer+1];
|
||||||
|
]
|
||||||
|
inputs_in_layer = end;
|
||||||
|
odd_element_flag = 0;
|
||||||
|
[] inputs_in_layer + 2 >= end ->
|
||||||
|
//In this case, we arrived at the last input, this means the inputs are odd
|
||||||
|
//We need to save the odd input index and move it to the next layer,
|
||||||
|
//up to when the resulting number is even
|
||||||
|
odd_element_idx = end;
|
||||||
|
odd_element_flag = 1;
|
||||||
|
{ end<8 : "Michele you did wrong" };
|
||||||
|
{ odd_element_idx=4 : "Michele you did wrong" };
|
||||||
|
arb_array[elements_in_layer].in1 = channels[inputs_in_layer];
|
||||||
|
arb_array[elements_in_layer].in2 = channels[inputs_in_layer+1];
|
||||||
|
inputs_in_layer = end;
|
||||||
|
[] else ->
|
||||||
|
//If we are not close to the end, analyzes the next two inputs
|
||||||
|
arb_array[elements_in_layer].in1 = channels[inputs_in_layer];
|
||||||
|
arb_array[elements_in_layer].in2 = channels[inputs_in_layer+1];
|
||||||
|
inputs_in_layer = inputs_in_layer +2;
|
||||||
|
|
||||||
|
]
|
||||||
|
elements_in_layer = elements_in_layer + 1; //At every step the elements count is updated
|
||||||
|
|
||||||
|
]
|
||||||
|
//Move the inputs_in_layer to the next layer
|
||||||
|
//Increase the end to account for the next layer elements
|
||||||
|
//If there was an odd element, count it also in the end
|
||||||
|
inputs_in_layer = end + 1;
|
||||||
|
end = end + elements_in_layer + odd_element_flag;
|
||||||
|
element_counter = element_counter + elements_in_layer;
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
export template<pint N>
|
||||||
|
defproc merge (avMx1of2<N> in1; avMx1of2<N> in2; avMx1of2<N> out ; bool? reset_B; power supply) {
|
||||||
|
|
||||||
|
//out acknowledge sigbuffer and inverter
|
||||||
|
bool _out_a_B,_out_a_BX[2*N];
|
||||||
|
INV_X1 out_a_inverter(.a = out.a, .y = _out_a_B);
|
||||||
|
sigbuf<2*N> out_a_buffer(.in = _out_a_B,.out = _out_a_BX,.supply=supply);
|
||||||
|
|
||||||
|
//control
|
||||||
|
bool _in1_a_B,_in2_a_B,_en,_en_X[2*N], _reset_BX,_reset_BXX[2*N];
|
||||||
|
bool _in1_arb,_in2_arb,_in1_arb_X[2*N],_in2_arb_X[2*N];
|
||||||
|
A_4C_RB_X4 in1ack_ctl(.c1=_in1_arb,.c2=_en,.c3=in1.v,.c4=out.v,.y=in1.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
A_4C_RB_X4 in2ack_ctl(.c1=_in2_arb,.c2=_en,.c3=in2.v,.c4=out.v,.y=in2.a,.pr_B=_reset_BX,.sr_B=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
A_4P1N1N_X1 en_ctl(.p1 = in1.a,.p2=in2.a,.p3=out.a,.p4 = out.v, .n1 = in1.a,.n2 = in2.a,.y = _en,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
sigbuf<2*N> en_buffer(.in = _en,.out = _en_X,.supply=supply);
|
||||||
|
INV_X1 in1ack_ctl_inv(.a=in1.a,.y=_in1_a_B,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
INV_X1 in2ack_ctl_inv(.a=in2.a,.y=_in2_a_B,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
|
||||||
|
//reset_buffers
|
||||||
|
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
|
sigbuf<N*2> reset_bufarray(.in=_reset_BX, .out=_reset_BXX);
|
||||||
|
|
||||||
|
//validity
|
||||||
|
a1of1 _in1_temp,_in2_temp,_out_temp;
|
||||||
|
bool _in1_arb_temp,_in2_arb_temp;
|
||||||
|
vtree<N> vc1(.in=in1.d,.out=in1.v,.supply=supply);
|
||||||
|
vtree<N> vc2(.in=in2.d,.out=in2.v,.supply=supply);
|
||||||
|
arbiter_handshake validity_arb(.in1 = _in1_temp,.in2 = _in2_temp,.out =_out_temp, .supply = supply);
|
||||||
|
_in1_temp.r = in1.v;
|
||||||
|
_in2_temp.r = in2.v;
|
||||||
|
_in1_temp.a = _in1_arb_temp;
|
||||||
|
_in2_temp.a = _in2_arb_temp;
|
||||||
|
_out_temp.r = _out_temp.a;
|
||||||
|
AND2_X1 AND_arb1(.a = _in2_a_B,.b = _in1_arb_temp, .y = _in1_arb);
|
||||||
|
AND2_X1 AND_arb2(.a = _in1_a_B,.b = _in2_arb_temp, .y = _in2_arb);
|
||||||
|
sigbuf<2*N> arb2function1(.in = _in1_arb,.out = _in1_arb_X,.supply=supply);
|
||||||
|
sigbuf<2*N> arb2function2(.in = _in2_arb,.out = _in2_arb_X,.supply=supply);
|
||||||
|
|
||||||
|
//function
|
||||||
|
A_2C2N2N_RB_X1 merge_func_t[N];
|
||||||
|
A_2C2N2N_RB_X1 merge_func_f[N];
|
||||||
|
(i:N:
|
||||||
|
merge_func_t[i].c1 = _en_X[i];
|
||||||
|
merge_func_t[i].c2 = _out_a_BX[i];
|
||||||
|
merge_func_t[i].n1 = _in1_arb_X[i];
|
||||||
|
merge_func_t[i].n2 = in1.d.d[i].t;
|
||||||
|
merge_func_t[i].n3 = _in2_arb_X[i];
|
||||||
|
merge_func_t[i].n4 = in2.d.d[i].t;
|
||||||
|
merge_func_t[i].y = out.d.d[i].t;
|
||||||
|
merge_func_t[i].vdd=supply.vdd;
|
||||||
|
merge_func_t[i].vss=supply.vss;
|
||||||
|
merge_func_t[i].pr_B = _reset_BXX[i];
|
||||||
|
merge_func_t[i].sr_B = _reset_BXX[i];
|
||||||
|
|
||||||
|
merge_func_f[i].c1 = _en_X[i+N];
|
||||||
|
merge_func_f[i].c2 = _out_a_BX[i+N];
|
||||||
|
merge_func_f[i].n1 = _in1_arb_X[i+N];
|
||||||
|
merge_func_f[i].n2 = in1.d.d[i].f;
|
||||||
|
merge_func_f[i].n3 = _in2_arb_X[i+N];
|
||||||
|
merge_func_f[i].n4 = in2.d.d[i].f;
|
||||||
|
merge_func_f[i].y = out.d.d[i].f;
|
||||||
|
merge_func_f[i].vdd=supply.vdd;
|
||||||
|
merge_func_f[i].vss=supply.vss;
|
||||||
|
merge_func_f[i].pr_B = _reset_BXX[i+N];
|
||||||
|
merge_func_f[i].sr_B = _reset_BXX[i+N];
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
export
|
export
|
||||||
defproc buffer_t(a1of1 in; a1of1 out; bool? reset_B; power supply)
|
defproc buffer_t(a1of1 in; a1of1 out; bool? reset_B; power supply)
|
||||||
{
|
{
|
||||||
@ -461,6 +708,7 @@ namespace tmpl {
|
|||||||
//reset buffers
|
//reset buffers
|
||||||
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
}
|
}
|
||||||
|
// A template creating a FIFO of N buffers tokens
|
||||||
export template<pint N>
|
export template<pint N>
|
||||||
defproc fifo_t(a1of1 in; a1of1 out; bool? reset_B; power supply)
|
defproc fifo_t(a1of1 in; a1of1 out; bool? reset_B; power supply)
|
||||||
{
|
{
|
||||||
@ -482,6 +730,61 @@ namespace tmpl {
|
|||||||
// reset buffers
|
// reset buffers
|
||||||
bool _reset_BX;
|
bool _reset_BX;
|
||||||
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss);
|
||||||
sigbuf<N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX);
|
sigbuf<N> reset_bufarray(.in=_reset_BX, .out=_reset_BXX, .supply = supply);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Programmable delay line.
|
||||||
|
// N is the number of layers,
|
||||||
|
// the longest layer having 2**N DLY elements
|
||||||
|
export template<pint N>
|
||||||
|
defproc delayprog (bool! y; bool? a, s[N]; power supply)
|
||||||
|
{
|
||||||
|
|
||||||
|
{ N >= 0 : "What?" };
|
||||||
|
{ N < 9 : "Delay prog size is given in 2**N. Given N is too big." };
|
||||||
|
|
||||||
|
|
||||||
|
AND2_X1 and2[N];
|
||||||
|
MUX2_X1 mu2[N];
|
||||||
|
DLY4_X1 dly[(1<<N) -1];
|
||||||
|
|
||||||
|
bool _a[N+1]; // Holds the input to each row
|
||||||
|
|
||||||
|
_a[0] = a;
|
||||||
|
|
||||||
|
pint i_delay;
|
||||||
|
i_delay = 0; // Index of the last connected delay element
|
||||||
|
|
||||||
|
(i:0..N-1:
|
||||||
|
// For each row
|
||||||
|
and2[i].a = _a[i];
|
||||||
|
and2[i].b = s[i];
|
||||||
|
|
||||||
|
// Delays
|
||||||
|
dly[i_delay].a = and2[i].y;
|
||||||
|
i_delay = i_delay + 1;
|
||||||
|
(j:1..i-1:
|
||||||
|
dly[i_delay].a = dly[i_delay-1].y;
|
||||||
|
i_delay = i_delay +1;
|
||||||
|
)
|
||||||
|
|
||||||
|
// Mux
|
||||||
|
mu2[i].a = _a[i];
|
||||||
|
mu2[i].s = s[i];
|
||||||
|
dly[i_delay-1].y = mu2[i].b;
|
||||||
|
_a[i+1] = mu2[i].y;
|
||||||
|
)
|
||||||
|
|
||||||
|
y = mu2[N-1].y;
|
||||||
|
|
||||||
|
|
||||||
|
// Connect everything to vdd/gnd
|
||||||
|
(i:N:and2[i].vdd = supply.vdd;)
|
||||||
|
(i:N:mu2[i].vdd = supply.vdd;)
|
||||||
|
(i:((1<<N)-1):dly[i].vdd = supply.vdd;)
|
||||||
|
|
||||||
|
(i:N:and2[i].vss = supply.vss;)
|
||||||
|
(i:N:mu2[i].vss = supply.vss;)
|
||||||
|
(i:((1<<N)-1):dly[i].vss = supply.vss;)
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
* This file is part of ACT dataflow neuro library
|
* This file is part of ACT dataflow neuro library
|
||||||
*
|
*
|
||||||
* Copyright (c) 2022 University of Groningen - Ole Richter
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
* Copyright (c) 2021 Rajit Manohar
|
* Copyright (c) 2021 Rajit Manohar
|
||||||
*
|
*
|
||||||
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
@ -146,12 +149,121 @@ defproc ortree (bool? in[N]; bool! out; power supply)
|
|||||||
out = tmp[end];
|
out = tmp[end];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export template<pint N>
|
||||||
|
defproc andtree (bool? in[N]; bool! out; power supply)
|
||||||
|
{
|
||||||
|
bool tout;
|
||||||
|
|
||||||
|
{ N > 0 : "What?" };
|
||||||
|
|
||||||
|
pint i, end, j;
|
||||||
|
i = 0;
|
||||||
|
end = N-1;
|
||||||
|
|
||||||
|
pint lenTree2Count, lenTree3Count;
|
||||||
|
lenTree2Count = 0;
|
||||||
|
lenTree3Count = 0;
|
||||||
|
/* Pre"calculate" the number of C cells required, look below if confused */
|
||||||
|
*[ i != end ->
|
||||||
|
j = 0;
|
||||||
|
*[ i < end ->
|
||||||
|
j = j + 1;
|
||||||
|
[ i+1 >= end ->
|
||||||
|
i = end;
|
||||||
|
lenTree2Count = lenTree2Count +1;
|
||||||
|
[] i+2 >= end ->
|
||||||
|
i = end;
|
||||||
|
lenTree3Count = lenTree3Count +1;
|
||||||
|
[] else ->
|
||||||
|
i = i + 2;
|
||||||
|
lenTree2Count = lenTree2Count +1;
|
||||||
|
]
|
||||||
|
]
|
||||||
|
/*-- update range that has to be combined --*/
|
||||||
|
i = end+1;
|
||||||
|
end = end+j;
|
||||||
|
j = 0;
|
||||||
|
]
|
||||||
|
|
||||||
|
/* array that holds ALL the nodes in the completion tree */
|
||||||
|
bool tmp[end+1];
|
||||||
|
(k:N:tmp[k] = in[k];)
|
||||||
|
|
||||||
|
/* array to hold the actual C-elments, either A2C or A3C */
|
||||||
|
|
||||||
|
[lenTree2Count > 0 ->
|
||||||
|
AND2_X1 C2Els[lenTree2Count];
|
||||||
|
]
|
||||||
|
|
||||||
|
[lenTree3Count > 0 ->
|
||||||
|
AND3_X1 C3Els[lenTree3Count];
|
||||||
|
]
|
||||||
|
|
||||||
|
(h:lenTree2Count:C2Els[h].vdd = supply.vdd;)
|
||||||
|
(h:lenTree3Count:C3Els[h].vdd = supply.vdd;)
|
||||||
|
|
||||||
|
(h:lenTree2Count:C2Els[h].vss = supply.vss;)
|
||||||
|
(h:lenTree3Count:C3Els[h].vss = supply.vss;)
|
||||||
|
|
||||||
|
/* Reset the variables we just stole lol */
|
||||||
|
i = 0;
|
||||||
|
end = N-1;
|
||||||
|
j = 0;
|
||||||
|
pint tree2Index = 0;
|
||||||
|
pint tree3Index = 0;
|
||||||
|
|
||||||
|
/* Invariant: i <= end */
|
||||||
|
|
||||||
|
*[ i != end ->
|
||||||
|
/*
|
||||||
|
* Invariant: tmp[i..end] has the current signals that need to be
|
||||||
|
* combined together, and "isinv" specifies if they are the inverted
|
||||||
|
* sense or not
|
||||||
|
*/
|
||||||
|
j = 0;
|
||||||
|
*[ i < end ->
|
||||||
|
/*-- there are still signals that need to be combined --*/
|
||||||
|
j = j + 1;
|
||||||
|
[ i+1 >= end ->
|
||||||
|
/*-- last piece: use either a 2 input C-element --*/
|
||||||
|
C2Els[tree2Index].a = tmp[i];
|
||||||
|
C2Els[tree2Index].b = tmp[i+1];
|
||||||
|
C2Els[tree2Index].y = tmp[end+j];
|
||||||
|
tree2Index = tree2Index +1;
|
||||||
|
i = end;
|
||||||
|
[] i+2 >= end ->
|
||||||
|
/*-- last piece: use either a 3 input C-element --*/
|
||||||
|
C3Els[tree3Index].a = tmp[i];
|
||||||
|
C3Els[tree3Index].b = tmp[i+1];
|
||||||
|
C3Els[tree3Index].c = tmp[i+2];
|
||||||
|
C3Els[tree3Index].y = tmp[end+j];
|
||||||
|
|
||||||
|
tree3Index = tree3Index +1;
|
||||||
|
i = end;
|
||||||
|
[] else ->
|
||||||
|
/*-- more to come; so use a two input C-element --*/
|
||||||
|
C2Els[tree2Index].a = tmp[i];
|
||||||
|
C2Els[tree2Index].b = tmp[i+1];
|
||||||
|
C2Els[tree2Index].y = tmp[end+j];
|
||||||
|
tree2Index = tree2Index +1;
|
||||||
|
i = i + 2;
|
||||||
|
]
|
||||||
|
]
|
||||||
|
/*-- update range that has to be combined --*/
|
||||||
|
i = end+1;
|
||||||
|
end = end+j;
|
||||||
|
j = 0;
|
||||||
|
]
|
||||||
|
|
||||||
|
out = tmp[end];
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Build a completion tree using a combination of 2-input and 3-input
|
* Build a completion tree using a combination of 2-input and 3-input
|
||||||
* C-elements
|
* C-elements
|
||||||
*/
|
*/
|
||||||
export template<pint N>
|
export template<pint N>
|
||||||
defproc ctree (std::data::Mx1of2?<N> in; bool! out; power supply)
|
defproc ctree (bool? in[N]; bool! out; power supply)
|
||||||
{
|
{
|
||||||
bool tout;
|
bool tout;
|
||||||
|
|
||||||
@ -187,19 +299,11 @@ defproc ctree (std::data::Mx1of2?<N> in; bool! out; power supply)
|
|||||||
|
|
||||||
/* array that holds ALL the nodes in the completion tree */
|
/* array that holds ALL the nodes in the completion tree */
|
||||||
bool tmp[end+1];
|
bool tmp[end+1];
|
||||||
// OR layer for making OR between true and false of in (they are then sent to Ctree)
|
|
||||||
OR2_X1 OR2_tf[N];
|
// Connecting the first nodes to the input
|
||||||
(l:N:
|
(l:N:
|
||||||
OR2_tf[l].a = in.d[l].t;
|
tmp[l] = in[l];
|
||||||
OR2_tf[l].b = in.d[l].f;
|
|
||||||
OR2_tf[l].y = tmp[l];
|
|
||||||
// OR2_tf[i].a = supply.vdd;
|
|
||||||
// OR2_tf[i].b = supply.vdd;
|
|
||||||
// OR2_tf[i].y = supply.vdd;
|
|
||||||
OR2_tf[l].vdd = supply.vdd;
|
|
||||||
OR2_tf[l].vss = supply.vss;
|
|
||||||
)
|
)
|
||||||
//(k:N:tmp[k] = in[k];)
|
|
||||||
|
|
||||||
/* array to hold the actual C-elments, either A2C or A3C */
|
/* array to hold the actual C-elments, either A2C or A3C */
|
||||||
[lenTree2Count > 0 ->
|
[lenTree2Count > 0 ->
|
||||||
@ -271,6 +375,22 @@ defproc ctree (std::data::Mx1of2?<N> in; bool! out; power supply)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export template<pint N>
|
||||||
|
defproc vtree (std::data::Mx1of2?<N> in; bool! out; power supply)
|
||||||
|
{
|
||||||
|
// OR layer for making OR between true and false of in (they are then sent to Ctree)
|
||||||
|
OR2_X1 OR2_tf[N];
|
||||||
|
ctree<N> myctree;
|
||||||
|
(l:N:
|
||||||
|
OR2_tf[l].a = in.d[l].t;
|
||||||
|
OR2_tf[l].b = in.d[l].f;
|
||||||
|
OR2_tf[l].y = myctree.in[l];
|
||||||
|
OR2_tf[l].vdd = supply.vdd;
|
||||||
|
OR2_tf[l].vss = supply.vss;
|
||||||
|
)
|
||||||
|
myctree.supply = supply;
|
||||||
|
out = myctree.out;
|
||||||
|
}
|
||||||
export template<pint N>
|
export template<pint N>
|
||||||
defproc sigbuf (bool? in; bool! out[N]; power supply)
|
defproc sigbuf (bool? in; bool! out[N]; power supply)
|
||||||
{
|
{
|
||||||
|
@ -53,6 +53,20 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
|
|||||||
else:
|
else:
|
||||||
raise Exception("Unknown colour given. I cba to code up general colours atm.")
|
raise Exception("Unknown colour given. I cba to code up general colours atm.")
|
||||||
|
|
||||||
|
# Check if start time given
|
||||||
|
for arg in argv:
|
||||||
|
r = re.findall(r'-t0=(\d+)', arg)
|
||||||
|
if len(r) >= 1:
|
||||||
|
print(f"Filtering by start time t0 = {r[0]}")
|
||||||
|
entries = [e for e in entries if int(e[0]) >= int(r[0])]
|
||||||
|
|
||||||
|
# Check if end time given
|
||||||
|
for arg in argv:
|
||||||
|
r = re.findall(r'-t1=(\d+)', arg)
|
||||||
|
if len(r) >= 1:
|
||||||
|
print(f"Filtering by end time t1 = {r[0]}")
|
||||||
|
entries = [e for e in entries if int(e[0]) <= int(r[0])]
|
||||||
|
|
||||||
|
|
||||||
# Check if user gave an include filter
|
# Check if user gave an include filter
|
||||||
include_given = False
|
include_given = False
|
||||||
@ -72,6 +86,18 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
|
|||||||
exclude_given = True
|
exclude_given = True
|
||||||
exclude_re = r[0][1]
|
exclude_re = r[0][1]
|
||||||
|
|
||||||
|
# Check if user gave "keep all times" flag
|
||||||
|
# This is so you can look at certain signals only
|
||||||
|
# without them all bunching up.
|
||||||
|
include_all_times = False
|
||||||
|
for arg in argv:
|
||||||
|
r = re.findall(r'(-alltimes?)', arg)
|
||||||
|
if len(r) >= 1:
|
||||||
|
include_all_times = True
|
||||||
|
|
||||||
|
# Get list of all times (before filtering)
|
||||||
|
unique_times = np.unique([int(e[0]) for e in entries])
|
||||||
|
|
||||||
assert not (exclude_given and include_given), "Can't give include and exclude re simultaneously."
|
assert not (exclude_given and include_given), "Can't give include and exclude re simultaneously."
|
||||||
if include_given: print(f"Including signals that match regex {include_re}")
|
if include_given: print(f"Including signals that match regex {include_re}")
|
||||||
if exclude_given: print(f"Excluding signals that match regex {exclude_re}")
|
if exclude_given: print(f"Excluding signals that match regex {exclude_re}")
|
||||||
@ -82,27 +108,15 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
|
|||||||
if exclude_given:
|
if exclude_given:
|
||||||
entries = [e for e in entries if re.search(exclude_re, e[1]) == None]
|
entries = [e for e in entries if re.search(exclude_re, e[1]) == None]
|
||||||
|
|
||||||
# Check if start time given
|
|
||||||
for arg in argv:
|
|
||||||
r = re.findall(r'-t0=(\d+)', arg)
|
|
||||||
if len(r) >= 1:
|
|
||||||
print(f"Filtering by start time t0 = {r[0]}")
|
|
||||||
entries = [e for e in entries if int(e[0]) >= int(r[0])]
|
|
||||||
|
|
||||||
# Check if end time given
|
|
||||||
for arg in argv:
|
|
||||||
r = re.findall(r'-t1=(\d+)', arg)
|
|
||||||
if len(r) >= 1:
|
|
||||||
print(f"Filtering by start time t0 = {r[0]}")
|
|
||||||
entries = [e for e in entries if int(e[0]) <= int(r[0])]
|
|
||||||
|
|
||||||
assert len(entries) >= 1, "No valid entries in prsim.out!"
|
assert len(entries) >= 1, "No valid entries in prsim.out!"
|
||||||
|
|
||||||
# Get list of all sigs and times
|
|
||||||
times = np.array([int(e[0]) for e in entries])
|
|
||||||
unique_times = np.unique(times)
|
|
||||||
num_times = unique_times.shape[0]
|
num_times = unique_times.shape[0]
|
||||||
|
|
||||||
|
# Get list of all times (after filtering)
|
||||||
|
times = np.array([int(e[0]) for e in entries])
|
||||||
|
if not include_all_times: unique_times = np.unique(times)
|
||||||
|
|
||||||
|
# Get list of all sigs
|
||||||
sigs = np.array([e[1] for e in entries])
|
sigs = np.array([e[1] for e in entries])
|
||||||
unique_sigs = np.unique(sigs)
|
unique_sigs = np.unique(sigs)
|
||||||
num_sigs = unique_sigs.shape[0]
|
num_sigs = unique_sigs.shape[0]
|
||||||
@ -208,7 +222,11 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
|
|||||||
print(a)
|
print(a)
|
||||||
time = int(a[0])
|
time = int(a[0])
|
||||||
if not time in unique_times:
|
if not time in unique_times:
|
||||||
|
try:
|
||||||
time = unique_times[np.argwhere((unique_times-time) < 0)[-1]]
|
time = unique_times[np.argwhere((unique_times-time) < 0)[-1]]
|
||||||
|
except:
|
||||||
|
print(f"Couldn't find an appropriate time for assert {a}")
|
||||||
|
continue
|
||||||
index = time_to_index(time)
|
index = time_to_index(time)
|
||||||
ax.axvline(index+0.5, c = "red", lw = 2)
|
ax.axvline(index+0.5, c = "red", lw = 2)
|
||||||
ax.text(index+0.5, -1, a[1], rotation = 90, ha = "center", va = "bottom", c = "red")
|
ax.text(index+0.5, -1, a[1], rotation = 90, ha = "center", va = "bottom", c = "red")
|
||||||
@ -218,7 +236,11 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
|
|||||||
for a in echoes:
|
for a in echoes:
|
||||||
time = int(a[0])
|
time = int(a[0])
|
||||||
if not time in unique_times:
|
if not time in unique_times:
|
||||||
|
try:
|
||||||
time = unique_times[np.argwhere((unique_times-time) < 0)[-1]]
|
time = unique_times[np.argwhere((unique_times-time) < 0)[-1]]
|
||||||
|
except:
|
||||||
|
print(f"Couldn't find an appropriate time for echo {a}")
|
||||||
|
continue
|
||||||
index = time_to_index(time)
|
index = time_to_index(time)
|
||||||
c = "xkcd:bright purple"
|
c = "xkcd:bright purple"
|
||||||
ax.axvline(index+0.5, c = c, lw = 2)
|
ax.axvline(index+0.5, c = c, lw = 2)
|
||||||
|
118
test/unit_tests/andtree_15/run/prsim.out
Normal file
118
test/unit_tests/andtree_15/run/prsim.out
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
t.in[0] t.at.tmp[22] t.in[5] t.in[2] t.at.tmp[15] t.in[3] t.at.tmp[23] t.at.C2Els[0]._y t.in[7] t.in[6] t.at.C2Els[3]._y t.in[4] t.at.C3Els[0]._y t.in[12] t.out t.at.tmp[21] t.at.C2Els[6]._y t.in[11] t.at.tmp[17] t.in[14] t.in[1] t.in[10] t.in[9] t.at.C2Els[5]._y t.at.tmp[19] t.at.tmp[20] t.at.tmp[24] t.in[13] t.at.tmp[16] t.at.C2Els[4]._y t.in[8] t.at.tmp[18] t.at.C2Els[2]._y t.at.C3Els[2]._y t.at.C2Els[1]._y t.at.C2Els[7]._y t.at.C3Els[1]._y
|
||||||
|
0
|
||||||
|
1
|
||||||
|
0 t.in[0] : 0
|
||||||
|
0 t.in[14] : 0
|
||||||
|
0 t.in[2] : 0
|
||||||
|
0 t.in[6] : 0
|
||||||
|
0 t.in[13] : 0
|
||||||
|
0 t.in[5] : 0
|
||||||
|
0 t.in[12] : 0
|
||||||
|
0 t.in[11] : 0
|
||||||
|
0 t.in[1] : 0
|
||||||
|
0 t.in[4] : 0
|
||||||
|
0 t.in[10] : 0
|
||||||
|
0 t.in[9] : 0
|
||||||
|
0 t.in[3] : 0
|
||||||
|
0 t.in[8] : 0
|
||||||
|
0 t.in[7] : 0
|
||||||
|
1 t.at.C2Els[0]._y : 1 [by t.in[0]:=0]
|
||||||
|
2 t.at.C2Els[3]._y : 1 [by t.in[6]:=0]
|
||||||
|
114 t.at.C2Els[4]._y : 1 [by t.in[9]:=0]
|
||||||
|
153 t.at.tmp[19] : 0 [by t.at.C2Els[4]._y:=1]
|
||||||
|
168 t.at.C3Els[1]._y : 1 [by t.at.tmp[19]:=0]
|
||||||
|
659 t.at.tmp[24] : 0 [by t.at.C3Els[1]._y:=1]
|
||||||
|
672 t.at.C3Els[2]._y : 1 [by t.at.tmp[24]:=0]
|
||||||
|
712 t.out : 0 [by t.at.C3Els[2]._y:=1]
|
||||||
|
1137 t.at.C2Els[5]._y : 1 [by t.in[11]:=0]
|
||||||
|
1552 t.at.tmp[20] : 0 [by t.at.C2Els[5]._y:=1]
|
||||||
|
1728 t.at.tmp[18] : 0 [by t.at.C2Els[3]._y:=1]
|
||||||
|
1748 t.at.C2Els[7]._y : 1 [by t.at.tmp[18]:=0]
|
||||||
|
4753 t.at.C2Els[2]._y : 1 [by t.in[5]:=0]
|
||||||
|
4800 t.at.tmp[17] : 0 [by t.at.C2Els[2]._y:=1]
|
||||||
|
7092 t.at.C3Els[0]._y : 1 [by t.in[14]:=0]
|
||||||
|
7108 t.at.tmp[21] : 0 [by t.at.C3Els[0]._y:=1]
|
||||||
|
7809 t.at.tmp[23] : 0 [by t.at.C2Els[7]._y:=1]
|
||||||
|
10467 t.at.C2Els[1]._y : 1 [by t.in[2]:=0]
|
||||||
|
54565 t.at.tmp[16] : 0 [by t.at.C2Els[1]._y:=1]
|
||||||
|
65367 t.at.tmp[15] : 0 [by t.at.C2Els[0]._y:=1]
|
||||||
|
68289 t.at.C2Els[6]._y : 1 [by t.at.tmp[16]:=0]
|
||||||
|
68293 t.at.tmp[22] : 0 [by t.at.C2Els[6]._y:=1]
|
||||||
|
[] setting some bits high
|
||||||
|
68293 t.in[0] : 1
|
||||||
|
68293 t.in[11] : 1
|
||||||
|
68293 t.in[10] : 1
|
||||||
|
68293 t.in[9] : 1
|
||||||
|
68293 t.in[2] : 1
|
||||||
|
68293 t.in[8] : 1
|
||||||
|
68293 t.in[7] : 1
|
||||||
|
68293 t.in[6] : 1
|
||||||
|
68293 t.in[5] : 1
|
||||||
|
68293 t.in[1] : 1
|
||||||
|
68293 t.in[4] : 1
|
||||||
|
68293 t.in[3] : 1
|
||||||
|
68308 t.at.C2Els[4]._y : 0 [by t.in[8]:=1]
|
||||||
|
68348 t.at.C2Els[2]._y : 0 [by t.in[4]:=1]
|
||||||
|
77422 t.at.C2Els[5]._y : 0 [by t.in[10]:=1]
|
||||||
|
82197 t.at.tmp[17] : 1 [by t.at.C2Els[2]._y:=0]
|
||||||
|
98088 t.at.tmp[19] : 1 [by t.at.C2Els[4]._y:=0]
|
||||||
|
102234 t.at.tmp[20] : 1 [by t.at.C2Els[5]._y:=0]
|
||||||
|
105224 t.at.C2Els[0]._y : 0 [by t.in[1]:=1]
|
||||||
|
111541 t.at.C2Els[3]._y : 0 [by t.in[6]:=1]
|
||||||
|
111963 t.at.tmp[18] : 1 [by t.at.C2Els[3]._y:=0]
|
||||||
|
119567 t.at.tmp[15] : 1 [by t.at.C2Els[0]._y:=0]
|
||||||
|
119946 t.at.C2Els[1]._y : 0 [by t.in[3]:=1]
|
||||||
|
119947 t.at.tmp[16] : 1 [by t.at.C2Els[1]._y:=0]
|
||||||
|
119948 t.at.C2Els[6]._y : 0 [by t.at.tmp[16]:=1]
|
||||||
|
140153 t.at.tmp[22] : 1 [by t.at.C2Els[6]._y:=0]
|
||||||
|
160677 t.at.C2Els[7]._y : 0 [by t.at.tmp[18]:=1]
|
||||||
|
160959 t.at.tmp[23] : 1 [by t.at.C2Els[7]._y:=0]
|
||||||
|
[] setting all bits high
|
||||||
|
160959 t.in[12] : 1
|
||||||
|
160959 t.in[14] : 1
|
||||||
|
160959 t.in[13] : 1
|
||||||
|
161727 t.at.C3Els[0]._y : 0 [by t.in[13]:=1]
|
||||||
|
161730 t.at.tmp[21] : 1 [by t.at.C3Els[0]._y:=0]
|
||||||
|
184171 t.at.C3Els[1]._y : 0 [by t.at.tmp[21]:=1]
|
||||||
|
184722 t.at.tmp[24] : 1 [by t.at.C3Els[1]._y:=0]
|
||||||
|
185793 t.at.C3Els[2]._y : 0 [by t.at.tmp[24]:=1]
|
||||||
|
186747 t.out : 1 [by t.at.C3Els[2]._y:=0]
|
||||||
|
[] setting some low
|
||||||
|
186747 t.in[10] : 0
|
||||||
|
187828 t.at.C2Els[5]._y : 1 [by t.in[10]:=0]
|
||||||
|
242298 t.at.tmp[20] : 0 [by t.at.C2Els[5]._y:=1]
|
||||||
|
243280 t.at.C3Els[1]._y : 1 [by t.at.tmp[20]:=0]
|
||||||
|
243298 t.at.tmp[24] : 0 [by t.at.C3Els[1]._y:=1]
|
||||||
|
247311 t.at.C3Els[2]._y : 1 [by t.at.tmp[24]:=0]
|
||||||
|
251314 t.out : 0 [by t.at.C3Els[2]._y:=1]
|
||||||
|
[] setting all low
|
||||||
|
251314 t.in[0] : 0
|
||||||
|
251314 t.in[14] : 0
|
||||||
|
251314 t.in[2] : 0
|
||||||
|
251314 t.in[6] : 0
|
||||||
|
251314 t.in[5] : 0
|
||||||
|
251314 t.in[13] : 0
|
||||||
|
251314 t.in[12] : 0
|
||||||
|
251314 t.in[1] : 0
|
||||||
|
251314 t.in[4] : 0
|
||||||
|
251314 t.in[11] : 0
|
||||||
|
251314 t.in[9] : 0
|
||||||
|
251314 t.in[3] : 0
|
||||||
|
251314 t.in[8] : 0
|
||||||
|
251314 t.in[7] : 0
|
||||||
|
251517 t.at.C2Els[2]._y : 1 [by t.in[5]:=0]
|
||||||
|
251656 t.at.tmp[17] : 0 [by t.at.C2Els[2]._y:=1]
|
||||||
|
251816 t.at.C2Els[3]._y : 1 [by t.in[6]:=0]
|
||||||
|
251885 t.at.tmp[18] : 0 [by t.at.C2Els[3]._y:=1]
|
||||||
|
253168 t.at.C2Els[4]._y : 1 [by t.in[9]:=0]
|
||||||
|
253179 t.at.tmp[19] : 0 [by t.at.C2Els[4]._y:=1]
|
||||||
|
256074 t.at.C2Els[1]._y : 1 [by t.in[2]:=0]
|
||||||
|
272898 t.at.C3Els[0]._y : 1 [by t.in[14]:=0]
|
||||||
|
273102 t.at.tmp[21] : 0 [by t.at.C3Els[0]._y:=1]
|
||||||
|
288002 t.at.C2Els[7]._y : 1 [by t.at.tmp[17]:=0]
|
||||||
|
288017 t.at.tmp[23] : 0 [by t.at.C2Els[7]._y:=1]
|
||||||
|
296215 t.at.C2Els[0]._y : 1 [by t.in[0]:=0]
|
||||||
|
296216 t.at.tmp[15] : 0 [by t.at.C2Els[0]._y:=1]
|
||||||
|
296253 t.at.C2Els[6]._y : 1 [by t.at.tmp[15]:=0]
|
||||||
|
296992 t.at.tmp[22] : 0 [by t.at.C2Els[6]._y:=1]
|
||||||
|
307860 t.at.tmp[16] : 0 [by t.at.C2Els[1]._y:=1]
|
BIN
test/unit_tests/andtree_15/run/prsim.pdf
Normal file
BIN
test/unit_tests/andtree_15/run/prsim.pdf
Normal file
Binary file not shown.
139
test/unit_tests/andtree_15/run/test.prs
Normal file
139
test/unit_tests/andtree_15/run/test.prs
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
= "GND" "GND"
|
||||||
|
= "Vdd" "Vdd"
|
||||||
|
= "Reset" "Reset"
|
||||||
|
"t.at.C2Els[0].a"&"t.at.C2Els[0].b"->"t.at.C2Els[0]._y"-
|
||||||
|
~("t.at.C2Els[0].a"&"t.at.C2Els[0].b")->"t.at.C2Els[0]._y"+
|
||||||
|
"t.at.C2Els[0]._y"->"t.at.C2Els[0].y"-
|
||||||
|
~("t.at.C2Els[0]._y")->"t.at.C2Els[0].y"+
|
||||||
|
"t.at.C2Els[1].a"&"t.at.C2Els[1].b"->"t.at.C2Els[1]._y"-
|
||||||
|
~("t.at.C2Els[1].a"&"t.at.C2Els[1].b")->"t.at.C2Els[1]._y"+
|
||||||
|
"t.at.C2Els[1]._y"->"t.at.C2Els[1].y"-
|
||||||
|
~("t.at.C2Els[1]._y")->"t.at.C2Els[1].y"+
|
||||||
|
"t.at.C2Els[2].a"&"t.at.C2Els[2].b"->"t.at.C2Els[2]._y"-
|
||||||
|
~("t.at.C2Els[2].a"&"t.at.C2Els[2].b")->"t.at.C2Els[2]._y"+
|
||||||
|
"t.at.C2Els[2]._y"->"t.at.C2Els[2].y"-
|
||||||
|
~("t.at.C2Els[2]._y")->"t.at.C2Els[2].y"+
|
||||||
|
"t.at.C2Els[3].a"&"t.at.C2Els[3].b"->"t.at.C2Els[3]._y"-
|
||||||
|
~("t.at.C2Els[3].a"&"t.at.C2Els[3].b")->"t.at.C2Els[3]._y"+
|
||||||
|
"t.at.C2Els[3]._y"->"t.at.C2Els[3].y"-
|
||||||
|
~("t.at.C2Els[3]._y")->"t.at.C2Els[3].y"+
|
||||||
|
"t.at.C2Els[4].a"&"t.at.C2Els[4].b"->"t.at.C2Els[4]._y"-
|
||||||
|
~("t.at.C2Els[4].a"&"t.at.C2Els[4].b")->"t.at.C2Els[4]._y"+
|
||||||
|
"t.at.C2Els[4]._y"->"t.at.C2Els[4].y"-
|
||||||
|
~("t.at.C2Els[4]._y")->"t.at.C2Els[4].y"+
|
||||||
|
"t.at.C2Els[5].a"&"t.at.C2Els[5].b"->"t.at.C2Els[5]._y"-
|
||||||
|
~("t.at.C2Els[5].a"&"t.at.C2Els[5].b")->"t.at.C2Els[5]._y"+
|
||||||
|
"t.at.C2Els[5]._y"->"t.at.C2Els[5].y"-
|
||||||
|
~("t.at.C2Els[5]._y")->"t.at.C2Els[5].y"+
|
||||||
|
"t.at.C2Els[6].a"&"t.at.C2Els[6].b"->"t.at.C2Els[6]._y"-
|
||||||
|
~("t.at.C2Els[6].a"&"t.at.C2Els[6].b")->"t.at.C2Els[6]._y"+
|
||||||
|
"t.at.C2Els[6]._y"->"t.at.C2Els[6].y"-
|
||||||
|
~("t.at.C2Els[6]._y")->"t.at.C2Els[6].y"+
|
||||||
|
"t.at.C2Els[7].a"&"t.at.C2Els[7].b"->"t.at.C2Els[7]._y"-
|
||||||
|
~("t.at.C2Els[7].a"&"t.at.C2Els[7].b")->"t.at.C2Els[7]._y"+
|
||||||
|
"t.at.C2Els[7]._y"->"t.at.C2Els[7].y"-
|
||||||
|
~("t.at.C2Els[7]._y")->"t.at.C2Els[7].y"+
|
||||||
|
"t.at.C3Els[0].a"&"t.at.C3Els[0].b"&"t.at.C3Els[0].c"->"t.at.C3Els[0]._y"-
|
||||||
|
~("t.at.C3Els[0].a"&"t.at.C3Els[0].b"&"t.at.C3Els[0].c")->"t.at.C3Els[0]._y"+
|
||||||
|
"t.at.C3Els[0]._y"->"t.at.C3Els[0].y"-
|
||||||
|
~("t.at.C3Els[0]._y")->"t.at.C3Els[0].y"+
|
||||||
|
"t.at.C3Els[1].a"&"t.at.C3Els[1].b"&"t.at.C3Els[1].c"->"t.at.C3Els[1]._y"-
|
||||||
|
~("t.at.C3Els[1].a"&"t.at.C3Els[1].b"&"t.at.C3Els[1].c")->"t.at.C3Els[1]._y"+
|
||||||
|
"t.at.C3Els[1]._y"->"t.at.C3Els[1].y"-
|
||||||
|
~("t.at.C3Els[1]._y")->"t.at.C3Els[1].y"+
|
||||||
|
"t.at.C3Els[2].a"&"t.at.C3Els[2].b"&"t.at.C3Els[2].c"->"t.at.C3Els[2]._y"-
|
||||||
|
~("t.at.C3Els[2].a"&"t.at.C3Els[2].b"&"t.at.C3Els[2].c")->"t.at.C3Els[2]._y"+
|
||||||
|
"t.at.C3Els[2]._y"->"t.at.C3Els[2].y"-
|
||||||
|
~("t.at.C3Els[2]._y")->"t.at.C3Els[2].y"+
|
||||||
|
= "t.at.tmp[15]" "t.at.C2Els[6].a"
|
||||||
|
= "t.at.tmp[15]" "t.at.C2Els[0].y"
|
||||||
|
= "t.at.tmp[16]" "t.at.C2Els[6].b"
|
||||||
|
= "t.at.tmp[16]" "t.at.C2Els[1].y"
|
||||||
|
= "t.at.tmp[17]" "t.at.C2Els[7].a"
|
||||||
|
= "t.at.tmp[17]" "t.at.C2Els[2].y"
|
||||||
|
= "t.at.tmp[18]" "t.at.C2Els[7].b"
|
||||||
|
= "t.at.tmp[18]" "t.at.C2Els[3].y"
|
||||||
|
= "t.at.tmp[19]" "t.at.C3Els[1].a"
|
||||||
|
= "t.at.tmp[19]" "t.at.C2Els[4].y"
|
||||||
|
= "t.at.tmp[20]" "t.at.C3Els[1].b"
|
||||||
|
= "t.at.tmp[20]" "t.at.C2Els[5].y"
|
||||||
|
= "t.at.tmp[21]" "t.at.C3Els[1].c"
|
||||||
|
= "t.at.tmp[21]" "t.at.C3Els[0].y"
|
||||||
|
= "t.at.tmp[22]" "t.at.C3Els[2].a"
|
||||||
|
= "t.at.tmp[22]" "t.at.C2Els[6].y"
|
||||||
|
= "t.at.tmp[23]" "t.at.C3Els[2].b"
|
||||||
|
= "t.at.tmp[23]" "t.at.C2Els[7].y"
|
||||||
|
= "t.at.tmp[24]" "t.at.C3Els[2].c"
|
||||||
|
= "t.at.tmp[24]" "t.at.C3Els[1].y"
|
||||||
|
= "t.at.supply.vdd" "t.at.C3Els[2].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C3Els[1].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C3Els[0].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[7].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[6].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[5].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[4].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[3].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[2].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[1].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[0].vdd"
|
||||||
|
= "t.at.supply.vss" "t.at.C3Els[2].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C3Els[1].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C3Els[0].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[7].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[6].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[5].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[4].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[3].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[2].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[1].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[0].vss"
|
||||||
|
= "t.at.in[0]" "t.at.C2Els[0].a"
|
||||||
|
= "t.at.in[0]" "t.at.tmp[0]"
|
||||||
|
= "t.at.in[1]" "t.at.C2Els[0].b"
|
||||||
|
= "t.at.in[1]" "t.at.tmp[1]"
|
||||||
|
= "t.at.in[2]" "t.at.C2Els[1].a"
|
||||||
|
= "t.at.in[2]" "t.at.tmp[2]"
|
||||||
|
= "t.at.in[3]" "t.at.C2Els[1].b"
|
||||||
|
= "t.at.in[3]" "t.at.tmp[3]"
|
||||||
|
= "t.at.in[4]" "t.at.C2Els[2].a"
|
||||||
|
= "t.at.in[4]" "t.at.tmp[4]"
|
||||||
|
= "t.at.in[5]" "t.at.C2Els[2].b"
|
||||||
|
= "t.at.in[5]" "t.at.tmp[5]"
|
||||||
|
= "t.at.in[6]" "t.at.C2Els[3].a"
|
||||||
|
= "t.at.in[6]" "t.at.tmp[6]"
|
||||||
|
= "t.at.in[7]" "t.at.C2Els[3].b"
|
||||||
|
= "t.at.in[7]" "t.at.tmp[7]"
|
||||||
|
= "t.at.in[8]" "t.at.C2Els[4].a"
|
||||||
|
= "t.at.in[8]" "t.at.tmp[8]"
|
||||||
|
= "t.at.in[9]" "t.at.C2Els[4].b"
|
||||||
|
= "t.at.in[9]" "t.at.tmp[9]"
|
||||||
|
= "t.at.in[10]" "t.at.C2Els[5].a"
|
||||||
|
= "t.at.in[10]" "t.at.tmp[10]"
|
||||||
|
= "t.at.in[11]" "t.at.C2Els[5].b"
|
||||||
|
= "t.at.in[11]" "t.at.tmp[11]"
|
||||||
|
= "t.at.in[12]" "t.at.C3Els[0].a"
|
||||||
|
= "t.at.in[12]" "t.at.tmp[12]"
|
||||||
|
= "t.at.in[13]" "t.at.C3Els[0].b"
|
||||||
|
= "t.at.in[13]" "t.at.tmp[13]"
|
||||||
|
= "t.at.in[14]" "t.at.C3Els[0].c"
|
||||||
|
= "t.at.in[14]" "t.at.tmp[14]"
|
||||||
|
= "t.at.out" "t.at.C3Els[2].y"
|
||||||
|
= "t.at.out" "t.at.tmp[25]"
|
||||||
|
= "Vdd" "t.at.supply.vdd"
|
||||||
|
= "GND" "t.at.supply.vss"
|
||||||
|
= "t.out" "t.at.out"
|
||||||
|
= "t.in[0]" "t.at.in[0]"
|
||||||
|
= "t.in[1]" "t.at.in[1]"
|
||||||
|
= "t.in[2]" "t.at.in[2]"
|
||||||
|
= "t.in[3]" "t.at.in[3]"
|
||||||
|
= "t.in[4]" "t.at.in[4]"
|
||||||
|
= "t.in[5]" "t.at.in[5]"
|
||||||
|
= "t.in[6]" "t.at.in[6]"
|
||||||
|
= "t.in[7]" "t.at.in[7]"
|
||||||
|
= "t.in[8]" "t.at.in[8]"
|
||||||
|
= "t.in[9]" "t.at.in[9]"
|
||||||
|
= "t.in[10]" "t.at.in[10]"
|
||||||
|
= "t.in[11]" "t.at.in[11]"
|
||||||
|
= "t.in[12]" "t.at.in[12]"
|
||||||
|
= "t.in[13]" "t.at.in[13]"
|
||||||
|
= "t.in[14]" "t.at.in[14]"
|
41
test/unit_tests/andtree_15/test.act
Normal file
41
test/unit_tests/andtree_15/test.act
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* This file is part of ACT dataflow neuro library.
|
||||||
|
* It's the testing facility for cell_lib_std.act
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
|
*
|
||||||
|
* You may redistribute and modify this documentation and make products
|
||||||
|
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
|
||||||
|
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
|
||||||
|
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
|
||||||
|
* for applicable conditions.
|
||||||
|
*
|
||||||
|
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
|
||||||
|
*
|
||||||
|
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
|
||||||
|
* these sources, You must maintain the Source Location visible in its
|
||||||
|
* documentation.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
import "../../dataflow_neuro/treegates.act";
|
||||||
|
import globals;
|
||||||
|
|
||||||
|
open tmpl::dataflow_neuro;
|
||||||
|
|
||||||
|
defproc andtree_15 (bool? in[15]; bool! out){
|
||||||
|
andtree<15> at(.in=in, .out=out);
|
||||||
|
at.supply.vss = GND;
|
||||||
|
at.supply.vdd = Vdd;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
andtree_15 t;
|
110
test/unit_tests/andtree_15/test.prsim
Normal file
110
test/unit_tests/andtree_15/test.prsim
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
watchall
|
||||||
|
|
||||||
|
system "echo '0'"
|
||||||
|
|
||||||
|
set t.in[0] 0
|
||||||
|
set t.in[1] 0
|
||||||
|
set t.in[2] 0
|
||||||
|
set t.in[3] 0
|
||||||
|
set t.in[4] 0
|
||||||
|
set t.in[5] 0
|
||||||
|
set t.in[6] 0
|
||||||
|
set t.in[7] 0
|
||||||
|
set t.in[8] 0
|
||||||
|
set t.in[9] 0
|
||||||
|
set t.in[10] 0
|
||||||
|
set t.in[11] 0
|
||||||
|
set t.in[12] 0
|
||||||
|
set t.in[13] 0
|
||||||
|
set t.in[14] 0
|
||||||
|
|
||||||
|
system "echo '1'"
|
||||||
|
|
||||||
|
cycle
|
||||||
|
mode run
|
||||||
|
|
||||||
|
assert t.out 0
|
||||||
|
|
||||||
|
system "echo '[] setting some bits high'"
|
||||||
|
set t.in[0] 1
|
||||||
|
set t.in[1] 1
|
||||||
|
set t.in[2] 1
|
||||||
|
set t.in[3] 1
|
||||||
|
set t.in[4] 1
|
||||||
|
set t.in[5] 1
|
||||||
|
set t.in[6] 1
|
||||||
|
set t.in[7] 1
|
||||||
|
set t.in[8] 1
|
||||||
|
set t.in[9] 1
|
||||||
|
set t.in[10] 1
|
||||||
|
set t.in[11] 1
|
||||||
|
set t.in[12] 0
|
||||||
|
set t.in[13] 0
|
||||||
|
set t.in[14] 0
|
||||||
|
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert t.out 0
|
||||||
|
|
||||||
|
system "echo '[] setting all bits high'"
|
||||||
|
set t.in[0] 1
|
||||||
|
set t.in[1] 1
|
||||||
|
set t.in[2] 1
|
||||||
|
set t.in[3] 1
|
||||||
|
set t.in[4] 1
|
||||||
|
set t.in[5] 1
|
||||||
|
set t.in[6] 1
|
||||||
|
set t.in[7] 1
|
||||||
|
set t.in[8] 1
|
||||||
|
set t.in[9] 1
|
||||||
|
set t.in[10] 1
|
||||||
|
set t.in[11] 1
|
||||||
|
set t.in[12] 1
|
||||||
|
set t.in[13] 1
|
||||||
|
set t.in[14] 1
|
||||||
|
|
||||||
|
cycle
|
||||||
|
assert t.out 1
|
||||||
|
|
||||||
|
|
||||||
|
system "echo '[] setting some low'"
|
||||||
|
set t.in[0] 1
|
||||||
|
set t.in[1] 1
|
||||||
|
set t.in[2] 1
|
||||||
|
set t.in[3] 1
|
||||||
|
set t.in[4] 1
|
||||||
|
set t.in[5] 1
|
||||||
|
set t.in[6] 1
|
||||||
|
set t.in[7] 1
|
||||||
|
set t.in[8] 1
|
||||||
|
set t.in[9] 1
|
||||||
|
set t.in[10] 0
|
||||||
|
set t.in[11] 1
|
||||||
|
set t.in[12] 1
|
||||||
|
set t.in[13] 1
|
||||||
|
set t.in[14] 1
|
||||||
|
|
||||||
|
cycle
|
||||||
|
assert t.out 0
|
||||||
|
|
||||||
|
|
||||||
|
system "echo '[] setting all low'"
|
||||||
|
set t.in[0] 0
|
||||||
|
set t.in[1] 0
|
||||||
|
set t.in[2] 0
|
||||||
|
set t.in[3] 0
|
||||||
|
set t.in[4] 0
|
||||||
|
set t.in[5] 0
|
||||||
|
set t.in[6] 0
|
||||||
|
set t.in[7] 0
|
||||||
|
set t.in[8] 0
|
||||||
|
set t.in[9] 0
|
||||||
|
set t.in[10] 0
|
||||||
|
set t.in[11] 0
|
||||||
|
set t.in[12] 0
|
||||||
|
set t.in[13] 0
|
||||||
|
set t.in[14] 0
|
||||||
|
|
||||||
|
cycle
|
||||||
|
assert t.out 0
|
||||||
|
|
40
test/unit_tests/andtree_5/run/prsim.out
Normal file
40
test/unit_tests/andtree_5/run/prsim.out
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
t.in[0] t.in[2] t.at.tmp[5] t.in[3] t.at.C2Els[0]._y t.in[4] t.at.C3Els[0]._y t.at.tmp[6] t.in[1] t.out t.at.C2Els[1]._y
|
||||||
|
0
|
||||||
|
1
|
||||||
|
0 t.in[0] : 0
|
||||||
|
0 t.in[4] : 0
|
||||||
|
0 t.in[2] : 0
|
||||||
|
0 t.in[1] : 0
|
||||||
|
0 t.in[3] : 0
|
||||||
|
1 t.at.C2Els[0]._y : 1 [by t.in[0]:=0]
|
||||||
|
7092 t.at.C3Els[0]._y : 1 [by t.in[4]:=0]
|
||||||
|
7094 t.at.tmp[6] : 0 [by t.at.C3Els[0]._y:=1]
|
||||||
|
10468 t.at.tmp[5] : 0 [by t.at.C2Els[0]._y:=1]
|
||||||
|
11847 t.at.C2Els[1]._y : 1 [by t.at.tmp[6]:=0]
|
||||||
|
12984 t.out : 0 [by t.at.C2Els[1]._y:=1]
|
||||||
|
[] setting some bits high
|
||||||
|
12984 t.in[0] : 1
|
||||||
|
12984 t.in[2] : 1
|
||||||
|
12984 t.in[1] : 1
|
||||||
|
13098 t.at.C2Els[0]._y : 0 [by t.in[1]:=1]
|
||||||
|
78464 t.at.tmp[5] : 1 [by t.at.C2Els[0]._y:=0]
|
||||||
|
[] setting all bits high
|
||||||
|
78464 t.in[3] : 1
|
||||||
|
78464 t.in[4] : 1
|
||||||
|
80190 t.at.C3Els[0]._y : 0 [by t.in[4]:=1]
|
||||||
|
80229 t.at.tmp[6] : 1 [by t.at.C3Els[0]._y:=0]
|
||||||
|
80244 t.at.C2Els[1]._y : 0 [by t.at.tmp[6]:=1]
|
||||||
|
80735 t.out : 1 [by t.at.C2Els[1]._y:=0]
|
||||||
|
[] setting some low
|
||||||
|
80735 t.in[0] : 0
|
||||||
|
80735 t.in[1] : 0
|
||||||
|
80748 t.at.C2Els[0]._y : 1 [by t.in[0]:=0]
|
||||||
|
80788 t.at.tmp[5] : 0 [by t.at.C2Els[0]._y:=1]
|
||||||
|
81203 t.at.C2Els[1]._y : 1 [by t.at.tmp[5]:=0]
|
||||||
|
81223 t.out : 0 [by t.at.C2Els[1]._y:=1]
|
||||||
|
[] setting all low
|
||||||
|
81223 t.in[2] : 0
|
||||||
|
81223 t.in[4] : 0
|
||||||
|
81223 t.in[3] : 0
|
||||||
|
87284 t.at.C3Els[0]._y : 1 [by t.in[2]:=0]
|
||||||
|
87331 t.at.tmp[6] : 0 [by t.at.C3Els[0]._y:=1]
|
BIN
test/unit_tests/andtree_5/run/prsim.pdf
Normal file
BIN
test/unit_tests/andtree_5/run/prsim.pdf
Normal file
Binary file not shown.
45
test/unit_tests/andtree_5/run/test.prs
Normal file
45
test/unit_tests/andtree_5/run/test.prs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
= "GND" "GND"
|
||||||
|
= "Vdd" "Vdd"
|
||||||
|
= "Reset" "Reset"
|
||||||
|
"t.at.C2Els[0].a"&"t.at.C2Els[0].b"->"t.at.C2Els[0]._y"-
|
||||||
|
~("t.at.C2Els[0].a"&"t.at.C2Els[0].b")->"t.at.C2Els[0]._y"+
|
||||||
|
"t.at.C2Els[0]._y"->"t.at.C2Els[0].y"-
|
||||||
|
~("t.at.C2Els[0]._y")->"t.at.C2Els[0].y"+
|
||||||
|
"t.at.C2Els[1].a"&"t.at.C2Els[1].b"->"t.at.C2Els[1]._y"-
|
||||||
|
~("t.at.C2Els[1].a"&"t.at.C2Els[1].b")->"t.at.C2Els[1]._y"+
|
||||||
|
"t.at.C2Els[1]._y"->"t.at.C2Els[1].y"-
|
||||||
|
~("t.at.C2Els[1]._y")->"t.at.C2Els[1].y"+
|
||||||
|
"t.at.C3Els[0].a"&"t.at.C3Els[0].b"&"t.at.C3Els[0].c"->"t.at.C3Els[0]._y"-
|
||||||
|
~("t.at.C3Els[0].a"&"t.at.C3Els[0].b"&"t.at.C3Els[0].c")->"t.at.C3Els[0]._y"+
|
||||||
|
"t.at.C3Els[0]._y"->"t.at.C3Els[0].y"-
|
||||||
|
~("t.at.C3Els[0]._y")->"t.at.C3Els[0].y"+
|
||||||
|
= "t.at.tmp[5]" "t.at.C2Els[1].a"
|
||||||
|
= "t.at.tmp[5]" "t.at.C2Els[0].y"
|
||||||
|
= "t.at.tmp[6]" "t.at.C2Els[1].b"
|
||||||
|
= "t.at.tmp[6]" "t.at.C3Els[0].y"
|
||||||
|
= "t.at.supply.vdd" "t.at.C3Els[0].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[1].vdd"
|
||||||
|
= "t.at.supply.vdd" "t.at.C2Els[0].vdd"
|
||||||
|
= "t.at.supply.vss" "t.at.C3Els[0].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[1].vss"
|
||||||
|
= "t.at.supply.vss" "t.at.C2Els[0].vss"
|
||||||
|
= "t.at.in[0]" "t.at.C2Els[0].a"
|
||||||
|
= "t.at.in[0]" "t.at.tmp[0]"
|
||||||
|
= "t.at.in[1]" "t.at.C2Els[0].b"
|
||||||
|
= "t.at.in[1]" "t.at.tmp[1]"
|
||||||
|
= "t.at.in[2]" "t.at.C3Els[0].a"
|
||||||
|
= "t.at.in[2]" "t.at.tmp[2]"
|
||||||
|
= "t.at.in[3]" "t.at.C3Els[0].b"
|
||||||
|
= "t.at.in[3]" "t.at.tmp[3]"
|
||||||
|
= "t.at.in[4]" "t.at.C3Els[0].c"
|
||||||
|
= "t.at.in[4]" "t.at.tmp[4]"
|
||||||
|
= "t.at.out" "t.at.C2Els[1].y"
|
||||||
|
= "t.at.out" "t.at.tmp[7]"
|
||||||
|
= "Vdd" "t.at.supply.vdd"
|
||||||
|
= "GND" "t.at.supply.vss"
|
||||||
|
= "t.out" "t.at.out"
|
||||||
|
= "t.in[0]" "t.at.in[0]"
|
||||||
|
= "t.in[1]" "t.at.in[1]"
|
||||||
|
= "t.in[2]" "t.at.in[2]"
|
||||||
|
= "t.in[3]" "t.at.in[3]"
|
||||||
|
= "t.in[4]" "t.at.in[4]"
|
41
test/unit_tests/andtree_5/test.act
Normal file
41
test/unit_tests/andtree_5/test.act
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* This file is part of ACT dataflow neuro library.
|
||||||
|
* It's the testing facility for cell_lib_std.act
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
|
*
|
||||||
|
* You may redistribute and modify this documentation and make products
|
||||||
|
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
|
||||||
|
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
|
||||||
|
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
|
||||||
|
* for applicable conditions.
|
||||||
|
*
|
||||||
|
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
|
||||||
|
*
|
||||||
|
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
|
||||||
|
* these sources, You must maintain the Source Location visible in its
|
||||||
|
* documentation.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
import "../../dataflow_neuro/treegates.act";
|
||||||
|
import globals;
|
||||||
|
|
||||||
|
open tmpl::dataflow_neuro;
|
||||||
|
|
||||||
|
defproc andtree_5 (bool? in[5]; bool! out){
|
||||||
|
andtree<5> at(.in=in, .out=out);
|
||||||
|
at.supply.vss = GND;
|
||||||
|
at.supply.vdd = Vdd;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
andtree_5 t;
|
50
test/unit_tests/andtree_5/test.prsim
Normal file
50
test/unit_tests/andtree_5/test.prsim
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
watchall
|
||||||
|
|
||||||
|
system "echo '0'"
|
||||||
|
|
||||||
|
set t.in[0] 0
|
||||||
|
set t.in[1] 0
|
||||||
|
set t.in[2] 0
|
||||||
|
set t.in[3] 0
|
||||||
|
set t.in[4] 0
|
||||||
|
|
||||||
|
system "echo '1'"
|
||||||
|
|
||||||
|
cycle
|
||||||
|
mode run
|
||||||
|
|
||||||
|
assert t.out 0
|
||||||
|
|
||||||
|
system "echo '[] setting some bits high'"
|
||||||
|
set t.in[0] 1
|
||||||
|
set t.in[1] 1
|
||||||
|
set t.in[2] 1
|
||||||
|
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert t.out 0
|
||||||
|
|
||||||
|
system "echo '[] setting all bits high'"
|
||||||
|
set t.in[3] 1
|
||||||
|
set t.in[4] 1
|
||||||
|
|
||||||
|
cycle
|
||||||
|
assert t.out 1
|
||||||
|
|
||||||
|
|
||||||
|
system "echo '[] setting some low'"
|
||||||
|
set t.in[0] 0
|
||||||
|
set t.in[1] 0
|
||||||
|
|
||||||
|
cycle
|
||||||
|
assert t.out 0
|
||||||
|
|
||||||
|
|
||||||
|
system "echo '[] setting all low'"
|
||||||
|
set t.in[2] 0
|
||||||
|
set t.in[3] 0
|
||||||
|
set t.in[4] 0
|
||||||
|
|
||||||
|
cycle
|
||||||
|
assert t.out 0
|
||||||
|
|
39
test/unit_tests/arbiter/run/prsim.out
Normal file
39
test/unit_tests/arbiter/run/prsim.out
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
a._v a.a a.u a.v a._u a.b
|
||||||
|
reset done
|
||||||
|
0 a.a : 0
|
||||||
|
0 a.b : 0
|
||||||
|
1 a._u : 1 [by a.a:=0]
|
||||||
|
7092 a._v : 1 [by a.b:=0]
|
||||||
|
7094 a.v : 0 [by a._v:=1]
|
||||||
|
10468 a.u : 0 [by a._u:=1]
|
||||||
|
|
||||||
|
step 1.1 finished
|
||||||
|
10468 a.a : 1
|
||||||
|
10468 a.b : 1
|
||||||
|
15221 a._u : 0 [by a.a:=1]
|
||||||
|
15335 a.u : 1 [by a._u:=0]
|
||||||
|
|
||||||
|
step 1.2 finished
|
||||||
|
15335 a.a : 0
|
||||||
|
15335 a.b : 0
|
||||||
|
80701 a._u : 1 [by a.a:=0]
|
||||||
|
82427 a.u : 0 [by a._u:=1]
|
||||||
|
|
||||||
|
step 2.1 finished
|
||||||
|
82427 a.a : 1
|
||||||
|
82427 a.b : 1
|
||||||
|
82466 a._u : 0 [by a.a:=1]
|
||||||
|
82957 a.u : 1 [by a._u:=0]
|
||||||
|
|
||||||
|
step 2.2 finished
|
||||||
|
82957 a.a : 0
|
||||||
|
82957 a.b : 0
|
||||||
|
82970 a._u : 1 [by a.a:=0]
|
||||||
|
83010 a.u : 0 [by a._u:=1]
|
||||||
|
|
||||||
|
step 3.1 finished
|
||||||
|
83010 a.b : 1
|
||||||
|
83425 a._v : 0 [by a.b:=1]
|
||||||
|
83445 a.v : 1 [by a._v:=0]
|
||||||
|
|
||||||
|
step 3.2 finished
|
BIN
test/unit_tests/arbiter/run/prsim.pdf
Normal file
BIN
test/unit_tests/arbiter/run/prsim.pdf
Normal file
Binary file not shown.
18
test/unit_tests/arbiter/test.act
Normal file
18
test/unit_tests/arbiter/test.act
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
defproc arbiter (bool a, b, u, v)
|
||||||
|
{
|
||||||
|
bool _u, _v;
|
||||||
|
prs {
|
||||||
|
[keeper=0] a & _v -> _u-
|
||||||
|
[keeper=0] ~a | ~_v -> _u+
|
||||||
|
[keeper=0] b & _u -> _v-
|
||||||
|
[keeper=0] ~b | ~_u -> _v+
|
||||||
|
[keeper=0] _u => u-
|
||||||
|
[keeper=0] _v => v-
|
||||||
|
}
|
||||||
|
spec {
|
||||||
|
mk_excllo(_u, _v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
arbiter a;
|
39
test/unit_tests/arbiter/test.prsim
Normal file
39
test/unit_tests/arbiter/test.prsim
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
watchall
|
||||||
|
cycle
|
||||||
|
system "echo 'reset done'"
|
||||||
|
set a.a 0
|
||||||
|
set a.b 0
|
||||||
|
advance 1000000
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
system "echo 'step 1.1 finished'"
|
||||||
|
set a.a 1
|
||||||
|
set a.b 1
|
||||||
|
advance 1000000
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
system "echo 'step 1.2 finished'"
|
||||||
|
set a.a 0
|
||||||
|
set a.b 0
|
||||||
|
advance 1000000
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
system "echo 'step 2.1 finished'"
|
||||||
|
set a.a 1
|
||||||
|
set a.b 1
|
||||||
|
advance 1000000
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
system "echo 'step 2.2 finished'"
|
||||||
|
set a.a 0
|
||||||
|
set a.b 0
|
||||||
|
advance 1000000
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
system "echo 'step 3.1 finished'"
|
||||||
|
set a.a 0
|
||||||
|
set a.b 1
|
||||||
|
advance 1000000
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
system "echo 'step 3.2 finished'"
|
173
test/unit_tests/buf_s_5/run/prsim.out
Normal file
173
test/unit_tests/buf_s_5/run/prsim.out
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
b.b.vc.tmp[1] b.b.f_buf_func[3].n1 b.b.vc.C2Els[1]._y b.b._out_a_BX_f[0] b.b.t_buf_func[1].n1 b.b.vc.OR2_tf[1]._y b.b.vc.tmp[0] b.in.v b.b.f_buf_func[1].n1 b.b.t_buf_func[3].n1 b.b._en_X_f[0] b.b._en_X_t[0] b.b._out_a_BX_t[0] b.b._in_vX[0] 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._out_a_B b.b.t_buf_func[2].n1 b.b.vc.OR2_tf[0]._y b.b.t_buf_func[0].n1 b.b.vc.tmp[2] b.b.in_v_bufN.buf2._y b.b.f_buf_func[4].n1 b.b.vc.OR2_tf[2]._y b.b.en_buf_f.buf2._y b.b.vc.tmp[5] b.b.en_buf_t.buf2._y b.b._en b.b.vc.tmp[4] b.b.vc.C3Els[0]._y b.b.vc.OR2_tf[4]._y b.out.a b.b._in_v b.b.vc.tmp[6] b.b.vc.tmp[3] b.b.out_a_B_buf_t.buf2._y b.b.in_v_buf4._y b.b.vc.C2Els[0]._y b.b.out_a_B_buf_f.buf2._y b.b.vc.OR2_tf[3]._y
|
||||||
|
84120 b.b.f_buf_func[0].n1 : 0
|
||||||
|
84120 b.b.f_buf_func[4].y : 1
|
||||||
|
84120 b.b.t_buf_func[4].y : 1
|
||||||
|
84120 b.b.f_buf_func[1].n1 : 0
|
||||||
|
84120 b.b.f_buf_func[3].n1 : 0
|
||||||
|
84120 b.b.f_buf_func[3].y : 1
|
||||||
|
84120 b.b.t_buf_func[3].y : 1
|
||||||
|
84120 b.b.f_buf_func[0].y : 1
|
||||||
|
84120 b.b.t_buf_func[0].y : 1
|
||||||
|
84120 b.b.t_buf_func[2].n1 : 0
|
||||||
|
84120 Reset : 0
|
||||||
|
84120 b.b.f_buf_func[2].y : 1
|
||||||
|
84120 b.out.v : 0
|
||||||
|
84120 b.b.t_buf_func[0].n1 : 0
|
||||||
|
84120 b.b.f_buf_func[2].n1 : 0
|
||||||
|
84120 b.out.a : 0
|
||||||
|
84120 b.b.t_buf_func[4].n1 : 0
|
||||||
|
84120 b.b.t_buf_func[1].n1 : 0
|
||||||
|
84120 b.b.f_buf_func[4].n1 : 0
|
||||||
|
84120 b.b.t_buf_func[2].y : 1
|
||||||
|
84120 b.b.t_buf_func[3].n1 : 0
|
||||||
|
84120 b.b.f_buf_func[1].y : 1
|
||||||
|
84120 b.b.t_buf_func[1].y : 1
|
||||||
|
84121 b.b.f_buf_func[2].y : 0
|
||||||
|
84121 b.b._en : 1 [by b.out.v:=0]
|
||||||
|
84123 b.b.vc.OR2_tf[1]._y : 1 [by b.b.t_buf_func[1].n1:=0]
|
||||||
|
84141 b.b.vc.tmp[1] : 0 [by b.b.vc.OR2_tf[1]._y:=1]
|
||||||
|
84402 b.b.vc.OR2_tf[2]._y : 1 [by b.b.f_buf_func[2].n1:=0]
|
||||||
|
84542 b.b.t_buf_func[0].y : 0
|
||||||
|
84671 b.b.t_buf_func[2].y : 0
|
||||||
|
84888 b.b._out_a_B : 1 [by b.out.a:=0]
|
||||||
|
85074 b.b.f_buf_func[1].y : 0
|
||||||
|
85103 b.b.en_buf_t.buf2._y : 0 [by b.b._en:=1]
|
||||||
|
85191 b.b.vc.OR2_tf[3]._y : 1 [by b.b.t_buf_func[3].n1:=0]
|
||||||
|
85201 b.b.t_buf_func[1].y : 0
|
||||||
|
88415 b.b.vc.tmp[2] : 0 [by b.b.vc.OR2_tf[2]._y:=1]
|
||||||
|
88891 b.b.out_a_B_buf_t.buf2._y : 0 [by b.b._out_a_B:=1]
|
||||||
|
89393 b.b._out_a_BX_f[0] : 1 [by b.b.out_a_B_buf_t.buf2._y:=0]
|
||||||
|
89951 b.b.vc.tmp[3] : 0 [by b.b.vc.OR2_tf[3]._y:=1]
|
||||||
|
97969 b.b.f_buf_func[3].y : 0
|
||||||
|
98463 b.b.f_buf_func[0].y : 0
|
||||||
|
104325 b.b.vc.OR2_tf[0]._y : 1 [by b.b.t_buf_func[0].n1:=0]
|
||||||
|
104528 b.b.vc.tmp[0] : 0 [by b.b.vc.OR2_tf[0]._y:=1]
|
||||||
|
106382 b.b.vc.C2Els[0]._y : 1 [by b.b.vc.tmp[0]:=0]
|
||||||
|
106521 b.b.vc.tmp[5] : 0 [by b.b.vc.C2Els[0]._y:=1]
|
||||||
|
106561 b.b.vc.OR2_tf[4]._y : 1 [by b.b.f_buf_func[4].n1:=0]
|
||||||
|
106687 b.b._en_X_t[0] : 1 [by b.b.en_buf_t.buf2._y:=0]
|
||||||
|
108932 b.b.t_buf_func[3].y : 0
|
||||||
|
113900 b.b.t_buf_func[4].y : 0
|
||||||
|
129789 b.b.out_a_B_buf_f.buf2._y : 0 [by b.b._out_a_B:=1]
|
||||||
|
129858 b.b._out_a_BX_t[0] : 1 [by b.b.out_a_B_buf_f.buf2._y:=0]
|
||||||
|
132834 b._reset_B : 1 [by Reset:=0]
|
||||||
|
132845 b.b.reset_buf._y : 0 [by b._reset_B:=1]
|
||||||
|
135773 b.b.f_buf_func[4].y : 0
|
||||||
|
138591 b.b.en_buf_f.buf2._y : 0 [by b.b._en:=1]
|
||||||
|
138795 b.b._en_X_f[0] : 1 [by b.b.en_buf_f.buf2._y:=0]
|
||||||
|
142907 b.b.vc.tmp[4] : 0 [by b.b.vc.OR2_tf[4]._y:=1]
|
||||||
|
142922 b.b.vc.C3Els[0]._y : 1 [by b.b.vc.tmp[4]:=0]
|
||||||
|
142923 b.b.vc.tmp[6] : 0 [by b.b.vc.C3Els[0]._y:=1]
|
||||||
|
142960 b.b.vc.C2Els[1]._y : 1 [by b.b.vc.tmp[6]:=0]
|
||||||
|
143699 b.b._in_v : 0 [by b.b.vc.C2Els[1]._y:=1]
|
||||||
|
143811 b.b.in_v_buf4._y : 1 [by b.b._in_v:=0]
|
||||||
|
184631 b.b._reset_BX : 1 [by b.b.reset_buf._y:=0]
|
||||||
|
184671 b.b.reset_bufarray.buf2._y : 0 [by b.b._reset_BX:=1]
|
||||||
|
184928 b.b._reset_BXX[0] : 1 [by b.b.reset_bufarray.buf2._y:=0]
|
||||||
|
191323 b.in.v : 0 [by b.b.in_v_buf4._y:=1]
|
||||||
|
191410 b.b.in_v_bufN.buf2._y : 1 [by b.in.v:=0]
|
||||||
|
191704 b.b._in_vX[0] : 0 [by b.b.in_v_bufN.buf2._y:=1]
|
||||||
|
[] set Reset 1
|
||||||
|
191704 Reset : 1
|
||||||
|
191705 b._reset_B : 0 [by Reset:=1]
|
||||||
|
193511 b.b.reset_buf._y : 1 [by b._reset_B:=0]
|
||||||
|
195518 b.b._reset_BX : 0 [by b.b.reset_buf._y:=1]
|
||||||
|
196727 b.b.reset_bufarray.buf2._y : 1 [by b.b._reset_BX:=0]
|
||||||
|
197317 b.b._reset_BXX[0] : 0 [by b.b.reset_bufarray.buf2._y:=1]
|
||||||
|
[] set Reset 0
|
||||||
|
197317 Reset : 0
|
||||||
|
197495 b._reset_B : 1 [by Reset:=0]
|
||||||
|
198298 b.b.reset_buf._y : 0 [by b._reset_B:=1]
|
||||||
|
198462 b.b._reset_BX : 1 [by b.b.reset_buf._y:=0]
|
||||||
|
200657 b.b.reset_bufarray.buf2._y : 0 [by b.b._reset_BX:=1]
|
||||||
|
200679 b.b._reset_BXX[0] : 1 [by b.b.reset_bufarray.buf2._y:=0]
|
||||||
|
[] Reset finished, setting some inputs.
|
||||||
|
|
||||||
|
200679 b.b.t_buf_func[0].n1 : 1
|
||||||
|
200679 b.b.f_buf_func[3].n1 : 1
|
||||||
|
200679 b.b.f_buf_func[2].n1 : 1
|
||||||
|
200679 b.b.t_buf_func[1].n1 : 1
|
||||||
|
200812 b.b.vc.OR2_tf[2]._y : 0 [by b.b.f_buf_func[2].n1:=1]
|
||||||
|
201171 b.b.vc.tmp[2] : 1 [by b.b.vc.OR2_tf[2]._y:=0]
|
||||||
|
201526 b.b.vc.OR2_tf[0]._y : 0 [by b.b.t_buf_func[0].n1:=1]
|
||||||
|
215642 b.b.vc.tmp[0] : 1 [by b.b.vc.OR2_tf[0]._y:=0]
|
||||||
|
216341 b.b.vc.OR2_tf[1]._y : 0 [by b.b.t_buf_func[1].n1:=1]
|
||||||
|
216562 b.b.vc.tmp[1] : 1 [by b.b.vc.OR2_tf[1]._y:=0]
|
||||||
|
216569 b.b.vc.C2Els[0]._y : 0 [by b.b.vc.tmp[1]:=1]
|
||||||
|
216599 b.b.vc.tmp[5] : 1 [by b.b.vc.C2Els[0]._y:=0]
|
||||||
|
230807 b.b.vc.OR2_tf[3]._y : 0 [by b.b.f_buf_func[3].n1:=1]
|
||||||
|
237520 b.b.vc.tmp[3] : 1 [by b.b.vc.OR2_tf[3]._y:=0]
|
||||||
|
[] Setting final input
|
||||||
|
237520 b.b.t_buf_func[4].n1 : 1
|
||||||
|
294981 b.b.vc.OR2_tf[4]._y : 0 [by b.b.t_buf_func[4].n1:=1]
|
||||||
|
295072 b.b.vc.tmp[4] : 1 [by b.b.vc.OR2_tf[4]._y:=0]
|
||||||
|
297261 b.b.vc.C3Els[0]._y : 0 [by b.b.vc.tmp[4]:=1]
|
||||||
|
297268 b.b.vc.tmp[6] : 1 [by b.b.vc.C3Els[0]._y:=0]
|
||||||
|
300055 b.b.vc.C2Els[1]._y : 0 [by b.b.vc.tmp[6]:=1]
|
||||||
|
300161 b.b._in_v : 1 [by b.b.vc.C2Els[1]._y:=0]
|
||||||
|
300239 b.b.in_v_buf4._y : 0 [by b.b._in_v:=1]
|
||||||
|
300514 b.in.v : 1 [by b.b.in_v_buf4._y:=0]
|
||||||
|
319510 b.b.in_v_bufN.buf2._y : 0 [by b.in.v:=1]
|
||||||
|
319965 b.b._in_vX[0] : 1 [by b.b.in_v_bufN.buf2._y:=0]
|
||||||
|
319977 b.b.t_buf_func[0]._y : 0 [by b.b._in_vX[0]:=1]
|
||||||
|
319977 b.b.t_buf_func[4]._y : 0 [by b.b._in_vX[0]:=1]
|
||||||
|
320369 b.b.t_buf_func[1]._y : 0 [by b.b._in_vX[0]:=1]
|
||||||
|
320371 b.b.t_buf_func[1].y : 1 [by b.b.t_buf_func[1]._y:=0]
|
||||||
|
322876 b.b.t_buf_func[0].y : 1 [by b.b.t_buf_func[0]._y:=0]
|
||||||
|
324241 b.b.f_buf_func[3]._y : 0 [by b.b._in_vX[0]:=1]
|
||||||
|
324272 b.b.t_buf_func[4].y : 1 [by b.b.t_buf_func[4]._y:=0]
|
||||||
|
325881 b.b.f_buf_func[2]._y : 0 [by b.b._in_vX[0]:=1]
|
||||||
|
327130 b.b.f_buf_func[2].y : 1 [by b.b.f_buf_func[2]._y:=0]
|
||||||
|
328776 b.b.f_buf_func[3].y : 1 [by b.b.f_buf_func[3]._y:=0]
|
||||||
|
[] Receiving out val
|
||||||
|
328776 b.out.v : 1
|
||||||
|
332275 b.b.inack_ctl._y : 0 [by b.out.v:=1]
|
||||||
|
332441 b.in.a : 1 [by b.b.inack_ctl._y:=0]
|
||||||
|
332516 b.b._en : 0 [by b.in.a:=1]
|
||||||
|
332654 b.b.en_buf_t.buf2._y : 1 [by b.b._en:=0]
|
||||||
|
332861 b.b.en_buf_f.buf2._y : 1 [by b.b._en:=0]
|
||||||
|
332863 b.b._en_X_f[0] : 0 [by b.b.en_buf_f.buf2._y:=1]
|
||||||
|
337917 b.b._en_X_t[0] : 0 [by b.b.en_buf_t.buf2._y:=1]
|
||||||
|
[] Removing input
|
||||||
|
337917 b.b.t_buf_func[0].n1 : 0
|
||||||
|
337917 b.b.t_buf_func[4].n1 : 0
|
||||||
|
337917 b.b.f_buf_func[2].n1 : 0
|
||||||
|
337917 b.b.t_buf_func[1].n1 : 0
|
||||||
|
337917 b.b.f_buf_func[3].n1 : 0
|
||||||
|
337918 b.b.vc.OR2_tf[4]._y : 1 [by b.b.t_buf_func[4].n1:=0]
|
||||||
|
337928 b.b.vc.OR2_tf[1]._y : 1 [by b.b.t_buf_func[1].n1:=0]
|
||||||
|
337985 b.b.vc.tmp[4] : 0 [by b.b.vc.OR2_tf[4]._y:=1]
|
||||||
|
338287 b.b.vc.OR2_tf[3]._y : 1 [by b.b.f_buf_func[3].n1:=0]
|
||||||
|
338303 b.b.vc.tmp[3] : 0 [by b.b.vc.OR2_tf[3]._y:=1]
|
||||||
|
338465 b.b.vc.OR2_tf[2]._y : 1 [by b.b.f_buf_func[2].n1:=0]
|
||||||
|
340569 b.b.vc.tmp[1] : 0 [by b.b.vc.OR2_tf[1]._y:=1]
|
||||||
|
343027 b.b.vc.tmp[2] : 0 [by b.b.vc.OR2_tf[2]._y:=1]
|
||||||
|
343555 b.b.vc.C3Els[0]._y : 1 [by b.b.vc.tmp[2]:=0]
|
||||||
|
345990 b.b.vc.tmp[6] : 0 [by b.b.vc.C3Els[0]._y:=1]
|
||||||
|
381834 b.b.vc.OR2_tf[0]._y : 1 [by b.b.t_buf_func[0].n1:=0]
|
||||||
|
408714 b.b.vc.tmp[0] : 0 [by b.b.vc.OR2_tf[0]._y:=1]
|
||||||
|
432639 b.b.vc.C2Els[0]._y : 1 [by b.b.vc.tmp[0]:=0]
|
||||||
|
445680 b.b.vc.tmp[5] : 0 [by b.b.vc.C2Els[0]._y:=1]
|
||||||
|
445682 b.b.vc.C2Els[1]._y : 1 [by b.b.vc.tmp[5]:=0]
|
||||||
|
506640 b.b._in_v : 0 [by b.b.vc.C2Els[1]._y:=1]
|
||||||
|
506643 b.b.in_v_buf4._y : 1 [by b.b._in_v:=0]
|
||||||
|
506672 b.in.v : 0 [by b.b.in_v_buf4._y:=1]
|
||||||
|
506989 b.b.in_v_bufN.buf2._y : 1 [by b.in.v:=0]
|
||||||
|
508590 b.b._in_vX[0] : 0 [by b.b.in_v_bufN.buf2._y:=1]
|
||||||
|
[] Receiving out ack
|
||||||
|
508590 b.out.a : 1
|
||||||
|
508743 b.b._out_a_B : 0 [by b.out.a:=1]
|
||||||
|
508787 b.b.out_a_B_buf_t.buf2._y : 1 [by b.b._out_a_B:=0]
|
||||||
|
511504 b.b.out_a_B_buf_f.buf2._y : 1 [by b.b._out_a_B:=0]
|
||||||
|
511505 b.b._out_a_BX_t[0] : 0 [by b.b.out_a_B_buf_f.buf2._y:=1]
|
||||||
|
511506 b.b.t_buf_func[4]._y : 1 [by b.b._out_a_BX_t[0]:=0]
|
||||||
|
511527 b.b.t_buf_func[1]._y : 1 [by b.b._out_a_BX_t[0]:=0]
|
||||||
|
511722 b.b.t_buf_func[0]._y : 1 [by b.b._out_a_BX_t[0]:=0]
|
||||||
|
511881 b.b.t_buf_func[0].y : 0 [by b.b.t_buf_func[0]._y:=1]
|
||||||
|
513087 b.b.t_buf_func[4].y : 0 [by b.b.t_buf_func[4]._y:=1]
|
||||||
|
520872 b.b.t_buf_func[1].y : 0 [by b.b.t_buf_func[1]._y:=1]
|
||||||
|
522470 b.b._out_a_BX_f[0] : 0 [by b.b.out_a_B_buf_t.buf2._y:=1]
|
||||||
|
523757 b.b.f_buf_func[3]._y : 1 [by b.b._out_a_BX_f[0]:=0]
|
||||||
|
525989 b.b.f_buf_func[3].y : 0 [by b.b.f_buf_func[3]._y:=1]
|
||||||
|
542146 b.b.f_buf_func[2]._y : 1 [by b.b._out_a_BX_f[0]:=0]
|
||||||
|
542291 b.b.f_buf_func[2].y : 0 [by b.b.f_buf_func[2]._y:=1]
|
BIN
test/unit_tests/buf_s_5/run/prsim.pdf
Normal file
BIN
test/unit_tests/buf_s_5/run/prsim.pdf
Normal file
Binary file not shown.
646
test/unit_tests/buf_s_5/run/test.prs
Normal file
646
test/unit_tests/buf_s_5/run/test.prs
Normal file
@ -0,0 +1,646 @@
|
|||||||
|
= "GND" "GND"
|
||||||
|
= "Vdd" "Vdd"
|
||||||
|
= "Reset" "Reset"
|
||||||
|
"Reset"->"b._reset_B"-
|
||||||
|
~("Reset")->"b._reset_B"+
|
||||||
|
"b.b.out_a_B_buf_t.buf2.a"->"b.b.out_a_B_buf_t.buf2._y"-
|
||||||
|
~("b.b.out_a_B_buf_t.buf2.a")->"b.b.out_a_B_buf_t.buf2._y"+
|
||||||
|
"b.b.out_a_B_buf_t.buf2._y"->"b.b.out_a_B_buf_t.buf2.y"-
|
||||||
|
~("b.b.out_a_B_buf_t.buf2._y")->"b.b.out_a_B_buf_t.buf2.y"+
|
||||||
|
= "b.b.out_a_B_buf_t.supply.vdd" "b.b.out_a_B_buf_t.buf2.vdd"
|
||||||
|
= "b.b.out_a_B_buf_t.supply.vss" "b.b.out_a_B_buf_t.buf2.vss"
|
||||||
|
= "b.b.out_a_B_buf_t.out[0]" "b.b.out_a_B_buf_t.out[4]"
|
||||||
|
= "b.b.out_a_B_buf_t.out[0]" "b.b.out_a_B_buf_t.out[3]"
|
||||||
|
= "b.b.out_a_B_buf_t.out[0]" "b.b.out_a_B_buf_t.out[2]"
|
||||||
|
= "b.b.out_a_B_buf_t.out[0]" "b.b.out_a_B_buf_t.out[1]"
|
||||||
|
= "b.b.out_a_B_buf_t.out[0]" "b.b.out_a_B_buf_t.buf2.y"
|
||||||
|
= "b.b.out_a_B_buf_t.in" "b.b.out_a_B_buf_t.buf2.a"
|
||||||
|
= "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[0]" "b.b.f_buf_func[4].c1"
|
||||||
|
= "b.b._en_X_f[0]" "b.b.f_buf_func[3].c1"
|
||||||
|
= "b.b._en_X_f[0]" "b.b.f_buf_func[2].c1"
|
||||||
|
= "b.b._en_X_f[0]" "b.b.f_buf_func[1].c1"
|
||||||
|
= "b.b._en_X_f[0]" "b.b.f_buf_func[0].c1"
|
||||||
|
= "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.inack_ctl.c1"&~"b.b.inack_ctl.c2"&~"b.b.inack_ctl.c3"|~"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.c3"&"b.b.inack_ctl.sr_B"->"b.b.inack_ctl._y"-
|
||||||
|
"b.b.inack_ctl._y"->"b.b.inack_ctl.y"-
|
||||||
|
~("b.b.inack_ctl._y")->"b.b.inack_ctl.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[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.in_v_buf4.a"->"b.b.in_v_buf4._y"-
|
||||||
|
~("b.b.in_v_buf4.a")->"b.b.in_v_buf4._y"+
|
||||||
|
"b.b.in_v_buf4._y"->"b.b.in_v_buf4.y"-
|
||||||
|
~("b.b.in_v_buf4._y")->"b.b.in_v_buf4.y"+
|
||||||
|
"b.b.out_a_inv.a"->"b.b.out_a_inv.y"-
|
||||||
|
~("b.b.out_a_inv.a")->"b.b.out_a_inv.y"+
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b.out_a_B_buf_t.out[0]"
|
||||||
|
= "b.b._out_a_BX_f[1]" "b.b.out_a_B_buf_t.out[1]"
|
||||||
|
= "b.b._out_a_BX_f[2]" "b.b.out_a_B_buf_t.out[2]"
|
||||||
|
= "b.b._out_a_BX_f[3]" "b.b.out_a_B_buf_t.out[3]"
|
||||||
|
= "b.b._out_a_BX_f[4]" "b.b.out_a_B_buf_t.out[4]"
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b.f_buf_func[4].c2"
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b.f_buf_func[3].c2"
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b.f_buf_func[2].c2"
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b.f_buf_func[1].c2"
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b.f_buf_func[0].c2"
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b._out_a_BX_f[4]"
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b._out_a_BX_f[3]"
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b._out_a_BX_f[2]"
|
||||||
|
= "b.b._out_a_BX_f[0]" "b.b._out_a_BX_f[1]"
|
||||||
|
= "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.in_v_bufN.supply.vss"
|
||||||
|
= "b.b.supply.vdd" "b.b.in_v_bufN.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[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_buf4.vdd"
|
||||||
|
= "b.b.supply.vdd" "b.b.reset_buf.vdd"
|
||||||
|
= "b.b.supply.vdd" "b.b.en_ctl.vdd"
|
||||||
|
= "b.b.supply.vdd" "b.b.inack_ctl.vdd"
|
||||||
|
= "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_buf4.vss"
|
||||||
|
= "b.b.supply.vss" "b.b.reset_buf.vss"
|
||||||
|
= "b.b.supply.vss" "b.b.en_ctl.vss"
|
||||||
|
= "b.b.supply.vss" "b.b.inack_ctl.vss"
|
||||||
|
~"b.b.vc.C2Els[0].c1"&~"b.b.vc.C2Els[0].c2"->"b.b.vc.C2Els[0]._y"+
|
||||||
|
"b.b.vc.C2Els[0].c1"&"b.b.vc.C2Els[0].c2"->"b.b.vc.C2Els[0]._y"-
|
||||||
|
"b.b.vc.C2Els[0]._y"->"b.b.vc.C2Els[0].y"-
|
||||||
|
~("b.b.vc.C2Els[0]._y")->"b.b.vc.C2Els[0].y"+
|
||||||
|
~"b.b.vc.C2Els[1].c1"&~"b.b.vc.C2Els[1].c2"->"b.b.vc.C2Els[1]._y"+
|
||||||
|
"b.b.vc.C2Els[1].c1"&"b.b.vc.C2Els[1].c2"->"b.b.vc.C2Els[1]._y"-
|
||||||
|
"b.b.vc.C2Els[1]._y"->"b.b.vc.C2Els[1].y"-
|
||||||
|
~("b.b.vc.C2Els[1]._y")->"b.b.vc.C2Els[1].y"+
|
||||||
|
~"b.b.vc.C3Els[0].c1"&~"b.b.vc.C3Els[0].c2"&~"b.b.vc.C3Els[0].c3"->"b.b.vc.C3Els[0]._y"+
|
||||||
|
"b.b.vc.C3Els[0].c1"&"b.b.vc.C3Els[0].c2"&"b.b.vc.C3Els[0].c3"->"b.b.vc.C3Els[0]._y"-
|
||||||
|
"b.b.vc.C3Els[0]._y"->"b.b.vc.C3Els[0].y"-
|
||||||
|
~("b.b.vc.C3Els[0]._y")->"b.b.vc.C3Els[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].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.tmp[0]" "b.b.vc.C2Els[0].c1"
|
||||||
|
= "b.b.vc.tmp[0]" "b.b.vc.OR2_tf[0].y"
|
||||||
|
= "b.b.vc.tmp[1]" "b.b.vc.C2Els[0].c2"
|
||||||
|
= "b.b.vc.tmp[1]" "b.b.vc.OR2_tf[1].y"
|
||||||
|
= "b.b.vc.tmp[2]" "b.b.vc.C3Els[0].c1"
|
||||||
|
= "b.b.vc.tmp[2]" "b.b.vc.OR2_tf[2].y"
|
||||||
|
= "b.b.vc.tmp[3]" "b.b.vc.C3Els[0].c2"
|
||||||
|
= "b.b.vc.tmp[3]" "b.b.vc.OR2_tf[3].y"
|
||||||
|
= "b.b.vc.tmp[4]" "b.b.vc.C3Els[0].c3"
|
||||||
|
= "b.b.vc.tmp[4]" "b.b.vc.OR2_tf[4].y"
|
||||||
|
= "b.b.vc.tmp[5]" "b.b.vc.C2Els[1].c1"
|
||||||
|
= "b.b.vc.tmp[5]" "b.b.vc.C2Els[0].y"
|
||||||
|
= "b.b.vc.tmp[6]" "b.b.vc.C2Els[1].c2"
|
||||||
|
= "b.b.vc.tmp[6]" "b.b.vc.C3Els[0].y"
|
||||||
|
= "b.b.vc.supply.vdd" "b.b.vc.C3Els[0].vdd"
|
||||||
|
= "b.b.vc.supply.vdd" "b.b.vc.C2Els[1].vdd"
|
||||||
|
= "b.b.vc.supply.vdd" "b.b.vc.C2Els[0].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.C3Els[0].vss"
|
||||||
|
= "b.b.vc.supply.vss" "b.b.vc.C2Els[1].vss"
|
||||||
|
= "b.b.vc.supply.vss" "b.b.vc.C2Els[0].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.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[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[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.vc.out" "b.b.vc.C2Els[1].y"
|
||||||
|
= "b.b.vc.out" "b.b.vc.tmp[7]"
|
||||||
|
"b.b.out_a_B_buf_f.buf2.a"->"b.b.out_a_B_buf_f.buf2._y"-
|
||||||
|
~("b.b.out_a_B_buf_f.buf2.a")->"b.b.out_a_B_buf_f.buf2._y"+
|
||||||
|
"b.b.out_a_B_buf_f.buf2._y"->"b.b.out_a_B_buf_f.buf2.y"-
|
||||||
|
~("b.b.out_a_B_buf_f.buf2._y")->"b.b.out_a_B_buf_f.buf2.y"+
|
||||||
|
= "b.b.out_a_B_buf_f.supply.vdd" "b.b.out_a_B_buf_f.buf2.vdd"
|
||||||
|
= "b.b.out_a_B_buf_f.supply.vss" "b.b.out_a_B_buf_f.buf2.vss"
|
||||||
|
= "b.b.out_a_B_buf_f.out[0]" "b.b.out_a_B_buf_f.out[4]"
|
||||||
|
= "b.b.out_a_B_buf_f.out[0]" "b.b.out_a_B_buf_f.out[3]"
|
||||||
|
= "b.b.out_a_B_buf_f.out[0]" "b.b.out_a_B_buf_f.out[2]"
|
||||||
|
= "b.b.out_a_B_buf_f.out[0]" "b.b.out_a_B_buf_f.out[1]"
|
||||||
|
= "b.b.out_a_B_buf_f.out[0]" "b.b.out_a_B_buf_f.buf2.y"
|
||||||
|
= "b.b.out_a_B_buf_f.in" "b.b.out_a_B_buf_f.buf2.a"
|
||||||
|
= "b.b._en" "b.b.en_buf_f.in"
|
||||||
|
= "b.b._en" "b.b.en_buf_t.in"
|
||||||
|
= "b.b._en" "b.b.en_ctl.y"
|
||||||
|
= "b.b._en" "b.b.inack_ctl.c1"
|
||||||
|
~"b.b.en_ctl.p1"&~"b.b.en_ctl.c1"->"b.b.en_ctl.y"+
|
||||||
|
"b.b.en_ctl.c1"->"b.b.en_ctl.y"-
|
||||||
|
= "b.b.out.d.d[0].d[0]" "b.b.out.d.d[0].f"
|
||||||
|
= "b.b.out.d.d[0].d[1]" "b.b.out.d.d[0].t"
|
||||||
|
= "b.b.out.d.d[1].d[0]" "b.b.out.d.d[1].f"
|
||||||
|
= "b.b.out.d.d[1].d[1]" "b.b.out.d.d[1].t"
|
||||||
|
= "b.b.out.d.d[2].d[0]" "b.b.out.d.d[2].f"
|
||||||
|
= "b.b.out.d.d[2].d[1]" "b.b.out.d.d[2].t"
|
||||||
|
= "b.b.out.d.d[3].d[0]" "b.b.out.d.d[3].f"
|
||||||
|
= "b.b.out.d.d[3].d[1]" "b.b.out.d.d[3].t"
|
||||||
|
= "b.b.out.d.d[4].d[0]" "b.b.out.d.d[4].f"
|
||||||
|
= "b.b.out.d.d[4].d[1]" "b.b.out.d.d[4].t"
|
||||||
|
= "b.b.out.d.d[4].d[0]" "b.b.out.d.d[4].f"
|
||||||
|
= "b.b.out.d.d[4].d[1]" "b.b.out.d.d[4].t"
|
||||||
|
= "b.b.out.d.d[3].d[0]" "b.b.out.d.d[3].f"
|
||||||
|
= "b.b.out.d.d[3].d[1]" "b.b.out.d.d[3].t"
|
||||||
|
= "b.b.out.d.d[2].d[0]" "b.b.out.d.d[2].f"
|
||||||
|
= "b.b.out.d.d[2].d[1]" "b.b.out.d.d[2].t"
|
||||||
|
= "b.b.out.d.d[1].d[0]" "b.b.out.d.d[1].f"
|
||||||
|
= "b.b.out.d.d[1].d[1]" "b.b.out.d.d[1].t"
|
||||||
|
= "b.b.out.d.d[0].d[0]" "b.b.out.d.d[0].f"
|
||||||
|
= "b.b.out.d.d[0].d[1]" "b.b.out.d.d[0].t"
|
||||||
|
= "b.b.out.d.d[4].d[0]" "b.b.out.d.d[4].f"
|
||||||
|
= "b.b.out.d.d[4].d[1]" "b.b.out.d.d[4].t"
|
||||||
|
= "b.b.out.d.d[3].d[0]" "b.b.out.d.d[3].f"
|
||||||
|
= "b.b.out.d.d[3].d[1]" "b.b.out.d.d[3].t"
|
||||||
|
= "b.b.out.d.d[2].d[0]" "b.b.out.d.d[2].f"
|
||||||
|
= "b.b.out.d.d[2].d[1]" "b.b.out.d.d[2].t"
|
||||||
|
= "b.b.out.d.d[1].d[0]" "b.b.out.d.d[1].f"
|
||||||
|
= "b.b.out.d.d[1].d[1]" "b.b.out.d.d[1].t"
|
||||||
|
= "b.b.out.d.d[0].d[0]" "b.b.out.d.d[0].f"
|
||||||
|
= "b.b.out.d.d[0].d[1]" "b.b.out.d.d[0].t"
|
||||||
|
= "b.b.out.a" "b.b.out_a_inv.a"
|
||||||
|
= "b.b.out.v" "b.b.en_ctl.p1"
|
||||||
|
= "b.b.out.v" "b.b.inack_ctl.c3"
|
||||||
|
= "b.b.out.d.d[4].d[0]" "b.b.f_buf_func[4].y"
|
||||||
|
= "b.b.out.d.d[4].d[0]" "b.b.out.d.d[4].f"
|
||||||
|
= "b.b.out.d.d[4].d[1]" "b.b.t_buf_func[4].y"
|
||||||
|
= "b.b.out.d.d[4].d[1]" "b.b.out.d.d[4].t"
|
||||||
|
= "b.b.out.d.d[3].d[0]" "b.b.f_buf_func[3].y"
|
||||||
|
= "b.b.out.d.d[3].d[0]" "b.b.out.d.d[3].f"
|
||||||
|
= "b.b.out.d.d[3].d[1]" "b.b.t_buf_func[3].y"
|
||||||
|
= "b.b.out.d.d[3].d[1]" "b.b.out.d.d[3].t"
|
||||||
|
= "b.b.out.d.d[2].d[0]" "b.b.f_buf_func[2].y"
|
||||||
|
= "b.b.out.d.d[2].d[0]" "b.b.out.d.d[2].f"
|
||||||
|
= "b.b.out.d.d[2].d[1]" "b.b.t_buf_func[2].y"
|
||||||
|
= "b.b.out.d.d[2].d[1]" "b.b.out.d.d[2].t"
|
||||||
|
= "b.b.out.d.d[1].d[0]" "b.b.f_buf_func[1].y"
|
||||||
|
= "b.b.out.d.d[1].d[0]" "b.b.out.d.d[1].f"
|
||||||
|
= "b.b.out.d.d[1].d[1]" "b.b.t_buf_func[1].y"
|
||||||
|
= "b.b.out.d.d[1].d[1]" "b.b.out.d.d[1].t"
|
||||||
|
= "b.b.out.d.d[0].d[0]" "b.b.f_buf_func[0].y"
|
||||||
|
= "b.b.out.d.d[0].d[0]" "b.b.out.d.d[0].f"
|
||||||
|
= "b.b.out.d.d[0].d[1]" "b.b.t_buf_func[0].y"
|
||||||
|
= "b.b.out.d.d[0].d[1]" "b.b.out.d.d[0].t"
|
||||||
|
= "b.b.in.d.d[0].d[0]" "b.b.in.d.d[0].f"
|
||||||
|
= "b.b.in.d.d[0].d[1]" "b.b.in.d.d[0].t"
|
||||||
|
= "b.b.in.d.d[1].d[0]" "b.b.in.d.d[1].f"
|
||||||
|
= "b.b.in.d.d[1].d[1]" "b.b.in.d.d[1].t"
|
||||||
|
= "b.b.in.d.d[2].d[0]" "b.b.in.d.d[2].f"
|
||||||
|
= "b.b.in.d.d[2].d[1]" "b.b.in.d.d[2].t"
|
||||||
|
= "b.b.in.d.d[3].d[0]" "b.b.in.d.d[3].f"
|
||||||
|
= "b.b.in.d.d[3].d[1]" "b.b.in.d.d[3].t"
|
||||||
|
= "b.b.in.d.d[4].d[0]" "b.b.in.d.d[4].f"
|
||||||
|
= "b.b.in.d.d[4].d[1]" "b.b.in.d.d[4].t"
|
||||||
|
= "b.b.in.d.d[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[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.a" "b.b.en_ctl.c1"
|
||||||
|
= "b.b.in.a" "b.b.inack_ctl.y"
|
||||||
|
= "b.b.in.v" "b.b.in_v_bufN.in"
|
||||||
|
= "b.b.in.v" "b.b.in_v_buf4.y"
|
||||||
|
= "b.b.in.v" "b.b.inack_ctl.c2"
|
||||||
|
= "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.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._in_v" "b.b.in_v_buf4.a"
|
||||||
|
= "b.b._in_v" "b.b.vc.out"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b.out_a_B_buf_f.out[0]"
|
||||||
|
= "b.b._out_a_BX_t[1]" "b.b.out_a_B_buf_f.out[1]"
|
||||||
|
= "b.b._out_a_BX_t[2]" "b.b.out_a_B_buf_f.out[2]"
|
||||||
|
= "b.b._out_a_BX_t[3]" "b.b.out_a_B_buf_f.out[3]"
|
||||||
|
= "b.b._out_a_BX_t[4]" "b.b.out_a_B_buf_f.out[4]"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b.t_buf_func[4].c2"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b.t_buf_func[3].c2"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b.t_buf_func[2].c2"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b.t_buf_func[1].c2"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b.t_buf_func[0].c2"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b._out_a_BX_t[4]"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b._out_a_BX_t[3]"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b._out_a_BX_t[2]"
|
||||||
|
= "b.b._out_a_BX_t[0]" "b.b._out_a_BX_t[1]"
|
||||||
|
= "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.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[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[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._out_a_B" "b.b.out_a_B_buf_t.in"
|
||||||
|
= "b.b._out_a_B" "b.b.out_a_B_buf_f.in"
|
||||||
|
= "b.b._out_a_B" "b.b.out_a_inv.y"
|
||||||
|
= "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[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.t_buf_func[4].sr_B"
|
||||||
|
= "b.b._reset_BXX[0]" "b.b.t_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.t_buf_func[3].sr_B"
|
||||||
|
= "b.b._reset_BXX[0]" "b.b.t_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.t_buf_func[2].sr_B"
|
||||||
|
= "b.b._reset_BXX[0]" "b.b.t_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.t_buf_func[1].sr_B"
|
||||||
|
= "b.b._reset_BXX[0]" "b.b.t_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.t_buf_func[0].sr_B"
|
||||||
|
= "b.b._reset_BXX[0]" "b.b.t_buf_func[0].pr_B"
|
||||||
|
= "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._in_vX[0]" "b.b.in_v_bufN.out[0]"
|
||||||
|
= "b.b._in_vX[1]" "b.b.in_v_bufN.out[1]"
|
||||||
|
= "b.b._in_vX[2]" "b.b.in_v_bufN.out[2]"
|
||||||
|
= "b.b._in_vX[3]" "b.b.in_v_bufN.out[3]"
|
||||||
|
= "b.b._in_vX[4]" "b.b.in_v_bufN.out[4]"
|
||||||
|
= "b.b._in_vX[0]" "b.b.t_buf_func[4].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b.f_buf_func[4].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b.t_buf_func[3].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b.f_buf_func[3].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b.t_buf_func[2].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b.f_buf_func[2].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b.t_buf_func[1].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b.f_buf_func[1].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b.t_buf_func[0].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b.f_buf_func[0].n2"
|
||||||
|
= "b.b._in_vX[0]" "b.b._in_vX[4]"
|
||||||
|
= "b.b._in_vX[0]" "b.b._in_vX[3]"
|
||||||
|
= "b.b._in_vX[0]" "b.b._in_vX[2]"
|
||||||
|
= "b.b._in_vX[0]" "b.b._in_vX[1]"
|
||||||
|
"b.b.in_v_bufN.buf2.a"->"b.b.in_v_bufN.buf2._y"-
|
||||||
|
~("b.b.in_v_bufN.buf2.a")->"b.b.in_v_bufN.buf2._y"+
|
||||||
|
"b.b.in_v_bufN.buf2._y"->"b.b.in_v_bufN.buf2.y"-
|
||||||
|
~("b.b.in_v_bufN.buf2._y")->"b.b.in_v_bufN.buf2.y"+
|
||||||
|
= "b.b.in_v_bufN.supply.vdd" "b.b.in_v_bufN.buf2.vdd"
|
||||||
|
= "b.b.in_v_bufN.supply.vss" "b.b.in_v_bufN.buf2.vss"
|
||||||
|
= "b.b.in_v_bufN.out[0]" "b.b.in_v_bufN.out[4]"
|
||||||
|
= "b.b.in_v_bufN.out[0]" "b.b.in_v_bufN.out[3]"
|
||||||
|
= "b.b.in_v_bufN.out[0]" "b.b.in_v_bufN.out[2]"
|
||||||
|
= "b.b.in_v_bufN.out[0]" "b.b.in_v_bufN.out[1]"
|
||||||
|
= "b.b.in_v_bufN.out[0]" "b.b.in_v_bufN.buf2.y"
|
||||||
|
= "b.b.in_v_bufN.in" "b.b.in_v_bufN.buf2.a"
|
||||||
|
~"b.b.t_buf_func[0].c1"&~"b.b.t_buf_func[0].c2"|~"b.b.t_buf_func[0].pr_B"->"b.b.t_buf_func[0]._y"+
|
||||||
|
"b.b.t_buf_func[0].c1"&"b.b.t_buf_func[0].c2"&"b.b.t_buf_func[0].n1"&"b.b.t_buf_func[0].n2"&"b.b.t_buf_func[0].sr_B"->"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].c2"|~"b.b.t_buf_func[1].pr_B"->"b.b.t_buf_func[1]._y"+
|
||||||
|
"b.b.t_buf_func[1].c1"&"b.b.t_buf_func[1].c2"&"b.b.t_buf_func[1].n1"&"b.b.t_buf_func[1].n2"&"b.b.t_buf_func[1].sr_B"->"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].c2"|~"b.b.t_buf_func[2].pr_B"->"b.b.t_buf_func[2]._y"+
|
||||||
|
"b.b.t_buf_func[2].c1"&"b.b.t_buf_func[2].c2"&"b.b.t_buf_func[2].n1"&"b.b.t_buf_func[2].n2"&"b.b.t_buf_func[2].sr_B"->"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].c2"|~"b.b.t_buf_func[3].pr_B"->"b.b.t_buf_func[3]._y"+
|
||||||
|
"b.b.t_buf_func[3].c1"&"b.b.t_buf_func[3].c2"&"b.b.t_buf_func[3].n1"&"b.b.t_buf_func[3].n2"&"b.b.t_buf_func[3].sr_B"->"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].c2"|~"b.b.t_buf_func[4].pr_B"->"b.b.t_buf_func[4]._y"+
|
||||||
|
"b.b.t_buf_func[4].c1"&"b.b.t_buf_func[4].c2"&"b.b.t_buf_func[4].n1"&"b.b.t_buf_func[4].n2"&"b.b.t_buf_func[4].sr_B"->"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.f_buf_func[0].c1"&~"b.b.f_buf_func[0].c2"|~"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].c2"&"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].c2"|~"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].c2"&"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].c2"|~"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].c2"&"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].c2"|~"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].c2"&"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].c2"|~"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].c2"&"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._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[0]" "b.b.t_buf_func[4].c1"
|
||||||
|
= "b.b._en_X_t[0]" "b.b.t_buf_func[3].c1"
|
||||||
|
= "b.b._en_X_t[0]" "b.b.t_buf_func[2].c1"
|
||||||
|
= "b.b._en_X_t[0]" "b.b.t_buf_func[1].c1"
|
||||||
|
= "b.b._en_X_t[0]" "b.b.t_buf_func[0].c1"
|
||||||
|
= "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]"
|
||||||
|
= "Vdd" "b.b.supply.vdd"
|
||||||
|
= "GND" "b.b.supply.vss"
|
||||||
|
= "b._reset_B" "b.b.reset_B"
|
||||||
|
= "b.out.d.d[0].d[0]" "b.out.d.d[0].f"
|
||||||
|
= "b.out.d.d[0].d[1]" "b.out.d.d[0].t"
|
||||||
|
= "b.out.d.d[1].d[0]" "b.out.d.d[1].f"
|
||||||
|
= "b.out.d.d[1].d[1]" "b.out.d.d[1].t"
|
||||||
|
= "b.out.d.d[2].d[0]" "b.out.d.d[2].f"
|
||||||
|
= "b.out.d.d[2].d[1]" "b.out.d.d[2].t"
|
||||||
|
= "b.out.d.d[3].d[0]" "b.out.d.d[3].f"
|
||||||
|
= "b.out.d.d[3].d[1]" "b.out.d.d[3].t"
|
||||||
|
= "b.out.d.d[4].d[0]" "b.out.d.d[4].f"
|
||||||
|
= "b.out.d.d[4].d[1]" "b.out.d.d[4].t"
|
||||||
|
= "b.out.d.d[4].d[0]" "b.out.d.d[4].f"
|
||||||
|
= "b.out.d.d[4].d[1]" "b.out.d.d[4].t"
|
||||||
|
= "b.out.d.d[3].d[0]" "b.out.d.d[3].f"
|
||||||
|
= "b.out.d.d[3].d[1]" "b.out.d.d[3].t"
|
||||||
|
= "b.out.d.d[2].d[0]" "b.out.d.d[2].f"
|
||||||
|
= "b.out.d.d[2].d[1]" "b.out.d.d[2].t"
|
||||||
|
= "b.out.d.d[1].d[0]" "b.out.d.d[1].f"
|
||||||
|
= "b.out.d.d[1].d[1]" "b.out.d.d[1].t"
|
||||||
|
= "b.out.d.d[0].d[0]" "b.out.d.d[0].f"
|
||||||
|
= "b.out.d.d[0].d[1]" "b.out.d.d[0].t"
|
||||||
|
= "b.out.d.d[4].d[0]" "b.out.d.d[4].f"
|
||||||
|
= "b.out.d.d[4].d[1]" "b.out.d.d[4].t"
|
||||||
|
= "b.out.d.d[3].d[0]" "b.out.d.d[3].f"
|
||||||
|
= "b.out.d.d[3].d[1]" "b.out.d.d[3].t"
|
||||||
|
= "b.out.d.d[2].d[0]" "b.out.d.d[2].f"
|
||||||
|
= "b.out.d.d[2].d[1]" "b.out.d.d[2].t"
|
||||||
|
= "b.out.d.d[1].d[0]" "b.out.d.d[1].f"
|
||||||
|
= "b.out.d.d[1].d[1]" "b.out.d.d[1].t"
|
||||||
|
= "b.out.d.d[0].d[0]" "b.out.d.d[0].f"
|
||||||
|
= "b.out.d.d[0].d[1]" "b.out.d.d[0].t"
|
||||||
|
= "b.out.v" "b.b.out.v"
|
||||||
|
= "b.out.a" "b.b.out.a"
|
||||||
|
= "b.out.d.d[0].f" "b.b.out.d.d[0].f"
|
||||||
|
= "b.out.d.d[0].t" "b.b.out.d.d[0].t"
|
||||||
|
= "b.out.d.d[0].d[0]" "b.b.out.d.d[0].d[0]"
|
||||||
|
= "b.out.d.d[0].d[1]" "b.b.out.d.d[0].d[1]"
|
||||||
|
= "b.out.d.d[1].f" "b.b.out.d.d[1].f"
|
||||||
|
= "b.out.d.d[1].t" "b.b.out.d.d[1].t"
|
||||||
|
= "b.out.d.d[1].d[0]" "b.b.out.d.d[1].d[0]"
|
||||||
|
= "b.out.d.d[1].d[1]" "b.b.out.d.d[1].d[1]"
|
||||||
|
= "b.out.d.d[2].f" "b.b.out.d.d[2].f"
|
||||||
|
= "b.out.d.d[2].t" "b.b.out.d.d[2].t"
|
||||||
|
= "b.out.d.d[2].d[0]" "b.b.out.d.d[2].d[0]"
|
||||||
|
= "b.out.d.d[2].d[1]" "b.b.out.d.d[2].d[1]"
|
||||||
|
= "b.out.d.d[3].f" "b.b.out.d.d[3].f"
|
||||||
|
= "b.out.d.d[3].t" "b.b.out.d.d[3].t"
|
||||||
|
= "b.out.d.d[3].d[0]" "b.b.out.d.d[3].d[0]"
|
||||||
|
= "b.out.d.d[3].d[1]" "b.b.out.d.d[3].d[1]"
|
||||||
|
= "b.out.d.d[4].f" "b.b.out.d.d[4].f"
|
||||||
|
= "b.out.d.d[4].t" "b.b.out.d.d[4].t"
|
||||||
|
= "b.out.d.d[4].d[0]" "b.b.out.d.d[4].d[0]"
|
||||||
|
= "b.out.d.d[4].d[1]" "b.b.out.d.d[4].d[1]"
|
||||||
|
= "b.out.d.d[4].d[0]" "b.out.d.d[4].f"
|
||||||
|
= "b.out.d.d[4].d[1]" "b.out.d.d[4].t"
|
||||||
|
= "b.out.d.d[3].d[0]" "b.out.d.d[3].f"
|
||||||
|
= "b.out.d.d[3].d[1]" "b.out.d.d[3].t"
|
||||||
|
= "b.out.d.d[2].d[0]" "b.out.d.d[2].f"
|
||||||
|
= "b.out.d.d[2].d[1]" "b.out.d.d[2].t"
|
||||||
|
= "b.out.d.d[1].d[0]" "b.out.d.d[1].f"
|
||||||
|
= "b.out.d.d[1].d[1]" "b.out.d.d[1].t"
|
||||||
|
= "b.out.d.d[0].d[0]" "b.out.d.d[0].f"
|
||||||
|
= "b.out.d.d[0].d[1]" "b.out.d.d[0].t"
|
||||||
|
= "b.in.d.d[0].d[0]" "b.in.d.d[0].f"
|
||||||
|
= "b.in.d.d[0].d[1]" "b.in.d.d[0].t"
|
||||||
|
= "b.in.d.d[1].d[0]" "b.in.d.d[1].f"
|
||||||
|
= "b.in.d.d[1].d[1]" "b.in.d.d[1].t"
|
||||||
|
= "b.in.d.d[2].d[0]" "b.in.d.d[2].f"
|
||||||
|
= "b.in.d.d[2].d[1]" "b.in.d.d[2].t"
|
||||||
|
= "b.in.d.d[3].d[0]" "b.in.d.d[3].f"
|
||||||
|
= "b.in.d.d[3].d[1]" "b.in.d.d[3].t"
|
||||||
|
= "b.in.d.d[4].d[0]" "b.in.d.d[4].f"
|
||||||
|
= "b.in.d.d[4].d[1]" "b.in.d.d[4].t"
|
||||||
|
= "b.in.d.d[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[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[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"
|
47
test/unit_tests/buf_s_5/test.act
Normal file
47
test/unit_tests/buf_s_5/test.act
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* This file is part of ACT dataflow neuro library.
|
||||||
|
* It's the testing facility for cell_lib_std.act
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
|
*
|
||||||
|
* You may redistribute and modify this documentation and make products
|
||||||
|
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
|
||||||
|
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
|
||||||
|
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
|
||||||
|
* for applicable conditions.
|
||||||
|
*
|
||||||
|
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
|
||||||
|
*
|
||||||
|
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
|
||||||
|
* these sources, You must maintain the Source Location visible in its
|
||||||
|
* documentation.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
import "../../dataflow_neuro/primitives.act";
|
||||||
|
import globals;
|
||||||
|
|
||||||
|
open tmpl::dataflow_neuro;
|
||||||
|
|
||||||
|
defproc buffer_s_5(avMx1of2<5> in; avMx1of2<5> out)
|
||||||
|
|
||||||
|
{
|
||||||
|
bool _reset_B;
|
||||||
|
prs {
|
||||||
|
Reset => _reset_B-
|
||||||
|
}
|
||||||
|
buffer_s<5> b(.in = in, .out = out);
|
||||||
|
b.supply.vdd = Vdd;
|
||||||
|
b.supply.vss = GND;
|
||||||
|
b.reset_B = _reset_B;
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer_s_5 b;
|
66
test/unit_tests/buf_s_5/test.prsim
Normal file
66
test/unit_tests/buf_s_5/test.prsim
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
watchall
|
||||||
|
|
||||||
|
set-qdi-channel-neutral "b.in" 5
|
||||||
|
set b.out.a 0
|
||||||
|
set b.out.v 0
|
||||||
|
# set b.in.a 1
|
||||||
|
# set b.in.v 1
|
||||||
|
set Reset 0
|
||||||
|
|
||||||
|
# Set output channel variables to all active (incorrect)
|
||||||
|
set b.out.d.d[0].t 1
|
||||||
|
set b.out.d.d[0].f 1
|
||||||
|
set b.out.d.d[1].t 1
|
||||||
|
set b.out.d.d[1].f 1
|
||||||
|
set b.out.d.d[2].t 1
|
||||||
|
set b.out.d.d[2].f 1
|
||||||
|
set b.out.d.d[3].t 1
|
||||||
|
set b.out.d.d[3].f 1
|
||||||
|
set b.out.d.d[4].t 1
|
||||||
|
set b.out.d.d[4].f 1
|
||||||
|
|
||||||
|
cycle
|
||||||
|
|
||||||
|
system "echo '[] set Reset 1'"
|
||||||
|
set Reset 1
|
||||||
|
cycle
|
||||||
|
|
||||||
|
system "echo '[] set Reset 0'"
|
||||||
|
set Reset 0
|
||||||
|
mode run
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert-qdi-channel-neutral "b.out" 5
|
||||||
|
|
||||||
|
system "echo '[] Reset finished, setting some inputs.'"
|
||||||
|
status X
|
||||||
|
|
||||||
|
|
||||||
|
set b.in.d.d[0].t 1
|
||||||
|
set b.in.d.d[1].t 1
|
||||||
|
set b.in.d.d[2].f 1
|
||||||
|
set b.in.d.d[3].f 1
|
||||||
|
|
||||||
|
cycle
|
||||||
|
|
||||||
|
system "echo '[] Setting final input'"
|
||||||
|
|
||||||
|
set b.in.d.d[4].t 1
|
||||||
|
cycle
|
||||||
|
|
||||||
|
system "echo '[] Receiving out val'"
|
||||||
|
|
||||||
|
set b.out.v 1
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert b.in.a 1
|
||||||
|
|
||||||
|
system "echo '[] Removing input'"
|
||||||
|
set-qdi-channel-neutral "b.in" 5
|
||||||
|
cycle
|
||||||
|
|
||||||
|
system "echo '[] Receiving out ack'"
|
||||||
|
set b.out.a 1
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert-qdi-channel-neutral "b.out" 5
|
@ -1,3 +1,4 @@
|
|||||||
t.ctree_test.tmp[22] t.ctree_test.C2Els[0]._y t.ctree_test.tmp[17] t.in[14] t.in[4] t.in[2] t.in[8] t.in[13] t.ctree_test.tmp[21] t.ctree_test.tmp[23] t.out t.in[12] t.in[6] t.in[7] t.in[10] t.in[5] t.ctree_test.tmp[19] t.ctree_test.tmp[18] t.ctree_test.C3Els[0]._y t.in[3] t.ctree_test.tmp[24] t.ctree_test.C3Els[2]._y t.ctree_test.C2Els[4]._y t.in[0] t.in[1] t.ctree_test.tmp[15] t.ctree_test.tmp[16] t.in[11] t.ctree_test.tmp[20] t.ctree_test.C2Els[7]._y t.in[9] t.ctree_test.C2Els[2]._y t.ctree_test.C2Els[1]._y t.ctree_test.C2Els[6]._y t.ctree_test.C2Els[5]._y t.ctree_test.C2Els[3]._y t.ctree_test.C3Els[1]._y
|
t.ctree_test.tmp[22] t.ctree_test.C2Els[0]._y t.ctree_test.tmp[17] t.in[14] t.in[4] t.in[2] t.in[8] t.in[13] t.ctree_test.tmp[21] t.ctree_test.tmp[23] t.out t.in[12] t.in[6] t.in[7] t.in[10] t.in[5] t.ctree_test.tmp[19] t.ctree_test.tmp[18] t.ctree_test.C3Els[0]._y t.in[3] t.ctree_test.tmp[24] t.ctree_test.C3Els[2]._y t.ctree_test.C2Els[4]._y t.in[0] t.in[1] t.ctree_test.tmp[15] t.ctree_test.tmp[16] t.in[11] t.ctree_test.tmp[20] t.ctree_test.C2Els[7]._y t.in[9] t.ctree_test.C2Els[2]._y t.ctree_test.C2Els[1]._y t.ctree_test.C2Els[6]._y t.ctree_test.C2Els[5]._y t.ctree_test.C2Els[3]._y t.ctree_test.C3Els[1]._y
|
||||||
0
|
[0] starting test all 1
|
||||||
1
|
[1] starting test all 0
|
||||||
|
[2] testing state holding
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
system "echo '0'"
|
system "echo '[0] starting test all 1'"
|
||||||
|
|
||||||
set t.in[0] 1
|
set t.in[0] 1
|
||||||
set t.in[1] 1
|
set t.in[1] 1
|
||||||
@ -16,12 +16,47 @@ set t.in[11] 1
|
|||||||
set t.in[12] 1
|
set t.in[12] 1
|
||||||
set t.in[13] 1
|
set t.in[13] 1
|
||||||
set t.in[14] 1
|
set t.in[14] 1
|
||||||
|
|
||||||
|
|
||||||
system "echo '1'"
|
|
||||||
|
|
||||||
cycle
|
cycle
|
||||||
mode run
|
mode run
|
||||||
assert t.out 1
|
assert t.out 1
|
||||||
|
system "echo '[1] starting test all 0'"
|
||||||
|
|
||||||
|
set t.in[0] 0
|
||||||
|
set t.in[1] 0
|
||||||
|
set t.in[2] 0
|
||||||
|
set t.in[3] 0
|
||||||
|
set t.in[4] 0
|
||||||
|
set t.in[5] 0
|
||||||
|
set t.in[6] 0
|
||||||
|
set t.in[7] 0
|
||||||
|
set t.in[8] 0
|
||||||
|
set t.in[9] 0
|
||||||
|
set t.in[10] 0
|
||||||
|
set t.in[11] 0
|
||||||
|
set t.in[12] 0
|
||||||
|
set t.in[13] 0
|
||||||
|
set t.in[14] 0
|
||||||
|
cycle
|
||||||
|
mode run
|
||||||
|
assert t.out 0
|
||||||
|
|
||||||
|
system "echo '[2] testing state holding'"
|
||||||
|
|
||||||
|
set t.in[0] 0
|
||||||
|
set t.in[1] 0
|
||||||
|
set t.in[2] 0
|
||||||
|
set t.in[3] 0
|
||||||
|
set t.in[4] 0
|
||||||
|
set t.in[5] 1
|
||||||
|
set t.in[6] 0
|
||||||
|
set t.in[7] 0
|
||||||
|
set t.in[8] 0
|
||||||
|
set t.in[9] 0
|
||||||
|
set t.in[10] 0
|
||||||
|
set t.in[11] 0
|
||||||
|
set t.in[12] 0
|
||||||
|
set t.in[13] 0
|
||||||
|
set t.in[14] 0
|
||||||
|
cycle
|
||||||
|
mode run
|
||||||
|
assert t.out 0
|
134
test/unit_tests/delayprog_4/run/prsim.out
Normal file
134
test/unit_tests/delayprog_4/run/prsim.out
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
t.s[2] t.dp.dly[2].a t.dp._a[1] t.dp.dly[5]._y t.s[3] t.a t.s[0] t.dp.and2[2]._y t.dp.and2[0]._y t.dp._a[3] t.dp.dly[11]._y t.dp._a[2] t.dp.and2[3]._y t.dp.mu2[0]._s t.dp.dly[9]._y t.s[1] t.dp.dly[11].y t.dp.dly[0]._y t.dp.dly[4].y t.dp.dly[6].y t.dp.dly[2]._y t.dp.dly[7]._y t.dp.dly[9].a t.dp.dly[1].y t.dp.dly[1].a t.dp.dly[4].a t.y t.dp.dly[2].y t.dp.dly[14]._y t.dp.dly[10].a t.dp.mu2[2]._s t.dp.dly[6]._y t.dp.dly[1]._y t.dp.dly[12]._y t.dp.dly[5].y t.dp.dly[8].a t.dp.dly[0].a t.dp.dly[7].a t.dp.mu2[0]._y t.dp.mu2[3]._y t.dp.mu2[1]._s t.dp.dly[11].a t.dp.dly[14].a t.dp.dly[13].a t.dp.dly[13]._y t.dp.dly[7].y t.dp.dly[8]._y t.dp.mu2[2]._y t.dp.dly[3].y t.dp.dly[14].y t.dp.dly[0].y t.dp.dly[3]._y t.dp.dly[13].y t.dp.and2[1]._y t.dp.mu2[3]._s t.dp.dly[10].y t.dp.dly[9].y t.dp.dly[4]._y t.dp.dly[12].y t.dp.dly[8].y t.dp.mu2[1]._y t.dp.dly[12].a t.dp.dly[10]._y
|
||||||
|
0
|
||||||
|
0 t.a : 0
|
||||||
|
0 t.s[3] : 1
|
||||||
|
0 t.s[1] : 1
|
||||||
|
0 t.s[0] : 1
|
||||||
|
0 t.s[2] : 1
|
||||||
|
1 t.dp.and2[0]._y : 1 [by t.a:=0]
|
||||||
|
2 t.dp.mu2[0]._s : 0 [by t.s[0]:=1]
|
||||||
|
1138 t.dp.dly[0].a : 0 [by t.dp.and2[0]._y:=1]
|
||||||
|
1252 t.dp.dly[0]._y : 1 [by t.dp.dly[0].a:=0]
|
||||||
|
4753 t.dp.mu2[2]._s : 0 [by t.s[2]:=1]
|
||||||
|
7092 t.dp.mu2[3]._s : 0 [by t.s[3]:=1]
|
||||||
|
10467 t.dp.mu2[1]._s : 0 [by t.s[1]:=1]
|
||||||
|
66618 t.dp.dly[0].y : 0 [by t.dp.dly[0]._y:=1]
|
||||||
|
68344 t.dp.mu2[0]._y : 1 [by t.dp.dly[0].y:=0]
|
||||||
|
68383 t.dp._a[1] : 0 [by t.dp.mu2[0]._y:=1]
|
||||||
|
68398 t.dp.and2[1]._y : 1 [by t.dp._a[1]:=0]
|
||||||
|
68889 t.dp.dly[1].a : 0 [by t.dp.and2[1]._y:=1]
|
||||||
|
68902 t.dp.dly[1]._y : 1 [by t.dp.dly[1].a:=0]
|
||||||
|
68942 t.dp.dly[1].y : 0 [by t.dp.dly[1]._y:=1]
|
||||||
|
69357 t.dp.mu2[1]._y : 1 [by t.dp.dly[1].y:=0]
|
||||||
|
69377 t.dp._a[2] : 0 [by t.dp.mu2[1]._y:=1]
|
||||||
|
75438 t.dp.and2[2]._y : 1 [by t.dp._a[2]:=0]
|
||||||
|
75485 t.dp.dly[2].a : 0 [by t.dp.and2[2]._y:=1]
|
||||||
|
75501 t.dp.dly[2]._y : 1 [by t.dp.dly[2].a:=0]
|
||||||
|
119599 t.dp.dly[2].y : 0 [by t.dp.dly[2]._y:=1]
|
||||||
|
133323 t.dp.dly[3]._y : 1 [by t.dp.dly[2].y:=0]
|
||||||
|
133327 t.dp.dly[3].y : 0 [by t.dp.dly[3]._y:=1]
|
||||||
|
142456 t.dp.mu2[2]._y : 1 [by t.dp.dly[3].y:=0]
|
||||||
|
142471 t.dp._a[3] : 0 [by t.dp.mu2[2]._y:=1]
|
||||||
|
185719 t.dp.and2[3]._y : 1 [by t.dp._a[3]:=0]
|
||||||
|
222650 t.dp.dly[4].a : 0 [by t.dp.and2[3]._y:=1]
|
||||||
|
222705 t.dp.dly[4]._y : 1 [by t.dp.dly[4].a:=0]
|
||||||
|
274358 t.dp.dly[4].y : 0 [by t.dp.dly[4]._y:=1]
|
||||||
|
304138 t.dp.dly[5]._y : 1 [by t.dp.dly[4].y:=0]
|
||||||
|
317987 t.dp.dly[5].y : 0 [by t.dp.dly[5]._y:=1]
|
||||||
|
342799 t.dp.dly[6]._y : 1 [by t.dp.dly[5].y:=0]
|
||||||
|
357142 t.dp.dly[6].y : 0 [by t.dp.dly[6]._y:=1]
|
||||||
|
357564 t.dp.mu2[3]._y : 1 [by t.dp.dly[6].y:=0]
|
||||||
|
406278 t.y : 0 [by t.dp.mu2[3]._y:=1]
|
||||||
|
[] setting high
|
||||||
|
406278 t.a : 1
|
||||||
|
406279 t.dp.and2[0]._y : 0 [by t.a:=1]
|
||||||
|
406280 t.dp.dly[0].a : 1 [by t.dp.and2[0]._y:=0]
|
||||||
|
426485 t.dp.dly[0]._y : 0 [by t.dp.dly[0].a:=1]
|
||||||
|
426767 t.dp.dly[0].y : 1 [by t.dp.dly[0]._y:=0]
|
||||||
|
427535 t.dp.mu2[0]._y : 0 [by t.dp.dly[0].y:=1]
|
||||||
|
427538 t.dp._a[1] : 1 [by t.dp.mu2[0]._y:=0]
|
||||||
|
449979 t.dp.and2[1]._y : 0 [by t.dp._a[1]:=1]
|
||||||
|
450530 t.dp.dly[1].a : 1 [by t.dp.and2[1]._y:=0]
|
||||||
|
451601 t.dp.dly[1]._y : 0 [by t.dp.dly[1].a:=1]
|
||||||
|
452555 t.dp.dly[1].y : 1 [by t.dp.dly[1]._y:=0]
|
||||||
|
453636 t.dp.mu2[1]._y : 0 [by t.dp.dly[1].y:=1]
|
||||||
|
508106 t.dp._a[2] : 1 [by t.dp.mu2[1]._y:=0]
|
||||||
|
509088 t.dp.and2[2]._y : 0 [by t.dp._a[2]:=1]
|
||||||
|
509106 t.dp.dly[2].a : 1 [by t.dp.and2[2]._y:=0]
|
||||||
|
513119 t.dp.dly[2]._y : 0 [by t.dp.dly[2].a:=1]
|
||||||
|
517122 t.dp.dly[2].y : 1 [by t.dp.dly[2]._y:=0]
|
||||||
|
562023 t.dp.dly[3]._y : 0 [by t.dp.dly[2].y:=1]
|
||||||
|
583607 t.dp.dly[3].y : 1 [by t.dp.dly[3]._y:=0]
|
||||||
|
588367 t.dp.mu2[2]._y : 0 [by t.dp.dly[3].y:=1]
|
||||||
|
588869 t.dp._a[3] : 1 [by t.dp.mu2[2]._y:=0]
|
||||||
|
589072 t.dp.and2[3]._y : 0 [by t.dp._a[3]:=1]
|
||||||
|
590926 t.dp.dly[4].a : 1 [by t.dp.and2[3]._y:=0]
|
||||||
|
591065 t.dp.dly[4]._y : 0 [by t.dp.dly[4].a:=1]
|
||||||
|
627411 t.dp.dly[4].y : 1 [by t.dp.dly[4]._y:=0]
|
||||||
|
627480 t.dp.dly[5]._y : 0 [by t.dp.dly[4].y:=1]
|
||||||
|
627491 t.dp.dly[5].y : 1 [by t.dp.dly[5]._y:=0]
|
||||||
|
679277 t.dp.dly[6]._y : 0 [by t.dp.dly[5].y:=1]
|
||||||
|
679481 t.dp.dly[6].y : 1 [by t.dp.dly[6]._y:=0]
|
||||||
|
679496 t.dp.mu2[3]._y : 0 [by t.dp.dly[6].y:=1]
|
||||||
|
679497 t.y : 1 [by t.dp.mu2[3]._y:=0]
|
||||||
|
[] setting low
|
||||||
|
679497 t.a : 0
|
||||||
|
679534 t.dp.and2[0]._y : 1 [by t.a:=0]
|
||||||
|
680273 t.dp.dly[0].a : 0 [by t.dp.and2[0]._y:=1]
|
||||||
|
680385 t.dp.dly[0]._y : 1 [by t.dp.dly[0].a:=0]
|
||||||
|
727897 t.dp.dly[0].y : 0 [by t.dp.dly[0]._y:=1]
|
||||||
|
727937 t.dp.mu2[0]._y : 1 [by t.dp.dly[0].y:=0]
|
||||||
|
728194 t.dp._a[1] : 0 [by t.dp.mu2[0]._y:=1]
|
||||||
|
728281 t.dp.and2[1]._y : 1 [by t.dp._a[1]:=0]
|
||||||
|
728575 t.dp.dly[1].a : 0 [by t.dp.and2[1]._y:=1]
|
||||||
|
728576 t.dp.dly[1]._y : 1 [by t.dp.dly[1].a:=0]
|
||||||
|
730382 t.dp.dly[1].y : 0 [by t.dp.dly[1]._y:=1]
|
||||||
|
732389 t.dp.mu2[1]._y : 1 [by t.dp.dly[1].y:=0]
|
||||||
|
733598 t.dp._a[2] : 0 [by t.dp.mu2[1]._y:=1]
|
||||||
|
734188 t.dp.and2[2]._y : 1 [by t.dp._a[2]:=0]
|
||||||
|
734366 t.dp.dly[2].a : 0 [by t.dp.and2[2]._y:=1]
|
||||||
|
735169 t.dp.dly[2]._y : 1 [by t.dp.dly[2].a:=0]
|
||||||
|
735333 t.dp.dly[2].y : 0 [by t.dp.dly[2]._y:=1]
|
||||||
|
737528 t.dp.dly[3]._y : 1 [by t.dp.dly[2].y:=0]
|
||||||
|
737550 t.dp.dly[3].y : 0 [by t.dp.dly[3]._y:=1]
|
||||||
|
738397 t.dp.mu2[2]._y : 1 [by t.dp.dly[3].y:=0]
|
||||||
|
768525 t.dp._a[3] : 0 [by t.dp.mu2[2]._y:=1]
|
||||||
|
768658 t.dp.and2[3]._y : 1 [by t.dp._a[3]:=0]
|
||||||
|
784320 t.dp.dly[4].a : 0 [by t.dp.and2[3]._y:=1]
|
||||||
|
784679 t.dp.dly[4]._y : 1 [by t.dp.dly[4].a:=0]
|
||||||
|
798795 t.dp.dly[4].y : 0 [by t.dp.dly[4]._y:=1]
|
||||||
|
799016 t.dp.dly[5]._y : 1 [by t.dp.dly[4].y:=0]
|
||||||
|
799023 t.dp.dly[5].y : 0 [by t.dp.dly[5]._y:=1]
|
||||||
|
799053 t.dp.dly[6]._y : 1 [by t.dp.dly[5].y:=0]
|
||||||
|
805766 t.dp.dly[6].y : 0 [by t.dp.dly[6]._y:=1]
|
||||||
|
863227 t.dp.mu2[3]._y : 1 [by t.dp.dly[6].y:=0]
|
||||||
|
863318 t.y : 0 [by t.dp.mu2[3]._y:=1]
|
||||||
|
[] setting configs low
|
||||||
|
863318 t.s[0] : 0
|
||||||
|
863318 t.s[3] : 0
|
||||||
|
863318 t.s[2] : 0
|
||||||
|
863318 t.s[1] : 0
|
||||||
|
863325 t.dp.mu2[3]._s : 1 [by t.s[3]:=0]
|
||||||
|
863424 t.dp.mu2[1]._s : 1 [by t.s[1]:=0]
|
||||||
|
865507 t.dp.mu2[0]._s : 1 [by t.s[0]:=0]
|
||||||
|
866105 t.dp.mu2[2]._s : 1 [by t.s[2]:=0]
|
||||||
|
[] setting high
|
||||||
|
866105 t.a : 1
|
||||||
|
866183 t.dp.mu2[0]._y : 0 [by t.a:=1]
|
||||||
|
866458 t.dp._a[1] : 1 [by t.dp.mu2[0]._y:=0]
|
||||||
|
885454 t.dp.mu2[1]._y : 0 [by t.dp._a[1]:=1]
|
||||||
|
885909 t.dp._a[2] : 1 [by t.dp.mu2[1]._y:=0]
|
||||||
|
885921 t.dp.mu2[2]._y : 0 [by t.dp._a[2]:=1]
|
||||||
|
886325 t.dp._a[3] : 1 [by t.dp.mu2[2]._y:=0]
|
||||||
|
886337 t.dp.mu2[3]._y : 0 [by t.dp._a[3]:=1]
|
||||||
|
892253 t.y : 1 [by t.dp.mu2[3]._y:=0]
|
||||||
|
[] setting low
|
||||||
|
892253 t.a : 0
|
||||||
|
896529 t.dp.mu2[0]._y : 1 [by t.a:=0]
|
||||||
|
899428 t.dp._a[1] : 0 [by t.dp.mu2[0]._y:=1]
|
||||||
|
903723 t.dp.mu2[1]._y : 1 [by t.dp._a[1]:=0]
|
||||||
|
903725 t.dp._a[2] : 0 [by t.dp.mu2[1]._y:=1]
|
||||||
|
908260 t.dp.mu2[2]._y : 1 [by t.dp._a[2]:=0]
|
||||||
|
909509 t.dp._a[3] : 0 [by t.dp.mu2[2]._y:=1]
|
||||||
|
913008 t.dp.mu2[3]._y : 1 [by t.dp._a[3]:=0]
|
||||||
|
913174 t.y : 0 [by t.dp.mu2[3]._y:=1]
|
BIN
test/unit_tests/delayprog_4/run/prsim.pdf
Normal file
BIN
test/unit_tests/delayprog_4/run/prsim.pdf
Normal file
Binary file not shown.
190
test/unit_tests/delayprog_4/run/test.prs
Normal file
190
test/unit_tests/delayprog_4/run/test.prs
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
= "GND" "GND"
|
||||||
|
= "Vdd" "Vdd"
|
||||||
|
= "Reset" "Reset"
|
||||||
|
= "t.y" "t.dp.y"
|
||||||
|
= "t.a" "t.dp.a"
|
||||||
|
= "t.dp.a" "t.dp.mu2[0].a"
|
||||||
|
= "t.dp.a" "t.dp.and2[0].a"
|
||||||
|
= "t.dp.a" "t.dp._a[0]"
|
||||||
|
"t.dp.and2[0].a"&"t.dp.and2[0].b"->"t.dp.and2[0]._y"-
|
||||||
|
~("t.dp.and2[0].a"&"t.dp.and2[0].b")->"t.dp.and2[0]._y"+
|
||||||
|
"t.dp.and2[0]._y"->"t.dp.and2[0].y"-
|
||||||
|
~("t.dp.and2[0]._y")->"t.dp.and2[0].y"+
|
||||||
|
"t.dp.and2[1].a"&"t.dp.and2[1].b"->"t.dp.and2[1]._y"-
|
||||||
|
~("t.dp.and2[1].a"&"t.dp.and2[1].b")->"t.dp.and2[1]._y"+
|
||||||
|
"t.dp.and2[1]._y"->"t.dp.and2[1].y"-
|
||||||
|
~("t.dp.and2[1]._y")->"t.dp.and2[1].y"+
|
||||||
|
"t.dp.and2[2].a"&"t.dp.and2[2].b"->"t.dp.and2[2]._y"-
|
||||||
|
~("t.dp.and2[2].a"&"t.dp.and2[2].b")->"t.dp.and2[2]._y"+
|
||||||
|
"t.dp.and2[2]._y"->"t.dp.and2[2].y"-
|
||||||
|
~("t.dp.and2[2]._y")->"t.dp.and2[2].y"+
|
||||||
|
"t.dp.and2[3].a"&"t.dp.and2[3].b"->"t.dp.and2[3]._y"-
|
||||||
|
~("t.dp.and2[3].a"&"t.dp.and2[3].b")->"t.dp.and2[3]._y"+
|
||||||
|
"t.dp.and2[3]._y"->"t.dp.and2[3].y"-
|
||||||
|
~("t.dp.and2[3]._y")->"t.dp.and2[3].y"+
|
||||||
|
= "t.dp.s[0]" "t.dp.mu2[0].s"
|
||||||
|
= "t.dp.s[0]" "t.dp.and2[0].b"
|
||||||
|
= "t.dp.s[1]" "t.dp.mu2[1].s"
|
||||||
|
= "t.dp.s[1]" "t.dp.and2[1].b"
|
||||||
|
= "t.dp.s[2]" "t.dp.mu2[2].s"
|
||||||
|
= "t.dp.s[2]" "t.dp.and2[2].b"
|
||||||
|
= "t.dp.s[3]" "t.dp.mu2[3].s"
|
||||||
|
= "t.dp.s[3]" "t.dp.and2[3].b"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[14].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[13].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[12].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[11].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[10].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[9].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[8].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[7].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[6].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[5].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[4].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[3].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[2].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[1].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.dly[0].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.mu2[3].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.mu2[2].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.mu2[1].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.mu2[0].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.and2[3].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.and2[2].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.and2[1].vdd"
|
||||||
|
= "t.dp.supply.vdd" "t.dp.and2[0].vdd"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[14].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[13].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[12].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[11].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[10].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[9].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[8].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[7].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[6].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[5].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[4].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[3].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[2].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[1].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.dly[0].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.mu2[3].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.mu2[2].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.mu2[1].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.mu2[0].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.and2[3].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.and2[2].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.and2[1].vss"
|
||||||
|
= "t.dp.supply.vss" "t.dp.and2[0].vss"
|
||||||
|
"t.dp.mu2[0].s"->"t.dp.mu2[0]._s"-
|
||||||
|
~("t.dp.mu2[0].s")->"t.dp.mu2[0]._s"+
|
||||||
|
~"t.dp.mu2[0].a"&~"t.dp.mu2[0].s"|~"t.dp.mu2[0].b"&~"t.dp.mu2[0]._s"->"t.dp.mu2[0]._y"+
|
||||||
|
"t.dp.mu2[0].a"&"t.dp.mu2[0]._s"|"t.dp.mu2[0].b"&"t.dp.mu2[0].s"->"t.dp.mu2[0]._y"-
|
||||||
|
"t.dp.mu2[0]._y"->"t.dp.mu2[0].y"-
|
||||||
|
~("t.dp.mu2[0]._y")->"t.dp.mu2[0].y"+
|
||||||
|
"t.dp.mu2[1].s"->"t.dp.mu2[1]._s"-
|
||||||
|
~("t.dp.mu2[1].s")->"t.dp.mu2[1]._s"+
|
||||||
|
~"t.dp.mu2[1].a"&~"t.dp.mu2[1].s"|~"t.dp.mu2[1].b"&~"t.dp.mu2[1]._s"->"t.dp.mu2[1]._y"+
|
||||||
|
"t.dp.mu2[1].a"&"t.dp.mu2[1]._s"|"t.dp.mu2[1].b"&"t.dp.mu2[1].s"->"t.dp.mu2[1]._y"-
|
||||||
|
"t.dp.mu2[1]._y"->"t.dp.mu2[1].y"-
|
||||||
|
~("t.dp.mu2[1]._y")->"t.dp.mu2[1].y"+
|
||||||
|
"t.dp.mu2[2].s"->"t.dp.mu2[2]._s"-
|
||||||
|
~("t.dp.mu2[2].s")->"t.dp.mu2[2]._s"+
|
||||||
|
~"t.dp.mu2[2].a"&~"t.dp.mu2[2].s"|~"t.dp.mu2[2].b"&~"t.dp.mu2[2]._s"->"t.dp.mu2[2]._y"+
|
||||||
|
"t.dp.mu2[2].a"&"t.dp.mu2[2]._s"|"t.dp.mu2[2].b"&"t.dp.mu2[2].s"->"t.dp.mu2[2]._y"-
|
||||||
|
"t.dp.mu2[2]._y"->"t.dp.mu2[2].y"-
|
||||||
|
~("t.dp.mu2[2]._y")->"t.dp.mu2[2].y"+
|
||||||
|
"t.dp.mu2[3].s"->"t.dp.mu2[3]._s"-
|
||||||
|
~("t.dp.mu2[3].s")->"t.dp.mu2[3]._s"+
|
||||||
|
~"t.dp.mu2[3].a"&~"t.dp.mu2[3].s"|~"t.dp.mu2[3].b"&~"t.dp.mu2[3]._s"->"t.dp.mu2[3]._y"+
|
||||||
|
"t.dp.mu2[3].a"&"t.dp.mu2[3]._s"|"t.dp.mu2[3].b"&"t.dp.mu2[3].s"->"t.dp.mu2[3]._y"-
|
||||||
|
"t.dp.mu2[3]._y"->"t.dp.mu2[3].y"-
|
||||||
|
~("t.dp.mu2[3]._y")->"t.dp.mu2[3].y"+
|
||||||
|
"t.dp.dly[0].a"->"t.dp.dly[0]._y"-
|
||||||
|
~("t.dp.dly[0].a")->"t.dp.dly[0]._y"+
|
||||||
|
"t.dp.dly[0]._y"->"t.dp.dly[0].y"-
|
||||||
|
~("t.dp.dly[0]._y")->"t.dp.dly[0].y"+
|
||||||
|
"t.dp.dly[1].a"->"t.dp.dly[1]._y"-
|
||||||
|
~("t.dp.dly[1].a")->"t.dp.dly[1]._y"+
|
||||||
|
"t.dp.dly[1]._y"->"t.dp.dly[1].y"-
|
||||||
|
~("t.dp.dly[1]._y")->"t.dp.dly[1].y"+
|
||||||
|
"t.dp.dly[2].a"->"t.dp.dly[2]._y"-
|
||||||
|
~("t.dp.dly[2].a")->"t.dp.dly[2]._y"+
|
||||||
|
"t.dp.dly[2]._y"->"t.dp.dly[2].y"-
|
||||||
|
~("t.dp.dly[2]._y")->"t.dp.dly[2].y"+
|
||||||
|
"t.dp.dly[3].a"->"t.dp.dly[3]._y"-
|
||||||
|
~("t.dp.dly[3].a")->"t.dp.dly[3]._y"+
|
||||||
|
"t.dp.dly[3]._y"->"t.dp.dly[3].y"-
|
||||||
|
~("t.dp.dly[3]._y")->"t.dp.dly[3].y"+
|
||||||
|
"t.dp.dly[4].a"->"t.dp.dly[4]._y"-
|
||||||
|
~("t.dp.dly[4].a")->"t.dp.dly[4]._y"+
|
||||||
|
"t.dp.dly[4]._y"->"t.dp.dly[4].y"-
|
||||||
|
~("t.dp.dly[4]._y")->"t.dp.dly[4].y"+
|
||||||
|
"t.dp.dly[5].a"->"t.dp.dly[5]._y"-
|
||||||
|
~("t.dp.dly[5].a")->"t.dp.dly[5]._y"+
|
||||||
|
"t.dp.dly[5]._y"->"t.dp.dly[5].y"-
|
||||||
|
~("t.dp.dly[5]._y")->"t.dp.dly[5].y"+
|
||||||
|
"t.dp.dly[6].a"->"t.dp.dly[6]._y"-
|
||||||
|
~("t.dp.dly[6].a")->"t.dp.dly[6]._y"+
|
||||||
|
"t.dp.dly[6]._y"->"t.dp.dly[6].y"-
|
||||||
|
~("t.dp.dly[6]._y")->"t.dp.dly[6].y"+
|
||||||
|
"t.dp.dly[7].a"->"t.dp.dly[7]._y"-
|
||||||
|
~("t.dp.dly[7].a")->"t.dp.dly[7]._y"+
|
||||||
|
"t.dp.dly[7]._y"->"t.dp.dly[7].y"-
|
||||||
|
~("t.dp.dly[7]._y")->"t.dp.dly[7].y"+
|
||||||
|
"t.dp.dly[8].a"->"t.dp.dly[8]._y"-
|
||||||
|
~("t.dp.dly[8].a")->"t.dp.dly[8]._y"+
|
||||||
|
"t.dp.dly[8]._y"->"t.dp.dly[8].y"-
|
||||||
|
~("t.dp.dly[8]._y")->"t.dp.dly[8].y"+
|
||||||
|
"t.dp.dly[9].a"->"t.dp.dly[9]._y"-
|
||||||
|
~("t.dp.dly[9].a")->"t.dp.dly[9]._y"+
|
||||||
|
"t.dp.dly[9]._y"->"t.dp.dly[9].y"-
|
||||||
|
~("t.dp.dly[9]._y")->"t.dp.dly[9].y"+
|
||||||
|
"t.dp.dly[10].a"->"t.dp.dly[10]._y"-
|
||||||
|
~("t.dp.dly[10].a")->"t.dp.dly[10]._y"+
|
||||||
|
"t.dp.dly[10]._y"->"t.dp.dly[10].y"-
|
||||||
|
~("t.dp.dly[10]._y")->"t.dp.dly[10].y"+
|
||||||
|
"t.dp.dly[11].a"->"t.dp.dly[11]._y"-
|
||||||
|
~("t.dp.dly[11].a")->"t.dp.dly[11]._y"+
|
||||||
|
"t.dp.dly[11]._y"->"t.dp.dly[11].y"-
|
||||||
|
~("t.dp.dly[11]._y")->"t.dp.dly[11].y"+
|
||||||
|
"t.dp.dly[12].a"->"t.dp.dly[12]._y"-
|
||||||
|
~("t.dp.dly[12].a")->"t.dp.dly[12]._y"+
|
||||||
|
"t.dp.dly[12]._y"->"t.dp.dly[12].y"-
|
||||||
|
~("t.dp.dly[12]._y")->"t.dp.dly[12].y"+
|
||||||
|
"t.dp.dly[13].a"->"t.dp.dly[13]._y"-
|
||||||
|
~("t.dp.dly[13].a")->"t.dp.dly[13]._y"+
|
||||||
|
"t.dp.dly[13]._y"->"t.dp.dly[13].y"-
|
||||||
|
~("t.dp.dly[13]._y")->"t.dp.dly[13].y"+
|
||||||
|
"t.dp.dly[14].a"->"t.dp.dly[14]._y"-
|
||||||
|
~("t.dp.dly[14].a")->"t.dp.dly[14]._y"+
|
||||||
|
"t.dp.dly[14]._y"->"t.dp.dly[14].y"-
|
||||||
|
~("t.dp.dly[14]._y")->"t.dp.dly[14].y"+
|
||||||
|
= "t.dp.dly[6].y" "t.dp.mu2[3].b"
|
||||||
|
= "t.dp.dly[6].a" "t.dp.dly[5].y"
|
||||||
|
= "t.dp.dly[5].a" "t.dp.dly[4].y"
|
||||||
|
= "t.dp.dly[4].a" "t.dp.and2[3].y"
|
||||||
|
= "t.dp.dly[3].y" "t.dp.mu2[2].b"
|
||||||
|
= "t.dp.dly[3].a" "t.dp.dly[2].y"
|
||||||
|
= "t.dp.dly[2].a" "t.dp.and2[2].y"
|
||||||
|
= "t.dp.dly[1].y" "t.dp.mu2[1].b"
|
||||||
|
= "t.dp.dly[1].a" "t.dp.and2[1].y"
|
||||||
|
= "t.dp.dly[0].y" "t.dp.mu2[0].b"
|
||||||
|
= "t.dp.dly[0].a" "t.dp.and2[0].y"
|
||||||
|
= "t.dp._a[1]" "t.dp.mu2[1].a"
|
||||||
|
= "t.dp._a[1]" "t.dp.and2[1].a"
|
||||||
|
= "t.dp._a[1]" "t.dp.mu2[0].y"
|
||||||
|
= "t.dp._a[2]" "t.dp.mu2[2].a"
|
||||||
|
= "t.dp._a[2]" "t.dp.and2[2].a"
|
||||||
|
= "t.dp._a[2]" "t.dp.mu2[1].y"
|
||||||
|
= "t.dp._a[3]" "t.dp.mu2[3].a"
|
||||||
|
= "t.dp._a[3]" "t.dp.and2[3].a"
|
||||||
|
= "t.dp._a[3]" "t.dp.mu2[2].y"
|
||||||
|
= "t.dp.y" "t.dp.mu2[3].y"
|
||||||
|
= "t.dp.y" "t.dp._a[4]"
|
||||||
|
= "Vdd" "t.dp.supply.vdd"
|
||||||
|
= "GND" "t.dp.supply.vss"
|
||||||
|
= "t.s[0]" "t.dp.s[0]"
|
||||||
|
= "t.s[1]" "t.dp.s[1]"
|
||||||
|
= "t.s[2]" "t.dp.s[2]"
|
||||||
|
= "t.s[3]" "t.dp.s[3]"
|
41
test/unit_tests/delayprog_4/test.act
Normal file
41
test/unit_tests/delayprog_4/test.act
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* This file is part of ACT dataflow neuro library.
|
||||||
|
* It's the testing facility for cell_lib_std.act
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
|
*
|
||||||
|
* You may redistribute and modify this documentation and make products
|
||||||
|
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
|
||||||
|
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
|
||||||
|
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
|
||||||
|
* for applicable conditions.
|
||||||
|
*
|
||||||
|
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
|
||||||
|
*
|
||||||
|
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
|
||||||
|
* these sources, You must maintain the Source Location visible in its
|
||||||
|
* documentation.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
import "../../dataflow_neuro/primitives.act";
|
||||||
|
import globals;
|
||||||
|
|
||||||
|
open tmpl::dataflow_neuro;
|
||||||
|
|
||||||
|
defproc delayprog_4 (bool? s[4], a; bool! y){
|
||||||
|
delayprog<4> dp(.a=a, .y=y, .s = s);
|
||||||
|
dp.supply.vss = GND;
|
||||||
|
dp.supply.vdd = Vdd;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
delayprog_4 t;
|
42
test/unit_tests/delayprog_4/test.prsim
Normal file
42
test/unit_tests/delayprog_4/test.prsim
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
watchall
|
||||||
|
|
||||||
|
system "echo '0'"
|
||||||
|
|
||||||
|
set t.a 0
|
||||||
|
set t.s[0] 1
|
||||||
|
set t.s[1] 1
|
||||||
|
set t.s[2] 1
|
||||||
|
set t.s[3] 1
|
||||||
|
|
||||||
|
cycle
|
||||||
|
mode run
|
||||||
|
|
||||||
|
assert t.y 0
|
||||||
|
|
||||||
|
system "echo '[] setting high'"
|
||||||
|
set t.a 1
|
||||||
|
cycle
|
||||||
|
assert t.y 1
|
||||||
|
|
||||||
|
system "echo '[] setting low'"
|
||||||
|
set t.a 0
|
||||||
|
cycle
|
||||||
|
assert t.y 0
|
||||||
|
|
||||||
|
system "echo '[] setting configs low'"
|
||||||
|
set t.s[0] 0
|
||||||
|
set t.s[1] 0
|
||||||
|
set t.s[2] 0
|
||||||
|
set t.s[3] 0
|
||||||
|
cycle
|
||||||
|
assert t.y 0
|
||||||
|
|
||||||
|
system "echo '[] setting high'"
|
||||||
|
set t.a 1
|
||||||
|
cycle
|
||||||
|
assert t.y 1
|
||||||
|
|
||||||
|
system "echo '[] setting low'"
|
||||||
|
set t.a 0
|
||||||
|
cycle
|
||||||
|
assert t.y 0
|
197
test/unit_tests/demux_td_2/run/prsim.out
Normal file
197
test/unit_tests/demux_td_2/run/prsim.out
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
my_demux.my_demux.out1_f_buf_func[1].n1 my_demux.my_demux.out1_t_buf_func[1].n1 my_demux.my_demux._out1_a_BX_f[0] my_demux.my_demux.out1_en_buf_t.buf1._y my_demux.my_demux.token_a_out my_demux.my_demux._out_v my_demux.my_demux._in_v my_demux.my_demux._c_d_buf[0] my_demux.my_demux._en my_demux.my_demux.vc.OR2_tf[1].y my_demux.my_demux.cond_inv_f my_demux.my_demux._out1_a_B my_demux.my_demux.invout_f.a my_demux.my_demux._out1_a_BX_t[0] my_demux.in.v my_demux.my_demux._c_v my_demux.my_demux.invout_t.a my_demux.my_demux.out1_f_buf_func[0].n1 my_demux.out1.v my_demux.my_demux.out1_t_buf_func[0].n1 my_demux.my_demux.cond_inv_t my_demux.out1.a my_demux.my_demux._en1_X_f[0] my_demux.my_demux.out_or._y my_demux.my_demux._en1_X_t[0] my_demux.my_demux.vc.OR2_tf[0]._y my_demux.my_demux.in_v_buf._y my_demux.my_demux.vc.OR2_tf[0].y my_demux.token.a my_demux.my_demux.vc.OR2_tf[1]._y my_demux.my_demux._in_c_v_ my_demux.my_demux.c_buf_tk_inv._y my_demux.my_demux.c_f_c_t_or._y my_demux.my_demux.out1_en_buf_f.buf1._y my_demux.my_demux.c_buf_d_inv.buf1._y my_demux.my_demux._c_tk_buf my_demux.my_demux.vc.myctree.C2Els[0]._y my_demux.my_demux.out1_a_B_buf_f.buf1._y my_demux.my_demux.c_el._y my_demux.my_demux.out1_a_B_buf_t.buf1._y
|
||||||
|
83058 my_demux.my_demux.out1_f_buf_func[0].n1 : 0
|
||||||
|
83058 my_demux.my_demux.invout_f.a : 0
|
||||||
|
83058 my_demux.my_demux.invout_t.a : 0
|
||||||
|
83058 my_demux.my_demux.out1_f_buf_func[1].n1 : 0
|
||||||
|
83058 my_demux.token.a : 0
|
||||||
|
83058 my_demux.out1.v : 0
|
||||||
|
83058 my_demux.my_demux.out1_t_buf_func[0].n1 : 0
|
||||||
|
83058 my_demux.out1.a : 0
|
||||||
|
83058 my_demux.my_demux.out1_t_buf_func[1].n1 : 0
|
||||||
|
83062 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.invout_t.a:=0]
|
||||||
|
83073 my_demux.my_demux.out_or._y : 1 [by my_demux.out1.v:=0]
|
||||||
|
83113 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0]
|
||||||
|
92187 my_demux.my_demux.token_a_out : 1 [by my_demux.token.a:=0]
|
||||||
|
96782 my_demux.my_demux.cond_inv_t : 1 [by my_demux.my_demux.invout_t.a:=0]
|
||||||
|
96962 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1]
|
||||||
|
112853 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1]
|
||||||
|
119989 my_demux.my_demux._out1_a_B : 1 [by my_demux.out1.a:=0]
|
||||||
|
120411 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1]
|
||||||
|
120412 my_demux.my_demux._out1_a_BX_t[0] : 1 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=0]
|
||||||
|
121594 my_demux.my_demux.c_buf_tk_inv._y : 0 [by my_demux.my_demux.cond_inv_t:=1]
|
||||||
|
121595 my_demux.my_demux._c_tk_buf : 1 [by my_demux.my_demux.c_buf_tk_inv._y:=0]
|
||||||
|
126306 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0]
|
||||||
|
127156 my_demux.my_demux.cond_inv_f : 1 [by my_demux.my_demux.invout_f.a:=0]
|
||||||
|
127196 my_demux.my_demux._en : 1 [by my_demux.my_demux._out_v:=0]
|
||||||
|
127199 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
127438 my_demux.my_demux.c_buf_d_inv.buf1._y : 0 [by my_demux.my_demux.cond_inv_f:=1]
|
||||||
|
127964 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
127989 my_demux.my_demux._c_d_buf[0] : 1 [by my_demux.my_demux.c_buf_d_inv.buf1._y:=0]
|
||||||
|
129035 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0]
|
||||||
|
134715 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1]
|
||||||
|
146511 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1]
|
||||||
|
147465 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[0].y:=0]
|
||||||
|
148546 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1]
|
||||||
|
149528 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._in_v:=0]
|
||||||
|
149546 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1]
|
||||||
|
149640 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0]
|
||||||
|
168703 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1]
|
||||||
|
172716 my_demux.my_demux._out1_a_BX_f[0] : 1 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=0]
|
||||||
|
203016 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0]
|
||||||
|
207019 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1]
|
||||||
|
System initialized
|
||||||
|
207019 Reset : 0
|
||||||
|
251920 my_demux._reset_B : 1 [by Reset:=0]
|
||||||
|
273504 my_demux.my_demux.reset_buf._y : 0 [by my_demux._reset_B:=1]
|
||||||
|
278264 my_demux.my_demux._reset_BX : 1 [by my_demux.my_demux.reset_buf._y:=0]
|
||||||
|
278467 my_demux.my_demux.reset_buf_token._y : 0 [by my_demux.my_demux._reset_BX:=1]
|
||||||
|
278766 my_demux.my_demux.reset_bufarray.buf1._y : 0 [by my_demux.my_demux._reset_BX:=1]
|
||||||
|
278905 my_demux.my_demux._reset_BXX[0] : 1 [by my_demux.my_demux.reset_bufarray.buf1._y:=0]
|
||||||
|
280321 my_demux.my_demux._reset_BXt : 1 [by my_demux.my_demux.reset_buf_token._y:=0]
|
||||||
|
System reset completed
|
||||||
|
|
||||||
|
Output neutral checked
|
||||||
|
280321 my_demux.my_demux.invout_t.a : 1
|
||||||
|
280321 my_demux.my_demux.out1_t_buf_func[1].n1 : 1
|
||||||
|
280321 my_demux.my_demux.out1_t_buf_func[0].n1 : 1
|
||||||
|
280332 my_demux.my_demux.vc.OR2_tf[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1]
|
||||||
|
280333 my_demux.my_demux.vc.OR2_tf[1].y : 1 [by my_demux.my_demux.vc.OR2_tf[1]._y:=0]
|
||||||
|
280336 my_demux.my_demux.out1_t_buf_func[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1]
|
||||||
|
280373 my_demux.my_demux.out1_t_buf_func[0].y : 1 [by my_demux.my_demux.out1_t_buf_func[0]._y:=0]
|
||||||
|
280390 my_demux.my_demux.c_f_c_t_or._y : 0 [by my_demux.my_demux.invout_t.a:=1]
|
||||||
|
280525 my_demux.my_demux.vc.OR2_tf[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1]
|
||||||
|
280637 my_demux.my_demux.vc.OR2_tf[0].y : 1 [by my_demux.my_demux.vc.OR2_tf[0]._y:=0]
|
||||||
|
281129 my_demux.my_demux._c_v : 1 [by my_demux.my_demux.c_f_c_t_or._y:=0]
|
||||||
|
316667 my_demux.my_demux.cond_inv_t : 0 [by my_demux.my_demux.invout_t.a:=1]
|
||||||
|
316707 my_demux.my_demux.c_buf_tk_inv._y : 1 [by my_demux.my_demux.cond_inv_t:=0]
|
||||||
|
316964 my_demux.my_demux._c_tk_buf : 0 [by my_demux.my_demux.c_buf_tk_inv._y:=1]
|
||||||
|
328149 my_demux.my_demux.vc.myctree.C2Els[0]._y : 0 [by my_demux.my_demux.vc.OR2_tf[0].y:=1]
|
||||||
|
328236 my_demux.my_demux._in_v : 1 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=0]
|
||||||
|
328237 my_demux.my_demux.c_el._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
328530 my_demux.my_demux.in_v_buf._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
330043 my_demux.my_demux._in_c_v_ : 1 [by my_demux.my_demux.c_el._y:=0]
|
||||||
|
330537 my_demux.in.v : 1 [by my_demux.my_demux.in_v_buf._y:=0]
|
||||||
|
332107 my_demux.my_demux.out1_t_buf_func[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1]
|
||||||
|
333316 my_demux.my_demux.out1_t_buf_func[1].y : 1 [by my_demux.my_demux.out1_t_buf_func[1]._y:=0]
|
||||||
|
333316 my_demux.out1.v : 1
|
||||||
|
333906 my_demux.my_demux.out_or._y : 0 [by my_demux.out1.v:=1]
|
||||||
|
334084 my_demux.my_demux._out_v : 1 [by my_demux.my_demux.out_or._y:=0]
|
||||||
|
334887 my_demux.my_demux.inack_ctl._y : 0 [by my_demux.my_demux._out_v:=1]
|
||||||
|
335051 my_demux.in.a : 1 [by my_demux.my_demux.inack_ctl._y:=0]
|
||||||
|
337246 my_demux.my_demux._en : 0 [by my_demux.in.a:=1]
|
||||||
|
337268 my_demux.my_demux.out1_en_buf_t.buf1._y : 1 [by my_demux.my_demux._en:=0]
|
||||||
|
338093 my_demux.my_demux.out1_en_buf_f.buf1._y : 1 [by my_demux.my_demux._en:=0]
|
||||||
|
338226 my_demux.my_demux._en1_X_f[0] : 0 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=1]
|
||||||
|
367396 my_demux.my_demux._en1_X_t[0] : 0 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=1]
|
||||||
|
367396 my_demux.my_demux.out1_t_buf_func[0].n1 : 0
|
||||||
|
367396 my_demux.my_demux.out1_t_buf_func[1].n1 : 0
|
||||||
|
367755 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0]
|
||||||
|
381871 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1]
|
||||||
|
383058 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0]
|
||||||
|
383279 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1]
|
||||||
|
383286 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[0].y:=0]
|
||||||
|
383316 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1]
|
||||||
|
390029 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0]
|
||||||
|
447490 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1]
|
||||||
|
447490 my_demux.out1.a : 1
|
||||||
|
447581 my_demux.my_demux._out1_a_B : 0 [by my_demux.out1.a:=1]
|
||||||
|
447588 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 1 [by my_demux.my_demux._out1_a_B:=0]
|
||||||
|
449770 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 1 [by my_demux.my_demux._out1_a_B:=0]
|
||||||
|
449876 my_demux.my_demux._out1_a_BX_t[0] : 0 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=1]
|
||||||
|
449954 my_demux.my_demux.out1_t_buf_func[0]._y : 1 [by my_demux.my_demux._out1_a_BX_t[0]:=0]
|
||||||
|
450151 my_demux.my_demux.out1_t_buf_func[1]._y : 1 [by my_demux.my_demux._out1_a_BX_t[0]:=0]
|
||||||
|
450375 my_demux.my_demux._out1_a_BX_f[0] : 0 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=1]
|
||||||
|
450606 my_demux.my_demux.out1_t_buf_func[1].y : 0 [by my_demux.my_demux.out1_t_buf_func[1]._y:=1]
|
||||||
|
468950 my_demux.my_demux.out1_t_buf_func[0].y : 0 [by my_demux.my_demux.out1_t_buf_func[0]._y:=1]
|
||||||
|
First Cond Checked
|
||||||
|
468950 my_demux.my_demux.invout_t.a : 0
|
||||||
|
468950 my_demux.out1.v : 0
|
||||||
|
468950 my_demux.out1.a : 0
|
||||||
|
468962 my_demux.my_demux.cond_inv_t : 1 [by my_demux.my_demux.invout_t.a:=0]
|
||||||
|
468962 my_demux.my_demux.out_or._y : 1 [by my_demux.out1.v:=0]
|
||||||
|
469354 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.invout_t.a:=0]
|
||||||
|
471861 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1]
|
||||||
|
473238 my_demux.my_demux.c_buf_tk_inv._y : 0 [by my_demux.my_demux.cond_inv_t:=1]
|
||||||
|
473240 my_demux.my_demux._c_tk_buf : 1 [by my_demux.my_demux.c_buf_tk_inv._y:=0]
|
||||||
|
473649 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1]
|
||||||
|
474866 my_demux.my_demux._out1_a_B : 1 [by my_demux.out1.a:=0]
|
||||||
|
476115 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1]
|
||||||
|
476281 my_demux.my_demux._out1_a_BX_t[0] : 1 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=0]
|
||||||
|
478184 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._c_v:=0]
|
||||||
|
478259 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1]
|
||||||
|
478365 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1]
|
||||||
|
478503 my_demux.my_demux._out1_a_BX_f[0] : 1 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=0]
|
||||||
|
478604 my_demux.my_demux.inack_ctl._y : 1 [by my_demux.my_demux._in_c_v_:=0]
|
||||||
|
483867 my_demux.in.a : 0 [by my_demux.my_demux.inack_ctl._y:=1]
|
||||||
|
483869 my_demux.my_demux._en : 1 [by my_demux.in.a:=0]
|
||||||
|
483870 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
484418 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0]
|
||||||
|
527786 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
527797 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0]
|
||||||
|
System initialized
|
||||||
|
527797 my_demux.my_demux.invout_f.a : 1
|
||||||
|
527797 my_demux.my_demux.out1_t_buf_func[1].n1 : 1
|
||||||
|
527797 my_demux.my_demux.out1_t_buf_func[0].n1 : 1
|
||||||
|
527813 my_demux.my_demux.out1_t_buf_func[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1]
|
||||||
|
527864 my_demux.my_demux.c_f_c_t_or._y : 0 [by my_demux.my_demux.invout_f.a:=1]
|
||||||
|
528167 my_demux.my_demux.cond_inv_f : 0 [by my_demux.my_demux.invout_f.a:=1]
|
||||||
|
528325 my_demux.my_demux.out1_t_buf_func[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1]
|
||||||
|
530248 my_demux.my_demux.out1_t_buf_func[1].y : 1 [by my_demux.my_demux.out1_t_buf_func[1]._y:=0]
|
||||||
|
530438 my_demux.my_demux.vc.OR2_tf[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1]
|
||||||
|
530440 my_demux.my_demux.vc.OR2_tf[1].y : 1 [by my_demux.my_demux.vc.OR2_tf[1]._y:=0]
|
||||||
|
532359 my_demux.my_demux.vc.OR2_tf[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1]
|
||||||
|
541366 my_demux.my_demux.out1_t_buf_func[0].y : 1 [by my_demux.my_demux.out1_t_buf_func[0]._y:=0]
|
||||||
|
552092 my_demux.my_demux.c_buf_d_inv.buf1._y : 1 [by my_demux.my_demux.cond_inv_f:=0]
|
||||||
|
552095 my_demux.my_demux._c_d_buf[0] : 0 [by my_demux.my_demux.c_buf_d_inv.buf1._y:=1]
|
||||||
|
554744 my_demux.my_demux._c_v : 1 [by my_demux.my_demux.c_f_c_t_or._y:=0]
|
||||||
|
593317 my_demux.my_demux.vc.OR2_tf[0].y : 1 [by my_demux.my_demux.vc.OR2_tf[0]._y:=0]
|
||||||
|
593346 my_demux.my_demux.vc.myctree.C2Els[0]._y : 0 [by my_demux.my_demux.vc.OR2_tf[0].y:=1]
|
||||||
|
593663 my_demux.my_demux._in_v : 1 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=0]
|
||||||
|
593707 my_demux.my_demux.c_el._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
593816 my_demux.my_demux.in_v_buf._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
595264 my_demux.my_demux.token_buf._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
595265 my_demux.token.r : 1 [by my_demux.my_demux.token_buf._y:=0]
|
||||||
|
595482 my_demux.my_demux.out_or._y : 0 [by my_demux.token.r:=1]
|
||||||
|
595504 my_demux.my_demux._out_v : 1 [by my_demux.my_demux.out_or._y:=0]
|
||||||
|
596468 my_demux.my_demux._in_c_v_ : 1 [by my_demux.my_demux.c_el._y:=0]
|
||||||
|
596469 my_demux.my_demux.inack_ctl._y : 0 [by my_demux.my_demux._in_c_v_:=1]
|
||||||
|
598050 my_demux.in.a : 1 [by my_demux.my_demux.inack_ctl._y:=0]
|
||||||
|
607395 my_demux.my_demux._en : 0 [by my_demux.in.a:=1]
|
||||||
|
607499 my_demux.in.v : 1 [by my_demux.my_demux.in_v_buf._y:=0]
|
||||||
|
607554 my_demux.my_demux.out1_en_buf_t.buf1._y : 1 [by my_demux.my_demux._en:=0]
|
||||||
|
608841 my_demux.my_demux._en1_X_t[0] : 0 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=1]
|
||||||
|
627071 my_demux.my_demux.out1_en_buf_f.buf1._y : 1 [by my_demux.my_demux._en:=0]
|
||||||
|
629303 my_demux.my_demux._en1_X_f[0] : 0 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=1]
|
||||||
|
629303 my_demux.token.a : 1
|
||||||
|
629448 my_demux.my_demux.token_a_out : 0 [by my_demux.token.a:=1]
|
||||||
|
632280 my_demux.my_demux.token_buf._y : 1 [by my_demux.my_demux.token_a_out:=0]
|
||||||
|
638634 my_demux.token.r : 0 [by my_demux.my_demux.token_buf._y:=1]
|
||||||
|
638635 my_demux.my_demux.out_or._y : 1 [by my_demux.token.r:=0]
|
||||||
|
677919 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1]
|
||||||
|
677919 my_demux.token.a : 0
|
||||||
|
677919 my_demux.my_demux.out1_t_buf_func[1].n1 : 0
|
||||||
|
677919 my_demux.my_demux.out1_t_buf_func[0].n1 : 0
|
||||||
|
677933 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0]
|
||||||
|
677940 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1]
|
||||||
|
678081 my_demux.my_demux.token_a_out : 1 [by my_demux.token.a:=0]
|
||||||
|
685288 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0]
|
||||||
|
685448 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1]
|
||||||
|
707005 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[1].y:=0]
|
||||||
|
707006 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1]
|
||||||
|
707007 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0]
|
||||||
|
707008 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1]
|
||||||
|
707008 my_demux.my_demux.invout_f.a : 0
|
||||||
|
707195 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.invout_f.a:=0]
|
||||||
|
707196 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1]
|
||||||
|
709251 my_demux.my_demux.cond_inv_f : 1 [by my_demux.my_demux.invout_f.a:=0]
|
||||||
|
711378 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._c_v:=0]
|
||||||
|
711379 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1]
|
||||||
|
712232 my_demux.my_demux.inack_ctl._y : 1 [by my_demux.my_demux._in_c_v_:=0]
|
||||||
|
712237 my_demux.in.a : 0 [by my_demux.my_demux.inack_ctl._y:=1]
|
||||||
|
713128 my_demux.my_demux._en : 1 [by my_demux.in.a:=0]
|
||||||
|
713129 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
713145 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
715702 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0]
|
||||||
|
721506 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0]
|
||||||
|
744033 my_demux.my_demux.c_buf_d_inv.buf1._y : 0 [by my_demux.my_demux.cond_inv_f:=1]
|
||||||
|
744036 my_demux.my_demux._c_d_buf[0] : 1 [by my_demux.my_demux.c_buf_d_inv.buf1._y:=0]
|
420
test/unit_tests/demux_td_2/run/test.prs
Normal file
420
test/unit_tests/demux_td_2/run/test.prs
Normal file
@ -0,0 +1,420 @@
|
|||||||
|
= "GND" "GND"
|
||||||
|
= "Vdd" "Vdd"
|
||||||
|
= "Reset" "Reset"
|
||||||
|
"Reset"->"my_demux._reset_B"-
|
||||||
|
~("Reset")->"my_demux._reset_B"+
|
||||||
|
= "my_demux._reset_B" "my_demux.my_demux.reset_B"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.cond.v" "my_demux.my_demux.cond.v"
|
||||||
|
= "my_demux.cond.a" "my_demux.my_demux.cond.a"
|
||||||
|
= "my_demux.cond.d.d[0].f" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].t" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].d[0]"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].d[1]"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.out1.v" "my_demux.my_demux.out1.v"
|
||||||
|
= "my_demux.out1.a" "my_demux.my_demux.out1.a"
|
||||||
|
= "my_demux.out1.d.d[0].f" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].t" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].d[0]"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].d[1]"
|
||||||
|
= "my_demux.out1.d.d[1].f" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].t" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].d[0]"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].d[1]"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t"
|
||||||
|
~"my_demux.my_demux.token_buf.c1"&~"my_demux.my_demux.token_buf.c2"|~"my_demux.my_demux.token_buf.pr_B"->"my_demux.my_demux.token_buf._y"+
|
||||||
|
"my_demux.my_demux.token_buf.c1"&"my_demux.my_demux.token_buf.c2"&"my_demux.my_demux.token_buf.n1"&"my_demux.my_demux.token_buf.n2"&"my_demux.my_demux.token_buf.sr_B"->"my_demux.my_demux.token_buf._y"-
|
||||||
|
"my_demux.my_demux.token_buf._y"->"my_demux.my_demux.token_buf.y"-
|
||||||
|
~("my_demux.my_demux.token_buf._y")->"my_demux.my_demux.token_buf.y"+
|
||||||
|
"my_demux.my_demux.out1_a_B_buf_f.buf1.a"->"my_demux.my_demux.out1_a_B_buf_f.buf1._y"-
|
||||||
|
~("my_demux.my_demux.out1_a_B_buf_f.buf1.a")->"my_demux.my_demux.out1_a_B_buf_f.buf1._y"+
|
||||||
|
"my_demux.my_demux.out1_a_B_buf_f.buf1._y"->"my_demux.my_demux.out1_a_B_buf_f.buf1.y"-
|
||||||
|
~("my_demux.my_demux.out1_a_B_buf_f.buf1._y")->"my_demux.my_demux.out1_a_B_buf_f.buf1.y"+
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.supply.vdd" "my_demux.my_demux.out1_a_B_buf_f.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.supply.vss" "my_demux.my_demux.out1_a_B_buf_f.buf1.vss"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.out[0]" "my_demux.my_demux.out1_a_B_buf_f.out[1]"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.out[0]" "my_demux.my_demux.out1_a_B_buf_f.buf1.y"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.in" "my_demux.my_demux.out1_a_B_buf_f.buf1.a"
|
||||||
|
~"my_demux.my_demux.inack_ctl.c1"&~"my_demux.my_demux.inack_ctl.c2"&~"my_demux.my_demux.inack_ctl.c3"|~"my_demux.my_demux.inack_ctl.pr_B"->"my_demux.my_demux.inack_ctl._y"+
|
||||||
|
"my_demux.my_demux.inack_ctl.c1"&"my_demux.my_demux.inack_ctl.c2"&"my_demux.my_demux.inack_ctl.c3"&"my_demux.my_demux.inack_ctl.sr_B"->"my_demux.my_demux.inack_ctl._y"-
|
||||||
|
"my_demux.my_demux.inack_ctl._y"->"my_demux.my_demux.inack_ctl.y"-
|
||||||
|
~("my_demux.my_demux.inack_ctl._y")->"my_demux.my_demux.inack_ctl.y"+
|
||||||
|
"my_demux.my_demux.reset_bufarray.buf1.a"->"my_demux.my_demux.reset_bufarray.buf1._y"-
|
||||||
|
~("my_demux.my_demux.reset_bufarray.buf1.a")->"my_demux.my_demux.reset_bufarray.buf1._y"+
|
||||||
|
"my_demux.my_demux.reset_bufarray.buf1._y"->"my_demux.my_demux.reset_bufarray.buf1.y"-
|
||||||
|
~("my_demux.my_demux.reset_bufarray.buf1._y")->"my_demux.my_demux.reset_bufarray.buf1.y"+
|
||||||
|
= "my_demux.my_demux.reset_bufarray.supply.vdd" "my_demux.my_demux.reset_bufarray.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.reset_bufarray.supply.vss" "my_demux.my_demux.reset_bufarray.buf1.vss"
|
||||||
|
= "my_demux.my_demux.reset_bufarray.out[0]" "my_demux.my_demux.reset_bufarray.out[1]"
|
||||||
|
= "my_demux.my_demux.reset_bufarray.out[0]" "my_demux.my_demux.reset_bufarray.buf1.y"
|
||||||
|
= "my_demux.my_demux.reset_bufarray.in" "my_demux.my_demux.reset_bufarray.buf1.a"
|
||||||
|
= "my_demux.my_demux._c_v" "my_demux.my_demux.c_el.c1"
|
||||||
|
= "my_demux.my_demux._c_v" "my_demux.my_demux.c_f_c_t_or.y"
|
||||||
|
"my_demux.my_demux.reset_buf_token.a"->"my_demux.my_demux.reset_buf_token._y"-
|
||||||
|
~("my_demux.my_demux.reset_buf_token.a")->"my_demux.my_demux.reset_buf_token._y"+
|
||||||
|
"my_demux.my_demux.reset_buf_token._y"->"my_demux.my_demux.reset_buf_token.y"-
|
||||||
|
~("my_demux.my_demux.reset_buf_token._y")->"my_demux.my_demux.reset_buf_token.y"+
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.c_buf_d_inv.out[0]"
|
||||||
|
= "my_demux.my_demux._c_d_buf[1]" "my_demux.my_demux.c_buf_d_inv.out[1]"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_t_buf_func[1].n2"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_f_buf_func[1].n2"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_t_buf_func[0].n2"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_f_buf_func[0].n2"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux._c_d_buf[1]"
|
||||||
|
"my_demux.my_demux.invout_t.a"->"my_demux.my_demux.invout_t.y"-
|
||||||
|
~("my_demux.my_demux.invout_t.a")->"my_demux.my_demux.invout_t.y"+
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.token_buf.c1"
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.out1_en_buf_f.in"
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.out1_en_buf_t.in"
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.en_ctl.y"
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.inack_ctl.c1"
|
||||||
|
"my_demux.my_demux.c_buf_tk_inv.a"->"my_demux.my_demux.c_buf_tk_inv._y"-
|
||||||
|
~("my_demux.my_demux.c_buf_tk_inv.a")->"my_demux.my_demux.c_buf_tk_inv._y"+
|
||||||
|
"my_demux.my_demux.c_buf_tk_inv._y"->"my_demux.my_demux.c_buf_tk_inv.y"-
|
||||||
|
~("my_demux.my_demux.c_buf_tk_inv._y")->"my_demux.my_demux.c_buf_tk_inv.y"+
|
||||||
|
= "my_demux.my_demux.token_a_out" "my_demux.my_demux.token_buf.c2"
|
||||||
|
= "my_demux.my_demux.token_a_out" "my_demux.my_demux.outt_a_inv.y"
|
||||||
|
= "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_B_buf_t.in"
|
||||||
|
= "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_B_buf_f.in"
|
||||||
|
= "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_inv.y"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].f" "my_demux.my_demux.vc.in.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].t" "my_demux.my_demux.vc.in.d[0].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].d[0]"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].d[1]"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].f" "my_demux.my_demux.vc.in.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].t" "my_demux.my_demux.vc.in.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].d[0]"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].d[1]"
|
||||||
|
= "my_demux.my_demux.in.a" "my_demux.my_demux.en_ctl.c1"
|
||||||
|
= "my_demux.my_demux.in.a" "my_demux.my_demux.inack_ctl.y"
|
||||||
|
= "my_demux.my_demux.in.v" "my_demux.my_demux.in_v_buf.y"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.out1_f_buf_func[1].n1"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.out1_t_buf_func[1].n1"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.out1_f_buf_func[0].n1"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.out1_t_buf_func[0].n1"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
"my_demux.my_demux.out1_en_buf_t.buf1.a"->"my_demux.my_demux.out1_en_buf_t.buf1._y"-
|
||||||
|
~("my_demux.my_demux.out1_en_buf_t.buf1.a")->"my_demux.my_demux.out1_en_buf_t.buf1._y"+
|
||||||
|
"my_demux.my_demux.out1_en_buf_t.buf1._y"->"my_demux.my_demux.out1_en_buf_t.buf1.y"-
|
||||||
|
~("my_demux.my_demux.out1_en_buf_t.buf1._y")->"my_demux.my_demux.out1_en_buf_t.buf1.y"+
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.supply.vdd" "my_demux.my_demux.out1_en_buf_t.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.supply.vss" "my_demux.my_demux.out1_en_buf_t.buf1.vss"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.out[0]" "my_demux.my_demux.out1_en_buf_t.out[1]"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.out[0]" "my_demux.my_demux.out1_en_buf_t.buf1.y"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.in" "my_demux.my_demux.out1_en_buf_t.buf1.a"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_a_B_buf_f.out[0]"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[1]" "my_demux.my_demux.out1_a_B_buf_f.out[1]"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_t_buf_func[1].c2"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_t_buf_func[0].c2"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux._out1_a_BX_t[1]"
|
||||||
|
"my_demux.my_demux.out_or.a"|"my_demux.my_demux.out_or.b"->"my_demux.my_demux.out_or._y"-
|
||||||
|
~("my_demux.my_demux.out_or.a"|"my_demux.my_demux.out_or.b")->"my_demux.my_demux.out_or._y"+
|
||||||
|
"my_demux.my_demux.out_or._y"->"my_demux.my_demux.out_or.y"-
|
||||||
|
~("my_demux.my_demux.out_or._y")->"my_demux.my_demux.out_or.y"+
|
||||||
|
= "my_demux.my_demux._in_c_v_" "my_demux.my_demux.c_el.y"
|
||||||
|
= "my_demux.my_demux._in_c_v_" "my_demux.my_demux.inack_ctl.c2"
|
||||||
|
"my_demux.my_demux.reset_buf.a"->"my_demux.my_demux.reset_buf._y"-
|
||||||
|
~("my_demux.my_demux.reset_buf.a")->"my_demux.my_demux.reset_buf._y"+
|
||||||
|
"my_demux.my_demux.reset_buf._y"->"my_demux.my_demux.reset_buf.y"-
|
||||||
|
~("my_demux.my_demux.reset_buf._y")->"my_demux.my_demux.reset_buf.y"+
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_bufarray.in"
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_buf_token.a"
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_buf.y"
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.inack_ctl.sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.inack_ctl.pr_B"
|
||||||
|
= "my_demux.my_demux.reset_B" "my_demux.my_demux.reset_buf.a"
|
||||||
|
= "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_en_buf_f.out[0]"
|
||||||
|
= "my_demux.my_demux._en1_X_f[1]" "my_demux.my_demux.out1_en_buf_f.out[1]"
|
||||||
|
= "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_f_buf_func[1].c1"
|
||||||
|
= "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_f_buf_func[0].c1"
|
||||||
|
= "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux._en1_X_f[1]"
|
||||||
|
= "my_demux.my_demux._out_v" "my_demux.my_demux.en_ctl.p1"
|
||||||
|
= "my_demux.my_demux._out_v" "my_demux.my_demux.inack_ctl.c3"
|
||||||
|
= "my_demux.my_demux._out_v" "my_demux.my_demux.out_or.y"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.reset_bufarray.out[0]"
|
||||||
|
= "my_demux.my_demux._reset_BXX[1]" "my_demux.my_demux.reset_bufarray.out[1]"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[1].sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[1].pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[1].sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[1].pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[0].sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[0].pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[0].sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[0].pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux._reset_BXX[1]"
|
||||||
|
"my_demux.my_demux.out1_en_buf_f.buf1.a"->"my_demux.my_demux.out1_en_buf_f.buf1._y"-
|
||||||
|
~("my_demux.my_demux.out1_en_buf_f.buf1.a")->"my_demux.my_demux.out1_en_buf_f.buf1._y"+
|
||||||
|
"my_demux.my_demux.out1_en_buf_f.buf1._y"->"my_demux.my_demux.out1_en_buf_f.buf1.y"-
|
||||||
|
~("my_demux.my_demux.out1_en_buf_f.buf1._y")->"my_demux.my_demux.out1_en_buf_f.buf1.y"+
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.supply.vdd" "my_demux.my_demux.out1_en_buf_f.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.supply.vss" "my_demux.my_demux.out1_en_buf_f.buf1.vss"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.out[0]" "my_demux.my_demux.out1_en_buf_f.out[1]"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.out[0]" "my_demux.my_demux.out1_en_buf_f.buf1.y"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.in" "my_demux.my_demux.out1_en_buf_f.buf1.a"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_a_B_buf_t.out[0]"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[1]" "my_demux.my_demux.out1_a_B_buf_t.out[1]"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_f_buf_func[1].c2"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_f_buf_func[0].c2"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux._out1_a_BX_f[1]"
|
||||||
|
~"my_demux.my_demux.c_el.c1"&~"my_demux.my_demux.c_el.c2"->"my_demux.my_demux.c_el._y"+
|
||||||
|
"my_demux.my_demux.c_el.c1"&"my_demux.my_demux.c_el.c2"->"my_demux.my_demux.c_el._y"-
|
||||||
|
"my_demux.my_demux.c_el._y"->"my_demux.my_demux.c_el.y"-
|
||||||
|
~("my_demux.my_demux.c_el._y")->"my_demux.my_demux.c_el.y"+
|
||||||
|
= "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_en_buf_t.out[0]"
|
||||||
|
= "my_demux.my_demux._en1_X_t[1]" "my_demux.my_demux.out1_en_buf_t.out[1]"
|
||||||
|
= "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_t_buf_func[1].c1"
|
||||||
|
= "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_t_buf_func[0].c1"
|
||||||
|
= "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux._en1_X_t[1]"
|
||||||
|
"my_demux.my_demux.in_v_buf.a"->"my_demux.my_demux.in_v_buf._y"-
|
||||||
|
~("my_demux.my_demux.in_v_buf.a")->"my_demux.my_demux.in_v_buf._y"+
|
||||||
|
"my_demux.my_demux.in_v_buf._y"->"my_demux.my_demux.in_v_buf.y"-
|
||||||
|
~("my_demux.my_demux.in_v_buf._y")->"my_demux.my_demux.in_v_buf.y"+
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.out1.a" "my_demux.my_demux.out1_a_inv.a"
|
||||||
|
= "my_demux.my_demux.out1.v" "my_demux.my_demux.out_or.a"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1_f_buf_func[1].y"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1_t_buf_func[1].y"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1_f_buf_func[0].y"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1_t_buf_func[0].y"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
"my_demux.my_demux.c_f_c_t_or.a"|"my_demux.my_demux.c_f_c_t_or.b"->"my_demux.my_demux.c_f_c_t_or._y"-
|
||||||
|
~("my_demux.my_demux.c_f_c_t_or.a"|"my_demux.my_demux.c_f_c_t_or.b")->"my_demux.my_demux.c_f_c_t_or._y"+
|
||||||
|
"my_demux.my_demux.c_f_c_t_or._y"->"my_demux.my_demux.c_f_c_t_or.y"-
|
||||||
|
~("my_demux.my_demux.c_f_c_t_or._y")->"my_demux.my_demux.c_f_c_t_or.y"+
|
||||||
|
"my_demux.my_demux.out1_a_inv.a"->"my_demux.my_demux.out1_a_inv.y"-
|
||||||
|
~("my_demux.my_demux.out1_a_inv.a")->"my_demux.my_demux.out1_a_inv.y"+
|
||||||
|
= "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token.r"
|
||||||
|
= "my_demux.my_demux.token.a" "my_demux.my_demux.outt_a_inv.a"
|
||||||
|
= "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token_buf.y"
|
||||||
|
= "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.out_or.b"
|
||||||
|
= "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token.r"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_en_buf_f.supply.vss"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_en_buf_f.supply.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_en_buf_t.supply.vss"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_en_buf_t.supply.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.vc.supply.vss"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.vc.supply.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.token_buf.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_t_buf_func[1].vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_f_buf_func[1].vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_t_buf_func[0].vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_f_buf_func[0].vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.in_v_buf.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.c_el.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.invout_f.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.invout_t.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.c_f_c_t_or.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.reset_buf_token.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.reset_buf.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.en_ctl.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.inack_ctl.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out_or.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.token_buf.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_t_buf_func[1].vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_f_buf_func[1].vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_t_buf_func[0].vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_f_buf_func[0].vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.in_v_buf.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.c_el.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.invout_f.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.invout_t.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.c_f_c_t_or.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.reset_buf_token.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.reset_buf.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.en_ctl.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.inack_ctl.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out_or.vss"
|
||||||
|
"my_demux.my_demux.invout_f.a"->"my_demux.my_demux.invout_f.y"-
|
||||||
|
~("my_demux.my_demux.invout_f.a")->"my_demux.my_demux.invout_f.y"+
|
||||||
|
~"my_demux.my_demux.vc.myctree.C2Els[0].c1"&~"my_demux.my_demux.vc.myctree.C2Els[0].c2"->"my_demux.my_demux.vc.myctree.C2Els[0]._y"+
|
||||||
|
"my_demux.my_demux.vc.myctree.C2Els[0].c1"&"my_demux.my_demux.vc.myctree.C2Els[0].c2"->"my_demux.my_demux.vc.myctree.C2Els[0]._y"-
|
||||||
|
"my_demux.my_demux.vc.myctree.C2Els[0]._y"->"my_demux.my_demux.vc.myctree.C2Els[0].y"-
|
||||||
|
~("my_demux.my_demux.vc.myctree.C2Els[0]._y")->"my_demux.my_demux.vc.myctree.C2Els[0].y"+
|
||||||
|
= "my_demux.my_demux.vc.myctree.supply.vdd" "my_demux.my_demux.vc.myctree.C2Els[0].vdd"
|
||||||
|
= "my_demux.my_demux.vc.myctree.supply.vss" "my_demux.my_demux.vc.myctree.C2Els[0].vss"
|
||||||
|
= "my_demux.my_demux.vc.myctree.in[0]" "my_demux.my_demux.vc.myctree.C2Els[0].c1"
|
||||||
|
= "my_demux.my_demux.vc.myctree.in[0]" "my_demux.my_demux.vc.myctree.tmp[0]"
|
||||||
|
= "my_demux.my_demux.vc.myctree.in[1]" "my_demux.my_demux.vc.myctree.C2Els[0].c2"
|
||||||
|
= "my_demux.my_demux.vc.myctree.in[1]" "my_demux.my_demux.vc.myctree.tmp[1]"
|
||||||
|
= "my_demux.my_demux.vc.myctree.out" "my_demux.my_demux.vc.myctree.C2Els[0].y"
|
||||||
|
= "my_demux.my_demux.vc.myctree.out" "my_demux.my_demux.vc.myctree.tmp[2]"
|
||||||
|
"my_demux.my_demux.vc.OR2_tf[0].a"|"my_demux.my_demux.vc.OR2_tf[0].b"->"my_demux.my_demux.vc.OR2_tf[0]._y"-
|
||||||
|
~("my_demux.my_demux.vc.OR2_tf[0].a"|"my_demux.my_demux.vc.OR2_tf[0].b")->"my_demux.my_demux.vc.OR2_tf[0]._y"+
|
||||||
|
"my_demux.my_demux.vc.OR2_tf[0]._y"->"my_demux.my_demux.vc.OR2_tf[0].y"-
|
||||||
|
~("my_demux.my_demux.vc.OR2_tf[0]._y")->"my_demux.my_demux.vc.OR2_tf[0].y"+
|
||||||
|
"my_demux.my_demux.vc.OR2_tf[1].a"|"my_demux.my_demux.vc.OR2_tf[1].b"->"my_demux.my_demux.vc.OR2_tf[1]._y"-
|
||||||
|
~("my_demux.my_demux.vc.OR2_tf[1].a"|"my_demux.my_demux.vc.OR2_tf[1].b")->"my_demux.my_demux.vc.OR2_tf[1]._y"+
|
||||||
|
"my_demux.my_demux.vc.OR2_tf[1]._y"->"my_demux.my_demux.vc.OR2_tf[1].y"-
|
||||||
|
~("my_demux.my_demux.vc.OR2_tf[1]._y")->"my_demux.my_demux.vc.OR2_tf[1].y"+
|
||||||
|
= "my_demux.my_demux.vc.OR2_tf[1].y" "my_demux.my_demux.vc.myctree.in[1]"
|
||||||
|
= "my_demux.my_demux.vc.OR2_tf[0].y" "my_demux.my_demux.vc.myctree.in[0]"
|
||||||
|
= "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.myctree.supply.vss"
|
||||||
|
= "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.myctree.supply.vdd"
|
||||||
|
= "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.OR2_tf[1].vdd"
|
||||||
|
= "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.OR2_tf[0].vdd"
|
||||||
|
= "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.OR2_tf[1].vss"
|
||||||
|
= "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.OR2_tf[0].vss"
|
||||||
|
= "my_demux.my_demux.vc.out" "my_demux.my_demux.vc.myctree.out"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.OR2_tf[1].b"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.OR2_tf[1].a"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.OR2_tf[0].b"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.OR2_tf[0].a"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t"
|
||||||
|
"my_demux.my_demux.out1_a_B_buf_t.buf1.a"->"my_demux.my_demux.out1_a_B_buf_t.buf1._y"-
|
||||||
|
~("my_demux.my_demux.out1_a_B_buf_t.buf1.a")->"my_demux.my_demux.out1_a_B_buf_t.buf1._y"+
|
||||||
|
"my_demux.my_demux.out1_a_B_buf_t.buf1._y"->"my_demux.my_demux.out1_a_B_buf_t.buf1.y"-
|
||||||
|
~("my_demux.my_demux.out1_a_B_buf_t.buf1._y")->"my_demux.my_demux.out1_a_B_buf_t.buf1.y"+
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.supply.vdd" "my_demux.my_demux.out1_a_B_buf_t.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.supply.vss" "my_demux.my_demux.out1_a_B_buf_t.buf1.vss"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.out[0]" "my_demux.my_demux.out1_a_B_buf_t.out[1]"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.out[0]" "my_demux.my_demux.out1_a_B_buf_t.buf1.y"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.in" "my_demux.my_demux.out1_a_B_buf_t.buf1.a"
|
||||||
|
~"my_demux.my_demux.en_ctl.p1"&~"my_demux.my_demux.en_ctl.c1"->"my_demux.my_demux.en_ctl.y"+
|
||||||
|
"my_demux.my_demux.en_ctl.c1"->"my_demux.my_demux.en_ctl.y"-
|
||||||
|
= "my_demux.my_demux._reset_BXt" "my_demux.my_demux.token_buf.sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXt" "my_demux.my_demux.token_buf.pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXt" "my_demux.my_demux.reset_buf_token.y"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.invout_f.a"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.c_f_c_t_or.b"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.invout_t.a"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.c_f_c_t_or.a"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
~"my_demux.my_demux.out1_f_buf_func[0].c1"&~"my_demux.my_demux.out1_f_buf_func[0].c2"|~"my_demux.my_demux.out1_f_buf_func[0].pr_B"->"my_demux.my_demux.out1_f_buf_func[0]._y"+
|
||||||
|
"my_demux.my_demux.out1_f_buf_func[0].c1"&"my_demux.my_demux.out1_f_buf_func[0].c2"&"my_demux.my_demux.out1_f_buf_func[0].n1"&"my_demux.my_demux.out1_f_buf_func[0].n2"&"my_demux.my_demux.out1_f_buf_func[0].sr_B"->"my_demux.my_demux.out1_f_buf_func[0]._y"-
|
||||||
|
"my_demux.my_demux.out1_f_buf_func[0]._y"->"my_demux.my_demux.out1_f_buf_func[0].y"-
|
||||||
|
~("my_demux.my_demux.out1_f_buf_func[0]._y")->"my_demux.my_demux.out1_f_buf_func[0].y"+
|
||||||
|
~"my_demux.my_demux.out1_f_buf_func[1].c1"&~"my_demux.my_demux.out1_f_buf_func[1].c2"|~"my_demux.my_demux.out1_f_buf_func[1].pr_B"->"my_demux.my_demux.out1_f_buf_func[1]._y"+
|
||||||
|
"my_demux.my_demux.out1_f_buf_func[1].c1"&"my_demux.my_demux.out1_f_buf_func[1].c2"&"my_demux.my_demux.out1_f_buf_func[1].n1"&"my_demux.my_demux.out1_f_buf_func[1].n2"&"my_demux.my_demux.out1_f_buf_func[1].sr_B"->"my_demux.my_demux.out1_f_buf_func[1]._y"-
|
||||||
|
"my_demux.my_demux.out1_f_buf_func[1]._y"->"my_demux.my_demux.out1_f_buf_func[1].y"-
|
||||||
|
~("my_demux.my_demux.out1_f_buf_func[1]._y")->"my_demux.my_demux.out1_f_buf_func[1].y"+
|
||||||
|
= "my_demux.my_demux._in_v" "my_demux.my_demux.token_buf.n2"
|
||||||
|
= "my_demux.my_demux._in_v" "my_demux.my_demux.in_v_buf.a"
|
||||||
|
= "my_demux.my_demux._in_v" "my_demux.my_demux.c_el.c2"
|
||||||
|
= "my_demux.my_demux._in_v" "my_demux.my_demux.vc.out"
|
||||||
|
~"my_demux.my_demux.out1_t_buf_func[0].c1"&~"my_demux.my_demux.out1_t_buf_func[0].c2"|~"my_demux.my_demux.out1_t_buf_func[0].pr_B"->"my_demux.my_demux.out1_t_buf_func[0]._y"+
|
||||||
|
"my_demux.my_demux.out1_t_buf_func[0].c1"&"my_demux.my_demux.out1_t_buf_func[0].c2"&"my_demux.my_demux.out1_t_buf_func[0].n1"&"my_demux.my_demux.out1_t_buf_func[0].n2"&"my_demux.my_demux.out1_t_buf_func[0].sr_B"->"my_demux.my_demux.out1_t_buf_func[0]._y"-
|
||||||
|
"my_demux.my_demux.out1_t_buf_func[0]._y"->"my_demux.my_demux.out1_t_buf_func[0].y"-
|
||||||
|
~("my_demux.my_demux.out1_t_buf_func[0]._y")->"my_demux.my_demux.out1_t_buf_func[0].y"+
|
||||||
|
~"my_demux.my_demux.out1_t_buf_func[1].c1"&~"my_demux.my_demux.out1_t_buf_func[1].c2"|~"my_demux.my_demux.out1_t_buf_func[1].pr_B"->"my_demux.my_demux.out1_t_buf_func[1]._y"+
|
||||||
|
"my_demux.my_demux.out1_t_buf_func[1].c1"&"my_demux.my_demux.out1_t_buf_func[1].c2"&"my_demux.my_demux.out1_t_buf_func[1].n1"&"my_demux.my_demux.out1_t_buf_func[1].n2"&"my_demux.my_demux.out1_t_buf_func[1].sr_B"->"my_demux.my_demux.out1_t_buf_func[1]._y"-
|
||||||
|
"my_demux.my_demux.out1_t_buf_func[1]._y"->"my_demux.my_demux.out1_t_buf_func[1].y"-
|
||||||
|
~("my_demux.my_demux.out1_t_buf_func[1]._y")->"my_demux.my_demux.out1_t_buf_func[1].y"+
|
||||||
|
= "my_demux.my_demux.cond_inv_f" "my_demux.my_demux.c_buf_d_inv.in"
|
||||||
|
= "my_demux.my_demux.cond_inv_f" "my_demux.my_demux.invout_f.y"
|
||||||
|
"my_demux.my_demux.outt_a_inv.a"->"my_demux.my_demux.outt_a_inv.y"-
|
||||||
|
~("my_demux.my_demux.outt_a_inv.a")->"my_demux.my_demux.outt_a_inv.y"+
|
||||||
|
= "my_demux.my_demux.cond_inv_t" "my_demux.my_demux.c_buf_tk_inv.a"
|
||||||
|
= "my_demux.my_demux.cond_inv_t" "my_demux.my_demux.invout_t.y"
|
||||||
|
"my_demux.my_demux.c_buf_d_inv.buf1.a"->"my_demux.my_demux.c_buf_d_inv.buf1._y"-
|
||||||
|
~("my_demux.my_demux.c_buf_d_inv.buf1.a")->"my_demux.my_demux.c_buf_d_inv.buf1._y"+
|
||||||
|
"my_demux.my_demux.c_buf_d_inv.buf1._y"->"my_demux.my_demux.c_buf_d_inv.buf1.y"-
|
||||||
|
~("my_demux.my_demux.c_buf_d_inv.buf1._y")->"my_demux.my_demux.c_buf_d_inv.buf1.y"+
|
||||||
|
= "my_demux.my_demux.c_buf_d_inv.supply.vdd" "my_demux.my_demux.c_buf_d_inv.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.c_buf_d_inv.supply.vss" "my_demux.my_demux.c_buf_d_inv.buf1.vss"
|
||||||
|
= "my_demux.my_demux.c_buf_d_inv.out[0]" "my_demux.my_demux.c_buf_d_inv.out[1]"
|
||||||
|
= "my_demux.my_demux.c_buf_d_inv.out[0]" "my_demux.my_demux.c_buf_d_inv.buf1.y"
|
||||||
|
= "my_demux.my_demux.c_buf_d_inv.in" "my_demux.my_demux.c_buf_d_inv.buf1.a"
|
||||||
|
= "my_demux.my_demux._c_tk_buf" "my_demux.my_demux.token_buf.n1"
|
||||||
|
= "my_demux.my_demux._c_tk_buf" "my_demux.my_demux.c_buf_tk_inv.y"
|
||||||
|
= "Vdd" "my_demux.my_demux.supply.vdd"
|
||||||
|
= "GND" "my_demux.my_demux.supply.vss"
|
||||||
|
= "my_demux.token.d.d[0]" "my_demux.token.r"
|
||||||
|
= "my_demux.token.r" "my_demux.my_demux.token.r"
|
||||||
|
= "my_demux.token.a" "my_demux.my_demux.token.a"
|
||||||
|
= "my_demux.token.d.d[0]" "my_demux.my_demux.token.d.d[0]"
|
||||||
|
= "my_demux.token.d.d[0]" "my_demux.token.r"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.in.v" "my_demux.my_demux.in.v"
|
||||||
|
= "my_demux.in.a" "my_demux.my_demux.in.a"
|
||||||
|
= "my_demux.in.d.d[0].f" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].t" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].d[0]"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].d[1]"
|
||||||
|
= "my_demux.in.d.d[1].f" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].t" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].d[0]"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].d[1]"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t"
|
50
test/unit_tests/demux_td_2/test.act
Normal file
50
test/unit_tests/demux_td_2/test.act
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* This file is part of ACT dataflow neuro library.
|
||||||
|
* It's the testing facility for cell_lib_std.act
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
|
*
|
||||||
|
* You may redistribute and modify this documentation and make products
|
||||||
|
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
|
||||||
|
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
|
||||||
|
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
|
||||||
|
* for applicable conditions.
|
||||||
|
*
|
||||||
|
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
|
||||||
|
*
|
||||||
|
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
|
||||||
|
* these sources, You must maintain the Source Location visible in its
|
||||||
|
* documentation.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
import "../../dataflow_neuro/primitives.act";
|
||||||
|
import globals;
|
||||||
|
|
||||||
|
open tmpl::dataflow_neuro;
|
||||||
|
|
||||||
|
|
||||||
|
defproc demux_2 (avMx1of2<2> in; avMx1of2<2> out1; a1of1 token; avMx1of2<1> cond){
|
||||||
|
|
||||||
|
demux_td<2, false> my_demux(.in=in, .out1=out1,.token = token, .cond = cond);
|
||||||
|
//Low active Reset
|
||||||
|
bool _reset_B;
|
||||||
|
prs {
|
||||||
|
Reset => _reset_B-
|
||||||
|
}
|
||||||
|
my_demux.supply.vss = GND;
|
||||||
|
my_demux.supply.vdd = Vdd;
|
||||||
|
my_demux.reset_B = _reset_B;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
demux_2 my_demux;
|
90
test/unit_tests/demux_td_2/test.prsim
Normal file
90
test/unit_tests/demux_td_2/test.prsim
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
watchall
|
||||||
|
set-qdi-channel-neutral "my_demux.in" 2
|
||||||
|
set my_demux.out1.a 0
|
||||||
|
set my_demux.out1.v 0
|
||||||
|
set my_demux.token.a 0
|
||||||
|
set my_demux.token.r 0
|
||||||
|
set my_demux.cond.d.d[0].t 0
|
||||||
|
set my_demux.cond.d.d[0].f 0
|
||||||
|
cycle
|
||||||
|
system "echo 'System initialized'"
|
||||||
|
|
||||||
|
set Reset 0
|
||||||
|
cycle
|
||||||
|
system "echo 'System reset completed'"
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
|
||||||
|
assert-qdi-channel-neutral "my_demux.out1" 2
|
||||||
|
assert-qdi-channel-neutral "my_demux.in" 2
|
||||||
|
cycle
|
||||||
|
|
||||||
|
system "echo 'Output neutral checked'"
|
||||||
|
|
||||||
|
set my_demux.cond.d.d[0].t 1
|
||||||
|
set my_demux.cond.d.d[0].f 0
|
||||||
|
set-qdi-channel-valid "my_demux.in" 2 3
|
||||||
|
cycle
|
||||||
|
assert my_demux.in.v 1
|
||||||
|
assert my_demux.in.a 0
|
||||||
|
|
||||||
|
assert-qdi-channel-valid "my_demux.out1" 2 3
|
||||||
|
assert my_demux.token.a 0
|
||||||
|
set my_demux.out1.v 1
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert my_demux.in.a 1
|
||||||
|
set-qdi-channel-neutral "my_demux.in" 2
|
||||||
|
cycle
|
||||||
|
|
||||||
|
set my_demux.out1.a 1
|
||||||
|
cycle
|
||||||
|
|
||||||
|
set my_demux.out1.v 0
|
||||||
|
|
||||||
|
assert my_demux.in.a 1
|
||||||
|
set-qdi-channel-neutral "my_demux.in" 2
|
||||||
|
|
||||||
|
|
||||||
|
system "echo 'First Cond Checked'"
|
||||||
|
|
||||||
|
set my_demux.out1.a 0
|
||||||
|
set my_demux.out1.v 0
|
||||||
|
set my_demux.token.a 0
|
||||||
|
set my_demux.token.r 0
|
||||||
|
set my_demux.cond.d.d[0].t 0
|
||||||
|
set my_demux.cond.d.d[0].f 0
|
||||||
|
cycle
|
||||||
|
|
||||||
|
system "echo 'System initialized'"
|
||||||
|
|
||||||
|
set my_demux.cond.d.d[0].t 0
|
||||||
|
set my_demux.cond.d.d[0].f 1
|
||||||
|
set-qdi-channel-valid "my_demux.in" 2 3
|
||||||
|
cycle
|
||||||
|
assert my_demux.in.v 1
|
||||||
|
assert my_demux.in.a 1
|
||||||
|
assert my_demux.token.r 1
|
||||||
|
|
||||||
|
set my_demux.token.a 1
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert my_demux.token.r 0
|
||||||
|
|
||||||
|
set my_demux.token.a 0
|
||||||
|
set-qdi-channel-neutral "my_demux.in" 2
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert my_demux.in.v 0
|
||||||
|
|
||||||
|
set my_demux.cond.d.d[0].t 0
|
||||||
|
set my_demux.cond.d.d[0].f 0
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert my_demux.in.a 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
181
test/unit_tests/demux_td_2_SIGN/run/prsim.out
Normal file
181
test/unit_tests/demux_td_2_SIGN/run/prsim.out
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
my_demux.my_demux.out1_f_buf_func[1].n1 my_demux.my_demux._c_tk_buf my_demux.my_demux.out1_t_buf_func[1].n1 my_demux.my_demux._c_d_buf[0] my_demux.my_demux._out1_a_BX_f[0] my_demux.my_demux.out1_en_buf_t.buf1._y my_demux.my_demux.token_a_out my_demux.my_demux._out_v my_demux.my_demux._in_v my_demux.my_demux._en my_demux.my_demux.vc.OR2_tf[1].y my_demux.my_demux._out1_a_B my_demux.my_demux.c_buf_d.in my_demux.my_demux._out1_a_BX_t[0] my_demux.in.v my_demux.my_demux._c_v my_demux.my_demux.c_buf_tk.a my_demux.my_demux.out1_f_buf_func[0].n1 my_demux.out1.v my_demux.my_demux.out1_t_buf_func[0].n1 my_demux.out1.a my_demux.my_demux._en1_X_f[0] my_demux.my_demux.out_or._y my_demux.my_demux._en1_X_t[0] my_demux.my_demux.vc.OR2_tf[0]._y my_demux.my_demux.c_buf_d.buf1._y my_demux.my_demux.in_v_buf._y my_demux.my_demux.vc.OR2_tf[0].y my_demux.token.a my_demux.my_demux.vc.OR2_tf[1]._y my_demux.my_demux._in_c_v_ my_demux.my_demux.c_buf_tk._y my_demux.my_demux.c_f_c_t_or._y my_demux.my_demux.out1_en_buf_f.buf1._y my_demux.my_demux.vc.myctree.C2Els[0]._y my_demux.my_demux.out1_a_B_buf_f.buf1._y my_demux.my_demux.c_el._y my_demux.my_demux.out1_a_B_buf_t.buf1._y
|
||||||
|
83058 my_demux.my_demux.out1_f_buf_func[0].n1 : 0
|
||||||
|
83058 my_demux.my_demux.c_buf_d.in : 0
|
||||||
|
83058 my_demux.my_demux.c_buf_tk.a : 0
|
||||||
|
83058 my_demux.my_demux.out1_f_buf_func[1].n1 : 0
|
||||||
|
83058 my_demux.token.a : 0
|
||||||
|
83058 my_demux.out1.v : 0
|
||||||
|
83058 my_demux.my_demux.out1_t_buf_func[0].n1 : 0
|
||||||
|
83058 my_demux.out1.a : 0
|
||||||
|
83058 my_demux.my_demux.out1_t_buf_func[1].n1 : 0
|
||||||
|
83062 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.c_buf_tk.a:=0]
|
||||||
|
83073 my_demux.my_demux.out_or._y : 1 [by my_demux.out1.v:=0]
|
||||||
|
83113 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0]
|
||||||
|
92187 my_demux.my_demux.token_a_out : 1 [by my_demux.token.a:=0]
|
||||||
|
96782 my_demux.my_demux.c_buf_tk._y : 1 [by my_demux.my_demux.c_buf_tk.a:=0]
|
||||||
|
96962 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1]
|
||||||
|
112853 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1]
|
||||||
|
119989 my_demux.my_demux._out1_a_B : 1 [by my_demux.out1.a:=0]
|
||||||
|
120411 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1]
|
||||||
|
120412 my_demux.my_demux._out1_a_BX_t[0] : 1 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=0]
|
||||||
|
121594 my_demux.my_demux._c_tk_buf : 0 [by my_demux.my_demux.c_buf_tk._y:=1]
|
||||||
|
126306 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0]
|
||||||
|
126307 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1]
|
||||||
|
127156 my_demux.my_demux.c_buf_d.buf1._y : 1 [by my_demux.my_demux.c_buf_d.in:=0]
|
||||||
|
127196 my_demux.my_demux._en : 1 [by my_demux.my_demux._out_v:=0]
|
||||||
|
127199 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
127438 my_demux.my_demux._c_d_buf[0] : 0 [by my_demux.my_demux.c_buf_d.buf1._y:=1]
|
||||||
|
127964 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
128515 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0]
|
||||||
|
134715 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1]
|
||||||
|
146512 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[0].y:=0]
|
||||||
|
147583 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1]
|
||||||
|
148537 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0]
|
||||||
|
148664 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._in_v:=0]
|
||||||
|
149640 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0]
|
||||||
|
149646 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1]
|
||||||
|
168703 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 0 [by my_demux.my_demux._out1_a_B:=1]
|
||||||
|
168721 my_demux.my_demux._out1_a_BX_f[0] : 1 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=0]
|
||||||
|
203007 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1]
|
||||||
|
System initialized
|
||||||
|
203007 Reset : 0
|
||||||
|
207020 my_demux._reset_B : 1 [by Reset:=0]
|
||||||
|
211023 my_demux.my_demux.reset_buf._y : 0 [by my_demux._reset_B:=1]
|
||||||
|
255924 my_demux.my_demux._reset_BX : 1 [by my_demux.my_demux.reset_buf._y:=0]
|
||||||
|
260684 my_demux.my_demux.reset_buf_token._y : 0 [by my_demux.my_demux._reset_BX:=1]
|
||||||
|
261186 my_demux.my_demux._reset_BXt : 1 [by my_demux.my_demux.reset_buf_token._y:=0]
|
||||||
|
277508 my_demux.my_demux.reset_bufarray.buf1._y : 0 [by my_demux.my_demux._reset_BX:=1]
|
||||||
|
277711 my_demux.my_demux._reset_BXX[0] : 1 [by my_demux.my_demux.reset_bufarray.buf1._y:=0]
|
||||||
|
System reset completed
|
||||||
|
|
||||||
|
Output neutral checked
|
||||||
|
277711 my_demux.my_demux.c_buf_d.in : 1
|
||||||
|
277711 my_demux.my_demux.out1_t_buf_func[1].n1 : 1
|
||||||
|
277711 my_demux.my_demux.out1_t_buf_func[0].n1 : 1
|
||||||
|
277780 my_demux.my_demux.vc.OR2_tf[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1]
|
||||||
|
277791 my_demux.my_demux.vc.OR2_tf[0].y : 1 [by my_demux.my_demux.vc.OR2_tf[0]._y:=0]
|
||||||
|
277850 my_demux.my_demux.c_buf_d.buf1._y : 0 [by my_demux.my_demux.c_buf_d.in:=1]
|
||||||
|
279565 my_demux.my_demux.c_f_c_t_or._y : 0 [by my_demux.my_demux.c_buf_d.in:=1]
|
||||||
|
279769 my_demux.my_demux._c_v : 1 [by my_demux.my_demux.c_f_c_t_or._y:=0]
|
||||||
|
314057 my_demux.my_demux.vc.OR2_tf[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1]
|
||||||
|
314072 my_demux.my_demux.vc.OR2_tf[1].y : 1 [by my_demux.my_demux.vc.OR2_tf[1]._y:=0]
|
||||||
|
314073 my_demux.my_demux.vc.myctree.C2Els[0]._y : 0 [by my_demux.my_demux.vc.OR2_tf[1].y:=1]
|
||||||
|
314110 my_demux.my_demux._in_v : 1 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=0]
|
||||||
|
314222 my_demux.my_demux.c_el._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
314849 my_demux.my_demux.in_v_buf._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
314889 my_demux.in.v : 1 [by my_demux.my_demux.in_v_buf._y:=0]
|
||||||
|
329636 my_demux.my_demux._c_d_buf[0] : 1 [by my_demux.my_demux.c_buf_d.buf1._y:=0]
|
||||||
|
329723 my_demux.my_demux.out1_t_buf_func[1]._y : 0 [by my_demux.my_demux._c_d_buf[0]:=1]
|
||||||
|
329893 my_demux.my_demux.out1_t_buf_func[0]._y : 0 [by my_demux.my_demux._c_d_buf[0]:=1]
|
||||||
|
329894 my_demux.my_demux.out1_t_buf_func[0].y : 1 [by my_demux.my_demux.out1_t_buf_func[0]._y:=0]
|
||||||
|
330017 my_demux.my_demux.out1_t_buf_func[1].y : 1 [by my_demux.my_demux.out1_t_buf_func[1]._y:=0]
|
||||||
|
361734 my_demux.my_demux._in_c_v_ : 1 [by my_demux.my_demux.c_el._y:=0]
|
||||||
|
361734 my_demux.out1.v : 1
|
||||||
|
363540 my_demux.my_demux.out_or._y : 0 [by my_demux.out1.v:=1]
|
||||||
|
365547 my_demux.my_demux._out_v : 1 [by my_demux.my_demux.out_or._y:=0]
|
||||||
|
366756 my_demux.my_demux.inack_ctl._y : 0 [by my_demux.my_demux._out_v:=1]
|
||||||
|
367346 my_demux.in.a : 1 [by my_demux.my_demux.inack_ctl._y:=0]
|
||||||
|
367524 my_demux.my_demux._en : 0 [by my_demux.in.a:=1]
|
||||||
|
367688 my_demux.my_demux.out1_en_buf_f.buf1._y : 1 [by my_demux.my_demux._en:=0]
|
||||||
|
368327 my_demux.my_demux.out1_en_buf_t.buf1._y : 1 [by my_demux.my_demux._en:=0]
|
||||||
|
368349 my_demux.my_demux._en1_X_t[0] : 0 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=1]
|
||||||
|
369883 my_demux.my_demux._en1_X_f[0] : 0 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=1]
|
||||||
|
369883 my_demux.my_demux.out1_t_buf_func[0].n1 : 0
|
||||||
|
369883 my_demux.my_demux.out1_t_buf_func[1].n1 : 0
|
||||||
|
370730 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0]
|
||||||
|
370863 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1]
|
||||||
|
400011 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0]
|
||||||
|
415673 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1]
|
||||||
|
416032 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[1].y:=0]
|
||||||
|
430148 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1]
|
||||||
|
430369 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0]
|
||||||
|
430376 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1]
|
||||||
|
First Cond Checked
|
||||||
|
430376 my_demux.out1.a : 1
|
||||||
|
430376 my_demux.my_demux.c_buf_d.in : 0
|
||||||
|
430376 my_demux.out1.v : 0
|
||||||
|
430406 my_demux.my_demux._out1_a_B : 0 [by my_demux.out1.a:=1]
|
||||||
|
430413 my_demux.my_demux.out1_a_B_buf_t.buf1._y : 1 [by my_demux.my_demux._out1_a_B:=0]
|
||||||
|
430467 my_demux.my_demux.out_or._y : 1 [by my_demux.out1.v:=0]
|
||||||
|
430573 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1]
|
||||||
|
432595 my_demux.my_demux.out1_a_B_buf_f.buf1._y : 1 [by my_demux.my_demux._out1_a_B:=0]
|
||||||
|
432673 my_demux.my_demux._out1_a_BX_t[0] : 0 [by my_demux.my_demux.out1_a_B_buf_f.buf1._y:=1]
|
||||||
|
432948 my_demux.my_demux.out1_t_buf_func[0]._y : 1 [by my_demux.my_demux._out1_a_BX_t[0]:=0]
|
||||||
|
433200 my_demux.my_demux._out1_a_BX_f[0] : 0 [by my_demux.my_demux.out1_a_B_buf_t.buf1._y:=1]
|
||||||
|
433403 my_demux.my_demux.out1_t_buf_func[0].y : 0 [by my_demux.my_demux.out1_t_buf_func[0]._y:=1]
|
||||||
|
437089 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.c_buf_d.in:=0]
|
||||||
|
437101 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1]
|
||||||
|
437505 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._c_v:=0]
|
||||||
|
437517 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1]
|
||||||
|
443433 my_demux.my_demux.inack_ctl._y : 1 [by my_demux.my_demux._in_c_v_:=0]
|
||||||
|
447709 my_demux.in.a : 0 [by my_demux.my_demux.inack_ctl._y:=1]
|
||||||
|
450608 my_demux.my_demux._en : 1 [by my_demux.in.a:=0]
|
||||||
|
450610 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
451669 my_demux.my_demux.out1_t_buf_func[1]._y : 1 [by my_demux.my_demux._out1_a_BX_t[0]:=0]
|
||||||
|
452918 my_demux.my_demux.out1_t_buf_func[1].y : 0 [by my_demux.my_demux.out1_t_buf_func[1]._y:=1]
|
||||||
|
454903 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
455145 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0]
|
||||||
|
458402 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0]
|
||||||
|
487837 my_demux.my_demux.c_buf_d.buf1._y : 1 [by my_demux.my_demux.c_buf_d.in:=0]
|
||||||
|
488003 my_demux.my_demux._c_d_buf[0] : 0 [by my_demux.my_demux.c_buf_d.buf1._y:=1]
|
||||||
|
System initialized
|
||||||
|
488003 my_demux.my_demux.c_buf_tk.a : 1
|
||||||
|
488003 my_demux.my_demux.out1_t_buf_func[1].n1 : 1
|
||||||
|
488003 my_demux.my_demux.out1_t_buf_func[0].n1 : 1
|
||||||
|
488078 my_demux.my_demux.c_buf_tk._y : 0 [by my_demux.my_demux.c_buf_tk.a:=1]
|
||||||
|
488080 my_demux.my_demux._c_tk_buf : 1 [by my_demux.my_demux.c_buf_tk._y:=0]
|
||||||
|
488141 my_demux.my_demux.vc.OR2_tf[1]._y : 0 [by my_demux.my_demux.out1_t_buf_func[1].n1:=1]
|
||||||
|
488348 my_demux.my_demux.c_f_c_t_or._y : 0 [by my_demux.my_demux.c_buf_tk.a:=1]
|
||||||
|
488349 my_demux.my_demux._c_v : 1 [by my_demux.my_demux.c_f_c_t_or._y:=0]
|
||||||
|
493266 my_demux.my_demux.vc.OR2_tf[0]._y : 0 [by my_demux.my_demux.out1_t_buf_func[0].n1:=1]
|
||||||
|
493814 my_demux.my_demux.vc.OR2_tf[0].y : 1 [by my_demux.my_demux.vc.OR2_tf[0]._y:=0]
|
||||||
|
532058 my_demux.my_demux.vc.OR2_tf[1].y : 1 [by my_demux.my_demux.vc.OR2_tf[1]._y:=0]
|
||||||
|
532069 my_demux.my_demux.vc.myctree.C2Els[0]._y : 0 [by my_demux.my_demux.vc.OR2_tf[1].y:=1]
|
||||||
|
532439 my_demux.my_demux._in_v : 1 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=0]
|
||||||
|
532455 my_demux.my_demux.c_el._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
532506 my_demux.my_demux.token_buf._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
533034 my_demux.token.r : 1 [by my_demux.my_demux.token_buf._y:=0]
|
||||||
|
535080 my_demux.my_demux.in_v_buf._y : 0 [by my_demux.my_demux._in_v:=1]
|
||||||
|
535469 my_demux.my_demux.out_or._y : 0 [by my_demux.token.r:=1]
|
||||||
|
537017 my_demux.my_demux._in_c_v_ : 1 [by my_demux.my_demux.c_el._y:=0]
|
||||||
|
559394 my_demux.my_demux._out_v : 1 [by my_demux.my_demux.out_or._y:=0]
|
||||||
|
561960 my_demux.in.v : 1 [by my_demux.my_demux.in_v_buf._y:=0]
|
||||||
|
572435 my_demux.my_demux.inack_ctl._y : 0 [by my_demux.my_demux._out_v:=1]
|
||||||
|
572437 my_demux.in.a : 1 [by my_demux.my_demux.inack_ctl._y:=0]
|
||||||
|
633395 my_demux.my_demux._en : 0 [by my_demux.in.a:=1]
|
||||||
|
633398 my_demux.my_demux.out1_en_buf_t.buf1._y : 1 [by my_demux.my_demux._en:=0]
|
||||||
|
633424 my_demux.my_demux.out1_en_buf_f.buf1._y : 1 [by my_demux.my_demux._en:=0]
|
||||||
|
633715 my_demux.my_demux._en1_X_t[0] : 0 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=1]
|
||||||
|
635025 my_demux.my_demux._en1_X_f[0] : 0 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=1]
|
||||||
|
635025 my_demux.token.a : 1
|
||||||
|
635178 my_demux.my_demux.token_a_out : 0 [by my_demux.token.a:=1]
|
||||||
|
635222 my_demux.my_demux.token_buf._y : 1 [by my_demux.my_demux.token_a_out:=0]
|
||||||
|
637983 my_demux.token.r : 0 [by my_demux.my_demux.token_buf._y:=1]
|
||||||
|
651666 my_demux.my_demux.out_or._y : 1 [by my_demux.token.r:=0]
|
||||||
|
651667 my_demux.my_demux._out_v : 0 [by my_demux.my_demux.out_or._y:=1]
|
||||||
|
651667 my_demux.token.a : 0
|
||||||
|
651667 my_demux.my_demux.out1_t_buf_func[1].n1 : 0
|
||||||
|
651667 my_demux.my_demux.out1_t_buf_func[0].n1 : 0
|
||||||
|
651668 my_demux.my_demux.vc.OR2_tf[0]._y : 1 [by my_demux.my_demux.out1_t_buf_func[0].n1:=0]
|
||||||
|
651689 my_demux.my_demux.vc.OR2_tf[1]._y : 1 [by my_demux.my_demux.out1_t_buf_func[1].n1:=0]
|
||||||
|
651884 my_demux.my_demux.token_a_out : 1 [by my_demux.token.a:=0]
|
||||||
|
653249 my_demux.my_demux.vc.OR2_tf[0].y : 0 [by my_demux.my_demux.vc.OR2_tf[0]._y:=1]
|
||||||
|
661034 my_demux.my_demux.vc.OR2_tf[1].y : 0 [by my_demux.my_demux.vc.OR2_tf[1]._y:=1]
|
||||||
|
661193 my_demux.my_demux.vc.myctree.C2Els[0]._y : 1 [by my_demux.my_demux.vc.OR2_tf[1].y:=0]
|
||||||
|
680869 my_demux.my_demux._in_v : 0 [by my_demux.my_demux.vc.myctree.C2Els[0]._y:=1]
|
||||||
|
682156 my_demux.my_demux.in_v_buf._y : 1 [by my_demux.my_demux._in_v:=0]
|
||||||
|
684388 my_demux.in.v : 0 [by my_demux.my_demux.in_v_buf._y:=1]
|
||||||
|
684388 my_demux.my_demux.c_buf_tk.a : 0
|
||||||
|
684533 my_demux.my_demux.c_buf_tk._y : 1 [by my_demux.my_demux.c_buf_tk.a:=0]
|
||||||
|
687220 my_demux.my_demux.c_f_c_t_or._y : 1 [by my_demux.my_demux.c_buf_tk.a:=0]
|
||||||
|
687221 my_demux.my_demux._c_v : 0 [by my_demux.my_demux.c_f_c_t_or._y:=1]
|
||||||
|
690887 my_demux.my_demux._c_tk_buf : 0 [by my_demux.my_demux.c_buf_tk._y:=1]
|
||||||
|
726505 my_demux.my_demux.c_el._y : 1 [by my_demux.my_demux._c_v:=0]
|
||||||
|
726667 my_demux.my_demux._in_c_v_ : 0 [by my_demux.my_demux.c_el._y:=1]
|
||||||
|
734036 my_demux.my_demux.inack_ctl._y : 1 [by my_demux.my_demux._in_c_v_:=0]
|
||||||
|
734050 my_demux.in.a : 0 [by my_demux.my_demux.inack_ctl._y:=1]
|
||||||
|
734057 my_demux.my_demux._en : 1 [by my_demux.in.a:=0]
|
||||||
|
734217 my_demux.my_demux.out1_en_buf_t.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
734218 my_demux.my_demux._en1_X_t[0] : 1 [by my_demux.my_demux.out1_en_buf_t.buf1._y:=0]
|
||||||
|
755614 my_demux.my_demux.out1_en_buf_f.buf1._y : 0 [by my_demux.my_demux._en:=1]
|
||||||
|
755615 my_demux.my_demux._en1_X_f[0] : 1 [by my_demux.my_demux.out1_en_buf_f.buf1._y:=0]
|
408
test/unit_tests/demux_td_2_SIGN/run/test.prs
Normal file
408
test/unit_tests/demux_td_2_SIGN/run/test.prs
Normal file
@ -0,0 +1,408 @@
|
|||||||
|
= "GND" "GND"
|
||||||
|
= "Vdd" "Vdd"
|
||||||
|
= "Reset" "Reset"
|
||||||
|
"Reset"->"my_demux._reset_B"-
|
||||||
|
~("Reset")->"my_demux._reset_B"+
|
||||||
|
= "my_demux._reset_B" "my_demux.my_demux.reset_B"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.cond.v" "my_demux.my_demux.cond.v"
|
||||||
|
= "my_demux.cond.a" "my_demux.my_demux.cond.a"
|
||||||
|
= "my_demux.cond.d.d[0].f" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].t" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].d[0]"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].d[1]"
|
||||||
|
= "my_demux.cond.d.d[0].d[0]" "my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.cond.d.d[0].d[1]" "my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.out1.v" "my_demux.my_demux.out1.v"
|
||||||
|
= "my_demux.out1.a" "my_demux.my_demux.out1.a"
|
||||||
|
= "my_demux.out1.d.d[0].f" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].t" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].d[0]"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].d[1]"
|
||||||
|
= "my_demux.out1.d.d[1].f" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].t" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].d[0]"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].d[1]"
|
||||||
|
= "my_demux.out1.d.d[1].d[0]" "my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.out1.d.d[1].d[1]" "my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.out1.d.d[0].d[0]" "my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.out1.d.d[0].d[1]" "my_demux.out1.d.d[0].t"
|
||||||
|
~"my_demux.my_demux.token_buf.c1"&~"my_demux.my_demux.token_buf.c2"|~"my_demux.my_demux.token_buf.pr_B"->"my_demux.my_demux.token_buf._y"+
|
||||||
|
"my_demux.my_demux.token_buf.c1"&"my_demux.my_demux.token_buf.c2"&"my_demux.my_demux.token_buf.n1"&"my_demux.my_demux.token_buf.n2"&"my_demux.my_demux.token_buf.sr_B"->"my_demux.my_demux.token_buf._y"-
|
||||||
|
"my_demux.my_demux.token_buf._y"->"my_demux.my_demux.token_buf.y"-
|
||||||
|
~("my_demux.my_demux.token_buf._y")->"my_demux.my_demux.token_buf.y"+
|
||||||
|
"my_demux.my_demux.out1_a_B_buf_f.buf1.a"->"my_demux.my_demux.out1_a_B_buf_f.buf1._y"-
|
||||||
|
~("my_demux.my_demux.out1_a_B_buf_f.buf1.a")->"my_demux.my_demux.out1_a_B_buf_f.buf1._y"+
|
||||||
|
"my_demux.my_demux.out1_a_B_buf_f.buf1._y"->"my_demux.my_demux.out1_a_B_buf_f.buf1.y"-
|
||||||
|
~("my_demux.my_demux.out1_a_B_buf_f.buf1._y")->"my_demux.my_demux.out1_a_B_buf_f.buf1.y"+
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.supply.vdd" "my_demux.my_demux.out1_a_B_buf_f.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.supply.vss" "my_demux.my_demux.out1_a_B_buf_f.buf1.vss"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.out[0]" "my_demux.my_demux.out1_a_B_buf_f.out[1]"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.out[0]" "my_demux.my_demux.out1_a_B_buf_f.buf1.y"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_f.in" "my_demux.my_demux.out1_a_B_buf_f.buf1.a"
|
||||||
|
~"my_demux.my_demux.inack_ctl.c1"&~"my_demux.my_demux.inack_ctl.c2"&~"my_demux.my_demux.inack_ctl.c3"|~"my_demux.my_demux.inack_ctl.pr_B"->"my_demux.my_demux.inack_ctl._y"+
|
||||||
|
"my_demux.my_demux.inack_ctl.c1"&"my_demux.my_demux.inack_ctl.c2"&"my_demux.my_demux.inack_ctl.c3"&"my_demux.my_demux.inack_ctl.sr_B"->"my_demux.my_demux.inack_ctl._y"-
|
||||||
|
"my_demux.my_demux.inack_ctl._y"->"my_demux.my_demux.inack_ctl.y"-
|
||||||
|
~("my_demux.my_demux.inack_ctl._y")->"my_demux.my_demux.inack_ctl.y"+
|
||||||
|
"my_demux.my_demux.reset_bufarray.buf1.a"->"my_demux.my_demux.reset_bufarray.buf1._y"-
|
||||||
|
~("my_demux.my_demux.reset_bufarray.buf1.a")->"my_demux.my_demux.reset_bufarray.buf1._y"+
|
||||||
|
"my_demux.my_demux.reset_bufarray.buf1._y"->"my_demux.my_demux.reset_bufarray.buf1.y"-
|
||||||
|
~("my_demux.my_demux.reset_bufarray.buf1._y")->"my_demux.my_demux.reset_bufarray.buf1.y"+
|
||||||
|
= "my_demux.my_demux.reset_bufarray.supply.vdd" "my_demux.my_demux.reset_bufarray.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.reset_bufarray.supply.vss" "my_demux.my_demux.reset_bufarray.buf1.vss"
|
||||||
|
= "my_demux.my_demux.reset_bufarray.out[0]" "my_demux.my_demux.reset_bufarray.out[1]"
|
||||||
|
= "my_demux.my_demux.reset_bufarray.out[0]" "my_demux.my_demux.reset_bufarray.buf1.y"
|
||||||
|
= "my_demux.my_demux.reset_bufarray.in" "my_demux.my_demux.reset_bufarray.buf1.a"
|
||||||
|
= "my_demux.my_demux._c_v" "my_demux.my_demux.c_el.c1"
|
||||||
|
= "my_demux.my_demux._c_v" "my_demux.my_demux.c_f_c_t_or.y"
|
||||||
|
"my_demux.my_demux.reset_buf_token.a"->"my_demux.my_demux.reset_buf_token._y"-
|
||||||
|
~("my_demux.my_demux.reset_buf_token.a")->"my_demux.my_demux.reset_buf_token._y"+
|
||||||
|
"my_demux.my_demux.reset_buf_token._y"->"my_demux.my_demux.reset_buf_token.y"-
|
||||||
|
~("my_demux.my_demux.reset_buf_token._y")->"my_demux.my_demux.reset_buf_token.y"+
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.c_buf_d.out[0]"
|
||||||
|
= "my_demux.my_demux._c_d_buf[1]" "my_demux.my_demux.c_buf_d.out[1]"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_t_buf_func[1].n2"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_f_buf_func[1].n2"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_t_buf_func[0].n2"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux.out1_f_buf_func[0].n2"
|
||||||
|
= "my_demux.my_demux._c_d_buf[0]" "my_demux.my_demux._c_d_buf[1]"
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.token_buf.c1"
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.out1_en_buf_f.in"
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.out1_en_buf_t.in"
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.en_ctl.y"
|
||||||
|
= "my_demux.my_demux._en" "my_demux.my_demux.inack_ctl.c1"
|
||||||
|
= "my_demux.my_demux.token_a_out" "my_demux.my_demux.token_buf.c2"
|
||||||
|
= "my_demux.my_demux.token_a_out" "my_demux.my_demux.outt_a_inv.y"
|
||||||
|
= "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_B_buf_t.in"
|
||||||
|
= "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_B_buf_f.in"
|
||||||
|
= "my_demux.my_demux._out1_a_B" "my_demux.my_demux.out1_a_inv.y"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].f" "my_demux.my_demux.vc.in.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].t" "my_demux.my_demux.vc.in.d[0].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].d[0]"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].d[1]"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].f" "my_demux.my_demux.vc.in.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].t" "my_demux.my_demux.vc.in.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].d[0]"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].d[1]"
|
||||||
|
= "my_demux.my_demux.in.a" "my_demux.my_demux.en_ctl.c1"
|
||||||
|
= "my_demux.my_demux.in.a" "my_demux.my_demux.inack_ctl.y"
|
||||||
|
= "my_demux.my_demux.in.v" "my_demux.my_demux.in_v_buf.y"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.out1_f_buf_func[1].n1"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.out1_t_buf_func[1].n1"
|
||||||
|
= "my_demux.my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.out1_f_buf_func[0].n1"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.out1_t_buf_func[0].n1"
|
||||||
|
= "my_demux.my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
"my_demux.my_demux.out1_en_buf_t.buf1.a"->"my_demux.my_demux.out1_en_buf_t.buf1._y"-
|
||||||
|
~("my_demux.my_demux.out1_en_buf_t.buf1.a")->"my_demux.my_demux.out1_en_buf_t.buf1._y"+
|
||||||
|
"my_demux.my_demux.out1_en_buf_t.buf1._y"->"my_demux.my_demux.out1_en_buf_t.buf1.y"-
|
||||||
|
~("my_demux.my_demux.out1_en_buf_t.buf1._y")->"my_demux.my_demux.out1_en_buf_t.buf1.y"+
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.supply.vdd" "my_demux.my_demux.out1_en_buf_t.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.supply.vss" "my_demux.my_demux.out1_en_buf_t.buf1.vss"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.out[0]" "my_demux.my_demux.out1_en_buf_t.out[1]"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.out[0]" "my_demux.my_demux.out1_en_buf_t.buf1.y"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_t.in" "my_demux.my_demux.out1_en_buf_t.buf1.a"
|
||||||
|
"my_demux.my_demux.out_or.a"|"my_demux.my_demux.out_or.b"->"my_demux.my_demux.out_or._y"-
|
||||||
|
~("my_demux.my_demux.out_or.a"|"my_demux.my_demux.out_or.b")->"my_demux.my_demux.out_or._y"+
|
||||||
|
"my_demux.my_demux.out_or._y"->"my_demux.my_demux.out_or.y"-
|
||||||
|
~("my_demux.my_demux.out_or._y")->"my_demux.my_demux.out_or.y"+
|
||||||
|
= "my_demux.my_demux._in_c_v_" "my_demux.my_demux.c_el.y"
|
||||||
|
= "my_demux.my_demux._in_c_v_" "my_demux.my_demux.inack_ctl.c2"
|
||||||
|
"my_demux.my_demux.reset_buf.a"->"my_demux.my_demux.reset_buf._y"-
|
||||||
|
~("my_demux.my_demux.reset_buf.a")->"my_demux.my_demux.reset_buf._y"+
|
||||||
|
"my_demux.my_demux.reset_buf._y"->"my_demux.my_demux.reset_buf.y"-
|
||||||
|
~("my_demux.my_demux.reset_buf._y")->"my_demux.my_demux.reset_buf.y"+
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_a_B_buf_f.out[0]"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[1]" "my_demux.my_demux.out1_a_B_buf_f.out[1]"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_t_buf_func[1].c2"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux.out1_t_buf_func[0].c2"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_t[0]" "my_demux.my_demux._out1_a_BX_t[1]"
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_bufarray.in"
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_buf_token.a"
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.reset_buf.y"
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.inack_ctl.sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BX" "my_demux.my_demux.inack_ctl.pr_B"
|
||||||
|
= "my_demux.my_demux.reset_B" "my_demux.my_demux.reset_buf.a"
|
||||||
|
"my_demux.my_demux.c_buf_tk.a"->"my_demux.my_demux.c_buf_tk._y"-
|
||||||
|
~("my_demux.my_demux.c_buf_tk.a")->"my_demux.my_demux.c_buf_tk._y"+
|
||||||
|
"my_demux.my_demux.c_buf_tk._y"->"my_demux.my_demux.c_buf_tk.y"-
|
||||||
|
~("my_demux.my_demux.c_buf_tk._y")->"my_demux.my_demux.c_buf_tk.y"+
|
||||||
|
= "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_en_buf_f.out[0]"
|
||||||
|
= "my_demux.my_demux._en1_X_f[1]" "my_demux.my_demux.out1_en_buf_f.out[1]"
|
||||||
|
= "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_f_buf_func[1].c1"
|
||||||
|
= "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux.out1_f_buf_func[0].c1"
|
||||||
|
= "my_demux.my_demux._en1_X_f[0]" "my_demux.my_demux._en1_X_f[1]"
|
||||||
|
= "my_demux.my_demux._out_v" "my_demux.my_demux.en_ctl.p1"
|
||||||
|
= "my_demux.my_demux._out_v" "my_demux.my_demux.inack_ctl.c3"
|
||||||
|
= "my_demux.my_demux._out_v" "my_demux.my_demux.out_or.y"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.reset_bufarray.out[0]"
|
||||||
|
= "my_demux.my_demux._reset_BXX[1]" "my_demux.my_demux.reset_bufarray.out[1]"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[1].sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[1].pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[1].sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[1].pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[0].sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_f_buf_func[0].pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[0].sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux.out1_t_buf_func[0].pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXX[0]" "my_demux.my_demux._reset_BXX[1]"
|
||||||
|
"my_demux.my_demux.out1_en_buf_f.buf1.a"->"my_demux.my_demux.out1_en_buf_f.buf1._y"-
|
||||||
|
~("my_demux.my_demux.out1_en_buf_f.buf1.a")->"my_demux.my_demux.out1_en_buf_f.buf1._y"+
|
||||||
|
"my_demux.my_demux.out1_en_buf_f.buf1._y"->"my_demux.my_demux.out1_en_buf_f.buf1.y"-
|
||||||
|
~("my_demux.my_demux.out1_en_buf_f.buf1._y")->"my_demux.my_demux.out1_en_buf_f.buf1.y"+
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.supply.vdd" "my_demux.my_demux.out1_en_buf_f.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.supply.vss" "my_demux.my_demux.out1_en_buf_f.buf1.vss"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.out[0]" "my_demux.my_demux.out1_en_buf_f.out[1]"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.out[0]" "my_demux.my_demux.out1_en_buf_f.buf1.y"
|
||||||
|
= "my_demux.my_demux.out1_en_buf_f.in" "my_demux.my_demux.out1_en_buf_f.buf1.a"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_a_B_buf_t.out[0]"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[1]" "my_demux.my_demux.out1_a_B_buf_t.out[1]"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_f_buf_func[1].c2"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux.out1_f_buf_func[0].c2"
|
||||||
|
= "my_demux.my_demux._out1_a_BX_f[0]" "my_demux.my_demux._out1_a_BX_f[1]"
|
||||||
|
~"my_demux.my_demux.c_el.c1"&~"my_demux.my_demux.c_el.c2"->"my_demux.my_demux.c_el._y"+
|
||||||
|
"my_demux.my_demux.c_el.c1"&"my_demux.my_demux.c_el.c2"->"my_demux.my_demux.c_el._y"-
|
||||||
|
"my_demux.my_demux.c_el._y"->"my_demux.my_demux.c_el.y"-
|
||||||
|
~("my_demux.my_demux.c_el._y")->"my_demux.my_demux.c_el.y"+
|
||||||
|
= "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_en_buf_t.out[0]"
|
||||||
|
= "my_demux.my_demux._en1_X_t[1]" "my_demux.my_demux.out1_en_buf_t.out[1]"
|
||||||
|
= "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_t_buf_func[1].c1"
|
||||||
|
= "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux.out1_t_buf_func[0].c1"
|
||||||
|
= "my_demux.my_demux._en1_X_t[0]" "my_demux.my_demux._en1_X_t[1]"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.out1.a" "my_demux.my_demux.out1_a_inv.a"
|
||||||
|
= "my_demux.my_demux.out1.v" "my_demux.my_demux.out_or.a"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1_f_buf_func[1].y"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[0]" "my_demux.my_demux.out1.d.d[1].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1_t_buf_func[1].y"
|
||||||
|
= "my_demux.my_demux.out1.d.d[1].d[1]" "my_demux.my_demux.out1.d.d[1].t"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1_f_buf_func[0].y"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[0]" "my_demux.my_demux.out1.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1_t_buf_func[0].y"
|
||||||
|
= "my_demux.my_demux.out1.d.d[0].d[1]" "my_demux.my_demux.out1.d.d[0].t"
|
||||||
|
"my_demux.my_demux.c_f_c_t_or.a"|"my_demux.my_demux.c_f_c_t_or.b"->"my_demux.my_demux.c_f_c_t_or._y"-
|
||||||
|
~("my_demux.my_demux.c_f_c_t_or.a"|"my_demux.my_demux.c_f_c_t_or.b")->"my_demux.my_demux.c_f_c_t_or._y"+
|
||||||
|
"my_demux.my_demux.c_f_c_t_or._y"->"my_demux.my_demux.c_f_c_t_or.y"-
|
||||||
|
~("my_demux.my_demux.c_f_c_t_or._y")->"my_demux.my_demux.c_f_c_t_or.y"+
|
||||||
|
"my_demux.my_demux.in_v_buf.a"->"my_demux.my_demux.in_v_buf._y"-
|
||||||
|
~("my_demux.my_demux.in_v_buf.a")->"my_demux.my_demux.in_v_buf._y"+
|
||||||
|
"my_demux.my_demux.in_v_buf._y"->"my_demux.my_demux.in_v_buf.y"-
|
||||||
|
~("my_demux.my_demux.in_v_buf._y")->"my_demux.my_demux.in_v_buf.y"+
|
||||||
|
"my_demux.my_demux.out1_a_inv.a"->"my_demux.my_demux.out1_a_inv.y"-
|
||||||
|
~("my_demux.my_demux.out1_a_inv.a")->"my_demux.my_demux.out1_a_inv.y"+
|
||||||
|
= "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token.r"
|
||||||
|
= "my_demux.my_demux.token.a" "my_demux.my_demux.outt_a_inv.a"
|
||||||
|
= "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token_buf.y"
|
||||||
|
= "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.out_or.b"
|
||||||
|
= "my_demux.my_demux.token.d.d[0]" "my_demux.my_demux.token.r"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_en_buf_f.supply.vss"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_en_buf_f.supply.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_en_buf_t.supply.vss"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_en_buf_t.supply.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.vc.supply.vss"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.vc.supply.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.token_buf.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_t_buf_func[1].vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_f_buf_func[1].vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_t_buf_func[0].vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out1_f_buf_func[0].vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.in_v_buf.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.c_el.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.c_f_c_t_or.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.reset_buf_token.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.reset_buf.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.en_ctl.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.inack_ctl.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vdd" "my_demux.my_demux.out_or.vdd"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.token_buf.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_t_buf_func[1].vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_f_buf_func[1].vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_t_buf_func[0].vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out1_f_buf_func[0].vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.in_v_buf.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.c_el.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.c_f_c_t_or.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.reset_buf_token.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.reset_buf.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.en_ctl.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.inack_ctl.vss"
|
||||||
|
= "my_demux.my_demux.supply.vss" "my_demux.my_demux.out_or.vss"
|
||||||
|
~"my_demux.my_demux.vc.myctree.C2Els[0].c1"&~"my_demux.my_demux.vc.myctree.C2Els[0].c2"->"my_demux.my_demux.vc.myctree.C2Els[0]._y"+
|
||||||
|
"my_demux.my_demux.vc.myctree.C2Els[0].c1"&"my_demux.my_demux.vc.myctree.C2Els[0].c2"->"my_demux.my_demux.vc.myctree.C2Els[0]._y"-
|
||||||
|
"my_demux.my_demux.vc.myctree.C2Els[0]._y"->"my_demux.my_demux.vc.myctree.C2Els[0].y"-
|
||||||
|
~("my_demux.my_demux.vc.myctree.C2Els[0]._y")->"my_demux.my_demux.vc.myctree.C2Els[0].y"+
|
||||||
|
= "my_demux.my_demux.vc.myctree.supply.vdd" "my_demux.my_demux.vc.myctree.C2Els[0].vdd"
|
||||||
|
= "my_demux.my_demux.vc.myctree.supply.vss" "my_demux.my_demux.vc.myctree.C2Els[0].vss"
|
||||||
|
= "my_demux.my_demux.vc.myctree.in[0]" "my_demux.my_demux.vc.myctree.C2Els[0].c1"
|
||||||
|
= "my_demux.my_demux.vc.myctree.in[0]" "my_demux.my_demux.vc.myctree.tmp[0]"
|
||||||
|
= "my_demux.my_demux.vc.myctree.in[1]" "my_demux.my_demux.vc.myctree.C2Els[0].c2"
|
||||||
|
= "my_demux.my_demux.vc.myctree.in[1]" "my_demux.my_demux.vc.myctree.tmp[1]"
|
||||||
|
= "my_demux.my_demux.vc.myctree.out" "my_demux.my_demux.vc.myctree.C2Els[0].y"
|
||||||
|
= "my_demux.my_demux.vc.myctree.out" "my_demux.my_demux.vc.myctree.tmp[2]"
|
||||||
|
"my_demux.my_demux.vc.OR2_tf[0].a"|"my_demux.my_demux.vc.OR2_tf[0].b"->"my_demux.my_demux.vc.OR2_tf[0]._y"-
|
||||||
|
~("my_demux.my_demux.vc.OR2_tf[0].a"|"my_demux.my_demux.vc.OR2_tf[0].b")->"my_demux.my_demux.vc.OR2_tf[0]._y"+
|
||||||
|
"my_demux.my_demux.vc.OR2_tf[0]._y"->"my_demux.my_demux.vc.OR2_tf[0].y"-
|
||||||
|
~("my_demux.my_demux.vc.OR2_tf[0]._y")->"my_demux.my_demux.vc.OR2_tf[0].y"+
|
||||||
|
"my_demux.my_demux.vc.OR2_tf[1].a"|"my_demux.my_demux.vc.OR2_tf[1].b"->"my_demux.my_demux.vc.OR2_tf[1]._y"-
|
||||||
|
~("my_demux.my_demux.vc.OR2_tf[1].a"|"my_demux.my_demux.vc.OR2_tf[1].b")->"my_demux.my_demux.vc.OR2_tf[1]._y"+
|
||||||
|
"my_demux.my_demux.vc.OR2_tf[1]._y"->"my_demux.my_demux.vc.OR2_tf[1].y"-
|
||||||
|
~("my_demux.my_demux.vc.OR2_tf[1]._y")->"my_demux.my_demux.vc.OR2_tf[1].y"+
|
||||||
|
= "my_demux.my_demux.vc.OR2_tf[1].y" "my_demux.my_demux.vc.myctree.in[1]"
|
||||||
|
= "my_demux.my_demux.vc.OR2_tf[0].y" "my_demux.my_demux.vc.myctree.in[0]"
|
||||||
|
= "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.myctree.supply.vss"
|
||||||
|
= "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.myctree.supply.vdd"
|
||||||
|
= "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.OR2_tf[1].vdd"
|
||||||
|
= "my_demux.my_demux.vc.supply.vdd" "my_demux.my_demux.vc.OR2_tf[0].vdd"
|
||||||
|
= "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.OR2_tf[1].vss"
|
||||||
|
= "my_demux.my_demux.vc.supply.vss" "my_demux.my_demux.vc.OR2_tf[0].vss"
|
||||||
|
= "my_demux.my_demux.vc.out" "my_demux.my_demux.vc.myctree.out"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.OR2_tf[1].b"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[0]" "my_demux.my_demux.vc.in.d[1].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.OR2_tf[1].a"
|
||||||
|
= "my_demux.my_demux.vc.in.d[1].d[1]" "my_demux.my_demux.vc.in.d[1].t"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.OR2_tf[0].b"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[0]" "my_demux.my_demux.vc.in.d[0].f"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.OR2_tf[0].a"
|
||||||
|
= "my_demux.my_demux.vc.in.d[0].d[1]" "my_demux.my_demux.vc.in.d[0].t"
|
||||||
|
"my_demux.my_demux.out1_a_B_buf_t.buf1.a"->"my_demux.my_demux.out1_a_B_buf_t.buf1._y"-
|
||||||
|
~("my_demux.my_demux.out1_a_B_buf_t.buf1.a")->"my_demux.my_demux.out1_a_B_buf_t.buf1._y"+
|
||||||
|
"my_demux.my_demux.out1_a_B_buf_t.buf1._y"->"my_demux.my_demux.out1_a_B_buf_t.buf1.y"-
|
||||||
|
~("my_demux.my_demux.out1_a_B_buf_t.buf1._y")->"my_demux.my_demux.out1_a_B_buf_t.buf1.y"+
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.supply.vdd" "my_demux.my_demux.out1_a_B_buf_t.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.supply.vss" "my_demux.my_demux.out1_a_B_buf_t.buf1.vss"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.out[0]" "my_demux.my_demux.out1_a_B_buf_t.out[1]"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.out[0]" "my_demux.my_demux.out1_a_B_buf_t.buf1.y"
|
||||||
|
= "my_demux.my_demux.out1_a_B_buf_t.in" "my_demux.my_demux.out1_a_B_buf_t.buf1.a"
|
||||||
|
~"my_demux.my_demux.en_ctl.p1"&~"my_demux.my_demux.en_ctl.c1"->"my_demux.my_demux.en_ctl.y"+
|
||||||
|
"my_demux.my_demux.en_ctl.c1"->"my_demux.my_demux.en_ctl.y"-
|
||||||
|
= "my_demux.my_demux._reset_BXt" "my_demux.my_demux.token_buf.sr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXt" "my_demux.my_demux.token_buf.pr_B"
|
||||||
|
= "my_demux.my_demux._reset_BXt" "my_demux.my_demux.reset_buf_token.y"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.c_buf_d.in"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.c_f_c_t_or.b"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[0]" "my_demux.my_demux.cond.d.d[0].f"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.c_buf_tk.a"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.c_f_c_t_or.a"
|
||||||
|
= "my_demux.my_demux.cond.d.d[0].d[1]" "my_demux.my_demux.cond.d.d[0].t"
|
||||||
|
~"my_demux.my_demux.out1_f_buf_func[0].c1"&~"my_demux.my_demux.out1_f_buf_func[0].c2"|~"my_demux.my_demux.out1_f_buf_func[0].pr_B"->"my_demux.my_demux.out1_f_buf_func[0]._y"+
|
||||||
|
"my_demux.my_demux.out1_f_buf_func[0].c1"&"my_demux.my_demux.out1_f_buf_func[0].c2"&"my_demux.my_demux.out1_f_buf_func[0].n1"&"my_demux.my_demux.out1_f_buf_func[0].n2"&"my_demux.my_demux.out1_f_buf_func[0].sr_B"->"my_demux.my_demux.out1_f_buf_func[0]._y"-
|
||||||
|
"my_demux.my_demux.out1_f_buf_func[0]._y"->"my_demux.my_demux.out1_f_buf_func[0].y"-
|
||||||
|
~("my_demux.my_demux.out1_f_buf_func[0]._y")->"my_demux.my_demux.out1_f_buf_func[0].y"+
|
||||||
|
~"my_demux.my_demux.out1_f_buf_func[1].c1"&~"my_demux.my_demux.out1_f_buf_func[1].c2"|~"my_demux.my_demux.out1_f_buf_func[1].pr_B"->"my_demux.my_demux.out1_f_buf_func[1]._y"+
|
||||||
|
"my_demux.my_demux.out1_f_buf_func[1].c1"&"my_demux.my_demux.out1_f_buf_func[1].c2"&"my_demux.my_demux.out1_f_buf_func[1].n1"&"my_demux.my_demux.out1_f_buf_func[1].n2"&"my_demux.my_demux.out1_f_buf_func[1].sr_B"->"my_demux.my_demux.out1_f_buf_func[1]._y"-
|
||||||
|
"my_demux.my_demux.out1_f_buf_func[1]._y"->"my_demux.my_demux.out1_f_buf_func[1].y"-
|
||||||
|
~("my_demux.my_demux.out1_f_buf_func[1]._y")->"my_demux.my_demux.out1_f_buf_func[1].y"+
|
||||||
|
= "my_demux.my_demux._in_v" "my_demux.my_demux.token_buf.n2"
|
||||||
|
= "my_demux.my_demux._in_v" "my_demux.my_demux.in_v_buf.a"
|
||||||
|
= "my_demux.my_demux._in_v" "my_demux.my_demux.c_el.c2"
|
||||||
|
= "my_demux.my_demux._in_v" "my_demux.my_demux.vc.out"
|
||||||
|
~"my_demux.my_demux.out1_t_buf_func[0].c1"&~"my_demux.my_demux.out1_t_buf_func[0].c2"|~"my_demux.my_demux.out1_t_buf_func[0].pr_B"->"my_demux.my_demux.out1_t_buf_func[0]._y"+
|
||||||
|
"my_demux.my_demux.out1_t_buf_func[0].c1"&"my_demux.my_demux.out1_t_buf_func[0].c2"&"my_demux.my_demux.out1_t_buf_func[0].n1"&"my_demux.my_demux.out1_t_buf_func[0].n2"&"my_demux.my_demux.out1_t_buf_func[0].sr_B"->"my_demux.my_demux.out1_t_buf_func[0]._y"-
|
||||||
|
"my_demux.my_demux.out1_t_buf_func[0]._y"->"my_demux.my_demux.out1_t_buf_func[0].y"-
|
||||||
|
~("my_demux.my_demux.out1_t_buf_func[0]._y")->"my_demux.my_demux.out1_t_buf_func[0].y"+
|
||||||
|
~"my_demux.my_demux.out1_t_buf_func[1].c1"&~"my_demux.my_demux.out1_t_buf_func[1].c2"|~"my_demux.my_demux.out1_t_buf_func[1].pr_B"->"my_demux.my_demux.out1_t_buf_func[1]._y"+
|
||||||
|
"my_demux.my_demux.out1_t_buf_func[1].c1"&"my_demux.my_demux.out1_t_buf_func[1].c2"&"my_demux.my_demux.out1_t_buf_func[1].n1"&"my_demux.my_demux.out1_t_buf_func[1].n2"&"my_demux.my_demux.out1_t_buf_func[1].sr_B"->"my_demux.my_demux.out1_t_buf_func[1]._y"-
|
||||||
|
"my_demux.my_demux.out1_t_buf_func[1]._y"->"my_demux.my_demux.out1_t_buf_func[1].y"-
|
||||||
|
~("my_demux.my_demux.out1_t_buf_func[1]._y")->"my_demux.my_demux.out1_t_buf_func[1].y"+
|
||||||
|
"my_demux.my_demux.c_buf_d.buf1.a"->"my_demux.my_demux.c_buf_d.buf1._y"-
|
||||||
|
~("my_demux.my_demux.c_buf_d.buf1.a")->"my_demux.my_demux.c_buf_d.buf1._y"+
|
||||||
|
"my_demux.my_demux.c_buf_d.buf1._y"->"my_demux.my_demux.c_buf_d.buf1.y"-
|
||||||
|
~("my_demux.my_demux.c_buf_d.buf1._y")->"my_demux.my_demux.c_buf_d.buf1.y"+
|
||||||
|
= "my_demux.my_demux.c_buf_d.supply.vdd" "my_demux.my_demux.c_buf_d.buf1.vdd"
|
||||||
|
= "my_demux.my_demux.c_buf_d.supply.vss" "my_demux.my_demux.c_buf_d.buf1.vss"
|
||||||
|
= "my_demux.my_demux.c_buf_d.out[0]" "my_demux.my_demux.c_buf_d.out[1]"
|
||||||
|
= "my_demux.my_demux.c_buf_d.out[0]" "my_demux.my_demux.c_buf_d.buf1.y"
|
||||||
|
= "my_demux.my_demux.c_buf_d.in" "my_demux.my_demux.c_buf_d.buf1.a"
|
||||||
|
"my_demux.my_demux.outt_a_inv.a"->"my_demux.my_demux.outt_a_inv.y"-
|
||||||
|
~("my_demux.my_demux.outt_a_inv.a")->"my_demux.my_demux.outt_a_inv.y"+
|
||||||
|
= "my_demux.my_demux._c_tk_buf" "my_demux.my_demux.token_buf.n1"
|
||||||
|
= "my_demux.my_demux._c_tk_buf" "my_demux.my_demux.c_buf_tk.y"
|
||||||
|
= "Vdd" "my_demux.my_demux.supply.vdd"
|
||||||
|
= "GND" "my_demux.my_demux.supply.vss"
|
||||||
|
= "my_demux.token.d.d[0]" "my_demux.token.r"
|
||||||
|
= "my_demux.token.r" "my_demux.my_demux.token.r"
|
||||||
|
= "my_demux.token.a" "my_demux.my_demux.token.a"
|
||||||
|
= "my_demux.token.d.d[0]" "my_demux.my_demux.token.d.d[0]"
|
||||||
|
= "my_demux.token.d.d[0]" "my_demux.token.r"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.in.v" "my_demux.my_demux.in.v"
|
||||||
|
= "my_demux.in.a" "my_demux.my_demux.in.a"
|
||||||
|
= "my_demux.in.d.d[0].f" "my_demux.my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].t" "my_demux.my_demux.in.d.d[0].t"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.my_demux.in.d.d[0].d[0]"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.my_demux.in.d.d[0].d[1]"
|
||||||
|
= "my_demux.in.d.d[1].f" "my_demux.my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].t" "my_demux.my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.my_demux.in.d.d[1].d[0]"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.my_demux.in.d.d[1].d[1]"
|
||||||
|
= "my_demux.in.d.d[1].d[0]" "my_demux.in.d.d[1].f"
|
||||||
|
= "my_demux.in.d.d[1].d[1]" "my_demux.in.d.d[1].t"
|
||||||
|
= "my_demux.in.d.d[0].d[0]" "my_demux.in.d.d[0].f"
|
||||||
|
= "my_demux.in.d.d[0].d[1]" "my_demux.in.d.d[0].t"
|
50
test/unit_tests/demux_td_2_SIGN/test.act
Normal file
50
test/unit_tests/demux_td_2_SIGN/test.act
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* This file is part of ACT dataflow neuro library.
|
||||||
|
* It's the testing facility for cell_lib_std.act
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
|
*
|
||||||
|
* You may redistribute and modify this documentation and make products
|
||||||
|
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
|
||||||
|
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
|
||||||
|
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
|
||||||
|
* for applicable conditions.
|
||||||
|
*
|
||||||
|
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
|
||||||
|
*
|
||||||
|
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
|
||||||
|
* these sources, You must maintain the Source Location visible in its
|
||||||
|
* documentation.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
import "../../dataflow_neuro/primitives.act";
|
||||||
|
import globals;
|
||||||
|
|
||||||
|
open tmpl::dataflow_neuro;
|
||||||
|
|
||||||
|
|
||||||
|
defproc demux_2 (avMx1of2<2> in; avMx1of2<2> out1; a1of1 token; avMx1of2<1> cond){
|
||||||
|
|
||||||
|
demux_td<2, true> my_demux(.in=in, .out1=out1,.token = token, .cond = cond);
|
||||||
|
//Low active Reset
|
||||||
|
bool _reset_B;
|
||||||
|
prs {
|
||||||
|
Reset => _reset_B-
|
||||||
|
}
|
||||||
|
my_demux.supply.vss = GND;
|
||||||
|
my_demux.supply.vdd = Vdd;
|
||||||
|
my_demux.reset_B = _reset_B;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
demux_2 my_demux;
|
84
test/unit_tests/demux_td_2_SIGN/test.prsim
Normal file
84
test/unit_tests/demux_td_2_SIGN/test.prsim
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
watchall
|
||||||
|
set-qdi-channel-neutral "my_demux.in" 2
|
||||||
|
set my_demux.out1.a 0
|
||||||
|
set my_demux.out1.v 0
|
||||||
|
set my_demux.token.a 0
|
||||||
|
set my_demux.token.r 0
|
||||||
|
set my_demux.cond.d.d[0].t 0
|
||||||
|
set my_demux.cond.d.d[0].f 0
|
||||||
|
cycle
|
||||||
|
system "echo 'System initialized'"
|
||||||
|
|
||||||
|
set Reset 0
|
||||||
|
cycle
|
||||||
|
system "echo 'System reset completed'"
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
|
||||||
|
assert-qdi-channel-neutral "my_demux.out1" 2
|
||||||
|
assert-qdi-channel-neutral "my_demux.in" 2
|
||||||
|
cycle
|
||||||
|
|
||||||
|
system "echo 'Output neutral checked'"
|
||||||
|
|
||||||
|
set my_demux.cond.d.d[0].t 0
|
||||||
|
set my_demux.cond.d.d[0].f 1
|
||||||
|
set-qdi-channel-valid "my_demux.in" 2 3
|
||||||
|
cycle
|
||||||
|
assert my_demux.in.v 1
|
||||||
|
assert my_demux.in.a 0
|
||||||
|
|
||||||
|
assert-qdi-channel-valid "my_demux.out1" 2 3
|
||||||
|
assert my_demux.token.a 0
|
||||||
|
set my_demux.out1.v 1
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert my_demux.in.a 1
|
||||||
|
set-qdi-channel-neutral "my_demux.in" 2
|
||||||
|
cycle
|
||||||
|
set my_demux.out1.a 1
|
||||||
|
|
||||||
|
|
||||||
|
system "echo 'First Cond Checked'"
|
||||||
|
|
||||||
|
set my_demux.out1.a 0
|
||||||
|
set my_demux.out1.v 0
|
||||||
|
set my_demux.token.a 0
|
||||||
|
set my_demux.token.r 0
|
||||||
|
set my_demux.cond.d.d[0].t 0
|
||||||
|
set my_demux.cond.d.d[0].f 0
|
||||||
|
cycle
|
||||||
|
|
||||||
|
system "echo 'System initialized'"
|
||||||
|
|
||||||
|
set my_demux.cond.d.d[0].t 1
|
||||||
|
set my_demux.cond.d.d[0].f 0
|
||||||
|
set-qdi-channel-valid "my_demux.in" 2 3
|
||||||
|
cycle
|
||||||
|
assert my_demux.in.v 1
|
||||||
|
assert my_demux.in.a 1
|
||||||
|
assert my_demux.token.r 1
|
||||||
|
|
||||||
|
set my_demux.token.a 1
|
||||||
|
set my_demux.out1.a 1
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert my_demux.token.r 0
|
||||||
|
|
||||||
|
set my_demux.token.a 0
|
||||||
|
set-qdi-channel-neutral "my_demux.in" 2
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert my_demux.in.v 0
|
||||||
|
|
||||||
|
set my_demux.cond.d.d[0].t 0
|
||||||
|
set my_demux.cond.d.d[0].f 0
|
||||||
|
cycle
|
||||||
|
|
||||||
|
assert my_demux.in.a 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
346
test/unit_tests/merge_t_2_adv/run/prsim.out
Normal file
346
test/unit_tests/merge_t_2_adv/run/prsim.out
Normal file
@ -0,0 +1,346 @@
|
|||||||
|
my_merge.in1.d.d[1].f my_merge.in1.v my_merge.in1.d.d[0].f my_merge.in1.d.d[0].t my_merge.merge_cell._en my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[1].y my_merge.fifo_chain[1].fifo_element[0]._in_v my_merge.merge_cell._out_a_BX[0] my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[0].y my_merge.in2.d.d[0].t my_merge.in2.d.d[0].f my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1].y my_merge.merge_cell._en_X[0] my_merge.out.v my_merge.in2.d.d[1].t my_merge.in2.d.d[1].f my_merge.fifo_chain[0].fifo_element[0]._in_v my_merge.out.a my_merge.merge_cell._out_a_B my_merge.in2.v my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1]._y my_merge.in1.d.d[1].t my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[0]._y my_merge.fifo_chain[1].fifo_element[0].in_v_buf._y my_merge.fifo_chain[0].fifo_element[0].vc.myctree.C2Els[0]._y my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[0].y my_merge.merge_cell.out_a_buffer.buf1._y my_merge.merge_cell.en_buffer.buf1._y my_merge.fifo_chain[1].fifo_element[0].vc.myctree.C2Els[0]._y my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[1]._y my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[0]._y my_merge.fifo_chain[0].fifo_element[0].in_v_buf._y
|
||||||
|
241013 my_merge.in1.d.d[0].f : 0
|
||||||
|
241013 my_merge.out.v : 0
|
||||||
|
241013 my_merge.out.a : 0
|
||||||
|
241013 my_merge.in2.v : 0
|
||||||
|
241013 my_merge.in1.d.d[1].f : 0
|
||||||
|
241013 my_merge.in2.d.d[1].f : 0
|
||||||
|
241013 my_merge.in1.v : 0
|
||||||
|
241013 my_merge.in2.d.d[1].t : 0
|
||||||
|
241013 my_merge.in2.d.d[0].t : 0
|
||||||
|
241013 my_merge.in1.d.d[0].t : 0
|
||||||
|
241013 my_merge.in2.d.d[0].f : 0
|
||||||
|
241013 my_merge.in1.d.d[1].t : 0
|
||||||
|
241014 my_merge.merge_cell._en : 1 [by my_merge.out.a:=0]
|
||||||
|
241014 my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[0]._y : 1 [by my_merge.in1.d.d[0].t:=0]
|
||||||
|
241015 my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[0].y : 0 [by my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[0]._y:=1]
|
||||||
|
241018 my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[1]._y : 1 [by my_merge.in1.d.d[1].t:=0]
|
||||||
|
241035 my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[1].y : 0 [by my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[1]._y:=1]
|
||||||
|
241866 my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[0]._y : 1 [by my_merge.in2.d.d[0].f:=0]
|
||||||
|
241905 my_merge.merge_cell.en_buffer.buf1._y : 0 [by my_merge.merge_cell._en:=1]
|
||||||
|
241908 my_merge.merge_cell._en_X[0] : 1 [by my_merge.merge_cell.en_buffer.buf1._y:=0]
|
||||||
|
243608 my_merge.fifo_chain[0].fifo_element[0].vc.myctree.C2Els[0]._y : 1 [by my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[1].y:=0]
|
||||||
|
244549 my_merge.fifo_chain[0].fifo_element[0]._in_v : 0 [by my_merge.fifo_chain[0].fifo_element[0].vc.myctree.C2Els[0]._y:=1]
|
||||||
|
245195 my_merge.merge_cell._out_a_B : 1 [by my_merge.out.a:=0]
|
||||||
|
245196 my_merge.merge_cell.out_a_buffer.buf1._y : 0 [by my_merge.merge_cell._out_a_B:=1]
|
||||||
|
245238 my_merge.merge_cell._out_a_BX[0] : 1 [by my_merge.merge_cell.out_a_buffer.buf1._y:=0]
|
||||||
|
250227 my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[0].y : 0 [by my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[0]._y:=1]
|
||||||
|
275795 my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1]._y : 1 [by my_merge.in2.d.d[1].t:=0]
|
||||||
|
278612 my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1].y : 0 [by my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1]._y:=1]
|
||||||
|
292345 my_merge.fifo_chain[1].fifo_element[0].vc.myctree.C2Els[0]._y : 1 [by my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1].y:=0]
|
||||||
|
292440 my_merge.fifo_chain[1].fifo_element[0]._in_v : 0 [by my_merge.fifo_chain[1].fifo_element[0].vc.myctree.C2Els[0]._y:=1]
|
||||||
|
292775 my_merge.fifo_chain[1].fifo_element[0].in_v_buf._y : 1 [by my_merge.fifo_chain[1].fifo_element[0]._in_v:=0]
|
||||||
|
303511 my_merge.fifo_chain[0].fifo_element[0].in_v_buf._y : 1 [by my_merge.fifo_chain[0].fifo_element[0]._in_v:=0]
|
||||||
|
-------------------------------------------------
|
||||||
|
[0] System initialized
|
||||||
|
303511 Reset : 0
|
||||||
|
303519 my_merge._reset_B : 1 [by Reset:=0]
|
||||||
|
303553 my_merge.merge_cell.reset_buf._y : 0 [by my_merge._reset_B:=1]
|
||||||
|
303557 my_merge.merge_cell._reset_BX : 1 [by my_merge.merge_cell.reset_buf._y:=0]
|
||||||
|
304437 my_merge.fifo_chain[1].reset_buf._y : 0 [by my_merge._reset_B:=1]
|
||||||
|
306835 my_merge.fifo_chain[1]._reset_BX : 1 [by my_merge.fifo_chain[1].reset_buf._y:=0]
|
||||||
|
310050 my_merge.fifo_chain[1].reset_bufarray.buf1._y : 0 [by my_merge.fifo_chain[1]._reset_BX:=1]
|
||||||
|
317406 my_merge.fifo_chain[0].reset_buf._y : 0 [by my_merge._reset_B:=1]
|
||||||
|
317454 my_merge.fifo_chain[0]._reset_BX : 1 [by my_merge.fifo_chain[0].reset_buf._y:=0]
|
||||||
|
317457 my_merge.fifo_chain[0].reset_bufarray.buf1._y : 0 [by my_merge.fifo_chain[0]._reset_BX:=1]
|
||||||
|
317635 my_merge.fifo_chain[0]._reset_BXX[0] : 1 [by my_merge.fifo_chain[0].reset_bufarray.buf1._y:=0]
|
||||||
|
329534 my_merge.fifo_chain[0].fifo_element[1].reset_buf._y : 0 [by my_merge.fifo_chain[0]._reset_BXX[0]:=1]
|
||||||
|
335485 my_merge.fifo_chain[0].fifo_element[1]._reset_BX : 1 [by my_merge.fifo_chain[0].fifo_element[1].reset_buf._y:=0]
|
||||||
|
338612 my_merge.fifo_chain[0].fifo_element[0].reset_buf._y : 0 [by my_merge.fifo_chain[0]._reset_BXX[0]:=1]
|
||||||
|
339439 my_merge.fifo_chain[0].fifo_element[0]._reset_BX : 1 [by my_merge.fifo_chain[0].fifo_element[0].reset_buf._y:=0]
|
||||||
|
339612 my_merge.fifo_chain[0].fifo_element[0].reset_bufarray.buf1._y : 0 [by my_merge.fifo_chain[0].fifo_element[0]._reset_BX:=1]
|
||||||
|
339796 my_merge.fifo_chain[0].fifo_element[0]._reset_BXX[0] : 1 [by my_merge.fifo_chain[0].fifo_element[0].reset_bufarray.buf1._y:=0]
|
||||||
|
349935 my_merge.merge_cell.reset_bufarray.buf1._y : 0 [by my_merge.merge_cell._reset_BX:=1]
|
||||||
|
349936 my_merge.merge_cell._reset_BXX[0] : 1 [by my_merge.merge_cell.reset_bufarray.buf1._y:=0]
|
||||||
|
357169 my_merge.fifo_chain[1]._reset_BXX[0] : 1 [by my_merge.fifo_chain[1].reset_bufarray.buf1._y:=0]
|
||||||
|
357173 my_merge.fifo_chain[1].fifo_element[1].reset_buf._y : 0 [by my_merge.fifo_chain[1]._reset_BXX[0]:=1]
|
||||||
|
357242 my_merge.fifo_chain[1].fifo_element[0].reset_buf._y : 0 [by my_merge.fifo_chain[1]._reset_BXX[0]:=1]
|
||||||
|
357338 my_merge.fifo_chain[1].fifo_element[0]._reset_BX : 1 [by my_merge.fifo_chain[1].fifo_element[0].reset_buf._y:=0]
|
||||||
|
357474 my_merge.fifo_chain[1].fifo_element[0].reset_bufarray.buf1._y : 0 [by my_merge.fifo_chain[1].fifo_element[0]._reset_BX:=1]
|
||||||
|
357475 my_merge.fifo_chain[1].fifo_element[0]._reset_BXX[0] : 1 [by my_merge.fifo_chain[1].fifo_element[0].reset_bufarray.buf1._y:=0]
|
||||||
|
374970 my_merge.fifo_chain[0].fifo_element[1].reset_bufarray.buf1._y : 0 [by my_merge.fifo_chain[0].fifo_element[1]._reset_BX:=1]
|
||||||
|
394016 my_merge.fifo_chain[0].fifo_element[1]._reset_BXX[0] : 1 [by my_merge.fifo_chain[0].fifo_element[1].reset_bufarray.buf1._y:=0]
|
||||||
|
394461 my_merge.fifo_chain[1].fifo_element[1]._reset_BX : 1 [by my_merge.fifo_chain[1].fifo_element[1].reset_buf._y:=0]
|
||||||
|
394702 my_merge.fifo_chain[1].fifo_element[1].reset_bufarray.buf1._y : 0 [by my_merge.fifo_chain[1].fifo_element[1]._reset_BX:=1]
|
||||||
|
398661 my_merge.fifo_chain[1].fifo_element[1]._reset_BXX[0] : 1 [by my_merge.fifo_chain[1].fifo_element[1].reset_bufarray.buf1._y:=0]
|
||||||
|
-------------------------------------------------
|
||||||
|
[1] System reset completed
|
||||||
|
|
||||||
|
-------------------------------------------------
|
||||||
|
[2] Output neutral checked
|
||||||
|
398661 my_merge.in1.d.d[0].f : 1
|
||||||
|
398661 my_merge.in2.d.d[1].t : 1
|
||||||
|
398661 my_merge.in2.d.d[0].f : 1
|
||||||
|
398661 my_merge.in1.d.d[1].t : 1
|
||||||
|
398662 my_merge.fifo_chain[1].fifo_element[0].t_buf_func[1]._y : 0 [by my_merge.in2.d.d[1].t:=1]
|
||||||
|
398662 my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[1]._y : 0 [by my_merge.in1.d.d[1].t:=1]
|
||||||
|
398663 my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[1].y : 1 [by my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[1]._y:=0]
|
||||||
|
398673 my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[0]._y : 0 [by my_merge.in1.d.d[0].f:=1]
|
||||||
|
398698 my_merge.fifo_chain[0].fifo_element[0].t_buf_func[1]._y : 0 [by my_merge.in1.d.d[1].t:=1]
|
||||||
|
398717 my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[0]._y : 0 [by my_merge.in2.d.d[0].f:=1]
|
||||||
|
398730 my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[0].y : 1 [by my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[0]._y:=0]
|
||||||
|
399690 my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1]._y : 0 [by my_merge.in2.d.d[1].t:=1]
|
||||||
|
400390 my_merge.fifo_chain[0].fifo_element[0].t_buf_func[1].y : 1 [by my_merge.fifo_chain[0].fifo_element[0].t_buf_func[1]._y:=0]
|
||||||
|
400415 my_merge.fifo_chain[0].fifo_element[1].t_buf_func[1]._y : 0 [by my_merge.fifo_chain[0].fifo_element[0].t_buf_func[1].y:=1]
|
||||||
|
400436 my_merge.merge_cell.merge_func_t[1].n2 : 1 [by my_merge.fifo_chain[0].fifo_element[1].t_buf_func[1]._y:=0]
|
||||||
|
400437 my_merge.merge_cell.vc1.OR2_tf[1]._y : 0 [by my_merge.merge_cell.merge_func_t[1].n2:=1]
|
||||||
|
400747 my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[1]._y : 0 [by my_merge.fifo_chain[0].fifo_element[0].t_buf_func[1].y:=1]
|
||||||
|
400748 my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[1].y : 1 [by my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[1]._y:=0]
|
||||||
|
402237 my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[0].y : 1 [by my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[0]._y:=0]
|
||||||
|
402238 my_merge.fifo_chain[0].fifo_element[0].vc.myctree.C2Els[0]._y : 0 [by my_merge.fifo_chain[0].fifo_element[0].vc.OR2_tf[0].y:=1]
|
||||||
|
402399 my_merge.fifo_chain[0].fifo_element[0]._in_v : 1 [by my_merge.fifo_chain[0].fifo_element[0].vc.myctree.C2Els[0]._y:=0]
|
||||||
|
402561 my_merge.fifo_chain[0].fifo_element[0].f_buf_func[0]._y : 0 [by my_merge.in1.d.d[0].f:=1]
|
||||||
|
402566 my_merge.fifo_chain[0].fifo_element[0].f_buf_func[0].y : 1 [by my_merge.fifo_chain[0].fifo_element[0].f_buf_func[0]._y:=0]
|
||||||
|
402974 my_merge.fifo_chain[0].fifo_element[1].f_buf_func[0]._y : 0 [by my_merge.fifo_chain[0].fifo_element[0].f_buf_func[0].y:=1]
|
||||||
|
402985 my_merge.merge_cell.merge_func_f[0].n2 : 1 [by my_merge.fifo_chain[0].fifo_element[1].f_buf_func[0]._y:=0]
|
||||||
|
403147 my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[0]._y : 0 [by my_merge.fifo_chain[0].fifo_element[0].f_buf_func[0].y:=1]
|
||||||
|
403161 my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[0].y : 1 [by my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[0]._y:=0]
|
||||||
|
403179 my_merge.fifo_chain[0].fifo_element[1].vc.myctree.C2Els[0]._y : 0 [by my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[0].y:=1]
|
||||||
|
403183 my_merge.fifo_chain[0].fifo_element[1]._in_v : 1 [by my_merge.fifo_chain[0].fifo_element[1].vc.myctree.C2Els[0]._y:=0]
|
||||||
|
403287 my_merge.fifo_chain[0].fifo_element[1].in_v_buf._y : 0 [by my_merge.fifo_chain[0].fifo_element[1]._in_v:=1]
|
||||||
|
403436 my_merge.fifo_chain[0].fifo_element[0].in_v_buf._y : 0 [by my_merge.fifo_chain[0].fifo_element[0]._in_v:=1]
|
||||||
|
404032 my_merge.merge_cell.vc1.OR2_tf[0]._y : 0 [by my_merge.merge_cell.merge_func_f[0].n2:=1]
|
||||||
|
404640 my_merge.in1.v : 1 [by my_merge.fifo_chain[0].fifo_element[0].in_v_buf._y:=0]
|
||||||
|
410085 my_merge.merge_cell.vc1.OR2_tf[1].y : 1 [by my_merge.merge_cell.vc1.OR2_tf[1]._y:=0]
|
||||||
|
412487 my_merge.merge_cell.vc1.OR2_tf[0].y : 1 [by my_merge.merge_cell.vc1.OR2_tf[0]._y:=0]
|
||||||
|
412715 my_merge.merge_cell.vc1.myctree.C2Els[0]._y : 0 [by my_merge.merge_cell.vc1.OR2_tf[0].y:=1]
|
||||||
|
413558 my_merge._in1_temp.v : 1 [by my_merge.merge_cell.vc1.myctree.C2Els[0]._y:=0]
|
||||||
|
415017 my_merge.merge_cell.validity_arb.arbiter._y1 : 0 [by my_merge._in1_temp.v:=1]
|
||||||
|
415087 my_merge.merge_cell.validity_arb._y1_arb : 1 [by my_merge.merge_cell.validity_arb.arbiter._y1:=0]
|
||||||
|
416674 my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1].y : 1 [by my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1]._y:=0]
|
||||||
|
416685 my_merge.fifo_chain[1].fifo_element[0].vc.myctree.C2Els[0]._y : 0 [by my_merge.fifo_chain[1].fifo_element[0].vc.OR2_tf[1].y:=1]
|
||||||
|
416688 my_merge.fifo_chain[1].fifo_element[0]._in_v : 1 [by my_merge.fifo_chain[1].fifo_element[0].vc.myctree.C2Els[0]._y:=0]
|
||||||
|
416742 my_merge.fifo_chain[1].fifo_element[0].in_v_buf._y : 0 [by my_merge.fifo_chain[1].fifo_element[0]._in_v:=1]
|
||||||
|
417890 my_merge.in2.v : 1 [by my_merge.fifo_chain[1].fifo_element[0].in_v_buf._y:=0]
|
||||||
|
422037 my_merge.fifo_chain[1].fifo_element[0].t_buf_func[1].y : 1 [by my_merge.fifo_chain[1].fifo_element[0].t_buf_func[1]._y:=0]
|
||||||
|
423198 my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[1]._y : 0 [by my_merge.fifo_chain[1].fifo_element[0].t_buf_func[1].y:=1]
|
||||||
|
423279 my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[1].y : 1 [by my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[1]._y:=0]
|
||||||
|
430689 my_merge.fifo_chain[1].fifo_element[1].t_buf_func[1]._y : 0 [by my_merge.fifo_chain[1].fifo_element[0].t_buf_func[1].y:=1]
|
||||||
|
434731 my_merge.fifo_chain[0].fifo_element[1].in.v : 1 [by my_merge.fifo_chain[0].fifo_element[1].in_v_buf._y:=0]
|
||||||
|
434823 my_merge.fifo_chain[0].fifo_element[0].inack_ctl._y : 0 [by my_merge.fifo_chain[0].fifo_element[1].in.v:=1]
|
||||||
|
441766 my_merge.merge_cell.merge_func_t[1].n4 : 1 [by my_merge.fifo_chain[1].fifo_element[1].t_buf_func[1]._y:=0]
|
||||||
|
443134 my_merge.in1.a : 1 [by my_merge.fifo_chain[0].fifo_element[0].inack_ctl._y:=0]
|
||||||
|
443510 my_merge.merge_cell.vc2.OR2_tf[1]._y : 0 [by my_merge.merge_cell.merge_func_t[1].n4:=1]
|
||||||
|
443667 my_merge.fifo_chain[1].fifo_element[0].f_buf_func[0]._y : 0 [by my_merge.in2.d.d[0].f:=1]
|
||||||
|
443712 my_merge.fifo_chain[1].fifo_element[0].f_buf_func[0].y : 1 [by my_merge.fifo_chain[1].fifo_element[0].f_buf_func[0]._y:=0]
|
||||||
|
443747 my_merge.fifo_chain[0].fifo_element[0]._en : 0 [by my_merge.in1.a:=1]
|
||||||
|
444272 my_merge.fifo_chain[0].fifo_element[0].en_buf_f.buf1._y : 1 [by my_merge.fifo_chain[0].fifo_element[0]._en:=0]
|
||||||
|
444324 my_merge.fifo_chain[0].fifo_element[0]._en_X_f[0] : 0 [by my_merge.fifo_chain[0].fifo_element[0].en_buf_f.buf1._y:=1]
|
||||||
|
444647 my_merge.fifo_chain[0].fifo_element[0].en_buf_t.buf1._y : 1 [by my_merge.fifo_chain[0].fifo_element[0]._en:=0]
|
||||||
|
444654 my_merge.fifo_chain[0].fifo_element[0]._en_X_t[0] : 0 [by my_merge.fifo_chain[0].fifo_element[0].en_buf_t.buf1._y:=1]
|
||||||
|
444709 my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[0]._y : 0 [by my_merge.fifo_chain[1].fifo_element[0].f_buf_func[0].y:=1]
|
||||||
|
445361 my_merge.fifo_chain[1].fifo_element[1].f_buf_func[0]._y : 0 [by my_merge.fifo_chain[1].fifo_element[0].f_buf_func[0].y:=1]
|
||||||
|
451828 my_merge.merge_cell.merge_func_f[0].n4 : 1 [by my_merge.fifo_chain[1].fifo_element[1].f_buf_func[0]._y:=0]
|
||||||
|
451830 my_merge.merge_cell.vc2.OR2_tf[0]._y : 0 [by my_merge.merge_cell.merge_func_f[0].n4:=1]
|
||||||
|
452184 my_merge.merge_cell.vc2.OR2_tf[0].y : 1 [by my_merge.merge_cell.vc2.OR2_tf[0]._y:=0]
|
||||||
|
452714 my_merge.fifo_chain[0].fifo_element[1].inack_ctl._y : 0 [by my_merge.fifo_chain[0].fifo_element[1].in.v:=1]
|
||||||
|
452847 my_merge.fifo_chain[0].fifo_element[1].in.a : 1 [by my_merge.fifo_chain[0].fifo_element[1].inack_ctl._y:=0]
|
||||||
|
452848 my_merge.fifo_chain[0].fifo_element[1]._en : 0 [by my_merge.fifo_chain[0].fifo_element[1].in.a:=1]
|
||||||
|
452851 my_merge.fifo_chain[0].fifo_element[0]._out_a_B : 0 [by my_merge.fifo_chain[0].fifo_element[1].in.a:=1]
|
||||||
|
452852 my_merge.fifo_chain[0].fifo_element[0].out_a_B_buf_t.buf1._y : 1 [by my_merge.fifo_chain[0].fifo_element[0]._out_a_B:=0]
|
||||||
|
452931 my_merge.fifo_chain[0].fifo_element[0]._out_a_BX_f[0] : 0 [by my_merge.fifo_chain[0].fifo_element[0].out_a_B_buf_t.buf1._y:=1]
|
||||||
|
453394 my_merge.fifo_chain[0].fifo_element[1].en_buf_f.buf1._y : 1 [by my_merge.fifo_chain[0].fifo_element[1]._en:=0]
|
||||||
|
453482 my_merge.fifo_chain[0].fifo_element[1]._en_X_f[0] : 0 [by my_merge.fifo_chain[0].fifo_element[1].en_buf_f.buf1._y:=1]
|
||||||
|
455364 my_merge.fifo_chain[0].fifo_element[0].f_buf_func[0]._y : 1 [by my_merge.fifo_chain[0].fifo_element[0]._out_a_BX_f[0]:=0]
|
||||||
|
457532 my_merge.merge_cell.vc2.OR2_tf[1].y : 1 [by my_merge.merge_cell.vc2.OR2_tf[1]._y:=0]
|
||||||
|
460321 my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[0].y : 1 [by my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[0]._y:=0]
|
||||||
|
460380 my_merge.fifo_chain[1].fifo_element[1].vc.myctree.C2Els[0]._y : 0 [by my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[0].y:=1]
|
||||||
|
460410 my_merge.fifo_chain[1].fifo_element[1]._in_v : 1 [by my_merge.fifo_chain[1].fifo_element[1].vc.myctree.C2Els[0]._y:=0]
|
||||||
|
461877 my_merge.fifo_chain[1].fifo_element[1].in_v_buf._y : 0 [by my_merge.fifo_chain[1].fifo_element[1]._in_v:=1]
|
||||||
|
463146 my_merge.fifo_chain[0].fifo_element[0].f_buf_func[0].y : 0 [by my_merge.fifo_chain[0].fifo_element[0].f_buf_func[0]._y:=1]
|
||||||
|
465229 my_merge.fifo_chain[0].fifo_element[0].out_a_B_buf_f.buf1._y : 1 [by my_merge.fifo_chain[0].fifo_element[0]._out_a_B:=0]
|
||||||
|
465509 my_merge.merge_cell.validity_arb.or_cell._y : 0 [by my_merge.merge_cell.validity_arb._y1_arb:=1]
|
||||||
|
465914 my_merge.fifo_chain[0].fifo_element[0]._out_a_BX_t[0] : 0 [by my_merge.fifo_chain[0].fifo_element[0].out_a_B_buf_f.buf1._y:=1]
|
||||||
|
466041 my_merge.fifo_chain[0].fifo_element[0].t_buf_func[1]._y : 1 [by my_merge.fifo_chain[0].fifo_element[0]._out_a_BX_t[0]:=0]
|
||||||
|
466210 my_merge.fifo_chain[0].fifo_element[0].t_buf_func[1].y : 0 [by my_merge.fifo_chain[0].fifo_element[0].t_buf_func[1]._y:=1]
|
||||||
|
466253 my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[1]._y : 1 [by my_merge.fifo_chain[0].fifo_element[0].t_buf_func[1].y:=0]
|
||||||
|
466265 my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[1].y : 0 [by my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[1]._y:=1]
|
||||||
|
482224 my_merge.merge_cell._out_temp.a : 1 [by my_merge.merge_cell.validity_arb.or_cell._y:=0]
|
||||||
|
482530 my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[0]._y : 1 [by my_merge.fifo_chain[0].fifo_element[0].f_buf_func[0].y:=0]
|
||||||
|
482763 my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[0].y : 0 [by my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[0]._y:=1]
|
||||||
|
482766 my_merge.fifo_chain[0].fifo_element[1].vc.myctree.C2Els[0]._y : 1 [by my_merge.fifo_chain[0].fifo_element[1].vc.OR2_tf[0].y:=0]
|
||||||
|
482804 my_merge.fifo_chain[0].fifo_element[1]._in_v : 0 [by my_merge.fifo_chain[0].fifo_element[1].vc.myctree.C2Els[0]._y:=1]
|
||||||
|
482805 my_merge.fifo_chain[0].fifo_element[1].in_v_buf._y : 1 [by my_merge.fifo_chain[0].fifo_element[1]._in_v:=0]
|
||||||
|
483503 my_merge.merge_cell.validity_arb.ack_cell1._y : 0 [by my_merge.merge_cell._out_temp.a:=1]
|
||||||
|
483595 my_merge.merge_cell._in1_arb_temp : 1 [by my_merge.merge_cell.validity_arb.ack_cell1._y:=0]
|
||||||
|
485859 my_merge.merge_cell.vc2.myctree.C2Els[0]._y : 0 [by my_merge.merge_cell.vc2.OR2_tf[1].y:=1]
|
||||||
|
485861 my_merge._in2_temp.v : 1 [by my_merge.merge_cell.vc2.myctree.C2Els[0]._y:=0]
|
||||||
|
486322 my_merge.merge_cell.AND_arb1._y : 0 [by my_merge.merge_cell._in1_arb_temp:=1]
|
||||||
|
486323 my_merge.merge_cell._in1_arb : 1 [by my_merge.merge_cell.AND_arb1._y:=0]
|
||||||
|
487824 my_merge.merge_cell.arb2function1.buf1._y : 0 [by my_merge.merge_cell._in1_arb:=1]
|
||||||
|
487826 my_merge.merge_cell._in1_arb_X[0] : 1 [by my_merge.merge_cell.arb2function1.buf1._y:=0]
|
||||||
|
487844 my_merge.merge_cell.merge_func_f[0]._y : 0 [by my_merge.merge_cell._in1_arb_X[0]:=1]
|
||||||
|
487945 my_merge.merge_cell.merge_func_t[1]._y : 0 [by my_merge.merge_cell._in1_arb_X[0]:=1]
|
||||||
|
487953 my_merge.merge_cell.merge_func_t[1].y : 1 [by my_merge.merge_cell.merge_func_t[1]._y:=0]
|
||||||
|
493564 my_merge.merge_cell.merge_func_f[0].y : 1 [by my_merge.merge_cell.merge_func_f[0]._y:=0]
|
||||||
|
495557 my_merge.fifo_chain[0].fifo_element[1].in.v : 0 [by my_merge.fifo_chain[0].fifo_element[1].in_v_buf._y:=1]
|
||||||
|
498411 my_merge.fifo_chain[0].fifo_element[1].en_buf_t.buf1._y : 1 [by my_merge.fifo_chain[0].fifo_element[1]._en:=0]
|
||||||
|
498465 my_merge.fifo_chain[0].fifo_element[1]._en_X_t[0] : 0 [by my_merge.fifo_chain[0].fifo_element[1].en_buf_t.buf1._y:=1]
|
||||||
|
521381 my_merge.fifo_chain[1].fifo_element[1].in.v : 1 [by my_merge.fifo_chain[1].fifo_element[1].in_v_buf._y:=0]
|
||||||
|
521386 my_merge.fifo_chain[1].fifo_element[0].inack_ctl._y : 0 [by my_merge.fifo_chain[1].fifo_element[1].in.v:=1]
|
||||||
|
522453 my_merge.in2.a : 1 [by my_merge.fifo_chain[1].fifo_element[0].inack_ctl._y:=0]
|
||||||
|
522454 my_merge.fifo_chain[1].fifo_element[0]._en : 0 [by my_merge.in2.a:=1]
|
||||||
|
522455 my_merge.fifo_chain[1].fifo_element[0].en_buf_t.buf1._y : 1 [by my_merge.fifo_chain[1].fifo_element[0]._en:=0]
|
||||||
|
522519 my_merge.fifo_chain[1].fifo_element[0]._en_X_t[0] : 0 [by my_merge.fifo_chain[1].fifo_element[0].en_buf_t.buf1._y:=1]
|
||||||
|
522592 my_merge.fifo_chain[1].fifo_element[0].en_buf_f.buf1._y : 1 [by my_merge.fifo_chain[1].fifo_element[0]._en:=0]
|
||||||
|
522715 my_merge.fifo_chain[1].fifo_element[0]._en_X_f[0] : 0 [by my_merge.fifo_chain[1].fifo_element[0].en_buf_f.buf1._y:=1]
|
||||||
|
571919 my_merge.fifo_chain[1].fifo_element[1].inack_ctl._y : 0 [by my_merge.fifo_chain[1].fifo_element[1].in.v:=1]
|
||||||
|
571921 my_merge.fifo_chain[1].fifo_element[1].in.a : 1 [by my_merge.fifo_chain[1].fifo_element[1].inack_ctl._y:=0]
|
||||||
|
571958 my_merge.fifo_chain[1].fifo_element[1]._en : 0 [by my_merge.fifo_chain[1].fifo_element[1].in.a:=1]
|
||||||
|
572009 my_merge.fifo_chain[1].fifo_element[1].en_buf_f.buf1._y : 1 [by my_merge.fifo_chain[1].fifo_element[1]._en:=0]
|
||||||
|
572020 my_merge.fifo_chain[1].fifo_element[1]._en_X_f[0] : 0 [by my_merge.fifo_chain[1].fifo_element[1].en_buf_f.buf1._y:=1]
|
||||||
|
572064 my_merge.fifo_chain[1].fifo_element[0]._out_a_B : 0 [by my_merge.fifo_chain[1].fifo_element[1].in.a:=1]
|
||||||
|
572065 my_merge.fifo_chain[1].fifo_element[0].out_a_B_buf_t.buf1._y : 1 [by my_merge.fifo_chain[1].fifo_element[0]._out_a_B:=0]
|
||||||
|
572073 my_merge.fifo_chain[1].fifo_element[0].out_a_B_buf_f.buf1._y : 1 [by my_merge.fifo_chain[1].fifo_element[0]._out_a_B:=0]
|
||||||
|
572090 my_merge.fifo_chain[1].fifo_element[0]._out_a_BX_f[0] : 0 [by my_merge.fifo_chain[1].fifo_element[0].out_a_B_buf_t.buf1._y:=1]
|
||||||
|
572400 my_merge.fifo_chain[1].fifo_element[1].en_buf_t.buf1._y : 1 [by my_merge.fifo_chain[1].fifo_element[1]._en:=0]
|
||||||
|
572545 my_merge.fifo_chain[1].fifo_element[1]._en_X_t[0] : 0 [by my_merge.fifo_chain[1].fifo_element[1].en_buf_t.buf1._y:=1]
|
||||||
|
575611 my_merge.fifo_chain[1].fifo_element[0].f_buf_func[0]._y : 1 [by my_merge.fifo_chain[1].fifo_element[0]._out_a_BX_f[0]:=0]
|
||||||
|
582326 my_merge.fifo_chain[1].fifo_element[0]._out_a_BX_t[0] : 0 [by my_merge.fifo_chain[1].fifo_element[0].out_a_B_buf_f.buf1._y:=1]
|
||||||
|
582556 my_merge.fifo_chain[1].fifo_element[0].t_buf_func[1]._y : 1 [by my_merge.fifo_chain[1].fifo_element[0]._out_a_BX_t[0]:=0]
|
||||||
|
583247 my_merge.fifo_chain[1].fifo_element[0].t_buf_func[1].y : 0 [by my_merge.fifo_chain[1].fifo_element[0].t_buf_func[1]._y:=1]
|
||||||
|
583261 my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[1]._y : 1 [by my_merge.fifo_chain[1].fifo_element[0].t_buf_func[1].y:=0]
|
||||||
|
584804 my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[1].y : 0 [by my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[1]._y:=1]
|
||||||
|
591779 my_merge.fifo_chain[1].fifo_element[0].f_buf_func[0].y : 0 [by my_merge.fifo_chain[1].fifo_element[0].f_buf_func[0]._y:=1]
|
||||||
|
593390 my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[0]._y : 1 [by my_merge.fifo_chain[1].fifo_element[0].f_buf_func[0].y:=0]
|
||||||
|
610902 my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[0].y : 0 [by my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[0]._y:=1]
|
||||||
|
610913 my_merge.fifo_chain[1].fifo_element[1].vc.myctree.C2Els[0]._y : 1 [by my_merge.fifo_chain[1].fifo_element[1].vc.OR2_tf[0].y:=0]
|
||||||
|
610914 my_merge.fifo_chain[1].fifo_element[1]._in_v : 0 [by my_merge.fifo_chain[1].fifo_element[1].vc.myctree.C2Els[0]._y:=1]
|
||||||
|
610915 my_merge.fifo_chain[1].fifo_element[1].in_v_buf._y : 1 [by my_merge.fifo_chain[1].fifo_element[1]._in_v:=0]
|
||||||
|
617416 my_merge.fifo_chain[1].fifo_element[1].in.v : 0 [by my_merge.fifo_chain[1].fifo_element[1].in_v_buf._y:=1]
|
||||||
|
617416 my_merge.out.v : 1
|
||||||
|
618055 my_merge.merge_cell.in1ack_ctl._y : 0 [by my_merge.out.v:=1]
|
||||||
|
619848 my_merge._in1_temp.a : 1 [by my_merge.merge_cell.in1ack_ctl._y:=0]
|
||||||
|
619849 my_merge.merge_cell._en : 0 [by my_merge._in1_temp.a:=1]
|
||||||
|
619865 my_merge.fifo_chain[0].fifo_element[1]._out_a_B : 0 [by my_merge._in1_temp.a:=1]
|
||||||
|
619868 my_merge.fifo_chain[0].fifo_element[1].out_a_B_buf_f.buf1._y : 1 [by my_merge.fifo_chain[0].fifo_element[1]._out_a_B:=0]
|
||||||
|
619980 my_merge.merge_cell._in1_a_B : 0 [by my_merge._in1_temp.a:=1]
|
||||||
|
620001 my_merge.merge_cell.en_buffer.buf1._y : 1 [by my_merge.merge_cell._en:=0]
|
||||||
|
620007 my_merge.merge_cell._en_X[0] : 0 [by my_merge.merge_cell.en_buffer.buf1._y:=1]
|
||||||
|
620292 my_merge.fifo_chain[0].fifo_element[1]._out_a_BX_t[0] : 0 [by my_merge.fifo_chain[0].fifo_element[1].out_a_B_buf_f.buf1._y:=1]
|
||||||
|
622848 my_merge.fifo_chain[0].fifo_element[1].out_a_B_buf_t.buf1._y : 1 [by my_merge.fifo_chain[0].fifo_element[1]._out_a_B:=0]
|
||||||
|
622880 my_merge.fifo_chain[0].fifo_element[1].t_buf_func[1]._y : 1 [by my_merge.fifo_chain[0].fifo_element[1]._out_a_BX_t[0]:=0]
|
||||||
|
623710 my_merge.merge_cell.merge_func_t[1].n2 : 0 [by my_merge.fifo_chain[0].fifo_element[1].t_buf_func[1]._y:=1]
|
||||||
|
625309 my_merge.fifo_chain[0].fifo_element[1]._out_a_BX_f[0] : 0 [by my_merge.fifo_chain[0].fifo_element[1].out_a_B_buf_t.buf1._y:=1]
|
||||||
|
625311 my_merge.fifo_chain[0].fifo_element[1].f_buf_func[0]._y : 1 [by my_merge.fifo_chain[0].fifo_element[1]._out_a_BX_f[0]:=0]
|
||||||
|
625505 my_merge.merge_cell.merge_func_f[0].n2 : 0 [by my_merge.fifo_chain[0].fifo_element[1].f_buf_func[0]._y:=1]
|
||||||
|
626108 my_merge.merge_cell.vc1.OR2_tf[0]._y : 1 [by my_merge.merge_cell.merge_func_f[0].n2:=0]
|
||||||
|
626246 my_merge.merge_cell.vc1.OR2_tf[0].y : 0 [by my_merge.merge_cell.vc1.OR2_tf[0]._y:=1]
|
||||||
|
646642 my_merge.merge_cell.vc1.OR2_tf[1]._y : 1 [by my_merge.merge_cell.merge_func_t[1].n2:=0]
|
||||||
|
646659 my_merge.merge_cell.vc1.OR2_tf[1].y : 0 [by my_merge.merge_cell.vc1.OR2_tf[1]._y:=1]
|
||||||
|
646676 my_merge.merge_cell.vc1.myctree.C2Els[0]._y : 1 [by my_merge.merge_cell.vc1.OR2_tf[1].y:=0]
|
||||||
|
647102 my_merge._in1_temp.v : 0 [by my_merge.merge_cell.vc1.myctree.C2Els[0]._y:=1]
|
||||||
|
647103 my_merge.merge_cell.validity_arb.arbiter._y1 : 1 [by my_merge._in1_temp.v:=0]
|
||||||
|
647103 my_merge.fifo_chain[0].fifo_element[1].inack_ctl._y : 1 [by my_merge._in1_temp.v:=0]
|
||||||
|
647104 my_merge.merge_cell.validity_arb._y1_arb : 0 [by my_merge.merge_cell.validity_arb.arbiter._y1:=1]
|
||||||
|
647122 my_merge.fifo_chain[0].fifo_element[1].in.a : 0 [by my_merge.fifo_chain[0].fifo_element[1].inack_ctl._y:=1]
|
||||||
|
647272 my_merge.merge_cell.validity_arb.or_cell._y : 1 [by my_merge.merge_cell.validity_arb._y1_arb:=0]
|
||||||
|
647283 my_merge.fifo_chain[0].fifo_element[0]._out_a_B : 1 [by my_merge.fifo_chain[0].fifo_element[1].in.a:=0]
|
||||||
|
647445 my_merge.merge_cell._out_temp.a : 0 [by my_merge.merge_cell.validity_arb.or_cell._y:=1]
|
||||||
|
647446 my_merge.merge_cell.validity_arb.ack_cell1._y : 1 [by my_merge.merge_cell._out_temp.a:=0]
|
||||||
|
647447 my_merge.merge_cell._in1_arb_temp : 0 [by my_merge.merge_cell.validity_arb.ack_cell1._y:=1]
|
||||||
|
647661 my_merge.fifo_chain[0].fifo_element[1]._en : 1 [by my_merge.fifo_chain[0].fifo_element[1].in.a:=0]
|
||||||
|
647837 my_merge.merge_cell.AND_arb1._y : 1 [by my_merge.merge_cell._in1_arb_temp:=0]
|
||||||
|
647865 my_merge.merge_cell._in1_arb : 0 [by my_merge.merge_cell.AND_arb1._y:=1]
|
||||||
|
647868 my_merge.fifo_chain[0].fifo_element[1].en_buf_f.buf1._y : 0 [by my_merge.fifo_chain[0].fifo_element[1]._en:=1]
|
||||||
|
647872 my_merge.merge_cell.arb2function1.buf1._y : 1 [by my_merge.merge_cell._in1_arb:=0]
|
||||||
|
647876 my_merge.merge_cell._in1_arb_X[0] : 0 [by my_merge.merge_cell.arb2function1.buf1._y:=1]
|
||||||
|
648129 my_merge.merge_cell.validity_arb.arbiter._y2 : 0 [by my_merge.merge_cell.validity_arb.arbiter._y1:=1]
|
||||||
|
648282 my_merge.fifo_chain[0].fifo_element[1]._en_X_f[0] : 1 [by my_merge.fifo_chain[0].fifo_element[1].en_buf_f.buf1._y:=0]
|
||||||
|
648494 my_merge.fifo_chain[0].fifo_element[1].en_buf_t.buf1._y : 0 [by my_merge.fifo_chain[0].fifo_element[1]._en:=1]
|
||||||
|
649830 my_merge.fifo_chain[0].fifo_element[0].out_a_B_buf_t.buf1._y : 0 [by my_merge.fifo_chain[0].fifo_element[0]._out_a_B:=1]
|
||||||
|
649908 my_merge.merge_cell.validity_arb._y2_arb : 1 [by my_merge.merge_cell.validity_arb.arbiter._y2:=0]
|
||||||
|
649996 my_merge.fifo_chain[0].fifo_element[0]._out_a_BX_f[0] : 1 [by my_merge.fifo_chain[0].fifo_element[0].out_a_B_buf_t.buf1._y:=0]
|
||||||
|
662344 my_merge.fifo_chain[0].fifo_element[0].out_a_B_buf_f.buf1._y : 0 [by my_merge.fifo_chain[0].fifo_element[0]._out_a_B:=1]
|
||||||
|
670989 my_merge.fifo_chain[0].fifo_element[0]._out_a_BX_t[0] : 1 [by my_merge.fifo_chain[0].fifo_element[0].out_a_B_buf_f.buf1._y:=0]
|
||||||
|
671368 my_merge.fifo_chain[0].fifo_element[1]._en_X_t[0] : 1 [by my_merge.fifo_chain[0].fifo_element[1].en_buf_t.buf1._y:=0]
|
||||||
|
689778 my_merge.merge_cell.validity_arb.or_cell._y : 0 [by my_merge.merge_cell.validity_arb._y2_arb:=1]
|
||||||
|
690711 my_merge.merge_cell._out_temp.a : 1 [by my_merge.merge_cell.validity_arb.or_cell._y:=0]
|
||||||
|
691567 my_merge.merge_cell.validity_arb.ack_cell2._y : 0 [by my_merge.merge_cell._out_temp.a:=1]
|
||||||
|
691706 my_merge.merge_cell._in2_arb_temp : 1 [by my_merge.merge_cell.validity_arb.ack_cell2._y:=0]
|
||||||
|
691706 my_merge.out.a : 1
|
||||||
|
717915 my_merge.merge_cell._out_a_B : 0 [by my_merge.out.a:=1]
|
||||||
|
718110 my_merge.merge_cell.out_a_buffer.buf1._y : 1 [by my_merge.merge_cell._out_a_B:=0]
|
||||||
|
718112 my_merge.merge_cell._out_a_BX[0] : 0 [by my_merge.merge_cell.out_a_buffer.buf1._y:=1]
|
||||||
|
718118 my_merge.merge_cell.merge_func_f[0]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
718372 my_merge.merge_cell.merge_func_f[0].y : 0 [by my_merge.merge_cell.merge_func_f[0]._y:=1]
|
||||||
|
771561 my_merge.merge_cell.merge_func_t[1]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
771569 my_merge.merge_cell.merge_func_t[1].y : 0 [by my_merge.merge_cell.merge_func_t[1]._y:=1]
|
||||||
|
771569 my_merge.out.v : 0
|
||||||
|
771569 my_merge.out.a : 0
|
||||||
|
771570 my_merge.merge_cell.in1ack_ctl._y : 1 [by my_merge.out.v:=0]
|
||||||
|
771575 my_merge.merge_cell._out_a_B : 1 [by my_merge.out.a:=0]
|
||||||
|
774665 my_merge.merge_cell.out_a_buffer.buf1._y : 0 [by my_merge.merge_cell._out_a_B:=1]
|
||||||
|
774891 my_merge.merge_cell._out_a_BX[0] : 1 [by my_merge.merge_cell.out_a_buffer.buf1._y:=0]
|
||||||
|
822606 my_merge._in1_temp.a : 0 [by my_merge.merge_cell.in1ack_ctl._y:=1]
|
||||||
|
822607 my_merge.merge_cell._en : 1 [by my_merge._in1_temp.a:=0]
|
||||||
|
822609 my_merge.merge_cell.en_buffer.buf1._y : 0 [by my_merge.merge_cell._en:=1]
|
||||||
|
822612 my_merge.fifo_chain[0].fifo_element[1]._out_a_B : 1 [by my_merge._in1_temp.a:=0]
|
||||||
|
822627 my_merge.fifo_chain[0].fifo_element[1].out_a_B_buf_t.buf1._y : 0 [by my_merge.fifo_chain[0].fifo_element[1]._out_a_B:=1]
|
||||||
|
822734 my_merge.fifo_chain[0].fifo_element[1]._out_a_BX_f[0] : 1 [by my_merge.fifo_chain[0].fifo_element[1].out_a_B_buf_t.buf1._y:=0]
|
||||||
|
823425 my_merge.merge_cell._in1_a_B : 1 [by my_merge._in1_temp.a:=0]
|
||||||
|
823518 my_merge.merge_cell.AND_arb2._y : 0 [by my_merge.merge_cell._in1_a_B:=1]
|
||||||
|
825170 my_merge.merge_cell._in2_arb : 1 [by my_merge.merge_cell.AND_arb2._y:=0]
|
||||||
|
826171 my_merge.merge_cell._en_X[0] : 1 [by my_merge.merge_cell.en_buffer.buf1._y:=0]
|
||||||
|
829109 my_merge.merge_cell.arb2function2.buf1._y : 0 [by my_merge.merge_cell._in2_arb:=1]
|
||||||
|
829867 my_merge.merge_cell._in2_arb_X[0] : 1 [by my_merge.merge_cell.arb2function2.buf1._y:=0]
|
||||||
|
830583 my_merge.merge_cell.merge_func_t[1]._y : 0 [by my_merge.merge_cell._in2_arb_X[0]:=1]
|
||||||
|
830584 my_merge.merge_cell.merge_func_t[1].y : 1 [by my_merge.merge_cell.merge_func_t[1]._y:=0]
|
||||||
|
832490 my_merge.merge_cell.merge_func_f[0]._y : 0 [by my_merge.merge_cell._in2_arb_X[0]:=1]
|
||||||
|
834230 my_merge.merge_cell.merge_func_f[0].y : 1 [by my_merge.merge_cell.merge_func_f[0]._y:=0]
|
||||||
|
843413 my_merge.fifo_chain[0].fifo_element[1].out_a_B_buf_f.buf1._y : 0 [by my_merge.fifo_chain[0].fifo_element[1]._out_a_B:=1]
|
||||||
|
843414 my_merge.fifo_chain[0].fifo_element[1]._out_a_BX_t[0] : 1 [by my_merge.fifo_chain[0].fifo_element[1].out_a_B_buf_f.buf1._y:=0]
|
||||||
|
843414 my_merge.out.v : 1
|
||||||
|
855566 my_merge.merge_cell.in2ack_ctl._y : 0 [by my_merge.out.v:=1]
|
||||||
|
883765 my_merge._in2_temp.a : 1 [by my_merge.merge_cell.in2ack_ctl._y:=0]
|
||||||
|
883766 my_merge.merge_cell._en : 0 [by my_merge._in2_temp.a:=1]
|
||||||
|
883766 my_merge.fifo_chain[1].fifo_element[1]._out_a_B : 0 [by my_merge._in2_temp.a:=1]
|
||||||
|
883771 my_merge.merge_cell._in2_a_B : 0 [by my_merge._in2_temp.a:=1]
|
||||||
|
883788 my_merge.fifo_chain[1].fifo_element[1].out_a_B_buf_f.buf1._y : 1 [by my_merge.fifo_chain[1].fifo_element[1]._out_a_B:=0]
|
||||||
|
905365 my_merge.fifo_chain[1].fifo_element[1].out_a_B_buf_t.buf1._y : 1 [by my_merge.fifo_chain[1].fifo_element[1]._out_a_B:=0]
|
||||||
|
905372 my_merge.fifo_chain[1].fifo_element[1]._out_a_BX_f[0] : 0 [by my_merge.fifo_chain[1].fifo_element[1].out_a_B_buf_t.buf1._y:=1]
|
||||||
|
905437 my_merge.fifo_chain[1].fifo_element[1].f_buf_func[0]._y : 1 [by my_merge.fifo_chain[1].fifo_element[1]._out_a_BX_f[0]:=0]
|
||||||
|
905450 my_merge.merge_cell.merge_func_f[0].n4 : 0 [by my_merge.fifo_chain[1].fifo_element[1].f_buf_func[0]._y:=1]
|
||||||
|
906296 my_merge.fifo_chain[1].fifo_element[1]._out_a_BX_t[0] : 0 [by my_merge.fifo_chain[1].fifo_element[1].out_a_B_buf_f.buf1._y:=1]
|
||||||
|
906400 my_merge.fifo_chain[1].fifo_element[1].t_buf_func[1]._y : 1 [by my_merge.fifo_chain[1].fifo_element[1]._out_a_BX_t[0]:=0]
|
||||||
|
906441 my_merge.merge_cell.merge_func_t[1].n4 : 0 [by my_merge.fifo_chain[1].fifo_element[1].t_buf_func[1]._y:=1]
|
||||||
|
906442 my_merge.merge_cell.vc2.OR2_tf[1]._y : 1 [by my_merge.merge_cell.merge_func_t[1].n4:=0]
|
||||||
|
906443 my_merge.merge_cell.vc2.OR2_tf[1].y : 0 [by my_merge.merge_cell.vc2.OR2_tf[1]._y:=1]
|
||||||
|
906574 my_merge.merge_cell.vc2.OR2_tf[0]._y : 1 [by my_merge.merge_cell.merge_func_f[0].n4:=0]
|
||||||
|
923255 my_merge.merge_cell.en_buffer.buf1._y : 1 [by my_merge.merge_cell._en:=0]
|
||||||
|
936427 my_merge.merge_cell._en_X[0] : 0 [by my_merge.merge_cell.en_buffer.buf1._y:=1]
|
||||||
|
970952 my_merge.merge_cell.vc2.OR2_tf[0].y : 0 [by my_merge.merge_cell.vc2.OR2_tf[0]._y:=1]
|
||||||
|
970953 my_merge.merge_cell.vc2.myctree.C2Els[0]._y : 1 [by my_merge.merge_cell.vc2.OR2_tf[0].y:=0]
|
||||||
|
990778 my_merge._in2_temp.v : 0 [by my_merge.merge_cell.vc2.myctree.C2Els[0]._y:=1]
|
||||||
|
991604 my_merge.fifo_chain[1].fifo_element[1].inack_ctl._y : 1 [by my_merge._in2_temp.v:=0]
|
||||||
|
993437 my_merge.fifo_chain[1].fifo_element[1].in.a : 0 [by my_merge.fifo_chain[1].fifo_element[1].inack_ctl._y:=1]
|
||||||
|
993495 my_merge.fifo_chain[1].fifo_element[0]._out_a_B : 1 [by my_merge.fifo_chain[1].fifo_element[1].in.a:=0]
|
||||||
|
993914 my_merge.merge_cell.validity_arb.arbiter._y2 : 1 [by my_merge._in2_temp.v:=0]
|
||||||
|
995938 my_merge.fifo_chain[1].fifo_element[0].out_a_B_buf_t.buf1._y : 0 [by my_merge.fifo_chain[1].fifo_element[0]._out_a_B:=1]
|
||||||
|
995952 my_merge.fifo_chain[1].fifo_element[0]._out_a_BX_f[0] : 1 [by my_merge.fifo_chain[1].fifo_element[0].out_a_B_buf_t.buf1._y:=0]
|
||||||
|
1009985 my_merge.fifo_chain[1].fifo_element[1]._en : 1 [by my_merge.fifo_chain[1].fifo_element[1].in.a:=0]
|
||||||
|
1010268 my_merge.fifo_chain[1].fifo_element[0].out_a_B_buf_f.buf1._y : 0 [by my_merge.fifo_chain[1].fifo_element[0]._out_a_B:=1]
|
||||||
|
1010341 my_merge.fifo_chain[1].fifo_element[1].en_buf_f.buf1._y : 0 [by my_merge.fifo_chain[1].fifo_element[1]._en:=1]
|
||||||
|
1010373 my_merge.fifo_chain[1].fifo_element[0]._out_a_BX_t[0] : 1 [by my_merge.fifo_chain[1].fifo_element[0].out_a_B_buf_f.buf1._y:=0]
|
||||||
|
1010450 my_merge.fifo_chain[1].fifo_element[1]._en_X_f[0] : 1 [by my_merge.fifo_chain[1].fifo_element[1].en_buf_f.buf1._y:=0]
|
||||||
|
1031113 my_merge.merge_cell.validity_arb._y2_arb : 0 [by my_merge.merge_cell.validity_arb.arbiter._y2:=1]
|
||||||
|
1031114 my_merge.merge_cell.validity_arb.or_cell._y : 1 [by my_merge.merge_cell.validity_arb._y2_arb:=0]
|
||||||
|
1031123 my_merge.merge_cell._out_temp.a : 0 [by my_merge.merge_cell.validity_arb.or_cell._y:=1]
|
||||||
|
1045823 my_merge.fifo_chain[1].fifo_element[1].en_buf_t.buf1._y : 0 [by my_merge.fifo_chain[1].fifo_element[1]._en:=1]
|
||||||
|
1045824 my_merge.fifo_chain[1].fifo_element[1]._en_X_t[0] : 1 [by my_merge.fifo_chain[1].fifo_element[1].en_buf_t.buf1._y:=0]
|
||||||
|
1069076 my_merge.merge_cell.validity_arb.ack_cell2._y : 1 [by my_merge.merge_cell._out_temp.a:=0]
|
||||||
|
1105470 my_merge.merge_cell._in2_arb_temp : 0 [by my_merge.merge_cell.validity_arb.ack_cell2._y:=1]
|
||||||
|
1105471 my_merge.merge_cell.AND_arb2._y : 1 [by my_merge.merge_cell._in2_arb_temp:=0]
|
||||||
|
1108560 my_merge.merge_cell._in2_arb : 0 [by my_merge.merge_cell.AND_arb2._y:=1]
|
||||||
|
1157286 my_merge.merge_cell.arb2function2.buf1._y : 1 [by my_merge.merge_cell._in2_arb:=0]
|
||||||
|
1158036 my_merge.merge_cell._in2_arb_X[0] : 0 [by my_merge.merge_cell.arb2function2.buf1._y:=1]
|
||||||
|
1158036 my_merge.out.a : 1
|
||||||
|
1164791 my_merge.merge_cell._out_a_B : 0 [by my_merge.out.a:=1]
|
||||||
|
1164842 my_merge.merge_cell.out_a_buffer.buf1._y : 1 [by my_merge.merge_cell._out_a_B:=0]
|
||||||
|
1164852 my_merge.merge_cell._out_a_BX[0] : 0 [by my_merge.merge_cell.out_a_buffer.buf1._y:=1]
|
||||||
|
1165172 my_merge.merge_cell.merge_func_t[1]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
1165173 my_merge.merge_cell.merge_func_t[1].y : 0 [by my_merge.merge_cell.merge_func_t[1]._y:=1]
|
||||||
|
1172434 my_merge.merge_cell.merge_func_f[0]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
1172435 my_merge.merge_cell.merge_func_f[0].y : 0 [by my_merge.merge_cell.merge_func_f[0]._y:=1]
|
||||||
|
-------------------------------------------------
|
||||||
|
[3] In1 channel checked
|
1796
test/unit_tests/merge_t_2_adv/run/test.prs
Normal file
1796
test/unit_tests/merge_t_2_adv/run/test.prs
Normal file
File diff suppressed because it is too large
Load Diff
66
test/unit_tests/merge_t_2_adv/test.act
Normal file
66
test/unit_tests/merge_t_2_adv/test.act
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* This file is part of ACT dataflow neuro library.
|
||||||
|
* It's the testing facility for cell_lib_std.act
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
|
*
|
||||||
|
* You may redistribute and modify this documentation and make products
|
||||||
|
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
|
||||||
|
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
|
||||||
|
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
|
||||||
|
* for applicable conditions.
|
||||||
|
*
|
||||||
|
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
|
||||||
|
*
|
||||||
|
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
|
||||||
|
* these sources, You must maintain the Source Location visible in its
|
||||||
|
* documentation.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
import "../../dataflow_neuro/primitives.act";
|
||||||
|
import globals;
|
||||||
|
|
||||||
|
open tmpl::dataflow_neuro;
|
||||||
|
|
||||||
|
|
||||||
|
defproc merge_2 (avMx1of2<2> in1; avMx1of2<2> in2; avMx1of2<2> out){
|
||||||
|
|
||||||
|
bool _reset_B;
|
||||||
|
fifo<2,2> fifo_chain[2];
|
||||||
|
avMx1of2<2> _in1_temp,_in2_temp;
|
||||||
|
fifo_chain[0].in = in1;
|
||||||
|
fifo_chain[0].out = _in1_temp;
|
||||||
|
fifo_chain[0].supply.vss = GND;
|
||||||
|
fifo_chain[0].supply.vdd = Vdd;
|
||||||
|
fifo_chain[0].reset_B = _reset_B;
|
||||||
|
|
||||||
|
fifo_chain[1].in = in2;
|
||||||
|
fifo_chain[1].out = _in2_temp;
|
||||||
|
fifo_chain[1].supply.vss = GND;
|
||||||
|
fifo_chain[1].supply.vdd = Vdd;
|
||||||
|
fifo_chain[1].reset_B = _reset_B;
|
||||||
|
|
||||||
|
merge<2> merge_cell(.in1=_in1_temp, .in2=_in2_temp,.out = out);
|
||||||
|
|
||||||
|
//Low active Reset
|
||||||
|
|
||||||
|
prs {
|
||||||
|
Reset => _reset_B-
|
||||||
|
}
|
||||||
|
|
||||||
|
merge_cell.supply.vss = GND;
|
||||||
|
merge_cell.supply.vdd = Vdd;
|
||||||
|
merge_cell.reset_B = _reset_B;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
merge_2 my_merge;
|
50
test/unit_tests/merge_t_2_adv/test.prsim
Normal file
50
test/unit_tests/merge_t_2_adv/test.prsim
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
|
||||||
|
watchall
|
||||||
|
set Reset 1
|
||||||
|
set-qdi-channel-neutral "my_merge.in1" 2
|
||||||
|
set-qdi-channel-neutral "my_merge.in2" 2
|
||||||
|
set my_merge.in1.v 0
|
||||||
|
set my_merge.in2.v 0
|
||||||
|
set my_merge.out.a 0
|
||||||
|
set my_merge.out.v 0
|
||||||
|
cycle
|
||||||
|
assert-qdi-channel-neutral "my_merge.out" 2
|
||||||
|
system "echo '-------------------------------------------------'"
|
||||||
|
system "echo '[0] System initialized'"
|
||||||
|
|
||||||
|
set Reset 0
|
||||||
|
cycle
|
||||||
|
system "echo '-------------------------------------------------'"
|
||||||
|
system "echo '[1] System reset completed'"
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
assert-qdi-channel-neutral "my_merge.out" 2
|
||||||
|
cycle
|
||||||
|
system "echo '-------------------------------------------------'"
|
||||||
|
system "echo '[2] Output neutral checked'"
|
||||||
|
|
||||||
|
set-qdi-channel-valid "my_merge.in1" 2 2
|
||||||
|
set-qdi-channel-valid "my_merge.in2" 2 2
|
||||||
|
cycle
|
||||||
|
assert my_merge.in1.v 1
|
||||||
|
assert my_merge.in2.v 1
|
||||||
|
assert-qdi-channel-valid "my_merge.out" 2 2
|
||||||
|
set my_merge.out.v 1
|
||||||
|
cycle
|
||||||
|
set my_merge.out.a 1
|
||||||
|
cycle
|
||||||
|
assert-qdi-channel-neutral "my_merge.out" 2
|
||||||
|
set my_merge.out.v 0
|
||||||
|
set my_merge.out.a 0
|
||||||
|
cycle
|
||||||
|
assert-qdi-channel-valid "my_merge.out" 2 2
|
||||||
|
set my_merge.out.v 1
|
||||||
|
cycle
|
||||||
|
set my_merge.out.a 1
|
||||||
|
cycle
|
||||||
|
assert-qdi-channel-neutral "my_merge.out" 2
|
||||||
|
set my_merge.out.v 0
|
||||||
|
set my_merge.out.a 0
|
||||||
|
system "echo '-------------------------------------------------'"
|
||||||
|
system "echo '[3] In1 channel checked'"
|
||||||
|
|
286
test/unit_tests/merge_t_2_simple/run/prsim.out
Normal file
286
test/unit_tests/merge_t_2_simple/run/prsim.out
Normal file
@ -0,0 +1,286 @@
|
|||||||
|
my_merge.merge_cell.vc2.OR2_tf[1]._y my_merge.merge_cell.validity_arb.arbiter._y1 my_merge.merge_cell.vc1.OR2_tf[0].y my_merge.merge_cell.merge_func_f[0].n4 my_merge.merge_cell._en my_merge.merge_cell._en_X[0] my_merge.in1.v my_merge.merge_cell.merge_func_f[1].n4 my_merge.merge_cell.arb2function1.buf1._y my_merge.merge_cell.merge_func_t[0].n4 my_merge.merge_cell.en_buffer.buf1._y my_merge.merge_cell._in2_arb my_merge.merge_cell.merge_func_t[1].n4 my_merge.merge_cell._in2_arb_X[0] my_merge.merge_cell._in1_arb_X[0] my_merge.merge_cell._out_temp.a my_merge.merge_cell.vc1.myctree.C2Els[0]._y my_merge.merge_cell._out_a_B my_merge.in2.v my_merge.merge_cell.merge_func_t[0].n2 my_merge.merge_cell.merge_func_f[1].n2 my_merge.out.v my_merge.merge_cell._in2_arb_temp my_merge.merge_cell.AND_arb2._y my_merge.merge_cell._in1_arb my_merge.merge_cell.vc2.OR2_tf[1].y my_merge.out.a my_merge.merge_cell.validity_arb._y1_arb my_merge.merge_cell._out_a_BX[0] my_merge.merge_cell.vc1.OR2_tf[1]._y my_merge.merge_cell.merge_func_f[0].n2 my_merge.merge_cell.vc1.OR2_tf[1].y my_merge.merge_cell.validity_arb.or_cell._y my_merge.merge_cell._in1_arb_temp my_merge.merge_cell.vc2.myctree.C2Els[0]._y my_merge.merge_cell.merge_func_t[1].n2 my_merge.merge_cell.validity_arb._y2_arb my_merge.merge_cell.vc2.OR2_tf[0]._y my_merge.merge_cell.validity_arb.ack_cell1._y my_merge.merge_cell.vc2.OR2_tf[0].y my_merge.merge_cell.validity_arb.arbiter._y2 my_merge.merge_cell.vc1.OR2_tf[0]._y my_merge.merge_cell.validity_arb.ack_cell2._y my_merge.merge_cell.arb2function2.buf1._y my_merge.merge_cell.AND_arb1._y my_merge.merge_cell.out_a_buffer.buf1._y
|
||||||
|
83058 my_merge.merge_cell.merge_func_f[0].n2 : 0
|
||||||
|
83058 my_merge.out.v : 0
|
||||||
|
83058 my_merge.out.a : 0
|
||||||
|
83058 my_merge.in2.v : 0
|
||||||
|
83058 my_merge.merge_cell.merge_func_f[1].n2 : 0
|
||||||
|
83058 my_merge.merge_cell.merge_func_f[1].n4 : 0
|
||||||
|
83058 my_merge.merge_cell.merge_func_t[0].n4 : 0
|
||||||
|
83058 my_merge.in1.v : 0
|
||||||
|
83058 my_merge.merge_cell.merge_func_t[1].n4 : 0
|
||||||
|
83058 my_merge.merge_cell.merge_func_t[0].n2 : 0
|
||||||
|
83058 my_merge.merge_cell.merge_func_f[0].n4 : 0
|
||||||
|
83058 my_merge.merge_cell.merge_func_t[1].n2 : 0
|
||||||
|
83062 my_merge.merge_cell.validity_arb.arbiter._y2 : 1 [by my_merge.in2.v:=0]
|
||||||
|
83073 my_merge.merge_cell.vc2.OR2_tf[1]._y : 1 [by my_merge.merge_cell.merge_func_t[1].n4:=0]
|
||||||
|
83113 my_merge.merge_cell.vc1.OR2_tf[1]._y : 1 [by my_merge.merge_cell.merge_func_t[1].n2:=0]
|
||||||
|
92187 my_merge.merge_cell.validity_arb.arbiter._y1 : 1 [by my_merge.in1.v:=0]
|
||||||
|
96782 my_merge.merge_cell._out_a_B : 1 [by my_merge.out.a:=0]
|
||||||
|
96962 my_merge.merge_cell.vc1.OR2_tf[1].y : 0 [by my_merge.merge_cell.vc1.OR2_tf[1]._y:=1]
|
||||||
|
111125 my_merge.merge_cell.out_a_buffer.buf1._y : 0 [by my_merge.merge_cell._out_a_B:=1]
|
||||||
|
111547 my_merge.merge_cell._out_a_BX[0] : 1 [by my_merge.merge_cell.out_a_buffer.buf1._y:=0]
|
||||||
|
112853 my_merge.merge_cell.vc2.OR2_tf[1].y : 0 [by my_merge.merge_cell.vc2.OR2_tf[1]._y:=1]
|
||||||
|
116999 my_merge.merge_cell.validity_arb._y1_arb : 0 [by my_merge.merge_cell.validity_arb.arbiter._y1:=1]
|
||||||
|
119989 my_merge.merge_cell.vc2.OR2_tf[0]._y : 1 [by my_merge.merge_cell.merge_func_f[0].n4:=0]
|
||||||
|
126306 my_merge.merge_cell.vc1.OR2_tf[0]._y : 1 [by my_merge.merge_cell.merge_func_t[0].n2:=0]
|
||||||
|
126307 my_merge.merge_cell.vc1.OR2_tf[0].y : 0 [by my_merge.merge_cell.vc1.OR2_tf[0]._y:=1]
|
||||||
|
126308 my_merge.merge_cell.vc1.myctree.C2Els[0]._y : 1 [by my_merge.merge_cell.vc1.OR2_tf[0].y:=0]
|
||||||
|
127156 my_merge.merge_cell._en : 1 [by my_merge.out.a:=0]
|
||||||
|
134715 my_merge.merge_cell.validity_arb._y2_arb : 0 [by my_merge.merge_cell.validity_arb.arbiter._y2:=1]
|
||||||
|
134997 my_merge.merge_cell.validity_arb.or_cell._y : 1 [by my_merge.merge_cell.validity_arb._y2_arb:=0]
|
||||||
|
135765 my_merge.merge_cell._out_temp.a : 0 [by my_merge.merge_cell.validity_arb.or_cell._y:=1]
|
||||||
|
135768 my_merge.merge_cell.validity_arb.ack_cell2._y : 1 [by my_merge.merge_cell._out_temp.a:=0]
|
||||||
|
136319 my_merge.merge_cell._in2_arb_temp : 0 [by my_merge.merge_cell.validity_arb.ack_cell2._y:=1]
|
||||||
|
137390 my_merge.merge_cell.AND_arb2._y : 1 [by my_merge.merge_cell._in2_arb_temp:=0]
|
||||||
|
138344 my_merge.merge_cell._in2_arb : 0 [by my_merge.merge_cell.AND_arb2._y:=1]
|
||||||
|
139425 my_merge.merge_cell.arb2function2.buf1._y : 1 [by my_merge.merge_cell._in2_arb:=0]
|
||||||
|
147361 my_merge.merge_cell.en_buffer.buf1._y : 0 [by my_merge.merge_cell._en:=1]
|
||||||
|
148343 my_merge.merge_cell._en_X[0] : 1 [by my_merge.merge_cell.en_buffer.buf1._y:=0]
|
||||||
|
158206 my_merge.merge_cell.validity_arb.ack_cell1._y : 1 [by my_merge.merge_cell._out_temp.a:=0]
|
||||||
|
158224 my_merge.merge_cell._in1_arb_temp : 0 [by my_merge.merge_cell.validity_arb.ack_cell1._y:=1]
|
||||||
|
162237 my_merge.merge_cell.AND_arb1._y : 1 [by my_merge.merge_cell._in1_arb_temp:=0]
|
||||||
|
166240 my_merge.merge_cell._in1_arb : 0 [by my_merge.merge_cell.AND_arb1._y:=1]
|
||||||
|
168703 my_merge.merge_cell.vc2.OR2_tf[0].y : 0 [by my_merge.merge_cell.vc2.OR2_tf[0]._y:=1]
|
||||||
|
190287 my_merge.merge_cell.vc2.myctree.C2Els[0]._y : 1 [by my_merge.merge_cell.vc2.OR2_tf[0].y:=0]
|
||||||
|
193895 my_merge.merge_cell._in2_arb_X[0] : 0 [by my_merge.merge_cell.arb2function2.buf1._y:=1]
|
||||||
|
211141 my_merge.merge_cell.arb2function1.buf1._y : 1 [by my_merge.merge_cell._in1_arb:=0]
|
||||||
|
215901 my_merge.merge_cell._in1_arb_X[0] : 0 [by my_merge.merge_cell.arb2function1.buf1._y:=1]
|
||||||
|
-------------------------------------------------
|
||||||
|
[0] System initialized
|
||||||
|
215901 Reset : 0
|
||||||
|
216403 my_merge._reset_B : 1 [by Reset:=0]
|
||||||
|
216606 my_merge.merge_cell.reset_buf._y : 0 [by my_merge._reset_B:=1]
|
||||||
|
218460 my_merge.merge_cell._reset_BX : 1 [by my_merge.merge_cell.reset_buf._y:=0]
|
||||||
|
218599 my_merge.merge_cell.reset_bufarray.buf1._y : 0 [by my_merge.merge_cell._reset_BX:=1]
|
||||||
|
254945 my_merge.merge_cell._reset_BXX[0] : 1 [by my_merge.merge_cell.reset_bufarray.buf1._y:=0]
|
||||||
|
-------------------------------------------------
|
||||||
|
[1] System reset completed
|
||||||
|
|
||||||
|
-------------------------------------------------
|
||||||
|
[2] Output neutral checked
|
||||||
|
254945 my_merge.merge_cell.merge_func_f[0].n2 : 1
|
||||||
|
254945 my_merge.merge_cell.merge_func_t[1].n2 : 1
|
||||||
|
254956 my_merge.merge_cell.vc1.OR2_tf[1]._y : 0 [by my_merge.merge_cell.merge_func_t[1].n2:=1]
|
||||||
|
255014 my_merge.merge_cell.vc1.OR2_tf[0]._y : 0 [by my_merge.merge_cell.merge_func_f[0].n2:=1]
|
||||||
|
255218 my_merge.merge_cell.vc1.OR2_tf[0].y : 1 [by my_merge.merge_cell.vc1.OR2_tf[0]._y:=0]
|
||||||
|
306742 my_merge.merge_cell.vc1.OR2_tf[1].y : 1 [by my_merge.merge_cell.vc1.OR2_tf[1]._y:=0]
|
||||||
|
306757 my_merge.merge_cell.vc1.myctree.C2Els[0]._y : 0 [by my_merge.merge_cell.vc1.OR2_tf[1].y:=1]
|
||||||
|
306758 my_merge.in1.v : 1 [by my_merge.merge_cell.vc1.myctree.C2Els[0]._y:=0]
|
||||||
|
306795 my_merge.merge_cell.validity_arb.arbiter._y1 : 0 [by my_merge.in1.v:=1]
|
||||||
|
307534 my_merge.merge_cell.validity_arb._y1_arb : 1 [by my_merge.merge_cell.validity_arb.arbiter._y1:=0]
|
||||||
|
307646 my_merge.merge_cell.validity_arb.or_cell._y : 0 [by my_merge.merge_cell.validity_arb._y1_arb:=1]
|
||||||
|
355158 my_merge.merge_cell._out_temp.a : 1 [by my_merge.merge_cell.validity_arb.or_cell._y:=0]
|
||||||
|
355198 my_merge.merge_cell.validity_arb.ack_cell1._y : 0 [by my_merge.merge_cell._out_temp.a:=1]
|
||||||
|
355455 my_merge.merge_cell._in1_arb_temp : 1 [by my_merge.merge_cell.validity_arb.ack_cell1._y:=0]
|
||||||
|
355542 my_merge.merge_cell.AND_arb1._y : 0 [by my_merge.merge_cell._in1_arb_temp:=1]
|
||||||
|
355836 my_merge.merge_cell._in1_arb : 1 [by my_merge.merge_cell.AND_arb1._y:=0]
|
||||||
|
355837 my_merge.merge_cell.arb2function1.buf1._y : 0 [by my_merge.merge_cell._in1_arb:=1]
|
||||||
|
357643 my_merge.merge_cell._in1_arb_X[0] : 1 [by my_merge.merge_cell.arb2function1.buf1._y:=0]
|
||||||
|
358852 my_merge.merge_cell.merge_func_t[1]._y : 0 [by my_merge.merge_cell._in1_arb_X[0]:=1]
|
||||||
|
359442 my_merge.merge_cell.merge_func_t[1].y : 1 [by my_merge.merge_cell.merge_func_t[1]._y:=0]
|
||||||
|
359650 my_merge.merge_cell.merge_func_f[0]._y : 0 [by my_merge.merge_cell._in1_arb_X[0]:=1]
|
||||||
|
359828 my_merge.merge_cell.merge_func_f[0].y : 1 [by my_merge.merge_cell.merge_func_f[0]._y:=0]
|
||||||
|
359828 my_merge.out.v : 1
|
||||||
|
360631 my_merge.merge_cell.in1ack_ctl._y : 0 [by my_merge.out.v:=1]
|
||||||
|
360795 my_merge.in1.a : 1 [by my_merge.merge_cell.in1ack_ctl._y:=0]
|
||||||
|
360817 my_merge.merge_cell._en : 0 [by my_merge.in1.a:=1]
|
||||||
|
361664 my_merge.merge_cell.en_buffer.buf1._y : 1 [by my_merge.merge_cell._en:=0]
|
||||||
|
362990 my_merge.merge_cell._in1_a_B : 0 [by my_merge.in1.a:=1]
|
||||||
|
391792 my_merge.merge_cell._en_X[0] : 0 [by my_merge.merge_cell.en_buffer.buf1._y:=1]
|
||||||
|
391792 my_merge.merge_cell.merge_func_f[0].n2 : 0
|
||||||
|
391792 my_merge.merge_cell.merge_func_t[1].n2 : 0
|
||||||
|
391925 my_merge.merge_cell.vc1.OR2_tf[0]._y : 1 [by my_merge.merge_cell.merge_func_f[0].n2:=0]
|
||||||
|
392284 my_merge.merge_cell.vc1.OR2_tf[0].y : 0 [by my_merge.merge_cell.vc1.OR2_tf[0]._y:=1]
|
||||||
|
407454 my_merge.merge_cell.vc1.OR2_tf[1]._y : 1 [by my_merge.merge_cell.merge_func_t[1].n2:=0]
|
||||||
|
421570 my_merge.merge_cell.vc1.OR2_tf[1].y : 0 [by my_merge.merge_cell.vc1.OR2_tf[1]._y:=1]
|
||||||
|
421791 my_merge.merge_cell.vc1.myctree.C2Els[0]._y : 1 [by my_merge.merge_cell.vc1.OR2_tf[1].y:=0]
|
||||||
|
421798 my_merge.in1.v : 0 [by my_merge.merge_cell.vc1.myctree.C2Els[0]._y:=1]
|
||||||
|
421828 my_merge.merge_cell.validity_arb.arbiter._y1 : 1 [by my_merge.in1.v:=0]
|
||||||
|
428541 my_merge.merge_cell.validity_arb._y1_arb : 0 [by my_merge.merge_cell.validity_arb.arbiter._y1:=1]
|
||||||
|
486002 my_merge.merge_cell.validity_arb.or_cell._y : 1 [by my_merge.merge_cell.validity_arb._y1_arb:=0]
|
||||||
|
486093 my_merge.merge_cell._out_temp.a : 0 [by my_merge.merge_cell.validity_arb.or_cell._y:=1]
|
||||||
|
488282 my_merge.merge_cell.validity_arb.ack_cell1._y : 1 [by my_merge.merge_cell._out_temp.a:=0]
|
||||||
|
488289 my_merge.merge_cell._in1_arb_temp : 0 [by my_merge.merge_cell.validity_arb.ack_cell1._y:=1]
|
||||||
|
491076 my_merge.merge_cell.AND_arb1._y : 1 [by my_merge.merge_cell._in1_arb_temp:=0]
|
||||||
|
491182 my_merge.merge_cell._in1_arb : 0 [by my_merge.merge_cell.AND_arb1._y:=1]
|
||||||
|
491260 my_merge.merge_cell.arb2function1.buf1._y : 1 [by my_merge.merge_cell._in1_arb:=0]
|
||||||
|
491535 my_merge.merge_cell._in1_arb_X[0] : 0 [by my_merge.merge_cell.arb2function1.buf1._y:=1]
|
||||||
|
491535 my_merge.out.a : 1
|
||||||
|
510531 my_merge.merge_cell._out_a_B : 0 [by my_merge.out.a:=1]
|
||||||
|
510986 my_merge.merge_cell.out_a_buffer.buf1._y : 1 [by my_merge.merge_cell._out_a_B:=0]
|
||||||
|
510998 my_merge.merge_cell._out_a_BX[0] : 0 [by my_merge.merge_cell.out_a_buffer.buf1._y:=1]
|
||||||
|
511010 my_merge.merge_cell.merge_func_f[0]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
511402 my_merge.merge_cell.merge_func_t[1]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
515678 my_merge.merge_cell.merge_func_t[1].y : 0 [by my_merge.merge_cell.merge_func_t[1]._y:=1]
|
||||||
|
516926 my_merge.merge_cell.merge_func_f[0].y : 0 [by my_merge.merge_cell.merge_func_f[0]._y:=1]
|
||||||
|
516926 my_merge.out.v : 0
|
||||||
|
516926 my_merge.out.a : 0
|
||||||
|
519825 my_merge.merge_cell.in1ack_ctl._y : 1 [by my_merge.out.v:=0]
|
||||||
|
519827 my_merge.in1.a : 0 [by my_merge.merge_cell.in1ack_ctl._y:=1]
|
||||||
|
521076 my_merge.merge_cell._en : 1 [by my_merge.in1.a:=0]
|
||||||
|
521221 my_merge.merge_cell._out_a_B : 1 [by my_merge.out.a:=0]
|
||||||
|
521387 my_merge.merge_cell.out_a_buffer.buf1._y : 0 [by my_merge.merge_cell._out_a_B:=1]
|
||||||
|
521462 my_merge.merge_cell._out_a_BX[0] : 1 [by my_merge.merge_cell.out_a_buffer.buf1._y:=0]
|
||||||
|
524362 my_merge.merge_cell._in1_a_B : 1 [by my_merge.in1.a:=0]
|
||||||
|
524575 my_merge.merge_cell.en_buffer.buf1._y : 0 [by my_merge.merge_cell._en:=1]
|
||||||
|
524920 my_merge.merge_cell._en_X[0] : 1 [by my_merge.merge_cell.en_buffer.buf1._y:=0]
|
||||||
|
-------------------------------------------------
|
||||||
|
[3] In1 channel checked
|
||||||
|
524920 my_merge.merge_cell.merge_func_f[0].n4 : 1
|
||||||
|
524920 my_merge.merge_cell.merge_func_t[1].n4 : 1
|
||||||
|
525058 my_merge.merge_cell.vc2.OR2_tf[0]._y : 0 [by my_merge.merge_cell.merge_func_f[0].n4:=1]
|
||||||
|
525060 my_merge.merge_cell.vc2.OR2_tf[0].y : 1 [by my_merge.merge_cell.vc2.OR2_tf[0]._y:=0]
|
||||||
|
530183 my_merge.merge_cell.vc2.OR2_tf[1]._y : 0 [by my_merge.merge_cell.merge_func_t[1].n4:=1]
|
||||||
|
574100 my_merge.merge_cell.vc2.OR2_tf[1].y : 1 [by my_merge.merge_cell.vc2.OR2_tf[1]._y:=0]
|
||||||
|
574101 my_merge.merge_cell.vc2.myctree.C2Els[0]._y : 0 [by my_merge.merge_cell.vc2.OR2_tf[1].y:=1]
|
||||||
|
574649 my_merge.in2.v : 1 [by my_merge.merge_cell.vc2.myctree.C2Els[0]._y:=0]
|
||||||
|
574660 my_merge.merge_cell.validity_arb.arbiter._y2 : 0 [by my_merge.in2.v:=1]
|
||||||
|
575030 my_merge.merge_cell.validity_arb._y2_arb : 1 [by my_merge.merge_cell.validity_arb.arbiter._y2:=0]
|
||||||
|
575097 my_merge.merge_cell.validity_arb.or_cell._y : 0 [by my_merge.merge_cell.validity_arb._y2_arb:=1]
|
||||||
|
577738 my_merge.merge_cell._out_temp.a : 1 [by my_merge.merge_cell.validity_arb.or_cell._y:=0]
|
||||||
|
577754 my_merge.merge_cell.validity_arb.ack_cell2._y : 0 [by my_merge.merge_cell._out_temp.a:=1]
|
||||||
|
582316 my_merge.merge_cell._in2_arb_temp : 1 [by my_merge.merge_cell.validity_arb.ack_cell2._y:=0]
|
||||||
|
582844 my_merge.merge_cell.AND_arb2._y : 0 [by my_merge.merge_cell._in2_arb_temp:=1]
|
||||||
|
585279 my_merge.merge_cell._in2_arb : 1 [by my_merge.merge_cell.AND_arb2._y:=0]
|
||||||
|
612159 my_merge.merge_cell.arb2function2.buf1._y : 0 [by my_merge.merge_cell._in2_arb:=1]
|
||||||
|
636084 my_merge.merge_cell._in2_arb_X[0] : 1 [by my_merge.merge_cell.arb2function2.buf1._y:=0]
|
||||||
|
636086 my_merge.merge_cell.merge_func_t[1]._y : 0 [by my_merge.merge_cell._in2_arb_X[0]:=1]
|
||||||
|
649125 my_merge.merge_cell.merge_func_f[0]._y : 0 [by my_merge.merge_cell._in2_arb_X[0]:=1]
|
||||||
|
649128 my_merge.merge_cell.merge_func_f[0].y : 1 [by my_merge.merge_cell.merge_func_f[0]._y:=0]
|
||||||
|
697044 my_merge.merge_cell.merge_func_t[1].y : 1 [by my_merge.merge_cell.merge_func_t[1]._y:=0]
|
||||||
|
697044 my_merge.out.v : 1
|
||||||
|
697073 my_merge.merge_cell.in2ack_ctl._y : 0 [by my_merge.out.v:=1]
|
||||||
|
697390 my_merge.in2.a : 1 [by my_merge.merge_cell.in2ack_ctl._y:=0]
|
||||||
|
697543 my_merge.merge_cell._in2_a_B : 0 [by my_merge.in2.a:=1]
|
||||||
|
698991 my_merge.merge_cell._en : 0 [by my_merge.in2.a:=1]
|
||||||
|
699035 my_merge.merge_cell.en_buffer.buf1._y : 1 [by my_merge.merge_cell._en:=0]
|
||||||
|
701796 my_merge.merge_cell._en_X[0] : 0 [by my_merge.merge_cell.en_buffer.buf1._y:=1]
|
||||||
|
701796 my_merge.merge_cell.merge_func_f[0].n4 : 0
|
||||||
|
701796 my_merge.merge_cell.merge_func_t[1].n4 : 0
|
||||||
|
701797 my_merge.merge_cell.vc2.OR2_tf[1]._y : 1 [by my_merge.merge_cell.merge_func_t[1].n4:=0]
|
||||||
|
702014 my_merge.merge_cell.vc2.OR2_tf[1].y : 0 [by my_merge.merge_cell.vc2.OR2_tf[1]._y:=1]
|
||||||
|
715479 my_merge.merge_cell.vc2.OR2_tf[0]._y : 1 [by my_merge.merge_cell.merge_func_f[0].n4:=0]
|
||||||
|
715501 my_merge.merge_cell.vc2.OR2_tf[0].y : 0 [by my_merge.merge_cell.vc2.OR2_tf[0]._y:=1]
|
||||||
|
715502 my_merge.merge_cell.vc2.myctree.C2Els[0]._y : 1 [by my_merge.merge_cell.vc2.OR2_tf[0].y:=0]
|
||||||
|
717083 my_merge.in2.v : 0 [by my_merge.merge_cell.vc2.myctree.C2Els[0]._y:=1]
|
||||||
|
726428 my_merge.merge_cell.validity_arb.arbiter._y2 : 1 [by my_merge.in2.v:=0]
|
||||||
|
726587 my_merge.merge_cell.validity_arb._y2_arb : 0 [by my_merge.merge_cell.validity_arb.arbiter._y2:=1]
|
||||||
|
746263 my_merge.merge_cell.validity_arb.or_cell._y : 1 [by my_merge.merge_cell.validity_arb._y2_arb:=0]
|
||||||
|
747550 my_merge.merge_cell._out_temp.a : 0 [by my_merge.merge_cell.validity_arb.or_cell._y:=1]
|
||||||
|
749782 my_merge.merge_cell.validity_arb.ack_cell2._y : 1 [by my_merge.merge_cell._out_temp.a:=0]
|
||||||
|
749927 my_merge.merge_cell._in2_arb_temp : 0 [by my_merge.merge_cell.validity_arb.ack_cell2._y:=1]
|
||||||
|
752759 my_merge.merge_cell.AND_arb2._y : 1 [by my_merge.merge_cell._in2_arb_temp:=0]
|
||||||
|
759113 my_merge.merge_cell._in2_arb : 0 [by my_merge.merge_cell.AND_arb2._y:=1]
|
||||||
|
759114 my_merge.merge_cell.arb2function2.buf1._y : 1 [by my_merge.merge_cell._in2_arb:=0]
|
||||||
|
798398 my_merge.merge_cell._in2_arb_X[0] : 0 [by my_merge.merge_cell.arb2function2.buf1._y:=1]
|
||||||
|
798398 my_merge.out.a : 1
|
||||||
|
798560 my_merge.merge_cell._out_a_B : 0 [by my_merge.out.a:=1]
|
||||||
|
805929 my_merge.merge_cell.out_a_buffer.buf1._y : 1 [by my_merge.merge_cell._out_a_B:=0]
|
||||||
|
805943 my_merge.merge_cell._out_a_BX[0] : 0 [by my_merge.merge_cell.out_a_buffer.buf1._y:=1]
|
||||||
|
805950 my_merge.merge_cell.merge_func_t[1]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
806103 my_merge.merge_cell.merge_func_f[0]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
806104 my_merge.merge_cell.merge_func_f[0].y : 0 [by my_merge.merge_cell.merge_func_f[0]._y:=1]
|
||||||
|
827507 my_merge.merge_cell.merge_func_t[1].y : 0 [by my_merge.merge_cell.merge_func_t[1]._y:=1]
|
||||||
|
827507 my_merge.out.a : 0
|
||||||
|
827507 my_merge.out.v : 0
|
||||||
|
827508 my_merge.merge_cell._out_a_B : 1 [by my_merge.out.a:=0]
|
||||||
|
827508 my_merge.merge_cell.in2ack_ctl._y : 1 [by my_merge.out.v:=0]
|
||||||
|
827695 my_merge.in2.a : 0 [by my_merge.merge_cell.in2ack_ctl._y:=1]
|
||||||
|
827696 my_merge.merge_cell._en : 1 [by my_merge.in2.a:=0]
|
||||||
|
829751 my_merge.merge_cell.out_a_buffer.buf1._y : 0 [by my_merge.merge_cell._out_a_B:=1]
|
||||||
|
829752 my_merge.merge_cell._out_a_BX[0] : 1 [by my_merge.merge_cell.out_a_buffer.buf1._y:=0]
|
||||||
|
831877 my_merge.merge_cell._in2_a_B : 1 [by my_merge.in2.a:=0]
|
||||||
|
862478 my_merge.merge_cell.en_buffer.buf1._y : 0 [by my_merge.merge_cell._en:=1]
|
||||||
|
863331 my_merge.merge_cell._en_X[0] : 1 [by my_merge.merge_cell.en_buffer.buf1._y:=0]
|
||||||
|
-------------------------------------------------
|
||||||
|
[4] In2 valid checked
|
||||||
|
863331 my_merge.merge_cell.merge_func_f[0].n4 : 1
|
||||||
|
863331 my_merge.merge_cell.merge_func_t[1].n2 : 1
|
||||||
|
863331 my_merge.merge_cell.merge_func_f[0].n2 : 1
|
||||||
|
863331 my_merge.merge_cell.merge_func_t[1].n4 : 1
|
||||||
|
863332 my_merge.merge_cell.vc1.OR2_tf[0]._y : 0 [by my_merge.merge_cell.merge_func_f[0].n2:=1]
|
||||||
|
863336 my_merge.merge_cell.vc2.OR2_tf[0]._y : 0 [by my_merge.merge_cell.merge_func_f[0].n4:=1]
|
||||||
|
863348 my_merge.merge_cell.vc2.OR2_tf[1]._y : 0 [by my_merge.merge_cell.merge_func_t[1].n4:=1]
|
||||||
|
863351 my_merge.merge_cell.vc2.OR2_tf[1].y : 1 [by my_merge.merge_cell.vc2.OR2_tf[1]._y:=0]
|
||||||
|
864222 my_merge.merge_cell.vc1.OR2_tf[1]._y : 0 [by my_merge.merge_cell.merge_func_t[1].n2:=1]
|
||||||
|
865163 my_merge.merge_cell.vc1.OR2_tf[1].y : 1 [by my_merge.merge_cell.vc1.OR2_tf[1]._y:=0]
|
||||||
|
865905 my_merge.merge_cell.vc1.OR2_tf[0].y : 1 [by my_merge.merge_cell.vc1.OR2_tf[0]._y:=0]
|
||||||
|
871697 my_merge.merge_cell.vc2.OR2_tf[0].y : 1 [by my_merge.merge_cell.vc2.OR2_tf[0]._y:=0]
|
||||||
|
871698 my_merge.merge_cell.vc2.myctree.C2Els[0]._y : 0 [by my_merge.merge_cell.vc2.OR2_tf[0].y:=1]
|
||||||
|
871740 my_merge.in2.v : 1 [by my_merge.merge_cell.vc2.myctree.C2Els[0]._y:=0]
|
||||||
|
874557 my_merge.merge_cell.validity_arb.arbiter._y2 : 0 [by my_merge.in2.v:=1]
|
||||||
|
888290 my_merge.merge_cell.validity_arb._y2_arb : 1 [by my_merge.merge_cell.validity_arb.arbiter._y2:=0]
|
||||||
|
888385 my_merge.merge_cell.validity_arb.or_cell._y : 0 [by my_merge.merge_cell.validity_arb._y2_arb:=1]
|
||||||
|
888720 my_merge.merge_cell._out_temp.a : 1 [by my_merge.merge_cell.validity_arb.or_cell._y:=0]
|
||||||
|
888728 my_merge.merge_cell.validity_arb.ack_cell2._y : 0 [by my_merge.merge_cell._out_temp.a:=1]
|
||||||
|
888762 my_merge.merge_cell._in2_arb_temp : 1 [by my_merge.merge_cell.validity_arb.ack_cell2._y:=0]
|
||||||
|
902649 my_merge.merge_cell.AND_arb2._y : 0 [by my_merge.merge_cell._in2_arb_temp:=1]
|
||||||
|
903567 my_merge.merge_cell._in2_arb : 1 [by my_merge.merge_cell.AND_arb2._y:=0]
|
||||||
|
903571 my_merge.merge_cell.arb2function2.buf1._y : 0 [by my_merge.merge_cell._in2_arb:=1]
|
||||||
|
924867 my_merge.merge_cell.vc1.myctree.C2Els[0]._y : 0 [by my_merge.merge_cell.vc1.OR2_tf[0].y:=1]
|
||||||
|
927265 my_merge.in1.v : 1 [by my_merge.merge_cell.vc1.myctree.C2Els[0]._y:=0]
|
||||||
|
949949 my_merge.merge_cell._in2_arb_X[0] : 1 [by my_merge.merge_cell.arb2function2.buf1._y:=0]
|
||||||
|
953164 my_merge.merge_cell.merge_func_f[0]._y : 0 [by my_merge.merge_cell._in2_arb_X[0]:=1]
|
||||||
|
953212 my_merge.merge_cell.merge_func_f[0].y : 1 [by my_merge.merge_cell.merge_func_f[0]._y:=0]
|
||||||
|
997068 my_merge.merge_cell.merge_func_t[1]._y : 0 [by my_merge.merge_cell._in2_arb_X[0]:=1]
|
||||||
|
997071 my_merge.merge_cell.merge_func_t[1].y : 1 [by my_merge.merge_cell.merge_func_t[1]._y:=0]
|
||||||
|
997071 my_merge.out.v : 1
|
||||||
|
997249 my_merge.merge_cell.in2ack_ctl._y : 0 [by my_merge.out.v:=1]
|
||||||
|
1018226 my_merge.in2.a : 1 [by my_merge.merge_cell.in2ack_ctl._y:=0]
|
||||||
|
1024177 my_merge.merge_cell._in2_a_B : 0 [by my_merge.in2.a:=1]
|
||||||
|
1030125 my_merge.merge_cell._en : 0 [by my_merge.in2.a:=1]
|
||||||
|
1069610 my_merge.merge_cell.en_buffer.buf1._y : 1 [by my_merge.merge_cell._en:=0]
|
||||||
|
1070437 my_merge.merge_cell._en_X[0] : 0 [by my_merge.merge_cell.en_buffer.buf1._y:=1]
|
||||||
|
1070437 my_merge.out.a : 1
|
||||||
|
1070610 my_merge.merge_cell._out_a_B : 0 [by my_merge.out.a:=1]
|
||||||
|
1070794 my_merge.merge_cell.out_a_buffer.buf1._y : 1 [by my_merge.merge_cell._out_a_B:=0]
|
||||||
|
1070795 my_merge.merge_cell._out_a_BX[0] : 0 [by my_merge.merge_cell.out_a_buffer.buf1._y:=1]
|
||||||
|
1070799 my_merge.merge_cell.merge_func_f[0]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
1070868 my_merge.merge_cell.merge_func_t[1]._y : 1 [by my_merge.merge_cell._out_a_BX[0]:=0]
|
||||||
|
1070964 my_merge.merge_cell.merge_func_t[1].y : 0 [by my_merge.merge_cell.merge_func_t[1]._y:=1]
|
||||||
|
1108087 my_merge.merge_cell.merge_func_f[0].y : 0 [by my_merge.merge_cell.merge_func_f[0]._y:=1]
|
||||||
|
1108087 my_merge.out.a : 0
|
||||||
|
1108087 my_merge.out.v : 0
|
||||||
|
1108223 my_merge.merge_cell._out_a_B : 1 [by my_merge.out.a:=0]
|
||||||
|
1108224 my_merge.merge_cell.out_a_buffer.buf1._y : 0 [by my_merge.merge_cell._out_a_B:=1]
|
||||||
|
1127270 my_merge.merge_cell._out_a_BX[0] : 1 [by my_merge.merge_cell.out_a_buffer.buf1._y:=0]
|
||||||
|
1127270 my_merge.merge_cell.merge_func_f[0].n4 : 0
|
||||||
|
1127270 my_merge.merge_cell.merge_func_t[1].n4 : 0
|
||||||
|
1127511 my_merge.merge_cell.vc2.OR2_tf[0]._y : 1 [by my_merge.merge_cell.merge_func_f[0].n4:=0]
|
||||||
|
1127523 my_merge.merge_cell.vc2.OR2_tf[0].y : 0 [by my_merge.merge_cell.vc2.OR2_tf[0]._y:=1]
|
||||||
|
1131229 my_merge.merge_cell.vc2.OR2_tf[1]._y : 1 [by my_merge.merge_cell.merge_func_t[1].n4:=0]
|
||||||
|
1135129 my_merge.merge_cell.vc2.OR2_tf[1].y : 0 [by my_merge.merge_cell.vc2.OR2_tf[1]._y:=1]
|
||||||
|
1136158 my_merge.merge_cell.vc2.myctree.C2Els[0]._y : 1 [by my_merge.merge_cell.vc2.OR2_tf[1].y:=0]
|
||||||
|
1136159 my_merge.in2.v : 0 [by my_merge.merge_cell.vc2.myctree.C2Els[0]._y:=1]
|
||||||
|
1136215 my_merge.merge_cell.validity_arb.arbiter._y2 : 1 [by my_merge.in2.v:=0]
|
||||||
|
1136216 my_merge.merge_cell.validity_arb._y2_arb : 0 [by my_merge.merge_cell.validity_arb.arbiter._y2:=1]
|
||||||
|
1136253 my_merge.merge_cell.validity_arb.or_cell._y : 1 [by my_merge.merge_cell.validity_arb._y2_arb:=0]
|
||||||
|
1159628 my_merge.merge_cell._out_temp.a : 0 [by my_merge.merge_cell.validity_arb.or_cell._y:=1]
|
||||||
|
1159629 my_merge.merge_cell.validity_arb.ack_cell2._y : 1 [by my_merge.merge_cell._out_temp.a:=0]
|
||||||
|
1163193 my_merge.merge_cell._in2_arb_temp : 0 [by my_merge.merge_cell.validity_arb.ack_cell2._y:=1]
|
||||||
|
1164885 my_merge.merge_cell.AND_arb2._y : 1 [by my_merge.merge_cell._in2_arb_temp:=0]
|
||||||
|
1164898 my_merge.merge_cell._in2_arb : 0 [by my_merge.merge_cell.AND_arb2._y:=1]
|
||||||
|
1165255 my_merge.merge_cell.in2ack_ctl._y : 1 [by my_merge.merge_cell._in2_arb:=0]
|
||||||
|
1165280 my_merge.in2.a : 0 [by my_merge.merge_cell.in2ack_ctl._y:=1]
|
||||||
|
1165281 my_merge.merge_cell._in2_a_B : 1 [by my_merge.in2.a:=0]
|
||||||
|
1165301 my_merge.merge_cell._en : 1 [by my_merge.in2.a:=0]
|
||||||
|
1174949 my_merge.merge_cell.en_buffer.buf1._y : 0 [by my_merge.merge_cell._en:=1]
|
||||||
|
1174950 my_merge.merge_cell._en_X[0] : 1 [by my_merge.merge_cell.en_buffer.buf1._y:=0]
|
||||||
|
1181221 my_merge.merge_cell.validity_arb.arbiter._y1 : 0 [by my_merge.merge_cell.validity_arb.arbiter._y2:=1]
|
||||||
|
1181222 my_merge.merge_cell.validity_arb._y1_arb : 1 [by my_merge.merge_cell.validity_arb.arbiter._y1:=0]
|
||||||
|
1181383 my_merge.merge_cell.validity_arb.or_cell._y : 0 [by my_merge.merge_cell.validity_arb._y1_arb:=1]
|
||||||
|
1181882 my_merge.merge_cell.arb2function2.buf1._y : 1 [by my_merge.merge_cell._in2_arb:=0]
|
||||||
|
1181887 my_merge.merge_cell._in2_arb_X[0] : 0 [by my_merge.merge_cell.arb2function2.buf1._y:=1]
|
||||||
|
1182420 my_merge.merge_cell._out_temp.a : 1 [by my_merge.merge_cell.validity_arb.or_cell._y:=0]
|
||||||
|
1183001 my_merge.merge_cell.validity_arb.ack_cell1._y : 0 [by my_merge.merge_cell._out_temp.a:=1]
|
||||||
|
1183409 my_merge.merge_cell._in1_arb_temp : 1 [by my_merge.merge_cell.validity_arb.ack_cell1._y:=0]
|
||||||
|
1183420 my_merge.merge_cell.AND_arb1._y : 0 [by my_merge.merge_cell._in1_arb_temp:=1]
|
||||||
|
1184467 my_merge.merge_cell._in1_arb : 1 [by my_merge.merge_cell.AND_arb1._y:=0]
|
||||||
|
1184481 my_merge.merge_cell.arb2function1.buf1._y : 0 [by my_merge.merge_cell._in1_arb:=1]
|
||||||
|
1184499 my_merge.merge_cell._in1_arb_X[0] : 1 [by my_merge.merge_cell.arb2function1.buf1._y:=0]
|
||||||
|
1184503 my_merge.merge_cell.merge_func_f[0]._y : 0 [by my_merge.merge_cell._in1_arb_X[0]:=1]
|
||||||
|
1184603 my_merge.merge_cell.merge_func_t[1]._y : 0 [by my_merge.merge_cell._in1_arb_X[0]:=1]
|
||||||
|
1185807 my_merge.merge_cell.merge_func_t[1].y : 1 [by my_merge.merge_cell.merge_func_t[1]._y:=0]
|
||||||
|
1215947 my_merge.merge_cell.merge_func_f[0].y : 1 [by my_merge.merge_cell.merge_func_f[0]._y:=0]
|
||||||
|
-------------------------------------------------
|
||||||
|
Finished
|
556
test/unit_tests/merge_t_2_simple/run/test.prs
Normal file
556
test/unit_tests/merge_t_2_simple/run/test.prs
Normal file
@ -0,0 +1,556 @@
|
|||||||
|
= "GND" "GND"
|
||||||
|
= "Vdd" "Vdd"
|
||||||
|
= "Reset" "Reset"
|
||||||
|
"Reset"->"my_merge._reset_B"-
|
||||||
|
~("Reset")->"my_merge._reset_B"+
|
||||||
|
= "my_merge._reset_B" "my_merge.merge_cell.reset_B"
|
||||||
|
= "my_merge.in1.d.d[0].d[0]" "my_merge.in1.d.d[0].f"
|
||||||
|
= "my_merge.in1.d.d[0].d[1]" "my_merge.in1.d.d[0].t"
|
||||||
|
= "my_merge.in1.d.d[1].d[0]" "my_merge.in1.d.d[1].f"
|
||||||
|
= "my_merge.in1.d.d[1].d[1]" "my_merge.in1.d.d[1].t"
|
||||||
|
= "my_merge.in1.d.d[1].d[0]" "my_merge.in1.d.d[1].f"
|
||||||
|
= "my_merge.in1.d.d[1].d[1]" "my_merge.in1.d.d[1].t"
|
||||||
|
= "my_merge.in1.d.d[0].d[0]" "my_merge.in1.d.d[0].f"
|
||||||
|
= "my_merge.in1.d.d[0].d[1]" "my_merge.in1.d.d[0].t"
|
||||||
|
= "my_merge.in1.d.d[1].d[0]" "my_merge.in1.d.d[1].f"
|
||||||
|
= "my_merge.in1.d.d[1].d[1]" "my_merge.in1.d.d[1].t"
|
||||||
|
= "my_merge.in1.d.d[0].d[0]" "my_merge.in1.d.d[0].f"
|
||||||
|
= "my_merge.in1.d.d[0].d[1]" "my_merge.in1.d.d[0].t"
|
||||||
|
= "my_merge.in1.v" "my_merge.merge_cell.in1.v"
|
||||||
|
= "my_merge.in1.a" "my_merge.merge_cell.in1.a"
|
||||||
|
= "my_merge.in1.d.d[0].f" "my_merge.merge_cell.in1.d.d[0].f"
|
||||||
|
= "my_merge.in1.d.d[0].t" "my_merge.merge_cell.in1.d.d[0].t"
|
||||||
|
= "my_merge.in1.d.d[0].d[0]" "my_merge.merge_cell.in1.d.d[0].d[0]"
|
||||||
|
= "my_merge.in1.d.d[0].d[1]" "my_merge.merge_cell.in1.d.d[0].d[1]"
|
||||||
|
= "my_merge.in1.d.d[1].f" "my_merge.merge_cell.in1.d.d[1].f"
|
||||||
|
= "my_merge.in1.d.d[1].t" "my_merge.merge_cell.in1.d.d[1].t"
|
||||||
|
= "my_merge.in1.d.d[1].d[0]" "my_merge.merge_cell.in1.d.d[1].d[0]"
|
||||||
|
= "my_merge.in1.d.d[1].d[1]" "my_merge.merge_cell.in1.d.d[1].d[1]"
|
||||||
|
= "my_merge.in1.d.d[1].d[0]" "my_merge.in1.d.d[1].f"
|
||||||
|
= "my_merge.in1.d.d[1].d[1]" "my_merge.in1.d.d[1].t"
|
||||||
|
= "my_merge.in1.d.d[0].d[0]" "my_merge.in1.d.d[0].f"
|
||||||
|
= "my_merge.in1.d.d[0].d[1]" "my_merge.in1.d.d[0].t"
|
||||||
|
~"my_merge.merge_cell.merge_func_f[0].c1"&~"my_merge.merge_cell.merge_func_f[0].c2"|~"my_merge.merge_cell.merge_func_f[0].pr_B"->"my_merge.merge_cell.merge_func_f[0]._y"+
|
||||||
|
"my_merge.merge_cell.merge_func_f[0].c1"&"my_merge.merge_cell.merge_func_f[0].c2"&("my_merge.merge_cell.merge_func_f[0].n1"&"my_merge.merge_cell.merge_func_f[0].n2"|"my_merge.merge_cell.merge_func_f[0].n3"&"my_merge.merge_cell.merge_func_f[0].n4")&"my_merge.merge_cell.merge_func_f[0].sr_B"->"my_merge.merge_cell.merge_func_f[0]._y"-
|
||||||
|
"my_merge.merge_cell.merge_func_f[0]._y"->"my_merge.merge_cell.merge_func_f[0].y"-
|
||||||
|
~("my_merge.merge_cell.merge_func_f[0]._y")->"my_merge.merge_cell.merge_func_f[0].y"+
|
||||||
|
~"my_merge.merge_cell.merge_func_f[1].c1"&~"my_merge.merge_cell.merge_func_f[1].c2"|~"my_merge.merge_cell.merge_func_f[1].pr_B"->"my_merge.merge_cell.merge_func_f[1]._y"+
|
||||||
|
"my_merge.merge_cell.merge_func_f[1].c1"&"my_merge.merge_cell.merge_func_f[1].c2"&("my_merge.merge_cell.merge_func_f[1].n1"&"my_merge.merge_cell.merge_func_f[1].n2"|"my_merge.merge_cell.merge_func_f[1].n3"&"my_merge.merge_cell.merge_func_f[1].n4")&"my_merge.merge_cell.merge_func_f[1].sr_B"->"my_merge.merge_cell.merge_func_f[1]._y"-
|
||||||
|
"my_merge.merge_cell.merge_func_f[1]._y"->"my_merge.merge_cell.merge_func_f[1].y"-
|
||||||
|
~("my_merge.merge_cell.merge_func_f[1]._y")->"my_merge.merge_cell.merge_func_f[1].y"+
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[0]" "my_merge.merge_cell.in1.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[1]" "my_merge.merge_cell.in1.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[0]" "my_merge.merge_cell.in1.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[1]" "my_merge.merge_cell.in1.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[0]" "my_merge.merge_cell.in1.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[1]" "my_merge.merge_cell.in1.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[0]" "my_merge.merge_cell.in1.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[1]" "my_merge.merge_cell.in1.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[0]" "my_merge.merge_cell.in1.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[1]" "my_merge.merge_cell.in1.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[0]" "my_merge.merge_cell.in1.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[1]" "my_merge.merge_cell.in1.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].f" "my_merge.merge_cell.vc1.in.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].t" "my_merge.merge_cell.vc1.in.d[0].t"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[0]" "my_merge.merge_cell.vc1.in.d[0].d[0]"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[1]" "my_merge.merge_cell.vc1.in.d[0].d[1]"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].f" "my_merge.merge_cell.vc1.in.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].t" "my_merge.merge_cell.vc1.in.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[0]" "my_merge.merge_cell.vc1.in.d[1].d[0]"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[1]" "my_merge.merge_cell.vc1.in.d[1].d[1]"
|
||||||
|
= "my_merge.merge_cell.in1.a" "my_merge.merge_cell.in1ack_ctl_inv.a"
|
||||||
|
= "my_merge.merge_cell.in1.a" "my_merge.merge_cell.en_ctl.n1"
|
||||||
|
= "my_merge.merge_cell.in1.a" "my_merge.merge_cell.en_ctl.p1"
|
||||||
|
= "my_merge.merge_cell.in1.a" "my_merge.merge_cell.in1ack_ctl.y"
|
||||||
|
= "my_merge.merge_cell.in1.v" "my_merge.merge_cell._in1_temp.r"
|
||||||
|
= "my_merge.merge_cell.in1.v" "my_merge.merge_cell._in1_temp.d.d[0]"
|
||||||
|
= "my_merge.merge_cell.in1.v" "my_merge.merge_cell.vc1.out"
|
||||||
|
= "my_merge.merge_cell.in1.v" "my_merge.merge_cell.in1ack_ctl.c3"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[0]" "my_merge.merge_cell.merge_func_f[1].n2"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[0]" "my_merge.merge_cell.in1.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[1]" "my_merge.merge_cell.merge_func_t[1].n2"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[1].d[1]" "my_merge.merge_cell.in1.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[0]" "my_merge.merge_cell.merge_func_f[0].n2"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[0]" "my_merge.merge_cell.in1.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[1]" "my_merge.merge_cell.merge_func_t[0].n2"
|
||||||
|
= "my_merge.merge_cell.in1.d.d[0].d[1]" "my_merge.merge_cell.in1.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[0]" "my_merge.merge_cell.arb2function1.out[0]"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[1]" "my_merge.merge_cell.arb2function1.out[1]"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[2]" "my_merge.merge_cell.arb2function1.out[2]"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[3]" "my_merge.merge_cell.arb2function1.out[3]"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[0]" "my_merge.merge_cell.merge_func_f[1].n1"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[0]" "my_merge.merge_cell.merge_func_t[1].n1"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[0]" "my_merge.merge_cell.merge_func_f[0].n1"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[0]" "my_merge.merge_cell.merge_func_t[0].n1"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[0]" "my_merge.merge_cell._in1_arb_X[3]"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[0]" "my_merge.merge_cell._in1_arb_X[2]"
|
||||||
|
= "my_merge.merge_cell._in1_arb_X[0]" "my_merge.merge_cell._in1_arb_X[1]"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[0]" "my_merge.merge_cell.arb2function2.out[0]"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[1]" "my_merge.merge_cell.arb2function2.out[1]"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[2]" "my_merge.merge_cell.arb2function2.out[2]"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[3]" "my_merge.merge_cell.arb2function2.out[3]"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[0]" "my_merge.merge_cell.merge_func_f[1].n3"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[0]" "my_merge.merge_cell.merge_func_t[1].n3"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[0]" "my_merge.merge_cell.merge_func_f[0].n3"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[0]" "my_merge.merge_cell.merge_func_t[0].n3"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[0]" "my_merge.merge_cell._in2_arb_X[3]"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[0]" "my_merge.merge_cell._in2_arb_X[2]"
|
||||||
|
= "my_merge.merge_cell._in2_arb_X[0]" "my_merge.merge_cell._in2_arb_X[1]"
|
||||||
|
"my_merge.merge_cell.reset_bufarray.buf1.a"->"my_merge.merge_cell.reset_bufarray.buf1._y"-
|
||||||
|
~("my_merge.merge_cell.reset_bufarray.buf1.a")->"my_merge.merge_cell.reset_bufarray.buf1._y"+
|
||||||
|
"my_merge.merge_cell.reset_bufarray.buf1._y"->"my_merge.merge_cell.reset_bufarray.buf1.y"-
|
||||||
|
~("my_merge.merge_cell.reset_bufarray.buf1._y")->"my_merge.merge_cell.reset_bufarray.buf1.y"+
|
||||||
|
= "my_merge.merge_cell.reset_bufarray.supply.vdd" "my_merge.merge_cell.reset_bufarray.buf1.vdd"
|
||||||
|
= "my_merge.merge_cell.reset_bufarray.supply.vss" "my_merge.merge_cell.reset_bufarray.buf1.vss"
|
||||||
|
= "my_merge.merge_cell.reset_bufarray.out[0]" "my_merge.merge_cell.reset_bufarray.out[3]"
|
||||||
|
= "my_merge.merge_cell.reset_bufarray.out[0]" "my_merge.merge_cell.reset_bufarray.out[2]"
|
||||||
|
= "my_merge.merge_cell.reset_bufarray.out[0]" "my_merge.merge_cell.reset_bufarray.out[1]"
|
||||||
|
= "my_merge.merge_cell.reset_bufarray.out[0]" "my_merge.merge_cell.reset_bufarray.buf1.y"
|
||||||
|
= "my_merge.merge_cell.reset_bufarray.in" "my_merge.merge_cell.reset_bufarray.buf1.a"
|
||||||
|
= "my_merge.merge_cell._out_temp.d.d[0]" "my_merge.merge_cell._out_temp.r"
|
||||||
|
= "my_merge.merge_cell._out_temp.r" "my_merge.merge_cell.validity_arb.out.r"
|
||||||
|
= "my_merge.merge_cell._out_temp.a" "my_merge.merge_cell.validity_arb.out.a"
|
||||||
|
= "my_merge.merge_cell._out_temp.d.d[0]" "my_merge.merge_cell.validity_arb.out.d.d[0]"
|
||||||
|
= "my_merge.merge_cell._out_temp.d.d[0]" "my_merge.merge_cell._out_temp.a"
|
||||||
|
= "my_merge.merge_cell._out_temp.d.d[0]" "my_merge.merge_cell._out_temp.r"
|
||||||
|
"my_merge.merge_cell.arb2function2.buf1.a"->"my_merge.merge_cell.arb2function2.buf1._y"-
|
||||||
|
~("my_merge.merge_cell.arb2function2.buf1.a")->"my_merge.merge_cell.arb2function2.buf1._y"+
|
||||||
|
"my_merge.merge_cell.arb2function2.buf1._y"->"my_merge.merge_cell.arb2function2.buf1.y"-
|
||||||
|
~("my_merge.merge_cell.arb2function2.buf1._y")->"my_merge.merge_cell.arb2function2.buf1.y"+
|
||||||
|
= "my_merge.merge_cell.arb2function2.supply.vdd" "my_merge.merge_cell.arb2function2.buf1.vdd"
|
||||||
|
= "my_merge.merge_cell.arb2function2.supply.vss" "my_merge.merge_cell.arb2function2.buf1.vss"
|
||||||
|
= "my_merge.merge_cell.arb2function2.out[0]" "my_merge.merge_cell.arb2function2.out[3]"
|
||||||
|
= "my_merge.merge_cell.arb2function2.out[0]" "my_merge.merge_cell.arb2function2.out[2]"
|
||||||
|
= "my_merge.merge_cell.arb2function2.out[0]" "my_merge.merge_cell.arb2function2.out[1]"
|
||||||
|
= "my_merge.merge_cell.arb2function2.out[0]" "my_merge.merge_cell.arb2function2.buf1.y"
|
||||||
|
= "my_merge.merge_cell.arb2function2.in" "my_merge.merge_cell.arb2function2.buf1.a"
|
||||||
|
"my_merge.merge_cell.AND_arb2.a"&"my_merge.merge_cell.AND_arb2.b"->"my_merge.merge_cell.AND_arb2._y"-
|
||||||
|
~("my_merge.merge_cell.AND_arb2.a"&"my_merge.merge_cell.AND_arb2.b")->"my_merge.merge_cell.AND_arb2._y"+
|
||||||
|
"my_merge.merge_cell.AND_arb2._y"->"my_merge.merge_cell.AND_arb2.y"-
|
||||||
|
~("my_merge.merge_cell.AND_arb2._y")->"my_merge.merge_cell.AND_arb2.y"+
|
||||||
|
= "my_merge.merge_cell._en_X[0]" "my_merge.merge_cell.en_buffer.out[0]"
|
||||||
|
= "my_merge.merge_cell._en_X[1]" "my_merge.merge_cell.en_buffer.out[1]"
|
||||||
|
= "my_merge.merge_cell._en_X[2]" "my_merge.merge_cell.en_buffer.out[2]"
|
||||||
|
= "my_merge.merge_cell._en_X[3]" "my_merge.merge_cell.en_buffer.out[3]"
|
||||||
|
= "my_merge.merge_cell._en_X[0]" "my_merge.merge_cell.merge_func_f[1].c1"
|
||||||
|
= "my_merge.merge_cell._en_X[0]" "my_merge.merge_cell.merge_func_t[1].c1"
|
||||||
|
= "my_merge.merge_cell._en_X[0]" "my_merge.merge_cell.merge_func_f[0].c1"
|
||||||
|
= "my_merge.merge_cell._en_X[0]" "my_merge.merge_cell.merge_func_t[0].c1"
|
||||||
|
= "my_merge.merge_cell._en_X[0]" "my_merge.merge_cell._en_X[3]"
|
||||||
|
= "my_merge.merge_cell._en_X[0]" "my_merge.merge_cell._en_X[2]"
|
||||||
|
= "my_merge.merge_cell._en_X[0]" "my_merge.merge_cell._en_X[1]"
|
||||||
|
"my_merge.merge_cell.arb2function1.buf1.a"->"my_merge.merge_cell.arb2function1.buf1._y"-
|
||||||
|
~("my_merge.merge_cell.arb2function1.buf1.a")->"my_merge.merge_cell.arb2function1.buf1._y"+
|
||||||
|
"my_merge.merge_cell.arb2function1.buf1._y"->"my_merge.merge_cell.arb2function1.buf1.y"-
|
||||||
|
~("my_merge.merge_cell.arb2function1.buf1._y")->"my_merge.merge_cell.arb2function1.buf1.y"+
|
||||||
|
= "my_merge.merge_cell.arb2function1.supply.vdd" "my_merge.merge_cell.arb2function1.buf1.vdd"
|
||||||
|
= "my_merge.merge_cell.arb2function1.supply.vss" "my_merge.merge_cell.arb2function1.buf1.vss"
|
||||||
|
= "my_merge.merge_cell.arb2function1.out[0]" "my_merge.merge_cell.arb2function1.out[3]"
|
||||||
|
= "my_merge.merge_cell.arb2function1.out[0]" "my_merge.merge_cell.arb2function1.out[2]"
|
||||||
|
= "my_merge.merge_cell.arb2function1.out[0]" "my_merge.merge_cell.arb2function1.out[1]"
|
||||||
|
= "my_merge.merge_cell.arb2function1.out[0]" "my_merge.merge_cell.arb2function1.buf1.y"
|
||||||
|
= "my_merge.merge_cell.arb2function1.in" "my_merge.merge_cell.arb2function1.buf1.a"
|
||||||
|
"my_merge.merge_cell.AND_arb1.a"&"my_merge.merge_cell.AND_arb1.b"->"my_merge.merge_cell.AND_arb1._y"-
|
||||||
|
~("my_merge.merge_cell.AND_arb1.a"&"my_merge.merge_cell.AND_arb1.b")->"my_merge.merge_cell.AND_arb1._y"+
|
||||||
|
"my_merge.merge_cell.AND_arb1._y"->"my_merge.merge_cell.AND_arb1.y"-
|
||||||
|
~("my_merge.merge_cell.AND_arb1._y")->"my_merge.merge_cell.AND_arb1.y"+
|
||||||
|
= "my_merge.merge_cell._en" "my_merge.merge_cell.en_buffer.in"
|
||||||
|
= "my_merge.merge_cell._en" "my_merge.merge_cell.en_ctl.y"
|
||||||
|
= "my_merge.merge_cell._en" "my_merge.merge_cell.in2ack_ctl.c2"
|
||||||
|
= "my_merge.merge_cell._en" "my_merge.merge_cell.in1ack_ctl.c2"
|
||||||
|
"my_merge.merge_cell.en_buffer.buf1.a"->"my_merge.merge_cell.en_buffer.buf1._y"-
|
||||||
|
~("my_merge.merge_cell.en_buffer.buf1.a")->"my_merge.merge_cell.en_buffer.buf1._y"+
|
||||||
|
"my_merge.merge_cell.en_buffer.buf1._y"->"my_merge.merge_cell.en_buffer.buf1.y"-
|
||||||
|
~("my_merge.merge_cell.en_buffer.buf1._y")->"my_merge.merge_cell.en_buffer.buf1.y"+
|
||||||
|
= "my_merge.merge_cell.en_buffer.supply.vdd" "my_merge.merge_cell.en_buffer.buf1.vdd"
|
||||||
|
= "my_merge.merge_cell.en_buffer.supply.vss" "my_merge.merge_cell.en_buffer.buf1.vss"
|
||||||
|
= "my_merge.merge_cell.en_buffer.out[0]" "my_merge.merge_cell.en_buffer.out[3]"
|
||||||
|
= "my_merge.merge_cell.en_buffer.out[0]" "my_merge.merge_cell.en_buffer.out[2]"
|
||||||
|
= "my_merge.merge_cell.en_buffer.out[0]" "my_merge.merge_cell.en_buffer.out[1]"
|
||||||
|
= "my_merge.merge_cell.en_buffer.out[0]" "my_merge.merge_cell.en_buffer.buf1.y"
|
||||||
|
= "my_merge.merge_cell.en_buffer.in" "my_merge.merge_cell.en_buffer.buf1.a"
|
||||||
|
"my_merge.merge_cell.reset_buf.a"->"my_merge.merge_cell.reset_buf._y"-
|
||||||
|
~("my_merge.merge_cell.reset_buf.a")->"my_merge.merge_cell.reset_buf._y"+
|
||||||
|
"my_merge.merge_cell.reset_buf._y"->"my_merge.merge_cell.reset_buf.y"-
|
||||||
|
~("my_merge.merge_cell.reset_buf._y")->"my_merge.merge_cell.reset_buf.y"+
|
||||||
|
= "my_merge.merge_cell._in1_temp.d.d[0]" "my_merge.merge_cell._in1_temp.r"
|
||||||
|
= "my_merge.merge_cell._in1_temp.r" "my_merge.merge_cell.validity_arb.in1.r"
|
||||||
|
= "my_merge.merge_cell._in1_temp.a" "my_merge.merge_cell.validity_arb.in1.a"
|
||||||
|
= "my_merge.merge_cell._in1_temp.d.d[0]" "my_merge.merge_cell.validity_arb.in1.d.d[0]"
|
||||||
|
= "my_merge.merge_cell._reset_BX" "my_merge.merge_cell.reset_bufarray.in"
|
||||||
|
= "my_merge.merge_cell._reset_BX" "my_merge.merge_cell.reset_buf.y"
|
||||||
|
= "my_merge.merge_cell._reset_BX" "my_merge.merge_cell.in2ack_ctl.sr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BX" "my_merge.merge_cell.in2ack_ctl.pr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BX" "my_merge.merge_cell.in1ack_ctl.sr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BX" "my_merge.merge_cell.in1ack_ctl.pr_B"
|
||||||
|
= "my_merge.merge_cell._in2_a_B" "my_merge.merge_cell.AND_arb1.a"
|
||||||
|
= "my_merge.merge_cell._in2_a_B" "my_merge.merge_cell.in2ack_ctl_inv.y"
|
||||||
|
= "my_merge.merge_cell.reset_B" "my_merge.merge_cell.reset_buf.a"
|
||||||
|
~"my_merge.merge_cell.vc1.myctree.C2Els[0].c1"&~"my_merge.merge_cell.vc1.myctree.C2Els[0].c2"->"my_merge.merge_cell.vc1.myctree.C2Els[0]._y"+
|
||||||
|
"my_merge.merge_cell.vc1.myctree.C2Els[0].c1"&"my_merge.merge_cell.vc1.myctree.C2Els[0].c2"->"my_merge.merge_cell.vc1.myctree.C2Els[0]._y"-
|
||||||
|
"my_merge.merge_cell.vc1.myctree.C2Els[0]._y"->"my_merge.merge_cell.vc1.myctree.C2Els[0].y"-
|
||||||
|
~("my_merge.merge_cell.vc1.myctree.C2Els[0]._y")->"my_merge.merge_cell.vc1.myctree.C2Els[0].y"+
|
||||||
|
= "my_merge.merge_cell.vc1.myctree.supply.vdd" "my_merge.merge_cell.vc1.myctree.C2Els[0].vdd"
|
||||||
|
= "my_merge.merge_cell.vc1.myctree.supply.vss" "my_merge.merge_cell.vc1.myctree.C2Els[0].vss"
|
||||||
|
= "my_merge.merge_cell.vc1.myctree.in[0]" "my_merge.merge_cell.vc1.myctree.C2Els[0].c1"
|
||||||
|
= "my_merge.merge_cell.vc1.myctree.in[0]" "my_merge.merge_cell.vc1.myctree.tmp[0]"
|
||||||
|
= "my_merge.merge_cell.vc1.myctree.in[1]" "my_merge.merge_cell.vc1.myctree.C2Els[0].c2"
|
||||||
|
= "my_merge.merge_cell.vc1.myctree.in[1]" "my_merge.merge_cell.vc1.myctree.tmp[1]"
|
||||||
|
= "my_merge.merge_cell.vc1.myctree.out" "my_merge.merge_cell.vc1.myctree.C2Els[0].y"
|
||||||
|
= "my_merge.merge_cell.vc1.myctree.out" "my_merge.merge_cell.vc1.myctree.tmp[2]"
|
||||||
|
"my_merge.merge_cell.vc1.OR2_tf[0].a"|"my_merge.merge_cell.vc1.OR2_tf[0].b"->"my_merge.merge_cell.vc1.OR2_tf[0]._y"-
|
||||||
|
~("my_merge.merge_cell.vc1.OR2_tf[0].a"|"my_merge.merge_cell.vc1.OR2_tf[0].b")->"my_merge.merge_cell.vc1.OR2_tf[0]._y"+
|
||||||
|
"my_merge.merge_cell.vc1.OR2_tf[0]._y"->"my_merge.merge_cell.vc1.OR2_tf[0].y"-
|
||||||
|
~("my_merge.merge_cell.vc1.OR2_tf[0]._y")->"my_merge.merge_cell.vc1.OR2_tf[0].y"+
|
||||||
|
"my_merge.merge_cell.vc1.OR2_tf[1].a"|"my_merge.merge_cell.vc1.OR2_tf[1].b"->"my_merge.merge_cell.vc1.OR2_tf[1]._y"-
|
||||||
|
~("my_merge.merge_cell.vc1.OR2_tf[1].a"|"my_merge.merge_cell.vc1.OR2_tf[1].b")->"my_merge.merge_cell.vc1.OR2_tf[1]._y"+
|
||||||
|
"my_merge.merge_cell.vc1.OR2_tf[1]._y"->"my_merge.merge_cell.vc1.OR2_tf[1].y"-
|
||||||
|
~("my_merge.merge_cell.vc1.OR2_tf[1]._y")->"my_merge.merge_cell.vc1.OR2_tf[1].y"+
|
||||||
|
= "my_merge.merge_cell.vc1.OR2_tf[1].y" "my_merge.merge_cell.vc1.myctree.in[1]"
|
||||||
|
= "my_merge.merge_cell.vc1.OR2_tf[0].y" "my_merge.merge_cell.vc1.myctree.in[0]"
|
||||||
|
= "my_merge.merge_cell.vc1.supply.vss" "my_merge.merge_cell.vc1.myctree.supply.vss"
|
||||||
|
= "my_merge.merge_cell.vc1.supply.vdd" "my_merge.merge_cell.vc1.myctree.supply.vdd"
|
||||||
|
= "my_merge.merge_cell.vc1.supply.vdd" "my_merge.merge_cell.vc1.OR2_tf[1].vdd"
|
||||||
|
= "my_merge.merge_cell.vc1.supply.vdd" "my_merge.merge_cell.vc1.OR2_tf[0].vdd"
|
||||||
|
= "my_merge.merge_cell.vc1.supply.vss" "my_merge.merge_cell.vc1.OR2_tf[1].vss"
|
||||||
|
= "my_merge.merge_cell.vc1.supply.vss" "my_merge.merge_cell.vc1.OR2_tf[0].vss"
|
||||||
|
= "my_merge.merge_cell.vc1.out" "my_merge.merge_cell.vc1.myctree.out"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[0].d[0]" "my_merge.merge_cell.vc1.in.d[0].f"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[0].d[1]" "my_merge.merge_cell.vc1.in.d[0].t"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[1].d[0]" "my_merge.merge_cell.vc1.in.d[1].f"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[1].d[1]" "my_merge.merge_cell.vc1.in.d[1].t"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[1].d[0]" "my_merge.merge_cell.vc1.in.d[1].f"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[1].d[1]" "my_merge.merge_cell.vc1.in.d[1].t"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[0].d[0]" "my_merge.merge_cell.vc1.in.d[0].f"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[0].d[1]" "my_merge.merge_cell.vc1.in.d[0].t"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[1].d[0]" "my_merge.merge_cell.vc1.OR2_tf[1].b"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[1].d[0]" "my_merge.merge_cell.vc1.in.d[1].f"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[1].d[1]" "my_merge.merge_cell.vc1.OR2_tf[1].a"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[1].d[1]" "my_merge.merge_cell.vc1.in.d[1].t"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[0].d[0]" "my_merge.merge_cell.vc1.OR2_tf[0].b"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[0].d[0]" "my_merge.merge_cell.vc1.in.d[0].f"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[0].d[1]" "my_merge.merge_cell.vc1.OR2_tf[0].a"
|
||||||
|
= "my_merge.merge_cell.vc1.in.d[0].d[1]" "my_merge.merge_cell.vc1.in.d[0].t"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell.reset_bufarray.out[0]"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[1]" "my_merge.merge_cell.reset_bufarray.out[1]"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[2]" "my_merge.merge_cell.reset_bufarray.out[2]"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[3]" "my_merge.merge_cell.reset_bufarray.out[3]"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell.merge_func_f[1].sr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell.merge_func_f[1].pr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell.merge_func_t[1].sr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell.merge_func_t[1].pr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell.merge_func_f[0].sr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell.merge_func_f[0].pr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell.merge_func_t[0].sr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell.merge_func_t[0].pr_B"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell._reset_BXX[3]"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell._reset_BXX[2]"
|
||||||
|
= "my_merge.merge_cell._reset_BXX[0]" "my_merge.merge_cell._reset_BXX[1]"
|
||||||
|
"my_merge.merge_cell.in1ack_ctl_inv.a"->"my_merge.merge_cell.in1ack_ctl_inv.y"-
|
||||||
|
~("my_merge.merge_cell.in1ack_ctl_inv.a")->"my_merge.merge_cell.in1ack_ctl_inv.y"+
|
||||||
|
= "my_merge.merge_cell._in1_arb_temp" "my_merge.merge_cell.AND_arb1.b"
|
||||||
|
= "my_merge.merge_cell._in1_arb_temp" "my_merge.merge_cell._in1_temp.a"
|
||||||
|
~"my_merge.merge_cell.merge_func_t[0].c1"&~"my_merge.merge_cell.merge_func_t[0].c2"|~"my_merge.merge_cell.merge_func_t[0].pr_B"->"my_merge.merge_cell.merge_func_t[0]._y"+
|
||||||
|
"my_merge.merge_cell.merge_func_t[0].c1"&"my_merge.merge_cell.merge_func_t[0].c2"&("my_merge.merge_cell.merge_func_t[0].n1"&"my_merge.merge_cell.merge_func_t[0].n2"|"my_merge.merge_cell.merge_func_t[0].n3"&"my_merge.merge_cell.merge_func_t[0].n4")&"my_merge.merge_cell.merge_func_t[0].sr_B"->"my_merge.merge_cell.merge_func_t[0]._y"-
|
||||||
|
"my_merge.merge_cell.merge_func_t[0]._y"->"my_merge.merge_cell.merge_func_t[0].y"-
|
||||||
|
~("my_merge.merge_cell.merge_func_t[0]._y")->"my_merge.merge_cell.merge_func_t[0].y"+
|
||||||
|
~"my_merge.merge_cell.merge_func_t[1].c1"&~"my_merge.merge_cell.merge_func_t[1].c2"|~"my_merge.merge_cell.merge_func_t[1].pr_B"->"my_merge.merge_cell.merge_func_t[1]._y"+
|
||||||
|
"my_merge.merge_cell.merge_func_t[1].c1"&"my_merge.merge_cell.merge_func_t[1].c2"&("my_merge.merge_cell.merge_func_t[1].n1"&"my_merge.merge_cell.merge_func_t[1].n2"|"my_merge.merge_cell.merge_func_t[1].n3"&"my_merge.merge_cell.merge_func_t[1].n4")&"my_merge.merge_cell.merge_func_t[1].sr_B"->"my_merge.merge_cell.merge_func_t[1]._y"-
|
||||||
|
"my_merge.merge_cell.merge_func_t[1]._y"->"my_merge.merge_cell.merge_func_t[1].y"-
|
||||||
|
~("my_merge.merge_cell.merge_func_t[1]._y")->"my_merge.merge_cell.merge_func_t[1].y"+
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[0]" "my_merge.merge_cell.in2.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[1]" "my_merge.merge_cell.in2.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[0]" "my_merge.merge_cell.in2.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[1]" "my_merge.merge_cell.in2.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[0]" "my_merge.merge_cell.in2.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[1]" "my_merge.merge_cell.in2.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[0]" "my_merge.merge_cell.in2.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[1]" "my_merge.merge_cell.in2.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[0]" "my_merge.merge_cell.in2.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[1]" "my_merge.merge_cell.in2.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[0]" "my_merge.merge_cell.in2.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[1]" "my_merge.merge_cell.in2.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].f" "my_merge.merge_cell.vc2.in.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].t" "my_merge.merge_cell.vc2.in.d[0].t"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[0]" "my_merge.merge_cell.vc2.in.d[0].d[0]"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[1]" "my_merge.merge_cell.vc2.in.d[0].d[1]"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].f" "my_merge.merge_cell.vc2.in.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].t" "my_merge.merge_cell.vc2.in.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[0]" "my_merge.merge_cell.vc2.in.d[1].d[0]"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[1]" "my_merge.merge_cell.vc2.in.d[1].d[1]"
|
||||||
|
= "my_merge.merge_cell.in2.a" "my_merge.merge_cell.in2ack_ctl_inv.a"
|
||||||
|
= "my_merge.merge_cell.in2.a" "my_merge.merge_cell.en_ctl.n2"
|
||||||
|
= "my_merge.merge_cell.in2.a" "my_merge.merge_cell.en_ctl.p2"
|
||||||
|
= "my_merge.merge_cell.in2.a" "my_merge.merge_cell.in2ack_ctl.y"
|
||||||
|
= "my_merge.merge_cell.in2.v" "my_merge.merge_cell._in2_temp.r"
|
||||||
|
= "my_merge.merge_cell.in2.v" "my_merge.merge_cell._in2_temp.d.d[0]"
|
||||||
|
= "my_merge.merge_cell.in2.v" "my_merge.merge_cell.vc2.out"
|
||||||
|
= "my_merge.merge_cell.in2.v" "my_merge.merge_cell.in2ack_ctl.c3"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[0]" "my_merge.merge_cell.merge_func_f[1].n4"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[0]" "my_merge.merge_cell.in2.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[1]" "my_merge.merge_cell.merge_func_t[1].n4"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[1].d[1]" "my_merge.merge_cell.in2.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[0]" "my_merge.merge_cell.merge_func_f[0].n4"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[0]" "my_merge.merge_cell.in2.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[1]" "my_merge.merge_cell.merge_func_t[0].n4"
|
||||||
|
= "my_merge.merge_cell.in2.d.d[0].d[1]" "my_merge.merge_cell.in2.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.arb2function2.supply.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.arb2function2.supply.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.arb2function1.supply.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.arb2function1.supply.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.validity_arb.supply.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.validity_arb.supply.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.vc2.supply.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.vc2.supply.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.vc1.supply.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.vc1.supply.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.en_buffer.supply.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.en_buffer.supply.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.out_a_buffer.supply.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.out_a_buffer.supply.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.merge_func_f[1].vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.merge_func_t[1].vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.merge_func_f[0].vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.merge_func_t[0].vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.reset_buf.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.in2ack_ctl_inv.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.in1ack_ctl_inv.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.en_ctl.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.in2ack_ctl.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vdd" "my_merge.merge_cell.in1ack_ctl.vdd"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.merge_func_f[1].vss"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.merge_func_t[1].vss"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.merge_func_f[0].vss"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.merge_func_t[0].vss"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.reset_buf.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.in2ack_ctl_inv.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.in1ack_ctl_inv.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.en_ctl.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.in2ack_ctl.vss"
|
||||||
|
= "my_merge.merge_cell.supply.vss" "my_merge.merge_cell.in1ack_ctl.vss"
|
||||||
|
= "my_merge.merge_cell._in2_temp.d.d[0]" "my_merge.merge_cell._in2_temp.r"
|
||||||
|
= "my_merge.merge_cell._in2_temp.r" "my_merge.merge_cell.validity_arb.in2.r"
|
||||||
|
= "my_merge.merge_cell._in2_temp.a" "my_merge.merge_cell.validity_arb.in2.a"
|
||||||
|
= "my_merge.merge_cell._in2_temp.d.d[0]" "my_merge.merge_cell.validity_arb.in2.d.d[0]"
|
||||||
|
~"my_merge.merge_cell.in1ack_ctl.c1"&~"my_merge.merge_cell.in1ack_ctl.c2"&~"my_merge.merge_cell.in1ack_ctl.c3"&~"my_merge.merge_cell.in1ack_ctl.c4"|~"my_merge.merge_cell.in1ack_ctl.pr_B"->"my_merge.merge_cell.in1ack_ctl._y"+
|
||||||
|
"my_merge.merge_cell.in1ack_ctl.c1"&"my_merge.merge_cell.in1ack_ctl.c2"&"my_merge.merge_cell.in1ack_ctl.c3"&"my_merge.merge_cell.in1ack_ctl.c4"&"my_merge.merge_cell.in1ack_ctl.sr_B"->"my_merge.merge_cell.in1ack_ctl._y"-
|
||||||
|
"my_merge.merge_cell.in1ack_ctl._y"->"my_merge.merge_cell.in1ack_ctl.y"-
|
||||||
|
~("my_merge.merge_cell.in1ack_ctl._y")->"my_merge.merge_cell.in1ack_ctl.y"+
|
||||||
|
~"my_merge.merge_cell.en_ctl.p1"&~"my_merge.merge_cell.en_ctl.p2"&~"my_merge.merge_cell.en_ctl.p3"&~"my_merge.merge_cell.en_ctl.p4"->"my_merge.merge_cell.en_ctl.y"+
|
||||||
|
"my_merge.merge_cell.en_ctl.n1"|"my_merge.merge_cell.en_ctl.n2"->"my_merge.merge_cell.en_ctl.y"-
|
||||||
|
"my_merge.merge_cell.out_a_buffer.buf1.a"->"my_merge.merge_cell.out_a_buffer.buf1._y"-
|
||||||
|
~("my_merge.merge_cell.out_a_buffer.buf1.a")->"my_merge.merge_cell.out_a_buffer.buf1._y"+
|
||||||
|
"my_merge.merge_cell.out_a_buffer.buf1._y"->"my_merge.merge_cell.out_a_buffer.buf1.y"-
|
||||||
|
~("my_merge.merge_cell.out_a_buffer.buf1._y")->"my_merge.merge_cell.out_a_buffer.buf1.y"+
|
||||||
|
= "my_merge.merge_cell.out_a_buffer.supply.vdd" "my_merge.merge_cell.out_a_buffer.buf1.vdd"
|
||||||
|
= "my_merge.merge_cell.out_a_buffer.supply.vss" "my_merge.merge_cell.out_a_buffer.buf1.vss"
|
||||||
|
= "my_merge.merge_cell.out_a_buffer.out[0]" "my_merge.merge_cell.out_a_buffer.out[3]"
|
||||||
|
= "my_merge.merge_cell.out_a_buffer.out[0]" "my_merge.merge_cell.out_a_buffer.out[2]"
|
||||||
|
= "my_merge.merge_cell.out_a_buffer.out[0]" "my_merge.merge_cell.out_a_buffer.out[1]"
|
||||||
|
= "my_merge.merge_cell.out_a_buffer.out[0]" "my_merge.merge_cell.out_a_buffer.buf1.y"
|
||||||
|
= "my_merge.merge_cell.out_a_buffer.in" "my_merge.merge_cell.out_a_buffer.buf1.a"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[0]" "my_merge.merge_cell.out.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[1]" "my_merge.merge_cell.out.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[0]" "my_merge.merge_cell.out.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[1]" "my_merge.merge_cell.out.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[0]" "my_merge.merge_cell.out.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[1]" "my_merge.merge_cell.out.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[0]" "my_merge.merge_cell.out.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[1]" "my_merge.merge_cell.out.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[0]" "my_merge.merge_cell.out.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[1]" "my_merge.merge_cell.out.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[0]" "my_merge.merge_cell.out.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[1]" "my_merge.merge_cell.out.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell.out.a" "my_merge.merge_cell.en_ctl.p3"
|
||||||
|
= "my_merge.merge_cell.out.a" "my_merge.merge_cell.out_a_inverter.a"
|
||||||
|
= "my_merge.merge_cell.out.v" "my_merge.merge_cell.en_ctl.p4"
|
||||||
|
= "my_merge.merge_cell.out.v" "my_merge.merge_cell.in2ack_ctl.c4"
|
||||||
|
= "my_merge.merge_cell.out.v" "my_merge.merge_cell.in1ack_ctl.c4"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[0]" "my_merge.merge_cell.merge_func_f[1].y"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[0]" "my_merge.merge_cell.out.d.d[1].f"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[1]" "my_merge.merge_cell.merge_func_t[1].y"
|
||||||
|
= "my_merge.merge_cell.out.d.d[1].d[1]" "my_merge.merge_cell.out.d.d[1].t"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[0]" "my_merge.merge_cell.merge_func_f[0].y"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[0]" "my_merge.merge_cell.out.d.d[0].f"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[1]" "my_merge.merge_cell.merge_func_t[0].y"
|
||||||
|
= "my_merge.merge_cell.out.d.d[0].d[1]" "my_merge.merge_cell.out.d.d[0].t"
|
||||||
|
= "my_merge.merge_cell._in2_arb_temp" "my_merge.merge_cell.AND_arb2.b"
|
||||||
|
= "my_merge.merge_cell._in2_arb_temp" "my_merge.merge_cell._in2_temp.a"
|
||||||
|
= "my_merge.merge_cell._in1_a_B" "my_merge.merge_cell.AND_arb2.a"
|
||||||
|
= "my_merge.merge_cell._in1_a_B" "my_merge.merge_cell.in1ack_ctl_inv.y"
|
||||||
|
= "my_merge.merge_cell.validity_arb.in1.d.d[0]" "my_merge.merge_cell.validity_arb.in1.r"
|
||||||
|
= "my_merge.merge_cell.validity_arb.in1.a" "my_merge.merge_cell.validity_arb.arbiter.d"
|
||||||
|
= "my_merge.merge_cell.validity_arb.in1.a" "my_merge.merge_cell.validity_arb.ack_cell1.y"
|
||||||
|
= "my_merge.merge_cell.validity_arb.in1.d.d[0]" "my_merge.merge_cell.validity_arb.arbiter.a"
|
||||||
|
= "my_merge.merge_cell.validity_arb.in1.d.d[0]" "my_merge.merge_cell.validity_arb.in1.r"
|
||||||
|
~"my_merge.merge_cell.validity_arb.ack_cell1.c1"&~"my_merge.merge_cell.validity_arb.ack_cell1.c2"->"my_merge.merge_cell.validity_arb.ack_cell1._y"+
|
||||||
|
"my_merge.merge_cell.validity_arb.ack_cell1.c1"&"my_merge.merge_cell.validity_arb.ack_cell1.c2"->"my_merge.merge_cell.validity_arb.ack_cell1._y"-
|
||||||
|
"my_merge.merge_cell.validity_arb.ack_cell1._y"->"my_merge.merge_cell.validity_arb.ack_cell1.y"-
|
||||||
|
~("my_merge.merge_cell.validity_arb.ack_cell1._y")->"my_merge.merge_cell.validity_arb.ack_cell1.y"+
|
||||||
|
= "my_merge.merge_cell.validity_arb.in2.d.d[0]" "my_merge.merge_cell.validity_arb.in2.r"
|
||||||
|
= "my_merge.merge_cell.validity_arb.in2.a" "my_merge.merge_cell.validity_arb.arbiter.c"
|
||||||
|
= "my_merge.merge_cell.validity_arb.in2.a" "my_merge.merge_cell.validity_arb.ack_cell2.y"
|
||||||
|
= "my_merge.merge_cell.validity_arb.in2.d.d[0]" "my_merge.merge_cell.validity_arb.arbiter.b"
|
||||||
|
= "my_merge.merge_cell.validity_arb.in2.d.d[0]" "my_merge.merge_cell.validity_arb.in2.r"
|
||||||
|
= "my_merge.merge_cell.validity_arb.supply.vdd" "my_merge.merge_cell.validity_arb.arbiter.vdd"
|
||||||
|
= "my_merge.merge_cell.validity_arb.supply.vdd" "my_merge.merge_cell.validity_arb.or_cell.vdd"
|
||||||
|
= "my_merge.merge_cell.validity_arb.supply.vdd" "my_merge.merge_cell.validity_arb.ack_cell2.vdd"
|
||||||
|
= "my_merge.merge_cell.validity_arb.supply.vdd" "my_merge.merge_cell.validity_arb.ack_cell1.vdd"
|
||||||
|
= "my_merge.merge_cell.validity_arb.supply.vss" "my_merge.merge_cell.validity_arb.arbiter.vss"
|
||||||
|
= "my_merge.merge_cell.validity_arb.supply.vss" "my_merge.merge_cell.validity_arb.or_cell.vss"
|
||||||
|
= "my_merge.merge_cell.validity_arb.supply.vss" "my_merge.merge_cell.validity_arb.ack_cell2.vss"
|
||||||
|
= "my_merge.merge_cell.validity_arb.supply.vss" "my_merge.merge_cell.validity_arb.ack_cell1.vss"
|
||||||
|
"my_merge.merge_cell.validity_arb.arbiter.a"&"my_merge.merge_cell.validity_arb.arbiter._y2"->"my_merge.merge_cell.validity_arb.arbiter._y1"-
|
||||||
|
~"my_merge.merge_cell.validity_arb.arbiter.a"|~"my_merge.merge_cell.validity_arb.arbiter._y2"->"my_merge.merge_cell.validity_arb.arbiter._y1"+
|
||||||
|
"my_merge.merge_cell.validity_arb.arbiter.b"&"my_merge.merge_cell.validity_arb.arbiter._y1"->"my_merge.merge_cell.validity_arb.arbiter._y2"-
|
||||||
|
~"my_merge.merge_cell.validity_arb.arbiter.b"|~"my_merge.merge_cell.validity_arb.arbiter._y1"->"my_merge.merge_cell.validity_arb.arbiter._y2"+
|
||||||
|
"my_merge.merge_cell.validity_arb.arbiter._y1"|"my_merge.merge_cell.validity_arb.arbiter.c"->"my_merge.merge_cell.validity_arb.arbiter.y1"-
|
||||||
|
~("my_merge.merge_cell.validity_arb.arbiter._y1"|"my_merge.merge_cell.validity_arb.arbiter.c")->"my_merge.merge_cell.validity_arb.arbiter.y1"+
|
||||||
|
"my_merge.merge_cell.validity_arb.arbiter._y2"|"my_merge.merge_cell.validity_arb.arbiter.d"->"my_merge.merge_cell.validity_arb.arbiter.y2"-
|
||||||
|
~("my_merge.merge_cell.validity_arb.arbiter._y2"|"my_merge.merge_cell.validity_arb.arbiter.d")->"my_merge.merge_cell.validity_arb.arbiter.y2"+
|
||||||
|
mk_excllo("my_merge.merge_cell.validity_arb.arbiter._y1","my_merge.merge_cell.validity_arb.arbiter._y2")
|
||||||
|
= "my_merge.merge_cell.validity_arb._y1_arb" "my_merge.merge_cell.validity_arb.arbiter.y1"
|
||||||
|
= "my_merge.merge_cell.validity_arb._y1_arb" "my_merge.merge_cell.validity_arb.or_cell.a"
|
||||||
|
= "my_merge.merge_cell.validity_arb._y1_arb" "my_merge.merge_cell.validity_arb.ack_cell1.c2"
|
||||||
|
~"my_merge.merge_cell.validity_arb.ack_cell2.c1"&~"my_merge.merge_cell.validity_arb.ack_cell2.c2"->"my_merge.merge_cell.validity_arb.ack_cell2._y"+
|
||||||
|
"my_merge.merge_cell.validity_arb.ack_cell2.c1"&"my_merge.merge_cell.validity_arb.ack_cell2.c2"->"my_merge.merge_cell.validity_arb.ack_cell2._y"-
|
||||||
|
"my_merge.merge_cell.validity_arb.ack_cell2._y"->"my_merge.merge_cell.validity_arb.ack_cell2.y"-
|
||||||
|
~("my_merge.merge_cell.validity_arb.ack_cell2._y")->"my_merge.merge_cell.validity_arb.ack_cell2.y"+
|
||||||
|
"my_merge.merge_cell.validity_arb.or_cell.a"|"my_merge.merge_cell.validity_arb.or_cell.b"->"my_merge.merge_cell.validity_arb.or_cell._y"-
|
||||||
|
~("my_merge.merge_cell.validity_arb.or_cell.a"|"my_merge.merge_cell.validity_arb.or_cell.b")->"my_merge.merge_cell.validity_arb.or_cell._y"+
|
||||||
|
"my_merge.merge_cell.validity_arb.or_cell._y"->"my_merge.merge_cell.validity_arb.or_cell.y"-
|
||||||
|
~("my_merge.merge_cell.validity_arb.or_cell._y")->"my_merge.merge_cell.validity_arb.or_cell.y"+
|
||||||
|
= "my_merge.merge_cell.validity_arb.out.d.d[0]" "my_merge.merge_cell.validity_arb.out.r"
|
||||||
|
= "my_merge.merge_cell.validity_arb.out.a" "my_merge.merge_cell.validity_arb.ack_cell2.c1"
|
||||||
|
= "my_merge.merge_cell.validity_arb.out.a" "my_merge.merge_cell.validity_arb.ack_cell1.c1"
|
||||||
|
= "my_merge.merge_cell.validity_arb.out.d.d[0]" "my_merge.merge_cell.validity_arb.or_cell.y"
|
||||||
|
= "my_merge.merge_cell.validity_arb.out.d.d[0]" "my_merge.merge_cell.validity_arb.out.r"
|
||||||
|
= "my_merge.merge_cell.validity_arb._y2_arb" "my_merge.merge_cell.validity_arb.arbiter.y2"
|
||||||
|
= "my_merge.merge_cell.validity_arb._y2_arb" "my_merge.merge_cell.validity_arb.or_cell.b"
|
||||||
|
= "my_merge.merge_cell.validity_arb._y2_arb" "my_merge.merge_cell.validity_arb.ack_cell2.c2"
|
||||||
|
"my_merge.merge_cell.out_a_inverter.a"->"my_merge.merge_cell.out_a_inverter.y"-
|
||||||
|
~("my_merge.merge_cell.out_a_inverter.a")->"my_merge.merge_cell.out_a_inverter.y"+
|
||||||
|
= "my_merge.merge_cell._in1_arb" "my_merge.merge_cell.arb2function1.in"
|
||||||
|
= "my_merge.merge_cell._in1_arb" "my_merge.merge_cell.AND_arb1.y"
|
||||||
|
= "my_merge.merge_cell._in1_arb" "my_merge.merge_cell.in1ack_ctl.c1"
|
||||||
|
= "my_merge.merge_cell._out_a_B" "my_merge.merge_cell.out_a_buffer.in"
|
||||||
|
= "my_merge.merge_cell._out_a_B" "my_merge.merge_cell.out_a_inverter.y"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[0]" "my_merge.merge_cell.out_a_buffer.out[0]"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[1]" "my_merge.merge_cell.out_a_buffer.out[1]"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[2]" "my_merge.merge_cell.out_a_buffer.out[2]"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[3]" "my_merge.merge_cell.out_a_buffer.out[3]"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[0]" "my_merge.merge_cell.merge_func_f[1].c2"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[0]" "my_merge.merge_cell.merge_func_t[1].c2"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[0]" "my_merge.merge_cell.merge_func_f[0].c2"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[0]" "my_merge.merge_cell.merge_func_t[0].c2"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[0]" "my_merge.merge_cell._out_a_BX[3]"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[0]" "my_merge.merge_cell._out_a_BX[2]"
|
||||||
|
= "my_merge.merge_cell._out_a_BX[0]" "my_merge.merge_cell._out_a_BX[1]"
|
||||||
|
~"my_merge.merge_cell.vc2.myctree.C2Els[0].c1"&~"my_merge.merge_cell.vc2.myctree.C2Els[0].c2"->"my_merge.merge_cell.vc2.myctree.C2Els[0]._y"+
|
||||||
|
"my_merge.merge_cell.vc2.myctree.C2Els[0].c1"&"my_merge.merge_cell.vc2.myctree.C2Els[0].c2"->"my_merge.merge_cell.vc2.myctree.C2Els[0]._y"-
|
||||||
|
"my_merge.merge_cell.vc2.myctree.C2Els[0]._y"->"my_merge.merge_cell.vc2.myctree.C2Els[0].y"-
|
||||||
|
~("my_merge.merge_cell.vc2.myctree.C2Els[0]._y")->"my_merge.merge_cell.vc2.myctree.C2Els[0].y"+
|
||||||
|
= "my_merge.merge_cell.vc2.myctree.supply.vdd" "my_merge.merge_cell.vc2.myctree.C2Els[0].vdd"
|
||||||
|
= "my_merge.merge_cell.vc2.myctree.supply.vss" "my_merge.merge_cell.vc2.myctree.C2Els[0].vss"
|
||||||
|
= "my_merge.merge_cell.vc2.myctree.in[0]" "my_merge.merge_cell.vc2.myctree.C2Els[0].c1"
|
||||||
|
= "my_merge.merge_cell.vc2.myctree.in[0]" "my_merge.merge_cell.vc2.myctree.tmp[0]"
|
||||||
|
= "my_merge.merge_cell.vc2.myctree.in[1]" "my_merge.merge_cell.vc2.myctree.C2Els[0].c2"
|
||||||
|
= "my_merge.merge_cell.vc2.myctree.in[1]" "my_merge.merge_cell.vc2.myctree.tmp[1]"
|
||||||
|
= "my_merge.merge_cell.vc2.myctree.out" "my_merge.merge_cell.vc2.myctree.C2Els[0].y"
|
||||||
|
= "my_merge.merge_cell.vc2.myctree.out" "my_merge.merge_cell.vc2.myctree.tmp[2]"
|
||||||
|
"my_merge.merge_cell.vc2.OR2_tf[0].a"|"my_merge.merge_cell.vc2.OR2_tf[0].b"->"my_merge.merge_cell.vc2.OR2_tf[0]._y"-
|
||||||
|
~("my_merge.merge_cell.vc2.OR2_tf[0].a"|"my_merge.merge_cell.vc2.OR2_tf[0].b")->"my_merge.merge_cell.vc2.OR2_tf[0]._y"+
|
||||||
|
"my_merge.merge_cell.vc2.OR2_tf[0]._y"->"my_merge.merge_cell.vc2.OR2_tf[0].y"-
|
||||||
|
~("my_merge.merge_cell.vc2.OR2_tf[0]._y")->"my_merge.merge_cell.vc2.OR2_tf[0].y"+
|
||||||
|
"my_merge.merge_cell.vc2.OR2_tf[1].a"|"my_merge.merge_cell.vc2.OR2_tf[1].b"->"my_merge.merge_cell.vc2.OR2_tf[1]._y"-
|
||||||
|
~("my_merge.merge_cell.vc2.OR2_tf[1].a"|"my_merge.merge_cell.vc2.OR2_tf[1].b")->"my_merge.merge_cell.vc2.OR2_tf[1]._y"+
|
||||||
|
"my_merge.merge_cell.vc2.OR2_tf[1]._y"->"my_merge.merge_cell.vc2.OR2_tf[1].y"-
|
||||||
|
~("my_merge.merge_cell.vc2.OR2_tf[1]._y")->"my_merge.merge_cell.vc2.OR2_tf[1].y"+
|
||||||
|
= "my_merge.merge_cell.vc2.OR2_tf[1].y" "my_merge.merge_cell.vc2.myctree.in[1]"
|
||||||
|
= "my_merge.merge_cell.vc2.OR2_tf[0].y" "my_merge.merge_cell.vc2.myctree.in[0]"
|
||||||
|
= "my_merge.merge_cell.vc2.supply.vss" "my_merge.merge_cell.vc2.myctree.supply.vss"
|
||||||
|
= "my_merge.merge_cell.vc2.supply.vdd" "my_merge.merge_cell.vc2.myctree.supply.vdd"
|
||||||
|
= "my_merge.merge_cell.vc2.supply.vdd" "my_merge.merge_cell.vc2.OR2_tf[1].vdd"
|
||||||
|
= "my_merge.merge_cell.vc2.supply.vdd" "my_merge.merge_cell.vc2.OR2_tf[0].vdd"
|
||||||
|
= "my_merge.merge_cell.vc2.supply.vss" "my_merge.merge_cell.vc2.OR2_tf[1].vss"
|
||||||
|
= "my_merge.merge_cell.vc2.supply.vss" "my_merge.merge_cell.vc2.OR2_tf[0].vss"
|
||||||
|
= "my_merge.merge_cell.vc2.out" "my_merge.merge_cell.vc2.myctree.out"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[0].d[0]" "my_merge.merge_cell.vc2.in.d[0].f"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[0].d[1]" "my_merge.merge_cell.vc2.in.d[0].t"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[1].d[0]" "my_merge.merge_cell.vc2.in.d[1].f"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[1].d[1]" "my_merge.merge_cell.vc2.in.d[1].t"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[1].d[0]" "my_merge.merge_cell.vc2.in.d[1].f"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[1].d[1]" "my_merge.merge_cell.vc2.in.d[1].t"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[0].d[0]" "my_merge.merge_cell.vc2.in.d[0].f"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[0].d[1]" "my_merge.merge_cell.vc2.in.d[0].t"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[1].d[0]" "my_merge.merge_cell.vc2.OR2_tf[1].b"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[1].d[0]" "my_merge.merge_cell.vc2.in.d[1].f"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[1].d[1]" "my_merge.merge_cell.vc2.OR2_tf[1].a"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[1].d[1]" "my_merge.merge_cell.vc2.in.d[1].t"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[0].d[0]" "my_merge.merge_cell.vc2.OR2_tf[0].b"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[0].d[0]" "my_merge.merge_cell.vc2.in.d[0].f"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[0].d[1]" "my_merge.merge_cell.vc2.OR2_tf[0].a"
|
||||||
|
= "my_merge.merge_cell.vc2.in.d[0].d[1]" "my_merge.merge_cell.vc2.in.d[0].t"
|
||||||
|
= "my_merge.merge_cell._in2_arb" "my_merge.merge_cell.arb2function2.in"
|
||||||
|
= "my_merge.merge_cell._in2_arb" "my_merge.merge_cell.AND_arb2.y"
|
||||||
|
= "my_merge.merge_cell._in2_arb" "my_merge.merge_cell.in2ack_ctl.c1"
|
||||||
|
~"my_merge.merge_cell.in2ack_ctl.c1"&~"my_merge.merge_cell.in2ack_ctl.c2"&~"my_merge.merge_cell.in2ack_ctl.c3"&~"my_merge.merge_cell.in2ack_ctl.c4"|~"my_merge.merge_cell.in2ack_ctl.pr_B"->"my_merge.merge_cell.in2ack_ctl._y"+
|
||||||
|
"my_merge.merge_cell.in2ack_ctl.c1"&"my_merge.merge_cell.in2ack_ctl.c2"&"my_merge.merge_cell.in2ack_ctl.c3"&"my_merge.merge_cell.in2ack_ctl.c4"&"my_merge.merge_cell.in2ack_ctl.sr_B"->"my_merge.merge_cell.in2ack_ctl._y"-
|
||||||
|
"my_merge.merge_cell.in2ack_ctl._y"->"my_merge.merge_cell.in2ack_ctl.y"-
|
||||||
|
~("my_merge.merge_cell.in2ack_ctl._y")->"my_merge.merge_cell.in2ack_ctl.y"+
|
||||||
|
"my_merge.merge_cell.in2ack_ctl_inv.a"->"my_merge.merge_cell.in2ack_ctl_inv.y"-
|
||||||
|
~("my_merge.merge_cell.in2ack_ctl_inv.a")->"my_merge.merge_cell.in2ack_ctl_inv.y"+
|
||||||
|
= "Vdd" "my_merge.merge_cell.supply.vdd"
|
||||||
|
= "GND" "my_merge.merge_cell.supply.vss"
|
||||||
|
= "my_merge.out.d.d[0].d[0]" "my_merge.out.d.d[0].f"
|
||||||
|
= "my_merge.out.d.d[0].d[1]" "my_merge.out.d.d[0].t"
|
||||||
|
= "my_merge.out.d.d[1].d[0]" "my_merge.out.d.d[1].f"
|
||||||
|
= "my_merge.out.d.d[1].d[1]" "my_merge.out.d.d[1].t"
|
||||||
|
= "my_merge.out.d.d[1].d[0]" "my_merge.out.d.d[1].f"
|
||||||
|
= "my_merge.out.d.d[1].d[1]" "my_merge.out.d.d[1].t"
|
||||||
|
= "my_merge.out.d.d[0].d[0]" "my_merge.out.d.d[0].f"
|
||||||
|
= "my_merge.out.d.d[0].d[1]" "my_merge.out.d.d[0].t"
|
||||||
|
= "my_merge.out.d.d[1].d[0]" "my_merge.out.d.d[1].f"
|
||||||
|
= "my_merge.out.d.d[1].d[1]" "my_merge.out.d.d[1].t"
|
||||||
|
= "my_merge.out.d.d[0].d[0]" "my_merge.out.d.d[0].f"
|
||||||
|
= "my_merge.out.d.d[0].d[1]" "my_merge.out.d.d[0].t"
|
||||||
|
= "my_merge.out.v" "my_merge.merge_cell.out.v"
|
||||||
|
= "my_merge.out.a" "my_merge.merge_cell.out.a"
|
||||||
|
= "my_merge.out.d.d[0].f" "my_merge.merge_cell.out.d.d[0].f"
|
||||||
|
= "my_merge.out.d.d[0].t" "my_merge.merge_cell.out.d.d[0].t"
|
||||||
|
= "my_merge.out.d.d[0].d[0]" "my_merge.merge_cell.out.d.d[0].d[0]"
|
||||||
|
= "my_merge.out.d.d[0].d[1]" "my_merge.merge_cell.out.d.d[0].d[1]"
|
||||||
|
= "my_merge.out.d.d[1].f" "my_merge.merge_cell.out.d.d[1].f"
|
||||||
|
= "my_merge.out.d.d[1].t" "my_merge.merge_cell.out.d.d[1].t"
|
||||||
|
= "my_merge.out.d.d[1].d[0]" "my_merge.merge_cell.out.d.d[1].d[0]"
|
||||||
|
= "my_merge.out.d.d[1].d[1]" "my_merge.merge_cell.out.d.d[1].d[1]"
|
||||||
|
= "my_merge.out.d.d[1].d[0]" "my_merge.out.d.d[1].f"
|
||||||
|
= "my_merge.out.d.d[1].d[1]" "my_merge.out.d.d[1].t"
|
||||||
|
= "my_merge.out.d.d[0].d[0]" "my_merge.out.d.d[0].f"
|
||||||
|
= "my_merge.out.d.d[0].d[1]" "my_merge.out.d.d[0].t"
|
||||||
|
= "my_merge.in2.d.d[0].d[0]" "my_merge.in2.d.d[0].f"
|
||||||
|
= "my_merge.in2.d.d[0].d[1]" "my_merge.in2.d.d[0].t"
|
||||||
|
= "my_merge.in2.d.d[1].d[0]" "my_merge.in2.d.d[1].f"
|
||||||
|
= "my_merge.in2.d.d[1].d[1]" "my_merge.in2.d.d[1].t"
|
||||||
|
= "my_merge.in2.d.d[1].d[0]" "my_merge.in2.d.d[1].f"
|
||||||
|
= "my_merge.in2.d.d[1].d[1]" "my_merge.in2.d.d[1].t"
|
||||||
|
= "my_merge.in2.d.d[0].d[0]" "my_merge.in2.d.d[0].f"
|
||||||
|
= "my_merge.in2.d.d[0].d[1]" "my_merge.in2.d.d[0].t"
|
||||||
|
= "my_merge.in2.d.d[1].d[0]" "my_merge.in2.d.d[1].f"
|
||||||
|
= "my_merge.in2.d.d[1].d[1]" "my_merge.in2.d.d[1].t"
|
||||||
|
= "my_merge.in2.d.d[0].d[0]" "my_merge.in2.d.d[0].f"
|
||||||
|
= "my_merge.in2.d.d[0].d[1]" "my_merge.in2.d.d[0].t"
|
||||||
|
= "my_merge.in2.v" "my_merge.merge_cell.in2.v"
|
||||||
|
= "my_merge.in2.a" "my_merge.merge_cell.in2.a"
|
||||||
|
= "my_merge.in2.d.d[0].f" "my_merge.merge_cell.in2.d.d[0].f"
|
||||||
|
= "my_merge.in2.d.d[0].t" "my_merge.merge_cell.in2.d.d[0].t"
|
||||||
|
= "my_merge.in2.d.d[0].d[0]" "my_merge.merge_cell.in2.d.d[0].d[0]"
|
||||||
|
= "my_merge.in2.d.d[0].d[1]" "my_merge.merge_cell.in2.d.d[0].d[1]"
|
||||||
|
= "my_merge.in2.d.d[1].f" "my_merge.merge_cell.in2.d.d[1].f"
|
||||||
|
= "my_merge.in2.d.d[1].t" "my_merge.merge_cell.in2.d.d[1].t"
|
||||||
|
= "my_merge.in2.d.d[1].d[0]" "my_merge.merge_cell.in2.d.d[1].d[0]"
|
||||||
|
= "my_merge.in2.d.d[1].d[1]" "my_merge.merge_cell.in2.d.d[1].d[1]"
|
||||||
|
= "my_merge.in2.d.d[1].d[0]" "my_merge.in2.d.d[1].f"
|
||||||
|
= "my_merge.in2.d.d[1].d[1]" "my_merge.in2.d.d[1].t"
|
||||||
|
= "my_merge.in2.d.d[0].d[0]" "my_merge.in2.d.d[0].f"
|
||||||
|
= "my_merge.in2.d.d[0].d[1]" "my_merge.in2.d.d[0].t"
|
49
test/unit_tests/merge_t_2_simple/test.act
Normal file
49
test/unit_tests/merge_t_2_simple/test.act
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* This file is part of ACT dataflow neuro library.
|
||||||
|
* It's the testing facility for cell_lib_std.act
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
|
*
|
||||||
|
* You may redistribute and modify this documentation and make products
|
||||||
|
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
|
||||||
|
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
|
||||||
|
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
|
||||||
|
* for applicable conditions.
|
||||||
|
*
|
||||||
|
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
|
||||||
|
*
|
||||||
|
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
|
||||||
|
* these sources, You must maintain the Source Location visible in its
|
||||||
|
* documentation.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
import "../../dataflow_neuro/primitives.act";
|
||||||
|
import globals;
|
||||||
|
|
||||||
|
open tmpl::dataflow_neuro;
|
||||||
|
|
||||||
|
|
||||||
|
defproc merge_2 (avMx1of2<2> in1; avMx1of2<2> in2; avMx1of2<2> out){
|
||||||
|
|
||||||
|
merge<2> merge_cell(.in1=in1, .in2=in2,.out = out);
|
||||||
|
//Low active Reset
|
||||||
|
bool _reset_B;
|
||||||
|
prs {
|
||||||
|
Reset => _reset_B-
|
||||||
|
}
|
||||||
|
merge_cell.supply.vss = GND;
|
||||||
|
merge_cell.supply.vdd = Vdd;
|
||||||
|
merge_cell.reset_B = _reset_B;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
merge_2 my_merge;
|
65
test/unit_tests/merge_t_2_simple/test.prsim
Normal file
65
test/unit_tests/merge_t_2_simple/test.prsim
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
|
||||||
|
watchall
|
||||||
|
set Reset 1
|
||||||
|
set-qdi-channel-neutral "my_merge.in1" 2
|
||||||
|
set-qdi-channel-neutral "my_merge.in2" 2
|
||||||
|
set my_merge.in1.v 0
|
||||||
|
set my_merge.in2.v 0
|
||||||
|
set my_merge.out.a 0
|
||||||
|
set my_merge.out.v 0
|
||||||
|
cycle
|
||||||
|
assert-qdi-channel-neutral "my_merge.out" 2
|
||||||
|
system "echo '-------------------------------------------------'"
|
||||||
|
system "echo '[0] System initialized'"
|
||||||
|
|
||||||
|
set Reset 0
|
||||||
|
cycle
|
||||||
|
system "echo '-------------------------------------------------'"
|
||||||
|
system "echo '[1] System reset completed'"
|
||||||
|
status X
|
||||||
|
mode run
|
||||||
|
assert-qdi-channel-neutral "my_merge.out" 2
|
||||||
|
cycle
|
||||||
|
system "echo '-------------------------------------------------'"
|
||||||
|
system "echo '[2] Output neutral checked'"
|
||||||
|
|
||||||
|
set-qdi-channel-valid "my_merge.in1" 2 2
|
||||||
|
cycle
|
||||||
|
assert my_merge.in1.v 1
|
||||||
|
assert my_merge.in1.a 0
|
||||||
|
assert-qdi-channel-valid "my_merge.out" 2 2
|
||||||
|
set my_merge.out.v 1
|
||||||
|
cycle
|
||||||
|
assert my_merge.in1.a 1
|
||||||
|
set-qdi-channel-neutral "my_merge.in1" 2
|
||||||
|
cycle
|
||||||
|
assert my_merge.in1.v 0
|
||||||
|
set my_merge.out.a 1
|
||||||
|
cycle
|
||||||
|
assert-qdi-channel-neutral "my_merge.out" 2
|
||||||
|
set my_merge.out.v 0
|
||||||
|
set my_merge.out.a 0
|
||||||
|
cycle
|
||||||
|
assert my_merge.in1.a 0
|
||||||
|
cycle
|
||||||
|
system "echo '-------------------------------------------------'"
|
||||||
|
system "echo '[3] In1 channel checked'"
|
||||||
|
set-qdi-channel-valid "my_merge.in2" 2 2
|
||||||
|
cycle
|
||||||
|
assert my_merge.in2.v 1
|
||||||
|
assert my_merge.in2.a 0
|
||||||
|
assert-qdi-channel-valid "my_merge.out" 2 2
|
||||||
|
set my_merge.out.v 1
|
||||||
|
cycle
|
||||||
|
assert my_merge.in2.a 1
|
||||||
|
set-qdi-channel-neutral "my_merge.in2" 2
|
||||||
|
cycle
|
||||||
|
set my_merge.out.a 1
|
||||||
|
cycle
|
||||||
|
assert-qdi-channel-neutral "my_merge.out" 2
|
||||||
|
set my_merge.out.a 0
|
||||||
|
set my_merge.out.v 0
|
||||||
|
cycle
|
||||||
|
assert my_merge.in2.a 0
|
||||||
|
system "echo '-------------------------------------------------'"
|
||||||
|
system "echo '[4] In2 valid checked'"
|
6
test/unit_tests/vtree_15/run/prsim.out
Normal file
6
test/unit_tests/vtree_15/run/prsim.out
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
t.in.d[13].t t.in.d[9].t t.in.d[1].t t.vtree_test.myctree.C2Els[6]._y t.in.d[14].f t.vtree_test.OR2_tf[7].y t.in.d[6].f t.in.d[7].t t.vtree_test.myctree.C2Els[5]._y t.in.d[3].t t.in.d[12].t t.out t.in.d[7].f t.in.d[5].f t.in.d[12].f t.in.d[14].t t.in.d[3].f t.in.d[10].t t.in.d[4].f t.in.d[0].t t.vtree_test.OR2_tf[8].y t.vtree_test.OR2_tf[0].y t.vtree_test.myctree.C2Els[0]._y t.vtree_test.OR2_tf[11].y t.vtree_test.myctree.tmp[16] t.in.d[2].t t.in.d[11].t t.in.d[1].f t.vtree_test.myctree.tmp[19] t.in.d[9].f t.vtree_test.OR2_tf[14].y t.vtree_test.myctree.tmp[21] t.vtree_test.myctree.tmp[17] t.vtree_test.myctree.tmp[15] t.in.d[8].t t.in.d[4].t t.in.d[0].f t.vtree_test.OR2_tf[6].y t.vtree_test.OR2_tf[12].y t.vtree_test.OR2_tf[4].y t.vtree_test.OR2_tf[6]._y t.vtree_test.OR2_tf[10].y t.vtree_test.OR2_tf[13].y t.vtree_test.myctree.tmp[23] t.vtree_test.OR2_tf[9].y t.vtree_test.OR2_tf[5].y t.vtree_test.myctree.tmp[22] t.in.d[5].t t.vtree_test.OR2_tf[2].y t.in.d[13].f t.vtree_test.OR2_tf[3]._y t.vtree_test.OR2_tf[3].y t.in.d[10].f t.vtree_test.myctree.C2Els[2]._y t.in.d[8].f t.vtree_test.OR2_tf[14]._y t.vtree_test.myctree.C2Els[7]._y t.vtree_test.myctree.tmp[24] t.vtree_test.myctree.tmp[18] t.vtree_test.myctree.tmp[20] t.in.d[6].t t.vtree_test.OR2_tf[1].y t.vtree_test.OR2_tf[7]._y t.vtree_test.OR2_tf[13]._y t.vtree_test.OR2_tf[10]._y t.vtree_test.OR2_tf[4]._y t.in.d[11].f t.vtree_test.OR2_tf[0]._y t.in.d[2].f t.vtree_test.myctree.C3Els[0]._y t.vtree_test.OR2_tf[11]._y t.vtree_test.OR2_tf[9]._y t.vtree_test.OR2_tf[5]._y t.vtree_test.myctree.C3Els[2]._y t.vtree_test.OR2_tf[8]._y t.vtree_test.myctree.C2Els[3]._y t.vtree_test.myctree.C3Els[1]._y t.vtree_test.OR2_tf[2]._y t.vtree_test.OR2_tf[12]._y t.vtree_test.myctree.C2Els[4]._y t.vtree_test.OR2_tf[1]._y t.vtree_test.myctree.C2Els[1]._y
|
||||||
|
[0] starting test true high
|
||||||
|
[1] cleaning input
|
||||||
|
[2] starting test false high
|
||||||
|
[2] testing state holding
|
||||||
|
WRONG ASSERT: "t.out" has value 1 and not 0.
|
502
test/unit_tests/vtree_15/run/test.prs
Normal file
502
test/unit_tests/vtree_15/run/test.prs
Normal file
@ -0,0 +1,502 @@
|
|||||||
|
= "GND" "GND"
|
||||||
|
= "Vdd" "Vdd"
|
||||||
|
= "Reset" "Reset"
|
||||||
|
~"t.vtree_test.myctree.C2Els[0].c1"&~"t.vtree_test.myctree.C2Els[0].c2"->"t.vtree_test.myctree.C2Els[0]._y"+
|
||||||
|
"t.vtree_test.myctree.C2Els[0].c1"&"t.vtree_test.myctree.C2Els[0].c2"->"t.vtree_test.myctree.C2Els[0]._y"-
|
||||||
|
"t.vtree_test.myctree.C2Els[0]._y"->"t.vtree_test.myctree.C2Els[0].y"-
|
||||||
|
~("t.vtree_test.myctree.C2Els[0]._y")->"t.vtree_test.myctree.C2Els[0].y"+
|
||||||
|
~"t.vtree_test.myctree.C2Els[1].c1"&~"t.vtree_test.myctree.C2Els[1].c2"->"t.vtree_test.myctree.C2Els[1]._y"+
|
||||||
|
"t.vtree_test.myctree.C2Els[1].c1"&"t.vtree_test.myctree.C2Els[1].c2"->"t.vtree_test.myctree.C2Els[1]._y"-
|
||||||
|
"t.vtree_test.myctree.C2Els[1]._y"->"t.vtree_test.myctree.C2Els[1].y"-
|
||||||
|
~("t.vtree_test.myctree.C2Els[1]._y")->"t.vtree_test.myctree.C2Els[1].y"+
|
||||||
|
~"t.vtree_test.myctree.C2Els[2].c1"&~"t.vtree_test.myctree.C2Els[2].c2"->"t.vtree_test.myctree.C2Els[2]._y"+
|
||||||
|
"t.vtree_test.myctree.C2Els[2].c1"&"t.vtree_test.myctree.C2Els[2].c2"->"t.vtree_test.myctree.C2Els[2]._y"-
|
||||||
|
"t.vtree_test.myctree.C2Els[2]._y"->"t.vtree_test.myctree.C2Els[2].y"-
|
||||||
|
~("t.vtree_test.myctree.C2Els[2]._y")->"t.vtree_test.myctree.C2Els[2].y"+
|
||||||
|
~"t.vtree_test.myctree.C2Els[3].c1"&~"t.vtree_test.myctree.C2Els[3].c2"->"t.vtree_test.myctree.C2Els[3]._y"+
|
||||||
|
"t.vtree_test.myctree.C2Els[3].c1"&"t.vtree_test.myctree.C2Els[3].c2"->"t.vtree_test.myctree.C2Els[3]._y"-
|
||||||
|
"t.vtree_test.myctree.C2Els[3]._y"->"t.vtree_test.myctree.C2Els[3].y"-
|
||||||
|
~("t.vtree_test.myctree.C2Els[3]._y")->"t.vtree_test.myctree.C2Els[3].y"+
|
||||||
|
~"t.vtree_test.myctree.C2Els[4].c1"&~"t.vtree_test.myctree.C2Els[4].c2"->"t.vtree_test.myctree.C2Els[4]._y"+
|
||||||
|
"t.vtree_test.myctree.C2Els[4].c1"&"t.vtree_test.myctree.C2Els[4].c2"->"t.vtree_test.myctree.C2Els[4]._y"-
|
||||||
|
"t.vtree_test.myctree.C2Els[4]._y"->"t.vtree_test.myctree.C2Els[4].y"-
|
||||||
|
~("t.vtree_test.myctree.C2Els[4]._y")->"t.vtree_test.myctree.C2Els[4].y"+
|
||||||
|
~"t.vtree_test.myctree.C2Els[5].c1"&~"t.vtree_test.myctree.C2Els[5].c2"->"t.vtree_test.myctree.C2Els[5]._y"+
|
||||||
|
"t.vtree_test.myctree.C2Els[5].c1"&"t.vtree_test.myctree.C2Els[5].c2"->"t.vtree_test.myctree.C2Els[5]._y"-
|
||||||
|
"t.vtree_test.myctree.C2Els[5]._y"->"t.vtree_test.myctree.C2Els[5].y"-
|
||||||
|
~("t.vtree_test.myctree.C2Els[5]._y")->"t.vtree_test.myctree.C2Els[5].y"+
|
||||||
|
~"t.vtree_test.myctree.C2Els[6].c1"&~"t.vtree_test.myctree.C2Els[6].c2"->"t.vtree_test.myctree.C2Els[6]._y"+
|
||||||
|
"t.vtree_test.myctree.C2Els[6].c1"&"t.vtree_test.myctree.C2Els[6].c2"->"t.vtree_test.myctree.C2Els[6]._y"-
|
||||||
|
"t.vtree_test.myctree.C2Els[6]._y"->"t.vtree_test.myctree.C2Els[6].y"-
|
||||||
|
~("t.vtree_test.myctree.C2Els[6]._y")->"t.vtree_test.myctree.C2Els[6].y"+
|
||||||
|
~"t.vtree_test.myctree.C2Els[7].c1"&~"t.vtree_test.myctree.C2Els[7].c2"->"t.vtree_test.myctree.C2Els[7]._y"+
|
||||||
|
"t.vtree_test.myctree.C2Els[7].c1"&"t.vtree_test.myctree.C2Els[7].c2"->"t.vtree_test.myctree.C2Els[7]._y"-
|
||||||
|
"t.vtree_test.myctree.C2Els[7]._y"->"t.vtree_test.myctree.C2Els[7].y"-
|
||||||
|
~("t.vtree_test.myctree.C2Els[7]._y")->"t.vtree_test.myctree.C2Els[7].y"+
|
||||||
|
~"t.vtree_test.myctree.C3Els[0].c1"&~"t.vtree_test.myctree.C3Els[0].c2"&~"t.vtree_test.myctree.C3Els[0].c3"->"t.vtree_test.myctree.C3Els[0]._y"+
|
||||||
|
"t.vtree_test.myctree.C3Els[0].c1"&"t.vtree_test.myctree.C3Els[0].c2"&"t.vtree_test.myctree.C3Els[0].c3"->"t.vtree_test.myctree.C3Els[0]._y"-
|
||||||
|
"t.vtree_test.myctree.C3Els[0]._y"->"t.vtree_test.myctree.C3Els[0].y"-
|
||||||
|
~("t.vtree_test.myctree.C3Els[0]._y")->"t.vtree_test.myctree.C3Els[0].y"+
|
||||||
|
~"t.vtree_test.myctree.C3Els[1].c1"&~"t.vtree_test.myctree.C3Els[1].c2"&~"t.vtree_test.myctree.C3Els[1].c3"->"t.vtree_test.myctree.C3Els[1]._y"+
|
||||||
|
"t.vtree_test.myctree.C3Els[1].c1"&"t.vtree_test.myctree.C3Els[1].c2"&"t.vtree_test.myctree.C3Els[1].c3"->"t.vtree_test.myctree.C3Els[1]._y"-
|
||||||
|
"t.vtree_test.myctree.C3Els[1]._y"->"t.vtree_test.myctree.C3Els[1].y"-
|
||||||
|
~("t.vtree_test.myctree.C3Els[1]._y")->"t.vtree_test.myctree.C3Els[1].y"+
|
||||||
|
~"t.vtree_test.myctree.C3Els[2].c1"&~"t.vtree_test.myctree.C3Els[2].c2"&~"t.vtree_test.myctree.C3Els[2].c3"->"t.vtree_test.myctree.C3Els[2]._y"+
|
||||||
|
"t.vtree_test.myctree.C3Els[2].c1"&"t.vtree_test.myctree.C3Els[2].c2"&"t.vtree_test.myctree.C3Els[2].c3"->"t.vtree_test.myctree.C3Els[2]._y"-
|
||||||
|
"t.vtree_test.myctree.C3Els[2]._y"->"t.vtree_test.myctree.C3Els[2].y"-
|
||||||
|
~("t.vtree_test.myctree.C3Els[2]._y")->"t.vtree_test.myctree.C3Els[2].y"+
|
||||||
|
= "t.vtree_test.myctree.tmp[15]" "t.vtree_test.myctree.C2Els[6].c1"
|
||||||
|
= "t.vtree_test.myctree.tmp[15]" "t.vtree_test.myctree.C2Els[0].y"
|
||||||
|
= "t.vtree_test.myctree.tmp[16]" "t.vtree_test.myctree.C2Els[6].c2"
|
||||||
|
= "t.vtree_test.myctree.tmp[16]" "t.vtree_test.myctree.C2Els[1].y"
|
||||||
|
= "t.vtree_test.myctree.tmp[17]" "t.vtree_test.myctree.C2Els[7].c1"
|
||||||
|
= "t.vtree_test.myctree.tmp[17]" "t.vtree_test.myctree.C2Els[2].y"
|
||||||
|
= "t.vtree_test.myctree.tmp[18]" "t.vtree_test.myctree.C2Els[7].c2"
|
||||||
|
= "t.vtree_test.myctree.tmp[18]" "t.vtree_test.myctree.C2Els[3].y"
|
||||||
|
= "t.vtree_test.myctree.tmp[19]" "t.vtree_test.myctree.C3Els[1].c1"
|
||||||
|
= "t.vtree_test.myctree.tmp[19]" "t.vtree_test.myctree.C2Els[4].y"
|
||||||
|
= "t.vtree_test.myctree.tmp[20]" "t.vtree_test.myctree.C3Els[1].c2"
|
||||||
|
= "t.vtree_test.myctree.tmp[20]" "t.vtree_test.myctree.C2Els[5].y"
|
||||||
|
= "t.vtree_test.myctree.tmp[21]" "t.vtree_test.myctree.C3Els[1].c3"
|
||||||
|
= "t.vtree_test.myctree.tmp[21]" "t.vtree_test.myctree.C3Els[0].y"
|
||||||
|
= "t.vtree_test.myctree.tmp[22]" "t.vtree_test.myctree.C3Els[2].c1"
|
||||||
|
= "t.vtree_test.myctree.tmp[22]" "t.vtree_test.myctree.C2Els[6].y"
|
||||||
|
= "t.vtree_test.myctree.tmp[23]" "t.vtree_test.myctree.C3Els[2].c2"
|
||||||
|
= "t.vtree_test.myctree.tmp[23]" "t.vtree_test.myctree.C2Els[7].y"
|
||||||
|
= "t.vtree_test.myctree.tmp[24]" "t.vtree_test.myctree.C3Els[2].c3"
|
||||||
|
= "t.vtree_test.myctree.tmp[24]" "t.vtree_test.myctree.C3Els[1].y"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C3Els[2].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C3Els[1].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C3Els[0].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[7].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[6].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[5].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[4].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[3].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[2].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[1].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vdd" "t.vtree_test.myctree.C2Els[0].vdd"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C3Els[2].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C3Els[1].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C3Els[0].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[7].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[6].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[5].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[4].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[3].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[2].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[1].vss"
|
||||||
|
= "t.vtree_test.myctree.supply.vss" "t.vtree_test.myctree.C2Els[0].vss"
|
||||||
|
= "t.vtree_test.myctree.in[0]" "t.vtree_test.myctree.C2Els[0].c1"
|
||||||
|
= "t.vtree_test.myctree.in[0]" "t.vtree_test.myctree.tmp[0]"
|
||||||
|
= "t.vtree_test.myctree.in[1]" "t.vtree_test.myctree.C2Els[0].c2"
|
||||||
|
= "t.vtree_test.myctree.in[1]" "t.vtree_test.myctree.tmp[1]"
|
||||||
|
= "t.vtree_test.myctree.in[2]" "t.vtree_test.myctree.C2Els[1].c1"
|
||||||
|
= "t.vtree_test.myctree.in[2]" "t.vtree_test.myctree.tmp[2]"
|
||||||
|
= "t.vtree_test.myctree.in[3]" "t.vtree_test.myctree.C2Els[1].c2"
|
||||||
|
= "t.vtree_test.myctree.in[3]" "t.vtree_test.myctree.tmp[3]"
|
||||||
|
= "t.vtree_test.myctree.in[4]" "t.vtree_test.myctree.C2Els[2].c1"
|
||||||
|
= "t.vtree_test.myctree.in[4]" "t.vtree_test.myctree.tmp[4]"
|
||||||
|
= "t.vtree_test.myctree.in[5]" "t.vtree_test.myctree.C2Els[2].c2"
|
||||||
|
= "t.vtree_test.myctree.in[5]" "t.vtree_test.myctree.tmp[5]"
|
||||||
|
= "t.vtree_test.myctree.in[6]" "t.vtree_test.myctree.C2Els[3].c1"
|
||||||
|
= "t.vtree_test.myctree.in[6]" "t.vtree_test.myctree.tmp[6]"
|
||||||
|
= "t.vtree_test.myctree.in[7]" "t.vtree_test.myctree.C2Els[3].c2"
|
||||||
|
= "t.vtree_test.myctree.in[7]" "t.vtree_test.myctree.tmp[7]"
|
||||||
|
= "t.vtree_test.myctree.in[8]" "t.vtree_test.myctree.C2Els[4].c1"
|
||||||
|
= "t.vtree_test.myctree.in[8]" "t.vtree_test.myctree.tmp[8]"
|
||||||
|
= "t.vtree_test.myctree.in[9]" "t.vtree_test.myctree.C2Els[4].c2"
|
||||||
|
= "t.vtree_test.myctree.in[9]" "t.vtree_test.myctree.tmp[9]"
|
||||||
|
= "t.vtree_test.myctree.in[10]" "t.vtree_test.myctree.C2Els[5].c1"
|
||||||
|
= "t.vtree_test.myctree.in[10]" "t.vtree_test.myctree.tmp[10]"
|
||||||
|
= "t.vtree_test.myctree.in[11]" "t.vtree_test.myctree.C2Els[5].c2"
|
||||||
|
= "t.vtree_test.myctree.in[11]" "t.vtree_test.myctree.tmp[11]"
|
||||||
|
= "t.vtree_test.myctree.in[12]" "t.vtree_test.myctree.C3Els[0].c1"
|
||||||
|
= "t.vtree_test.myctree.in[12]" "t.vtree_test.myctree.tmp[12]"
|
||||||
|
= "t.vtree_test.myctree.in[13]" "t.vtree_test.myctree.C3Els[0].c2"
|
||||||
|
= "t.vtree_test.myctree.in[13]" "t.vtree_test.myctree.tmp[13]"
|
||||||
|
= "t.vtree_test.myctree.in[14]" "t.vtree_test.myctree.C3Els[0].c3"
|
||||||
|
= "t.vtree_test.myctree.in[14]" "t.vtree_test.myctree.tmp[14]"
|
||||||
|
= "t.vtree_test.myctree.out" "t.vtree_test.myctree.C3Els[2].y"
|
||||||
|
= "t.vtree_test.myctree.out" "t.vtree_test.myctree.tmp[25]"
|
||||||
|
"t.vtree_test.OR2_tf[0].a"|"t.vtree_test.OR2_tf[0].b"->"t.vtree_test.OR2_tf[0]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[0].a"|"t.vtree_test.OR2_tf[0].b")->"t.vtree_test.OR2_tf[0]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[0]._y"->"t.vtree_test.OR2_tf[0].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[0]._y")->"t.vtree_test.OR2_tf[0].y"+
|
||||||
|
"t.vtree_test.OR2_tf[1].a"|"t.vtree_test.OR2_tf[1].b"->"t.vtree_test.OR2_tf[1]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[1].a"|"t.vtree_test.OR2_tf[1].b")->"t.vtree_test.OR2_tf[1]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[1]._y"->"t.vtree_test.OR2_tf[1].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[1]._y")->"t.vtree_test.OR2_tf[1].y"+
|
||||||
|
"t.vtree_test.OR2_tf[2].a"|"t.vtree_test.OR2_tf[2].b"->"t.vtree_test.OR2_tf[2]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[2].a"|"t.vtree_test.OR2_tf[2].b")->"t.vtree_test.OR2_tf[2]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[2]._y"->"t.vtree_test.OR2_tf[2].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[2]._y")->"t.vtree_test.OR2_tf[2].y"+
|
||||||
|
"t.vtree_test.OR2_tf[3].a"|"t.vtree_test.OR2_tf[3].b"->"t.vtree_test.OR2_tf[3]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[3].a"|"t.vtree_test.OR2_tf[3].b")->"t.vtree_test.OR2_tf[3]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[3]._y"->"t.vtree_test.OR2_tf[3].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[3]._y")->"t.vtree_test.OR2_tf[3].y"+
|
||||||
|
"t.vtree_test.OR2_tf[4].a"|"t.vtree_test.OR2_tf[4].b"->"t.vtree_test.OR2_tf[4]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[4].a"|"t.vtree_test.OR2_tf[4].b")->"t.vtree_test.OR2_tf[4]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[4]._y"->"t.vtree_test.OR2_tf[4].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[4]._y")->"t.vtree_test.OR2_tf[4].y"+
|
||||||
|
"t.vtree_test.OR2_tf[5].a"|"t.vtree_test.OR2_tf[5].b"->"t.vtree_test.OR2_tf[5]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[5].a"|"t.vtree_test.OR2_tf[5].b")->"t.vtree_test.OR2_tf[5]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[5]._y"->"t.vtree_test.OR2_tf[5].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[5]._y")->"t.vtree_test.OR2_tf[5].y"+
|
||||||
|
"t.vtree_test.OR2_tf[6].a"|"t.vtree_test.OR2_tf[6].b"->"t.vtree_test.OR2_tf[6]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[6].a"|"t.vtree_test.OR2_tf[6].b")->"t.vtree_test.OR2_tf[6]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[6]._y"->"t.vtree_test.OR2_tf[6].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[6]._y")->"t.vtree_test.OR2_tf[6].y"+
|
||||||
|
"t.vtree_test.OR2_tf[7].a"|"t.vtree_test.OR2_tf[7].b"->"t.vtree_test.OR2_tf[7]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[7].a"|"t.vtree_test.OR2_tf[7].b")->"t.vtree_test.OR2_tf[7]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[7]._y"->"t.vtree_test.OR2_tf[7].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[7]._y")->"t.vtree_test.OR2_tf[7].y"+
|
||||||
|
"t.vtree_test.OR2_tf[8].a"|"t.vtree_test.OR2_tf[8].b"->"t.vtree_test.OR2_tf[8]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[8].a"|"t.vtree_test.OR2_tf[8].b")->"t.vtree_test.OR2_tf[8]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[8]._y"->"t.vtree_test.OR2_tf[8].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[8]._y")->"t.vtree_test.OR2_tf[8].y"+
|
||||||
|
"t.vtree_test.OR2_tf[9].a"|"t.vtree_test.OR2_tf[9].b"->"t.vtree_test.OR2_tf[9]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[9].a"|"t.vtree_test.OR2_tf[9].b")->"t.vtree_test.OR2_tf[9]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[9]._y"->"t.vtree_test.OR2_tf[9].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[9]._y")->"t.vtree_test.OR2_tf[9].y"+
|
||||||
|
"t.vtree_test.OR2_tf[10].a"|"t.vtree_test.OR2_tf[10].b"->"t.vtree_test.OR2_tf[10]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[10].a"|"t.vtree_test.OR2_tf[10].b")->"t.vtree_test.OR2_tf[10]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[10]._y"->"t.vtree_test.OR2_tf[10].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[10]._y")->"t.vtree_test.OR2_tf[10].y"+
|
||||||
|
"t.vtree_test.OR2_tf[11].a"|"t.vtree_test.OR2_tf[11].b"->"t.vtree_test.OR2_tf[11]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[11].a"|"t.vtree_test.OR2_tf[11].b")->"t.vtree_test.OR2_tf[11]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[11]._y"->"t.vtree_test.OR2_tf[11].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[11]._y")->"t.vtree_test.OR2_tf[11].y"+
|
||||||
|
"t.vtree_test.OR2_tf[12].a"|"t.vtree_test.OR2_tf[12].b"->"t.vtree_test.OR2_tf[12]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[12].a"|"t.vtree_test.OR2_tf[12].b")->"t.vtree_test.OR2_tf[12]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[12]._y"->"t.vtree_test.OR2_tf[12].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[12]._y")->"t.vtree_test.OR2_tf[12].y"+
|
||||||
|
"t.vtree_test.OR2_tf[13].a"|"t.vtree_test.OR2_tf[13].b"->"t.vtree_test.OR2_tf[13]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[13].a"|"t.vtree_test.OR2_tf[13].b")->"t.vtree_test.OR2_tf[13]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[13]._y"->"t.vtree_test.OR2_tf[13].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[13]._y")->"t.vtree_test.OR2_tf[13].y"+
|
||||||
|
"t.vtree_test.OR2_tf[14].a"|"t.vtree_test.OR2_tf[14].b"->"t.vtree_test.OR2_tf[14]._y"-
|
||||||
|
~("t.vtree_test.OR2_tf[14].a"|"t.vtree_test.OR2_tf[14].b")->"t.vtree_test.OR2_tf[14]._y"+
|
||||||
|
"t.vtree_test.OR2_tf[14]._y"->"t.vtree_test.OR2_tf[14].y"-
|
||||||
|
~("t.vtree_test.OR2_tf[14]._y")->"t.vtree_test.OR2_tf[14].y"+
|
||||||
|
= "t.vtree_test.OR2_tf[14].y" "t.vtree_test.myctree.in[14]"
|
||||||
|
= "t.vtree_test.OR2_tf[13].y" "t.vtree_test.myctree.in[13]"
|
||||||
|
= "t.vtree_test.OR2_tf[12].y" "t.vtree_test.myctree.in[12]"
|
||||||
|
= "t.vtree_test.OR2_tf[11].y" "t.vtree_test.myctree.in[11]"
|
||||||
|
= "t.vtree_test.OR2_tf[10].y" "t.vtree_test.myctree.in[10]"
|
||||||
|
= "t.vtree_test.OR2_tf[9].y" "t.vtree_test.myctree.in[9]"
|
||||||
|
= "t.vtree_test.OR2_tf[8].y" "t.vtree_test.myctree.in[8]"
|
||||||
|
= "t.vtree_test.OR2_tf[7].y" "t.vtree_test.myctree.in[7]"
|
||||||
|
= "t.vtree_test.OR2_tf[6].y" "t.vtree_test.myctree.in[6]"
|
||||||
|
= "t.vtree_test.OR2_tf[5].y" "t.vtree_test.myctree.in[5]"
|
||||||
|
= "t.vtree_test.OR2_tf[4].y" "t.vtree_test.myctree.in[4]"
|
||||||
|
= "t.vtree_test.OR2_tf[3].y" "t.vtree_test.myctree.in[3]"
|
||||||
|
= "t.vtree_test.OR2_tf[2].y" "t.vtree_test.myctree.in[2]"
|
||||||
|
= "t.vtree_test.OR2_tf[1].y" "t.vtree_test.myctree.in[1]"
|
||||||
|
= "t.vtree_test.OR2_tf[0].y" "t.vtree_test.myctree.in[0]"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.myctree.supply.vss"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.myctree.supply.vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[14].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[13].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[12].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[11].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[10].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[9].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[8].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[7].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[6].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[5].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[4].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[3].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[2].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[1].vdd"
|
||||||
|
= "t.vtree_test.supply.vdd" "t.vtree_test.OR2_tf[0].vdd"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[14].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[13].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[12].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[11].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[10].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[9].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[8].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[7].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[6].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[5].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[4].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[3].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[2].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[1].vss"
|
||||||
|
= "t.vtree_test.supply.vss" "t.vtree_test.OR2_tf[0].vss"
|
||||||
|
= "t.vtree_test.out" "t.vtree_test.myctree.out"
|
||||||
|
= "t.vtree_test.in.d[0].d[0]" "t.vtree_test.in.d[0].f"
|
||||||
|
= "t.vtree_test.in.d[0].d[1]" "t.vtree_test.in.d[0].t"
|
||||||
|
= "t.vtree_test.in.d[1].d[0]" "t.vtree_test.in.d[1].f"
|
||||||
|
= "t.vtree_test.in.d[1].d[1]" "t.vtree_test.in.d[1].t"
|
||||||
|
= "t.vtree_test.in.d[2].d[0]" "t.vtree_test.in.d[2].f"
|
||||||
|
= "t.vtree_test.in.d[2].d[1]" "t.vtree_test.in.d[2].t"
|
||||||
|
= "t.vtree_test.in.d[3].d[0]" "t.vtree_test.in.d[3].f"
|
||||||
|
= "t.vtree_test.in.d[3].d[1]" "t.vtree_test.in.d[3].t"
|
||||||
|
= "t.vtree_test.in.d[4].d[0]" "t.vtree_test.in.d[4].f"
|
||||||
|
= "t.vtree_test.in.d[4].d[1]" "t.vtree_test.in.d[4].t"
|
||||||
|
= "t.vtree_test.in.d[5].d[0]" "t.vtree_test.in.d[5].f"
|
||||||
|
= "t.vtree_test.in.d[5].d[1]" "t.vtree_test.in.d[5].t"
|
||||||
|
= "t.vtree_test.in.d[6].d[0]" "t.vtree_test.in.d[6].f"
|
||||||
|
= "t.vtree_test.in.d[6].d[1]" "t.vtree_test.in.d[6].t"
|
||||||
|
= "t.vtree_test.in.d[7].d[0]" "t.vtree_test.in.d[7].f"
|
||||||
|
= "t.vtree_test.in.d[7].d[1]" "t.vtree_test.in.d[7].t"
|
||||||
|
= "t.vtree_test.in.d[8].d[0]" "t.vtree_test.in.d[8].f"
|
||||||
|
= "t.vtree_test.in.d[8].d[1]" "t.vtree_test.in.d[8].t"
|
||||||
|
= "t.vtree_test.in.d[9].d[0]" "t.vtree_test.in.d[9].f"
|
||||||
|
= "t.vtree_test.in.d[9].d[1]" "t.vtree_test.in.d[9].t"
|
||||||
|
= "t.vtree_test.in.d[10].d[0]" "t.vtree_test.in.d[10].f"
|
||||||
|
= "t.vtree_test.in.d[10].d[1]" "t.vtree_test.in.d[10].t"
|
||||||
|
= "t.vtree_test.in.d[11].d[0]" "t.vtree_test.in.d[11].f"
|
||||||
|
= "t.vtree_test.in.d[11].d[1]" "t.vtree_test.in.d[11].t"
|
||||||
|
= "t.vtree_test.in.d[12].d[0]" "t.vtree_test.in.d[12].f"
|
||||||
|
= "t.vtree_test.in.d[12].d[1]" "t.vtree_test.in.d[12].t"
|
||||||
|
= "t.vtree_test.in.d[13].d[0]" "t.vtree_test.in.d[13].f"
|
||||||
|
= "t.vtree_test.in.d[13].d[1]" "t.vtree_test.in.d[13].t"
|
||||||
|
= "t.vtree_test.in.d[14].d[0]" "t.vtree_test.in.d[14].f"
|
||||||
|
= "t.vtree_test.in.d[14].d[1]" "t.vtree_test.in.d[14].t"
|
||||||
|
= "t.vtree_test.in.d[14].d[0]" "t.vtree_test.in.d[14].f"
|
||||||
|
= "t.vtree_test.in.d[14].d[1]" "t.vtree_test.in.d[14].t"
|
||||||
|
= "t.vtree_test.in.d[13].d[0]" "t.vtree_test.in.d[13].f"
|
||||||
|
= "t.vtree_test.in.d[13].d[1]" "t.vtree_test.in.d[13].t"
|
||||||
|
= "t.vtree_test.in.d[12].d[0]" "t.vtree_test.in.d[12].f"
|
||||||
|
= "t.vtree_test.in.d[12].d[1]" "t.vtree_test.in.d[12].t"
|
||||||
|
= "t.vtree_test.in.d[11].d[0]" "t.vtree_test.in.d[11].f"
|
||||||
|
= "t.vtree_test.in.d[11].d[1]" "t.vtree_test.in.d[11].t"
|
||||||
|
= "t.vtree_test.in.d[10].d[0]" "t.vtree_test.in.d[10].f"
|
||||||
|
= "t.vtree_test.in.d[10].d[1]" "t.vtree_test.in.d[10].t"
|
||||||
|
= "t.vtree_test.in.d[9].d[0]" "t.vtree_test.in.d[9].f"
|
||||||
|
= "t.vtree_test.in.d[9].d[1]" "t.vtree_test.in.d[9].t"
|
||||||
|
= "t.vtree_test.in.d[8].d[0]" "t.vtree_test.in.d[8].f"
|
||||||
|
= "t.vtree_test.in.d[8].d[1]" "t.vtree_test.in.d[8].t"
|
||||||
|
= "t.vtree_test.in.d[7].d[0]" "t.vtree_test.in.d[7].f"
|
||||||
|
= "t.vtree_test.in.d[7].d[1]" "t.vtree_test.in.d[7].t"
|
||||||
|
= "t.vtree_test.in.d[6].d[0]" "t.vtree_test.in.d[6].f"
|
||||||
|
= "t.vtree_test.in.d[6].d[1]" "t.vtree_test.in.d[6].t"
|
||||||
|
= "t.vtree_test.in.d[5].d[0]" "t.vtree_test.in.d[5].f"
|
||||||
|
= "t.vtree_test.in.d[5].d[1]" "t.vtree_test.in.d[5].t"
|
||||||
|
= "t.vtree_test.in.d[4].d[0]" "t.vtree_test.in.d[4].f"
|
||||||
|
= "t.vtree_test.in.d[4].d[1]" "t.vtree_test.in.d[4].t"
|
||||||
|
= "t.vtree_test.in.d[3].d[0]" "t.vtree_test.in.d[3].f"
|
||||||
|
= "t.vtree_test.in.d[3].d[1]" "t.vtree_test.in.d[3].t"
|
||||||
|
= "t.vtree_test.in.d[2].d[0]" "t.vtree_test.in.d[2].f"
|
||||||
|
= "t.vtree_test.in.d[2].d[1]" "t.vtree_test.in.d[2].t"
|
||||||
|
= "t.vtree_test.in.d[1].d[0]" "t.vtree_test.in.d[1].f"
|
||||||
|
= "t.vtree_test.in.d[1].d[1]" "t.vtree_test.in.d[1].t"
|
||||||
|
= "t.vtree_test.in.d[0].d[0]" "t.vtree_test.in.d[0].f"
|
||||||
|
= "t.vtree_test.in.d[0].d[1]" "t.vtree_test.in.d[0].t"
|
||||||
|
= "t.vtree_test.in.d[14].d[0]" "t.vtree_test.OR2_tf[14].b"
|
||||||
|
= "t.vtree_test.in.d[14].d[0]" "t.vtree_test.in.d[14].f"
|
||||||
|
= "t.vtree_test.in.d[14].d[1]" "t.vtree_test.OR2_tf[14].a"
|
||||||
|
= "t.vtree_test.in.d[14].d[1]" "t.vtree_test.in.d[14].t"
|
||||||
|
= "t.vtree_test.in.d[13].d[0]" "t.vtree_test.OR2_tf[13].b"
|
||||||
|
= "t.vtree_test.in.d[13].d[0]" "t.vtree_test.in.d[13].f"
|
||||||
|
= "t.vtree_test.in.d[13].d[1]" "t.vtree_test.OR2_tf[13].a"
|
||||||
|
= "t.vtree_test.in.d[13].d[1]" "t.vtree_test.in.d[13].t"
|
||||||
|
= "t.vtree_test.in.d[12].d[0]" "t.vtree_test.OR2_tf[12].b"
|
||||||
|
= "t.vtree_test.in.d[12].d[0]" "t.vtree_test.in.d[12].f"
|
||||||
|
= "t.vtree_test.in.d[12].d[1]" "t.vtree_test.OR2_tf[12].a"
|
||||||
|
= "t.vtree_test.in.d[12].d[1]" "t.vtree_test.in.d[12].t"
|
||||||
|
= "t.vtree_test.in.d[11].d[0]" "t.vtree_test.OR2_tf[11].b"
|
||||||
|
= "t.vtree_test.in.d[11].d[0]" "t.vtree_test.in.d[11].f"
|
||||||
|
= "t.vtree_test.in.d[11].d[1]" "t.vtree_test.OR2_tf[11].a"
|
||||||
|
= "t.vtree_test.in.d[11].d[1]" "t.vtree_test.in.d[11].t"
|
||||||
|
= "t.vtree_test.in.d[10].d[0]" "t.vtree_test.OR2_tf[10].b"
|
||||||
|
= "t.vtree_test.in.d[10].d[0]" "t.vtree_test.in.d[10].f"
|
||||||
|
= "t.vtree_test.in.d[10].d[1]" "t.vtree_test.OR2_tf[10].a"
|
||||||
|
= "t.vtree_test.in.d[10].d[1]" "t.vtree_test.in.d[10].t"
|
||||||
|
= "t.vtree_test.in.d[9].d[0]" "t.vtree_test.OR2_tf[9].b"
|
||||||
|
= "t.vtree_test.in.d[9].d[0]" "t.vtree_test.in.d[9].f"
|
||||||
|
= "t.vtree_test.in.d[9].d[1]" "t.vtree_test.OR2_tf[9].a"
|
||||||
|
= "t.vtree_test.in.d[9].d[1]" "t.vtree_test.in.d[9].t"
|
||||||
|
= "t.vtree_test.in.d[8].d[0]" "t.vtree_test.OR2_tf[8].b"
|
||||||
|
= "t.vtree_test.in.d[8].d[0]" "t.vtree_test.in.d[8].f"
|
||||||
|
= "t.vtree_test.in.d[8].d[1]" "t.vtree_test.OR2_tf[8].a"
|
||||||
|
= "t.vtree_test.in.d[8].d[1]" "t.vtree_test.in.d[8].t"
|
||||||
|
= "t.vtree_test.in.d[7].d[0]" "t.vtree_test.OR2_tf[7].b"
|
||||||
|
= "t.vtree_test.in.d[7].d[0]" "t.vtree_test.in.d[7].f"
|
||||||
|
= "t.vtree_test.in.d[7].d[1]" "t.vtree_test.OR2_tf[7].a"
|
||||||
|
= "t.vtree_test.in.d[7].d[1]" "t.vtree_test.in.d[7].t"
|
||||||
|
= "t.vtree_test.in.d[6].d[0]" "t.vtree_test.OR2_tf[6].b"
|
||||||
|
= "t.vtree_test.in.d[6].d[0]" "t.vtree_test.in.d[6].f"
|
||||||
|
= "t.vtree_test.in.d[6].d[1]" "t.vtree_test.OR2_tf[6].a"
|
||||||
|
= "t.vtree_test.in.d[6].d[1]" "t.vtree_test.in.d[6].t"
|
||||||
|
= "t.vtree_test.in.d[5].d[0]" "t.vtree_test.OR2_tf[5].b"
|
||||||
|
= "t.vtree_test.in.d[5].d[0]" "t.vtree_test.in.d[5].f"
|
||||||
|
= "t.vtree_test.in.d[5].d[1]" "t.vtree_test.OR2_tf[5].a"
|
||||||
|
= "t.vtree_test.in.d[5].d[1]" "t.vtree_test.in.d[5].t"
|
||||||
|
= "t.vtree_test.in.d[4].d[0]" "t.vtree_test.OR2_tf[4].b"
|
||||||
|
= "t.vtree_test.in.d[4].d[0]" "t.vtree_test.in.d[4].f"
|
||||||
|
= "t.vtree_test.in.d[4].d[1]" "t.vtree_test.OR2_tf[4].a"
|
||||||
|
= "t.vtree_test.in.d[4].d[1]" "t.vtree_test.in.d[4].t"
|
||||||
|
= "t.vtree_test.in.d[3].d[0]" "t.vtree_test.OR2_tf[3].b"
|
||||||
|
= "t.vtree_test.in.d[3].d[0]" "t.vtree_test.in.d[3].f"
|
||||||
|
= "t.vtree_test.in.d[3].d[1]" "t.vtree_test.OR2_tf[3].a"
|
||||||
|
= "t.vtree_test.in.d[3].d[1]" "t.vtree_test.in.d[3].t"
|
||||||
|
= "t.vtree_test.in.d[2].d[0]" "t.vtree_test.OR2_tf[2].b"
|
||||||
|
= "t.vtree_test.in.d[2].d[0]" "t.vtree_test.in.d[2].f"
|
||||||
|
= "t.vtree_test.in.d[2].d[1]" "t.vtree_test.OR2_tf[2].a"
|
||||||
|
= "t.vtree_test.in.d[2].d[1]" "t.vtree_test.in.d[2].t"
|
||||||
|
= "t.vtree_test.in.d[1].d[0]" "t.vtree_test.OR2_tf[1].b"
|
||||||
|
= "t.vtree_test.in.d[1].d[0]" "t.vtree_test.in.d[1].f"
|
||||||
|
= "t.vtree_test.in.d[1].d[1]" "t.vtree_test.OR2_tf[1].a"
|
||||||
|
= "t.vtree_test.in.d[1].d[1]" "t.vtree_test.in.d[1].t"
|
||||||
|
= "t.vtree_test.in.d[0].d[0]" "t.vtree_test.OR2_tf[0].b"
|
||||||
|
= "t.vtree_test.in.d[0].d[0]" "t.vtree_test.in.d[0].f"
|
||||||
|
= "t.vtree_test.in.d[0].d[1]" "t.vtree_test.OR2_tf[0].a"
|
||||||
|
= "t.vtree_test.in.d[0].d[1]" "t.vtree_test.in.d[0].t"
|
||||||
|
= "Vdd" "t.vtree_test.supply.vdd"
|
||||||
|
= "GND" "t.vtree_test.supply.vss"
|
||||||
|
= "t.out" "t.vtree_test.out"
|
||||||
|
= "t.in.d[0].d[0]" "t.in.d[0].f"
|
||||||
|
= "t.in.d[0].d[1]" "t.in.d[0].t"
|
||||||
|
= "t.in.d[1].d[0]" "t.in.d[1].f"
|
||||||
|
= "t.in.d[1].d[1]" "t.in.d[1].t"
|
||||||
|
= "t.in.d[2].d[0]" "t.in.d[2].f"
|
||||||
|
= "t.in.d[2].d[1]" "t.in.d[2].t"
|
||||||
|
= "t.in.d[3].d[0]" "t.in.d[3].f"
|
||||||
|
= "t.in.d[3].d[1]" "t.in.d[3].t"
|
||||||
|
= "t.in.d[4].d[0]" "t.in.d[4].f"
|
||||||
|
= "t.in.d[4].d[1]" "t.in.d[4].t"
|
||||||
|
= "t.in.d[5].d[0]" "t.in.d[5].f"
|
||||||
|
= "t.in.d[5].d[1]" "t.in.d[5].t"
|
||||||
|
= "t.in.d[6].d[0]" "t.in.d[6].f"
|
||||||
|
= "t.in.d[6].d[1]" "t.in.d[6].t"
|
||||||
|
= "t.in.d[7].d[0]" "t.in.d[7].f"
|
||||||
|
= "t.in.d[7].d[1]" "t.in.d[7].t"
|
||||||
|
= "t.in.d[8].d[0]" "t.in.d[8].f"
|
||||||
|
= "t.in.d[8].d[1]" "t.in.d[8].t"
|
||||||
|
= "t.in.d[9].d[0]" "t.in.d[9].f"
|
||||||
|
= "t.in.d[9].d[1]" "t.in.d[9].t"
|
||||||
|
= "t.in.d[10].d[0]" "t.in.d[10].f"
|
||||||
|
= "t.in.d[10].d[1]" "t.in.d[10].t"
|
||||||
|
= "t.in.d[11].d[0]" "t.in.d[11].f"
|
||||||
|
= "t.in.d[11].d[1]" "t.in.d[11].t"
|
||||||
|
= "t.in.d[12].d[0]" "t.in.d[12].f"
|
||||||
|
= "t.in.d[12].d[1]" "t.in.d[12].t"
|
||||||
|
= "t.in.d[13].d[0]" "t.in.d[13].f"
|
||||||
|
= "t.in.d[13].d[1]" "t.in.d[13].t"
|
||||||
|
= "t.in.d[14].d[0]" "t.in.d[14].f"
|
||||||
|
= "t.in.d[14].d[1]" "t.in.d[14].t"
|
||||||
|
= "t.in.d[14].d[0]" "t.in.d[14].f"
|
||||||
|
= "t.in.d[14].d[1]" "t.in.d[14].t"
|
||||||
|
= "t.in.d[13].d[0]" "t.in.d[13].f"
|
||||||
|
= "t.in.d[13].d[1]" "t.in.d[13].t"
|
||||||
|
= "t.in.d[12].d[0]" "t.in.d[12].f"
|
||||||
|
= "t.in.d[12].d[1]" "t.in.d[12].t"
|
||||||
|
= "t.in.d[11].d[0]" "t.in.d[11].f"
|
||||||
|
= "t.in.d[11].d[1]" "t.in.d[11].t"
|
||||||
|
= "t.in.d[10].d[0]" "t.in.d[10].f"
|
||||||
|
= "t.in.d[10].d[1]" "t.in.d[10].t"
|
||||||
|
= "t.in.d[9].d[0]" "t.in.d[9].f"
|
||||||
|
= "t.in.d[9].d[1]" "t.in.d[9].t"
|
||||||
|
= "t.in.d[8].d[0]" "t.in.d[8].f"
|
||||||
|
= "t.in.d[8].d[1]" "t.in.d[8].t"
|
||||||
|
= "t.in.d[7].d[0]" "t.in.d[7].f"
|
||||||
|
= "t.in.d[7].d[1]" "t.in.d[7].t"
|
||||||
|
= "t.in.d[6].d[0]" "t.in.d[6].f"
|
||||||
|
= "t.in.d[6].d[1]" "t.in.d[6].t"
|
||||||
|
= "t.in.d[5].d[0]" "t.in.d[5].f"
|
||||||
|
= "t.in.d[5].d[1]" "t.in.d[5].t"
|
||||||
|
= "t.in.d[4].d[0]" "t.in.d[4].f"
|
||||||
|
= "t.in.d[4].d[1]" "t.in.d[4].t"
|
||||||
|
= "t.in.d[3].d[0]" "t.in.d[3].f"
|
||||||
|
= "t.in.d[3].d[1]" "t.in.d[3].t"
|
||||||
|
= "t.in.d[2].d[0]" "t.in.d[2].f"
|
||||||
|
= "t.in.d[2].d[1]" "t.in.d[2].t"
|
||||||
|
= "t.in.d[1].d[0]" "t.in.d[1].f"
|
||||||
|
= "t.in.d[1].d[1]" "t.in.d[1].t"
|
||||||
|
= "t.in.d[0].d[0]" "t.in.d[0].f"
|
||||||
|
= "t.in.d[0].d[1]" "t.in.d[0].t"
|
||||||
|
= "t.in.d[0].f" "t.vtree_test.in.d[0].f"
|
||||||
|
= "t.in.d[0].t" "t.vtree_test.in.d[0].t"
|
||||||
|
= "t.in.d[0].d[0]" "t.vtree_test.in.d[0].d[0]"
|
||||||
|
= "t.in.d[0].d[1]" "t.vtree_test.in.d[0].d[1]"
|
||||||
|
= "t.in.d[1].f" "t.vtree_test.in.d[1].f"
|
||||||
|
= "t.in.d[1].t" "t.vtree_test.in.d[1].t"
|
||||||
|
= "t.in.d[1].d[0]" "t.vtree_test.in.d[1].d[0]"
|
||||||
|
= "t.in.d[1].d[1]" "t.vtree_test.in.d[1].d[1]"
|
||||||
|
= "t.in.d[2].f" "t.vtree_test.in.d[2].f"
|
||||||
|
= "t.in.d[2].t" "t.vtree_test.in.d[2].t"
|
||||||
|
= "t.in.d[2].d[0]" "t.vtree_test.in.d[2].d[0]"
|
||||||
|
= "t.in.d[2].d[1]" "t.vtree_test.in.d[2].d[1]"
|
||||||
|
= "t.in.d[3].f" "t.vtree_test.in.d[3].f"
|
||||||
|
= "t.in.d[3].t" "t.vtree_test.in.d[3].t"
|
||||||
|
= "t.in.d[3].d[0]" "t.vtree_test.in.d[3].d[0]"
|
||||||
|
= "t.in.d[3].d[1]" "t.vtree_test.in.d[3].d[1]"
|
||||||
|
= "t.in.d[4].f" "t.vtree_test.in.d[4].f"
|
||||||
|
= "t.in.d[4].t" "t.vtree_test.in.d[4].t"
|
||||||
|
= "t.in.d[4].d[0]" "t.vtree_test.in.d[4].d[0]"
|
||||||
|
= "t.in.d[4].d[1]" "t.vtree_test.in.d[4].d[1]"
|
||||||
|
= "t.in.d[5].f" "t.vtree_test.in.d[5].f"
|
||||||
|
= "t.in.d[5].t" "t.vtree_test.in.d[5].t"
|
||||||
|
= "t.in.d[5].d[0]" "t.vtree_test.in.d[5].d[0]"
|
||||||
|
= "t.in.d[5].d[1]" "t.vtree_test.in.d[5].d[1]"
|
||||||
|
= "t.in.d[6].f" "t.vtree_test.in.d[6].f"
|
||||||
|
= "t.in.d[6].t" "t.vtree_test.in.d[6].t"
|
||||||
|
= "t.in.d[6].d[0]" "t.vtree_test.in.d[6].d[0]"
|
||||||
|
= "t.in.d[6].d[1]" "t.vtree_test.in.d[6].d[1]"
|
||||||
|
= "t.in.d[7].f" "t.vtree_test.in.d[7].f"
|
||||||
|
= "t.in.d[7].t" "t.vtree_test.in.d[7].t"
|
||||||
|
= "t.in.d[7].d[0]" "t.vtree_test.in.d[7].d[0]"
|
||||||
|
= "t.in.d[7].d[1]" "t.vtree_test.in.d[7].d[1]"
|
||||||
|
= "t.in.d[8].f" "t.vtree_test.in.d[8].f"
|
||||||
|
= "t.in.d[8].t" "t.vtree_test.in.d[8].t"
|
||||||
|
= "t.in.d[8].d[0]" "t.vtree_test.in.d[8].d[0]"
|
||||||
|
= "t.in.d[8].d[1]" "t.vtree_test.in.d[8].d[1]"
|
||||||
|
= "t.in.d[9].f" "t.vtree_test.in.d[9].f"
|
||||||
|
= "t.in.d[9].t" "t.vtree_test.in.d[9].t"
|
||||||
|
= "t.in.d[9].d[0]" "t.vtree_test.in.d[9].d[0]"
|
||||||
|
= "t.in.d[9].d[1]" "t.vtree_test.in.d[9].d[1]"
|
||||||
|
= "t.in.d[10].f" "t.vtree_test.in.d[10].f"
|
||||||
|
= "t.in.d[10].t" "t.vtree_test.in.d[10].t"
|
||||||
|
= "t.in.d[10].d[0]" "t.vtree_test.in.d[10].d[0]"
|
||||||
|
= "t.in.d[10].d[1]" "t.vtree_test.in.d[10].d[1]"
|
||||||
|
= "t.in.d[11].f" "t.vtree_test.in.d[11].f"
|
||||||
|
= "t.in.d[11].t" "t.vtree_test.in.d[11].t"
|
||||||
|
= "t.in.d[11].d[0]" "t.vtree_test.in.d[11].d[0]"
|
||||||
|
= "t.in.d[11].d[1]" "t.vtree_test.in.d[11].d[1]"
|
||||||
|
= "t.in.d[12].f" "t.vtree_test.in.d[12].f"
|
||||||
|
= "t.in.d[12].t" "t.vtree_test.in.d[12].t"
|
||||||
|
= "t.in.d[12].d[0]" "t.vtree_test.in.d[12].d[0]"
|
||||||
|
= "t.in.d[12].d[1]" "t.vtree_test.in.d[12].d[1]"
|
||||||
|
= "t.in.d[13].f" "t.vtree_test.in.d[13].f"
|
||||||
|
= "t.in.d[13].t" "t.vtree_test.in.d[13].t"
|
||||||
|
= "t.in.d[13].d[0]" "t.vtree_test.in.d[13].d[0]"
|
||||||
|
= "t.in.d[13].d[1]" "t.vtree_test.in.d[13].d[1]"
|
||||||
|
= "t.in.d[14].f" "t.vtree_test.in.d[14].f"
|
||||||
|
= "t.in.d[14].t" "t.vtree_test.in.d[14].t"
|
||||||
|
= "t.in.d[14].d[0]" "t.vtree_test.in.d[14].d[0]"
|
||||||
|
= "t.in.d[14].d[1]" "t.vtree_test.in.d[14].d[1]"
|
||||||
|
= "t.in.d[14].d[0]" "t.in.d[14].f"
|
||||||
|
= "t.in.d[14].d[1]" "t.in.d[14].t"
|
||||||
|
= "t.in.d[13].d[0]" "t.in.d[13].f"
|
||||||
|
= "t.in.d[13].d[1]" "t.in.d[13].t"
|
||||||
|
= "t.in.d[12].d[0]" "t.in.d[12].f"
|
||||||
|
= "t.in.d[12].d[1]" "t.in.d[12].t"
|
||||||
|
= "t.in.d[11].d[0]" "t.in.d[11].f"
|
||||||
|
= "t.in.d[11].d[1]" "t.in.d[11].t"
|
||||||
|
= "t.in.d[10].d[0]" "t.in.d[10].f"
|
||||||
|
= "t.in.d[10].d[1]" "t.in.d[10].t"
|
||||||
|
= "t.in.d[9].d[0]" "t.in.d[9].f"
|
||||||
|
= "t.in.d[9].d[1]" "t.in.d[9].t"
|
||||||
|
= "t.in.d[8].d[0]" "t.in.d[8].f"
|
||||||
|
= "t.in.d[8].d[1]" "t.in.d[8].t"
|
||||||
|
= "t.in.d[7].d[0]" "t.in.d[7].f"
|
||||||
|
= "t.in.d[7].d[1]" "t.in.d[7].t"
|
||||||
|
= "t.in.d[6].d[0]" "t.in.d[6].f"
|
||||||
|
= "t.in.d[6].d[1]" "t.in.d[6].t"
|
||||||
|
= "t.in.d[5].d[0]" "t.in.d[5].f"
|
||||||
|
= "t.in.d[5].d[1]" "t.in.d[5].t"
|
||||||
|
= "t.in.d[4].d[0]" "t.in.d[4].f"
|
||||||
|
= "t.in.d[4].d[1]" "t.in.d[4].t"
|
||||||
|
= "t.in.d[3].d[0]" "t.in.d[3].f"
|
||||||
|
= "t.in.d[3].d[1]" "t.in.d[3].t"
|
||||||
|
= "t.in.d[2].d[0]" "t.in.d[2].f"
|
||||||
|
= "t.in.d[2].d[1]" "t.in.d[2].t"
|
||||||
|
= "t.in.d[1].d[0]" "t.in.d[1].f"
|
||||||
|
= "t.in.d[1].d[1]" "t.in.d[1].t"
|
||||||
|
= "t.in.d[0].d[0]" "t.in.d[0].f"
|
||||||
|
= "t.in.d[0].d[1]" "t.in.d[0].t"
|
41
test/unit_tests/vtree_15/test.act
Normal file
41
test/unit_tests/vtree_15/test.act
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* This file is part of ACT dataflow neuro library.
|
||||||
|
* It's the testing facility for cell_lib_std.act
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022 University of Groningen - Ole Richter
|
||||||
|
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
|
||||||
|
* Copyright (c) 2022 University of Groningen - Michele Mastella
|
||||||
|
* Copyright (c) 2022 University of Groningen - Madison Cotteret
|
||||||
|
*
|
||||||
|
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
|
||||||
|
*
|
||||||
|
* You may redistribute and modify this documentation and make products
|
||||||
|
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
|
||||||
|
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
|
||||||
|
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
|
||||||
|
* for applicable conditions.
|
||||||
|
*
|
||||||
|
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
|
||||||
|
*
|
||||||
|
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
|
||||||
|
* these sources, You must maintain the Source Location visible in its
|
||||||
|
* documentation.
|
||||||
|
*
|
||||||
|
**************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
import "../../dataflow_neuro/treegates.act";
|
||||||
|
import globals;
|
||||||
|
|
||||||
|
open tmpl::dataflow_neuro;
|
||||||
|
|
||||||
|
defproc vtree_15 (std::data::Mx1of2?<15> in; bool! out){
|
||||||
|
vtree<15> vtree_test(.in=in, .out=out);
|
||||||
|
vtree_test.supply.vss = GND;
|
||||||
|
vtree_test.supply.vdd = Vdd;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
vtree_15 t;
|
108
test/unit_tests/vtree_15/test.prsim
Normal file
108
test/unit_tests/vtree_15/test.prsim
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
|
||||||
|
system "echo '[0] starting test true high'"
|
||||||
|
|
||||||
|
set t.in.d[0].t 1
|
||||||
|
set t.in.d[1].t 1
|
||||||
|
set t.in.d[2].t 1
|
||||||
|
set t.in.d[3].t 1
|
||||||
|
set t.in.d[4].t 1
|
||||||
|
set t.in.d[5].t 1
|
||||||
|
set t.in.d[6].t 1
|
||||||
|
set t.in.d[7].t 1
|
||||||
|
set t.in.d[8].t 1
|
||||||
|
set t.in.d[9].t 1
|
||||||
|
set t.in.d[10].t 1
|
||||||
|
set t.in.d[11].t 1
|
||||||
|
set t.in.d[12].t 1
|
||||||
|
set t.in.d[13].t 1
|
||||||
|
set t.in.d[14].t 1
|
||||||
|
set t.in.d[0].f 0
|
||||||
|
set t.in.d[1].f 0
|
||||||
|
set t.in.d[2].f 0
|
||||||
|
set t.in.d[3].f 0
|
||||||
|
set t.in.d[4].f 0
|
||||||
|
set t.in.d[5].f 0
|
||||||
|
set t.in.d[6].f 0
|
||||||
|
set t.in.d[7].f 0
|
||||||
|
set t.in.d[8].f 0
|
||||||
|
set t.in.d[9].f 0
|
||||||
|
set t.in.d[10].f 0
|
||||||
|
set t.in.d[11].f 0
|
||||||
|
set t.in.d[12].f 0
|
||||||
|
set t.in.d[13].f 0
|
||||||
|
set t.in.d[14].f 0
|
||||||
|
cycle
|
||||||
|
mode run
|
||||||
|
assert t.out 1
|
||||||
|
|
||||||
|
system "echo '[1] cleaning input'"
|
||||||
|
|
||||||
|
set t.in.d[0].t 0
|
||||||
|
set t.in.d[1].t 0
|
||||||
|
set t.in.d[2].t 0
|
||||||
|
set t.in.d[3].t 0
|
||||||
|
set t.in.d[4].t 0
|
||||||
|
set t.in.d[5].t 0
|
||||||
|
set t.in.d[6].t 0
|
||||||
|
set t.in.d[7].t 0
|
||||||
|
set t.in.d[8].t 0
|
||||||
|
set t.in.d[9].t 0
|
||||||
|
set t.in.d[10].t 0
|
||||||
|
set t.in.d[11].t 0
|
||||||
|
set t.in.d[12].t 0
|
||||||
|
set t.in.d[13].t 0
|
||||||
|
set t.in.d[14].t 0
|
||||||
|
set t.in.d[0].f 0
|
||||||
|
set t.in.d[1].f 0
|
||||||
|
set t.in.d[2].f 0
|
||||||
|
set t.in.d[3].f 0
|
||||||
|
set t.in.d[4].f 0
|
||||||
|
set t.in.d[5].f 0
|
||||||
|
set t.in.d[6].f 0
|
||||||
|
set t.in.d[7].f 0
|
||||||
|
set t.in.d[8].f 0
|
||||||
|
set t.in.d[9].f 0
|
||||||
|
set t.in.d[10].f 0
|
||||||
|
set t.in.d[11].f 0
|
||||||
|
set t.in.d[12].f 0
|
||||||
|
set t.in.d[13].f 0
|
||||||
|
set t.in.d[14].f 0
|
||||||
|
cycle
|
||||||
|
mode run
|
||||||
|
assert t.out 0
|
||||||
|
|
||||||
|
system "echo '[2] starting test false high'"
|
||||||
|
|
||||||
|
set t.in.d[0].t 0
|
||||||
|
set t.in.d[1].t 0
|
||||||
|
set t.in.d[2].t 0
|
||||||
|
set t.in.d[3].t 0
|
||||||
|
set t.in.d[4].t 0
|
||||||
|
set t.in.d[5].t 0
|
||||||
|
set t.in.d[6].t 0
|
||||||
|
set t.in.d[7].t 0
|
||||||
|
set t.in.d[8].t 0
|
||||||
|
set t.in.d[9].t 0
|
||||||
|
set t.in.d[10].t 0
|
||||||
|
set t.in.d[11].t 0
|
||||||
|
set t.in.d[12].t 0
|
||||||
|
set t.in.d[13].t 0
|
||||||
|
set t.in.d[14].t 0
|
||||||
|
set t.in.d[0].f 1
|
||||||
|
set t.in.d[1].f 1
|
||||||
|
set t.in.d[2].f 1
|
||||||
|
set t.in.d[3].f 1
|
||||||
|
set t.in.d[4].f 1
|
||||||
|
set t.in.d[5].f 1
|
||||||
|
set t.in.d[6].f 1
|
||||||
|
set t.in.d[7].f 1
|
||||||
|
set t.in.d[8].f 1
|
||||||
|
set t.in.d[9].f 1
|
||||||
|
set t.in.d[10].f 1
|
||||||
|
set t.in.d[11].f 1
|
||||||
|
set t.in.d[12].f 1
|
||||||
|
set t.in.d[13].f 1
|
||||||
|
set t.in.d[14].f 1
|
||||||
|
cycle
|
||||||
|
mode run
|
||||||
|
assert t.out 1
|
Reference in New Issue
Block a user