From d3a1a27bb0c4278fecd2e4d3c49ab547aeaef331 Mon Sep 17 00:00:00 2001 From: alexmadison Date: Mon, 2 May 2022 19:11:24 +0200 Subject: [PATCH] added buffering to EFO signals --- dataflow_neuro/chips.act | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/dataflow_neuro/chips.act b/dataflow_neuro/chips.act index 8913af7..d0f9c6e 100644 --- a/dataflow_neuro/chips.act +++ b/dataflow_neuro/chips.act @@ -265,28 +265,26 @@ defproc texel_core (avMx1of2 in, out; ) - // Create NON buffered signals from register to nrns. + // Create buffered signals from register to nrns. + sigbuf_boolarray sb_nrn_EFO(.out = nrn_flags_EFO, .supply = supply); (i:N_FLAGS_PER_NRN: - nrn_flags_EFO[i] = register.data[5].d[i].t; + sb_nrn_EFO.in[i] = register.data[5].d[i].t; ) - // Create NON buffered signals from register to synapses. + // Create buffered signals from register to synapses. // Includes safety on the first 3 flags with dev mon. + sigbuf_boolarray sb_syn_EFO(.out = syn_flags_EFO, .supply = supply); (i:3..N_FLAGS_PER_SYN-1: - syn_flags_EFO[i] = register.data[4].d[i].t; + sb_syn_EFO.in[i] = register.data[4].d[i].t; ) AND2_X1 syn_flags_dev_safety[3]; - BUF_X4 syn_flags_dev_safety_sb[3]; (i:0..2: syn_flags_dev_safety[i].a = register.data[4].d[i].t; // syn flag bit syn_flags_dev_safety[i].b = register.data[0].d[5].f; // no device is being monitored. - syn_flags_dev_safety_sb[i].a = syn_flags_dev_safety[i].y; - syn_flags_dev_safety_sb[i].y = syn_flags_EFO[i]; + sb_syn_EFO.in[i] = syn_flags_dev_safety[i].y syn_flags_dev_safety[i].vdd = supply.vdd; syn_flags_dev_safety[i].vss = supply.vss; - syn_flags_dev_safety_sb[i].vdd = supply.vdd; - syn_flags_dev_safety_sb[i].vss = supply.vss; ) // Create non-buffered reset signals for the neuron/syn handshakes @@ -439,8 +437,6 @@ defproc texel_dualcore (bd in, out; bool! c2_reset_nrn_hs_BO[N_NRN_X], c2_reset_syn_hs_BO[N_SYN_X], c2_reset_nrn_stge_BO[N_NRN_X], c2_reset_syn_stge_BO[N_SYN_X] - - ){ // Reset buffers