diff --git a/dataflow_neuro/chips.act b/dataflow_neuro/chips.act index 85f2523..c200942 100644 --- a/dataflow_neuro/chips.act +++ b/dataflow_neuro/chips.act @@ -219,6 +219,7 @@ defproc texel_core (avMx1of2 in, out; // Create TBUFs for each synapse column, // ctrl wired to mon line (first in each 4). TBUF_X4 syn_x_AMZI_tbuf[N_SYN_X * N_MON_AMZO_PER_SYN]; + KEEP syn_AMZO_keeps[N_MON_AMZO_PER_SYN]; sigbuf_boolarray syn_mon_AMZO_sb(.out = syn_mon_AMZO, .supply = supply); (j:N_MON_AMZO_PER_SYN: (i:N_SYN_X: @@ -227,13 +228,19 @@ defproc texel_core (avMx1of2 in, out; syn_x_AMZI_tbuf[index].en = syn_mon_x[i*4]; syn_x_AMZI_tbuf[index].y = syn_mon_AMZO_sb.in[j]; ) + + syn_AMZO_keeps[j].y = syn_mon_AMZO_sb.in[j]; + syn_AMZO_keeps[j].vdd = supply.vdd; + syn_AMZO_keeps[j].vss = supply.vss; + ) - // Create TBUFs for each neuron column, + // Create TBUFs for each neuron column, and add keeps. // ctrl wired to mon line (first in each 4). TBUF_X4 nrn_x_AMZI_tbuf[N_NRN_X * N_MON_AMZO_PER_NRN]; - sigbuf_boolarray nrn_mon_AMZO_sb(.out = nrn_mon_AMZO, .supply = supply); + KEEP nrn_AMZO_keeps[N_MON_AMZO_PER_NRN]; + sigbuf_boolarray nrn_mon_AMZO_sb(.out = nrn_mon_AMZO, .supply = supply); (j:N_MON_AMZO_PER_NRN: (i:N_NRN_X: index = i*N_MON_AMZO_PER_NRN + j; @@ -241,6 +248,11 @@ defproc texel_core (avMx1of2 in, out; nrn_x_AMZI_tbuf[index].en = nrn_mon_x[i*2]; nrn_x_AMZI_tbuf[index].y = nrn_mon_AMZO_sb.in[j]; ) + + nrn_AMZO_keeps[j].y = nrn_mon_AMZO_sb.in[j]; + nrn_AMZO_keeps[j].vdd = supply.vdd; + nrn_AMZO_keeps[j].vss = supply.vss; + ) // Create NON buffered signals from register to nrns.