From 0e9f2ae5060787410592e22961fb7b53d9d92799 Mon Sep 17 00:00:00 2001 From: Michele Date: Thu, 3 Mar 2022 15:10:31 +0100 Subject: [PATCH] started encoder on the coders.act --- dataflow_neuro/coders.act | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/dataflow_neuro/coders.act b/dataflow_neuro/coders.act index c316293..409d823 100644 --- a/dataflow_neuro/coders.act +++ b/dataflow_neuro/coders.act @@ -212,6 +212,36 @@ namespace tmpl { } + template + defproc encoder2D(a1of1 x[N]; a1of1 y[M] ;avMx1of2 addr; bool! out_a; power supply) + { + // Arbiters + a1of1 _out_arb_x,_out_arb_y; + a1of1 _x_temp[N]; + (i:N: + _x_temp[i].r = x[i].r; + ) + (i:M: + _y_temp[i].r = y[i].r; + ) + arbtree Xarb(.in = _x_temp,.out = _out_arb_X,.supply = supply); + arbtree Yarb(.in = _y_temp,.out = _out_arb_Y,.supply = supply); + + sigbuf x_ack_arb[N]; + sigbuf y_ack_arb[M]; + (i:N: + x_ack_arb[i].in = _x_temp[i].a; + x_ack_arb[i].out[0] = x[i].a; + x_ack_arb[i].supply = supply; + ) + (i:M: + y_ack_arb[i].in = _y_temp[i].a; + y_ack_arb[i].out[0] = y[i].a; + y_ack_arb[i].supply = supply; + ) + + + }