From 76e0e223566db45a68d76397c8227f088be1ffc2 Mon Sep 17 00:00:00 2001 From: alexmadison Date: Fri, 1 Dec 2023 13:21:46 +0100 Subject: [PATCH] removed unused cells --- dataflow_neuro/coders.act | 81 ++------------------------------------- 1 file changed, 3 insertions(+), 78 deletions(-) diff --git a/dataflow_neuro/coders.act b/dataflow_neuro/coders.act index be15691..18a046f 100644 --- a/dataflow_neuro/coders.act +++ b/dataflow_neuro/coders.act @@ -147,23 +147,6 @@ defproc decoder_dualrail_refresh (Mx1of2 in; bool? out[N]; Mx1of2 final_ ) } -/** - * Dualrail decoder with buffered outputs. - * Be careful of out[] indexing. - */ -export template -defproc decoder_dualrail_x(Mx1of2 in; bool? out[N]; power supply) { - decoder_dualrail decoder(.in = in, .supply = supply); - sigbuf sb[N]; - (i:N: - sb[i].in = decoder.out[i]; - sb[i].supply = supply; - sb[i].out[0] = out[i]; - // (j:OUT_STRENGTH: - // sb[i].out[j] = out[j + i*OUT_STRENGTH]; - // ) - ) -} /** * Dualrail decoder with on/off switch. @@ -210,6 +193,9 @@ defproc decoder_dualrail_en(Mx1of2 in; bool? en, out[N]; power supply) { /** + * @TODO check that this is definitely exactly the same as hybrid, maybe keep + * + * * 2D decoder which uses a configurable delay from the VCtrees to buffer ack. * Nx is the x size of the decoder array * NxC is the number of wires in the x channel. @@ -700,67 +686,6 @@ defproc decoder_2d_hybrid (avMx1of2 in; bool! out_req_x[Nx], out_req_y[ - /** - * Buffer function code. - * Is the function block ripped from the buffer_s. - * Used in the encoder2d. - */ - export template - defproc buffer_s_func (Mx1of2 in; avMx1of2 out; bool? in_v, en, reset_B; power supply) { - //function - bool _out_a_BX_t[N],_out_a_BX_f[N],_out_a_B,_en_X_t[N],_en_X_f[N], _in_vX; - // bool _in_vXX_t[N],_in_vXX_f[N]; - - - A_2C2N_RB_X4 f_buf_func[N]; - A_2C2N_RB_X4 t_buf_func[N]; - - // reset buffers - bool _reset_BX,_reset_BXX[N*2]; - BUF_X1 reset_buf(.a=reset_B, .y=_reset_BX,.vdd=supply.vdd,.vss=supply.vss); - sigbuf reset_bufarray(.in=_reset_BX, .out=_reset_BXX, .supply=supply); - - // Enable signal buffers - sigbuf en_buf_t(.in=en, .out=_en_X_t, .supply=supply); - sigbuf en_buf_f(.in=en, .out=_en_X_f, .supply=supply); - - // out ack signal buffers - INV_X1 out_a_inv(.a=out.a,.y=_out_a_B, .vss = supply.vss, .vdd = supply.vdd); - sigbuf out_a_B_buf_f(.in=_out_a_B,.out=_out_a_BX_t, .supply=supply); - sigbuf out_a_B_buf_t(.in=_out_a_B,.out=_out_a_BX_f, .supply=supply); - - // in val signal buffers - BUF_X4 in_v_prebuf(.a = in_v, .y = _in_vX, .vss = supply.vss, .vdd = supply.vdd); - // sigbuf in_v_buf_t(.in=_in_vX, .out=_in_vXX_t, .supply=supply); - // sigbuf in_v_buf_f(.in=_in_vX, .out=_in_vXX_f, .supply=supply); - sigbuf in_v_buf(.in=_in_vX,.supply=supply); - - - (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[i].f; - t_buf_func[i].n1=in.d[i].t; - f_buf_func[i].n2=in_v_buf.out[i]; - t_buf_func[i].n2=in_v_buf.out[i+N]; - 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+N]; - f_buf_func[i].sr_B = _reset_BXX[i+N]; - ) - - } - - - export defproc nrn_line_end_pull_down (bool? in; bool? reset_B; power supply; bool! out) {