stdp_triplet
XXX: NAIVE VERSION: unclear about relative timing of pre and post trace updates due to incoming pre and post spikes
Parameters
Name |
Physical unit |
Default value |
Description |
---|---|---|---|
the_delay |
ms |
1ms |
!!! cannot have a variable called “delay” |
tau_plus |
ms |
16.8ms |
time constant for tr_r1 |
tau_x |
ms |
101ms |
time constant for tr_r2 |
tau_minus |
ms |
33.7ms |
time constant for tr_o1 |
tau_y |
ms |
125ms |
time constant for tr_o2 |
A2_plus |
real |
7.5e-10 |
|
A3_plus |
real |
0.0093 |
|
A2_minus |
real |
0.007 |
|
A3_minus |
real |
0.00023 |
|
Wmax |
nS |
100nS |
|
Wmin |
nS |
0nS |
State variables
Name |
Physical unit |
Default value |
Description |
---|---|---|---|
w |
nS |
1nS |
Source code
synapse stdp_triplet:
state:
w nS = 1nS
end
parameters:
the_delay ms = 1ms # !!! cannot have a variable called "delay"
tau_plus ms = 16.8ms # time constant for tr_r1
tau_x ms = 101ms # time constant for tr_r2
tau_minus ms = 33.7ms # time constant for tr_o1
tau_y ms = 125ms # time constant for tr_o2
A2_plus real = 7.5e-10
A3_plus real = 0.0093
A2_minus real = 0.007
A3_minus real = 0.00023
Wmax nS = 100nS
Wmin nS = 0nS
end
equations:
kernel tr_r1_kernel = exp(-t / tau_plus)
inline tr_r1 real = convolve(tr_r1_kernel,pre_spikes)
kernel tr_r2_kernel = exp(-t / tau_x)
inline tr_r2 real = convolve(tr_r2_kernel,pre_spikes)
kernel tr_o1_kernel = exp(-t / tau_minus)
inline tr_o1 real = convolve(tr_o1_kernel,post_spikes)
kernel tr_o2_kernel = exp(-t / tau_y)
inline tr_o2 real = convolve(tr_o2_kernel,post_spikes)
end
input:
pre_spikes nS <-spike
post_spikes nS <-spike
end
output: spike
onReceive(post_spikes):
# potentiate synapse
#w_ nS = Wmax * ( w / Wmax + tr_r1 * ( A2_plus + A3_plus * tr_o2 ) )
w_ nS = w + tr_r1 * (A2_plus + A3_plus * tr_o2)
w = min(Wmax,w_)
end
onReceive(pre_spikes):
# depress synapse
#w_ nS = Wmax * ( w / Wmax - tr_o1 * ( A2_minus + A3_minus * tr_r2 ) )
w_ nS = w - tr_o1 * (A2_minus + A3_minus * tr_r2)
w = max(Wmin,w_)
# deliver spike to postsynaptic partner
deliver_spike(w,the_delay)
end
end