adjusted pull up channel names

This commit is contained in:
alexmadison 2022-04-20 19:31:06 +02:00
parent bb63182694
commit 83ae6a4cc3
2 changed files with 15 additions and 16 deletions

View File

@ -52,7 +52,6 @@ N_MON_AMZO_PER_SYN, N_MON_AMZO_PER_NRN, // Number of signals that each synapse o
N_FLAGS_PER_SYN, N_FLAGS_PER_NRN, // Number of signals that each nrn/syn recieves from the register. N_FLAGS_PER_SYN, N_FLAGS_PER_NRN, // Number of signals that each nrn/syn recieves from the register.
N_BUFFERS, N_BUFFERS,
N_LINE_PD_DLY, // Number of dummy delays to add line pull down N_LINE_PD_DLY, // Number of dummy delays to add line pull down
// N_BD_DLY_CFG, N_BD_DLY_CFG2,
REG_NCA, REG_NCW, REG_M> REG_NCA, REG_NCW, REG_M>
defproc texel_core (avMx1of2<N_IN> in, out; defproc texel_core (avMx1of2<N_IN> in, out;
@ -108,8 +107,9 @@ defproc texel_core (avMx1of2<N_IN> in, out;
decoder_2d_synapse_hs<N_SYN_X, N_SYN_Y> _synapses( decoder_2d_synapse_hs<N_SYN_X, N_SYN_Y> _synapses(
.synapses = synapses, .synapses = synapses,
.in_req_x = decoder.out_req_x, .in_req_y = decoder.out_req_y, .in_req_x = decoder.out_req_x, .in_req_y = decoder.out_req_y,
.in_ackB_pullups = decoder.out_ackB_pullups, .to_pu = decoder.to_pu,
.out_req_x_pullups = decoder.in_req_x_pullups, // .in_ackB_pullups = decoder.out_ackB_pullups,
// .out_req_x_pullups = decoder.in_req_x_pullups,
.out_ackB_decoder = decoder.in_ackB_decoder, .out_ackB_decoder = decoder.in_ackB_decoder,
.supply = supply); .supply = supply);
@ -118,6 +118,8 @@ defproc texel_core (avMx1of2<N_IN> in, out;
NC_NRN = NC_NRN_X + NC_NRN_Y; NC_NRN = NC_NRN_X + NC_NRN_Y;
encoder2d_simple<NC_NRN_X, NC_NRN_Y, N_NRN_X, N_NRN_Y, N_LINE_PD_DLY> encoder( encoder2d_simple<NC_NRN_X, NC_NRN_Y, N_NRN_X, N_NRN_Y, N_LINE_PD_DLY> encoder(
.reset_B = _reset_BX, .supply = supply); .reset_B = _reset_BX, .supply = supply);
fifo<NC_NRN, N_BUFFERS> fifo_enc2mrg(.in = encoder.out,
.reset_B = _reset_BX, .supply = supply);
// Neuron handshake circuits, to be removed for innovus // Neuron handshake circuits, to be removed for innovus
nrn_hs_2d_array<N_NRN_X,N_NRN_Y> nrn_grid(.in = neurons, nrn_hs_2d_array<N_NRN_X,N_NRN_Y> nrn_grid(.in = neurons,
@ -126,9 +128,6 @@ defproc texel_core (avMx1of2<N_IN> in, out;
.supply = supply, .reset_B = _reset_BX); .supply = supply, .reset_B = _reset_BX);
fifo<NC_NRN, N_BUFFERS> fifo_enc2mrg(.in = encoder.out,
.reset_B = _reset_BX, .supply = supply);
// Merge // Merge
append<NC_NRN, N_IN-NC_NRN, 0> append_enc(.in = fifo_enc2mrg.out, .supply = supply); append<NC_NRN, N_IN-NC_NRN, 0> append_enc(.in = fifo_enc2mrg.out, .supply = supply);

View File

@ -390,8 +390,7 @@ defproc decoder_2d_hs (avMx1of2<NxC+NyC> in; a1of1 out[Nx*Ny]; bool? reset_B; po
export template<pint Nx, Ny> export template<pint Nx, Ny>
defproc decoder_2d_synapse_hs (bool? in_req_x[Nx], in_req_y[Ny]; a1of1 synapses[Nx*Ny]; defproc decoder_2d_synapse_hs (bool? in_req_x[Nx], in_req_y[Ny]; a1of1 synapses[Nx*Ny];
bool out_ackB_decoder[Nx]; bool out_ackB_decoder[Nx];
bool in_ackB_pullups[Nx]; a1of1 to_pu[Nx];
bool out_req_x_pullups[Nx];
power supply) { power supply) {
@ -415,10 +414,10 @@ defproc decoder_2d_synapse_hs (bool? in_req_x[Nx], in_req_y[Ny]; a1of1 synapses[
) )
// Connect the ackB lines together // Connect the ackB lines together
(i:Nx: out_ackB_decoder[i] = in_ackB_pullups[i];) (i:Nx: out_ackB_decoder[i] = to_pu[i].a;)
// Pipe req x lines down to the ackB pullups // Pipe req x lines down to the ackB pullups
(i:Nx: out_req_x_pullups[i] = in_req_x[i];) (i:Nx: to_pu[i].r = in_req_x[i];)
} }
/** /**
@ -436,8 +435,9 @@ defproc decoder_2d_synapse_hs (bool? in_req_x[Nx], in_req_y[Ny]; a1of1 synapses[
export template<pint NxC, NyC, Nx, Ny, N_dly_cfg> export template<pint NxC, NyC, Nx, Ny, N_dly_cfg>
defproc decoder_2d_hybrid (avMx1of2<NxC+NyC> in; bool! out_req_x[Nx], out_req_y[Ny]; bool? dly_cfg[N_dly_cfg], hs_en, ack_disable; defproc decoder_2d_hybrid (avMx1of2<NxC+NyC> in; bool! out_req_x[Nx], out_req_y[Ny]; bool? dly_cfg[N_dly_cfg], hs_en, ack_disable;
bool in_ackB_decoder[Nx]; // AckB lines back to the decoder for handshaking bool in_ackB_decoder[Nx]; // AckB lines back to the decoder for handshaking
bool out_ackB_pullups[Nx]; // AckB lines from the line end pull ups a1of1 to_pu[Nx];
bool in_req_x_pullups[Nx]; // req x lines going to the line pull ups // bool out_ackB_pullups[Nx]; // AckB lines from the line end pull ups
// bool in_req_x_pullups[Nx]; // req x lines going to the line pull ups
bool? reset_B; power supply) { bool? reset_B; power supply) {
bool _reset_BX[Nx]; bool _reset_BX[Nx];
@ -479,14 +479,14 @@ defproc decoder_2d_hybrid (avMx1of2<NxC+NyC> in; bool! out_req_x[Nx], out_req_y[
A_2P_U_X4 pu[Nx]; // TODO probably replace this with variable strength PU A_2P_U_X4 pu[Nx]; // TODO probably replace this with variable strength PU
A_1P_U_X4 pu_reset[Nx]; A_1P_U_X4 pu_reset[Nx];
(i:Nx: (i:Nx:
pu[i].p1 = in_req_x_pullups[i]; pu[i].p1 = to_pu[i].r;
pu[i].p2 = hs_enB; pu[i].p2 = hs_enB;
pu[i].y = out_ackB_pullups[i]; pu[i].y = to_pu[i].a;
pu[i].vdd = supply.vdd; pu[i].vdd = supply.vdd;
pu[i].vss = supply.vss; pu[i].vss = supply.vss;
pu_reset[i].p1 = _reset_BX[i]; pu_reset[i].p1 = _reset_BX[i];
pu_reset[i].y = out_ackB_pullups[i]; pu_reset[i].y = to_pu[i].a;
pu_reset[i].vdd = supply.vdd; pu_reset[i].vdd = supply.vdd;
pu_reset[i].vss = supply.vss; pu_reset[i].vss = supply.vss;
) )
@ -496,7 +496,7 @@ defproc decoder_2d_hybrid (avMx1of2<NxC+NyC> in; bool! out_req_x[Nx], out_req_y[
(i:Nx: (i:Nx:
keeps[i].vdd = supply.vdd; keeps[i].vdd = supply.vdd;
keeps[i].vss = supply.vss; keeps[i].vss = supply.vss;
keeps[i].y = out_ackB_pullups[i]; keeps[i].y = to_pu[i].a;
) )