Compare commits

...

3 Commits

Author SHA1 Message Date
alexmadison
016f634ac6 test of spike from sram workin 2022-05-10 15:22:19 +02:00
alexmadison
9ee41dc390 spikes out to sram working 2022-05-10 14:53:26 +02:00
alexmadison
7735cf8cba made note of demux td to fixgit add ../dataflow_neuro/primitives.act 2022-05-10 14:53:00 +02:00
3 changed files with 1083 additions and 3 deletions

View File

@ -743,11 +743,11 @@ defproc texel_dualcore_mapper (bd<N_IN> in, out;
fork<32> postcore_fork(.in = fifo_core2fork.out, .reset_B = _reset_BX, .supply = supply);
dropper_static<32, false> sram_dropper(.in = postcore_fork.out1, .cond = mapper_en, .supply = supply);
// Need to have it then drop the spike if its from a register.
demux_td<32, false> drop_if_reg(.in = sram_dropper.out, .reset_B = _reset_BX, .supply = supply); // if cond true, go out on data
demux_td<32, true> drop_if_reg(.in = sram_dropper.out, .reset_B = _reset_BX, .supply = supply); // if cond true, go out on data
drop_if_reg.cond.d.d[0] = sram_dropper.out.d.d[30];
drop_if_reg.token.r = drop_if_reg.token.a;
fifo<8,N_BUFFERS> fifo_out_sram_spk(.out = out_sram_spk, .reset_B = _reset_BX, .supply = supply);
slice_data<32,0,8> slice_to_sram(.in = drop_if_reg.out, .out = fifo_out_sram_spk.in, .supply = supply);
slice_data<32,0,8> slice_to_sram(.supply = supply);
// And move the msb (core bit) to just after the neuron address...
slice_to_sram.in.a = drop_if_reg.out.a;
slice_to_sram.in.v = drop_if_reg.out.v;
@ -755,6 +755,10 @@ defproc texel_dualcore_mapper (bd<N_IN> in, out;
slice_to_sram.in.d.d[7] = drop_if_reg.out.d.d[31];
(i:7..30: slice_to_sram.in.d.d[i+1] = drop_if_reg.out.d.d[i];)
fifo<8,N_BUFFERS> fifo_out_sram_spk(.in = slice_to_sram.out, .out = out_sram_spk,
.reset_B = _reset_BX, .supply = supply);
// merge from cores and sram read in
fifo<29, N_BUFFERS> fifo_in_sram_r(.in = in_sram_r, .reset_B = _reset_BX, .supply = supply);
fifo<32, N_BUFFERS> fifo_fork2mrg(.in = postcore_fork.out2, .reset_B = _reset_BX, .supply = supply);

View File

@ -387,6 +387,9 @@ namespace tmpl {
// Demux
export template<pint N; pbool CONDITION_SIGN>
// WARNING WARNING WARNING
// With a False CONDITION_SIGN, this is wrong.
// the c.t/f just need to be swapped, not inverted!!!
defproc demux_td (avMx1of2<N> in; avMx1of2<N> out; a1of1 token; bool? reset_B; avMx1of2<1> cond; power supply) {
//control
bool _en, _reset_BX,_reset_BXX[N], _out_v, _in_c_v_, _reset_BXt;

File diff suppressed because it is too large Load Diff