added buffering to EFO signals

This commit is contained in:
alexmadison 2022-05-02 19:11:24 +02:00
parent de06893549
commit d3a1a27bb0
1 changed files with 7 additions and 11 deletions

View File

@ -265,28 +265,26 @@ defproc texel_core (avMx1of2<N_IN> in, out;
) )
// Create NON buffered signals from register to nrns. // Create buffered signals from register to nrns.
sigbuf_boolarray<N_FLAGS_PER_NRN, 31> sb_nrn_EFO(.out = nrn_flags_EFO, .supply = supply);
(i:N_FLAGS_PER_NRN: (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. // Includes safety on the first 3 flags with dev mon.
sigbuf_boolarray<N_FLAGS_PER_SYN, 31> sb_syn_EFO(.out = syn_flags_EFO, .supply = supply);
(i:3..N_FLAGS_PER_SYN-1: (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]; AND2_X1 syn_flags_dev_safety[3];
BUF_X4 syn_flags_dev_safety_sb[3];
(i:0..2: (i:0..2:
syn_flags_dev_safety[i].a = register.data[4].d[i].t; // syn flag bit 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[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; sb_syn_EFO.in[i] = syn_flags_dev_safety[i].y
syn_flags_dev_safety_sb[i].y = syn_flags_EFO[i];
syn_flags_dev_safety[i].vdd = supply.vdd; syn_flags_dev_safety[i].vdd = supply.vdd;
syn_flags_dev_safety[i].vss = supply.vss; 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 // Create non-buffered reset signals for the neuron/syn handshakes
@ -439,8 +437,6 @@ defproc texel_dualcore (bd<N_IN> in, out;
bool! c2_reset_nrn_hs_BO[N_NRN_X], c2_reset_syn_hs_BO[N_SYN_X], 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] c2_reset_nrn_stge_BO[N_NRN_X], c2_reset_syn_stge_BO[N_SYN_X]
){ ){
// Reset buffers // Reset buffers