Une petite bibliothèque de primitives neuromorphiques : un neurone LIF, deux synapses et une interface neurone → synapse, assemblés en réseaux pour réaliser trois fonctions de calcul, en étudiant au passage leurs comportements non idéaux (seuil dynamique, mismatch, charge par spike).A small library of neuromorphic primitives: a LIF neuron, two synapses and a neuron → synapse interface, assembled into networks that perform three computations, studying along the way their non-ideal behaviour (dynamic threshold, mismatch, charge per spike).
14 / 30Tirages Monte-Carlo silencieux à 10 nASilent Monte-Carlo draws at 10 nA
~92 pCCharge par spike après mise en formeCharge per spike after shaping
~10 %Diaphonie du multiplexeurMUX crosstalk
QuoiWhat
Un modèle de neurone LIF électronique au niveau transistor, ses synapses, et trois démos de calcul neuromorphique simulées (additionneur en rate coding, WTA doux, multiplexeur).An electronic LIF neuron model at transistor level, its synapses, and three simulated neuromorphic computation demos (rate-coding adder, soft WTA, multiplexer).
PourquoiWhy
Explorer le calcul neuromorphique au niveau transistor : un MOS sous le seuil a une dépendance exponentielle analogue à celle de certains mécanismes de transport ionique.To explore neuromorphic computing at transistor level: a sub-threshold MOSFET has an exponential dependence analogous to that of some ion transport mechanisms.
CommentHow
Modèles MOS sub-threshold idéalisés et BS170 réel pour le reset, simulations ngspice pilotées en Python, Monte-Carlo sur les paramètres du modèle.Idealized sub-threshold MOS models and a real BS170 for the reset, ngspice simulations driven from Python, Monte-Carlo on the model parameters.
RésultatsResults
Résultats simulés (SPICE), pas encore mesurés : courbe f-I de la forme attendue, trois démos qui fonctionnent dans les conditions simulées (diaphonie du MUX ~10 %), et un Monte-Carlo qui montre que le mismatch peut réduire un tirage au silence.Simulated (SPICE) results, not yet measured: f-I curve of the expected shape, three demos that work under the simulated conditions (MUX crosstalk ~10 %), and a Monte-Carlo showing that mismatch can silence a draw.
Projet perso de l'été 2026 : une petite bibliothèque de primitives neuromorphiques (modèle de neurone LIF électronique, deux synapses, trois démos de calcul) prévue pour des MOS discrets BS170 / BS250 polarisés sous le seuil.
État du projet : les résultats viennent pour l'instant de simulations SPICE (ngspice, scripts Python) ; la suite, c'est la validation sur PCB. Les transistors sub-threshold sont des modèles idéalisés : seul le reset utilise le modèle d'un BS170 réel.
L'idée
L'analogie de Mead : chaque élément du neurone a son équivalent dans le circuit.Mead's analogy: each element of the neuron has a counterpart in the circuit.Le modèle LIF (Lapicque) : un circuit RC qui intègre le courant, un seuil, un reset. Trois paramètres : τ_m, V_th, V_reset.The LIF model (Lapicque): an RC circuit integrating the current, a threshold, a reset. Three parameters: τ_m, V_th, V_reset.
Carver Mead a observé qu'un MOS polarisé sous son seuil a un courant exponentiel en VGS, comme certains mécanismes de transport ionique. Plutôt que de simuler un neurone sur un microcontrôleur, je voulais un circuit analogique qui se comporte comme le modèle LIF (pour l'instant, en simulation) : le condensateur joue le rôle de la membrane, la fuite celui de la fuite ionique.
Méthode
La chaîne de simulation : tout est scripté, donc chaque courbe du projet se régénère.The simulation chain: everything is scripted, so every curve in the project can be regenerated.
Le modèle de neurone
Modèle de neurone LIF de type axon-hillock de Mead : intégration sur C_mem, deux inverseurs sub-threshold pour la bascule, reset par BS170.Mead axon-hillock LIF neuron model: integration on C_mem, two sub-threshold inverters for the switching, BS170 reset.Neurone axon-hillock au niveau transistor. Mp/Mn : MOS sub-threshold (SUBTH_PMOS / SUBTH_NMOS), reset par BS170 (rouge).Axon-hillock neuron at transistor level. Mp/Mn: sub-threshold MOSFETs (SUBTH_PMOS / SUBTH_NMOS), reset by the BS170 (red).
Un axon-hillock de Mead : Cmem = 100 pF en parallèle d'une fuite de 200 MΩ (τ = 20 ms), deux inverseurs CMOS sub-threshold en cascade, et un BS170 qui remet la membrane à zéro. Il a fallu corriger 4 bugs avant d'obtenir des spikes en simulation, dont une résistance parasite de 100 MΩ cachée dans le modèle SPICE du BS170 utilisé, qui empêchait Vm d'atteindre le seuil.
La courbe f-I simulée a la forme attendue (rhéobase simulé de 9 à 10 nA contre 7,5 nA en théorie). L'écart vient de l'hypothèse Vth = VDD/2 : le seuil dynamique relevé en simulation est de 2,08 V, bien au-dessus du seuil statique simulé (1,01 V). Je soupçonne un kickback capacitif du transistor de reset, sans l'avoir vérifié. Avec ce seuil, l'écart avec la théorie passe de −21/−35 % à +10/+18 %.
Courbe f-I simulée (ngspice, points bleus) contre la théorie LIF idéale (pointillés, V_th = 1,5 V). Rhéobase théorique : 7,5 nA ; premier spike simulé à 10 nA.Simulated f-I curve (ngspice, blue dots) against ideal LIF theory (dashed, V_th = 1.5 V). Theoretical rheobase: 7.5 nA; first simulated spike at 10 nA.
I_inj (nA)
f_sim (Hz)
f théorie, V_th = 1,5 Vf theory, V_th = 1.5 V
ÉcartGap
f théorie, V_th = 2,075 Vf theory, V_th = 2.075 V
ÉcartGap
10
8,47
36,07
−76,5 %
—
—
15
46,73
72,13
−35,2 %
42,50
+10,0 %
20
80,86
106,38
−24,0 %
68,36
+18,3 %
25
107,39
140,18
−23,4 %
93,26
+15,2 %
30
137,19
173,80
−21,1 %
117,82
+16,4 %
Démarche : le cas du seuil dynamique
La démarche appliquée au seuil dynamique du neurone : vert = fait en simulation, rouge = à faire sur PCB.The approach applied to the neuron's dynamic threshold: green = done in simulation, red = still to do on a PCB.
ÉtapeStep
Cas du seuil dynamiqueDynamic-threshold case
ProblèmeProblem
La courbe f-I simulée s'écarte de la théorie (−76 % à 10 nA).The simulated f-I curve departs from theory (−76 % at 10 nA).
HypothèseHypothesis
Le seuil de bascule n'est pas V_DD/2 = 1,5 V.The switching threshold is not V_DD/2 = 1.5 V.
ConceptionDesign
Simulation transitoire dédiée (pas de 1 µs) : on relève V_m quand V_spike franchit 1,5 V.Dedicated transient simulation (1 µs step): V_m is read when V_spike crosses 1.5 V.
SimulationSimulation
Seuil dynamique ≈ 2,08 V, constant (2,075 ± 0,006 V sur 10 à 30 nA, 5 points) ; seuil statique 1,01 V.Dynamic threshold ≈ 2.08 V, constant (2.075 ± 0.006 V over 10 to 30 nA, 5 points); static threshold 1.01 V.
MesureMeasurement
À faire sur PCB.To do on a PCB.
AnalyseAnalysis
Avec V_th = 2,075 V : écart de +10 à +18 % au lieu de −21 à −35 %.With V_th = 2.075 V: gap of +10 to +18 % instead of −21 to −35 %.
CritiqueCritique
À 10 nA l'asymptote RC (2,000 V) est sous le seuil relevé : un kickback capacitif du reset est plausible, non vérifié. La bascule n'est pas instantanée, ce qui explique l'écart résiduel.At 10 nA the RC asymptote (2.000 V) is below the dynamic threshold extracted from simulation: capacitive kickback from the reset is plausible, unverified. The switching is not instantaneous, which accounts for the residual gap.
Trajectoire simulée de V_m à 10 nA : la bascule a lieu à V_m ≈ 2,08 V (seuil dynamique), bien au-dessus du seuil statique (1,01 V) et de l'hypothèse V_DD/2 (1,5 V).Simulated V_m trajectory at 10 nA: switching happens at V_m ≈ 2.08 V (dynamic threshold), well above the static threshold (1.01 V) and the V_DD/2 assumption (1.5 V).
Mismatch (Monte-Carlo sur les paramètres du modèle)
Les tirages portent sur les paramètres du modèle SPICE. Je n'ai rien mesuré sur de vrais composants, donc les écarts-types sont des hypothèses.
Avec σ(VT0) = 150 mV (hypothèse pour des MOS discrets) sur 30 tirages : dispersion simulée de f de 14 à 19 %, et à 10 nA, 14 tirages sur 30 ne spikent plus.
En faisant aussi varier I0, κ et le paramètre VTO du modèle du transistor de reset (un seuil dont la dispersion réelle est forte, de l'ordre de 0,8 à 3 V d'après la fiche technique) : 2 tirages sur 30 restent silencieux sur toute la gamme simulée. Ce sont ceux dont le VTO de reset est le plus bas (< 1,5 V dans ce modèle). Mon hypothèse : le reset conduit trop tôt et vide la membrane. À vérifier expérimentalement ; si c'est confirmé, il faudra trier les BS170 réels.
Monte-Carlo sur les paramètres du modèle (σ(V_T0) = 150 mV, 30 tirages) : faisceau de courbes f-I, moyenne ±1σ et nominal. À 10 nA, 14 tirages sur 30 sont silencieux.Monte-Carlo on the model parameters (σ(V_T0) = 150 mV, 30 draws): f-I curve bundle, mean ±1σ and nominal. At 10 nA, 14 draws out of 30 are silent.Monte-Carlo étendu : nuage f-I (gauche), coefficient de variation de f par courant (centre), et statut de chaque tirage selon son V_TO de reset (droite). Les deux tirages silencieux partout ont le V_TO de reset le plus bas : hypothèse non vérifiée (« mort » sur le graphe = silencieux en simulation).Extended Monte-Carlo: f-I cloud (left), coefficient of variation of f per current (middle), and status of each draw by its reset V_TO (right). The two draws silent everywhere have the lowest reset V_TO: unverified hypothesis ('mort' on the plot = silent in simulation).Hypothèse (à vérifier) pour les 2 tirages silencieux du Monte-Carlo étendu : un reset au V_TO trop bas viderait la membrane en continu.Hypothesis (to be checked) for the 2 silent draws of the extended Monte-Carlo: a reset with too low a V_TO would drain the membrane continuously.
Synapses et interface
Les deux synapses : un seul transistor chacune. L'excitatrice injecte du courant, l'inhibitrice court-circuite la membrane.The two synapses: a single transistor each. The excitatory one injects current, the inhibitory one shorts the membrane.Réponse simulée de la synapse inhibitrice : V_m, pré-chargé à 1,5 V, est tiré à ~7 mV en 1 ms par un spike inhibiteur (V_inh = 0,75 V), puis se recharge.Simulated response of the inhibitory synapse: V_m, pre-charged to 1.5 V, is pulled down to ~7 mV in 1 ms by an inhibitory spike (V_inh = 0.75 V), then recharges.Le monostable peak-and-hold : la diode charge C_hold au passage du spike, R_hold le décharge lentement. Le shaper convertit v_hold en v_pre (PMOS) ou v_gate (NMOS).The peak-and-hold monostable: the diode charges C_hold when the spike passes, R_hold discharges it slowly. The shaper converts v_hold into v_pre (PMOS) or v_gate (NMOS).Monostable peak-and-hold simulé : le v_spike brut (0,17 µs) est quasi invisible à cette échelle, v_hold (pic 1,5 V) décroît avec τ ≈ 1 ms.Simulated peak-and-hold monostable: the raw v_spike (0.17 µs) is almost invisible at this scale, v_hold (1.5 V peak) decays with τ ≈ 1 ms.Interface neurone → synapse : sans monostable, la charge injectée par spike est ~7000× trop faible.Neuron → synapse interface: without the monostable, the charge injected per spike is ~7000× too small.
Excitatrice (PMOS) : ~15 pC par spike dans le modèle, courant moyen linéaire avec la fréquence (R² = 1,0 en simulation).
Inhibitrice par shunt (NMOS) : elle tire la membrane vers la masse. Au-dessus de ~70 Hz d'inhibition, le modèle de neurone est réduit au silence dans cette simulation : c'est le mécanisme utilisé pour le WTA doux.
Le problème d'interface : le spike simulé dure 0,17 µs et monte à 2,03 V, trop court pour une synapse (~2 fC par spike au lieu de ~15 pC). Pas question de tricher avec un I0 énorme : j'ai ajouté un monostable à maintien de charge (diode + condensateur + résistance, τ ≈ 1 ms), et la charge par spike passe à ~92 pC.
Les trois démos (simulées)
Additionneur en rate coding : les taux de décharge de deux neurones s'additionnent sur un troisième, en simulation. f3 = 0,62·(f1+f2) − 23, R² = 0,98 sur le balayage simulé. Le modèle de neurone de sortie spike plus que ne le prédit son courant moyen : je pense que c'est une excitabilité tirée par les fluctuations, mais je ne l'ai pas testé hors simulation.
Mécanisme de compétition de type soft Winner-Take-All (WTA doux) : à I1 = I2, rapport f1/f2 = 1,000. Il monte de façon continue de 0,18 à 2,5 avec ΔI : ce n'est pas une bascule dure (rien dans le montage ne prévoyait mieux).
Multiplexeur 2:1 par shunting : ça fonctionne en simulation comme preuve de concept, sans aller jusqu'à une implémentation neuromorphique complète d'un multiplexeur. Sorties simulées à 56,6 Hz (canal A) et 19,4 Hz (canal B), diaphonie résiduelle ~10 %, bascule en ~72 ms. Il a fallu un shunt 50× plus fort, et la simulation a révélé un seuil de transmission synaptique (≳ 20 nA).
Démo 1 (simulée), additionneur en rate coding : deux modèles de neurone d'entrée excitent un troisième via deux synapses.Demo 1 (simulated), rate-coding adder: two input neuron models excite a third one through two synapses.Démo 1 simulée : f₁, f₂, f₃ selon I₁ avec I₂ = 12 nA (gauche) ; f₃ simulé contre la prédiction par courant moyen équivalent (droite). Régression f₃ = 0,622·(f₁+f₂) − 23,1, R² = 0,977.Simulated demo 1: f₁, f₂, f₃ versus I₁ with I₂ = 12 nA (left); simulated f₃ against the equivalent-mean-current prediction (right). Regression f₃ = 0.622·(f₁+f₂) − 23.1, R² = 0.977.Démo 2 (simulée), compétition de type soft Winner-Take-All : N1 et N2 excitent N_inh, qui les inhibe en retour par un shunt partagé (rouge). Le rapport f₁/f₂ monte de 0,18 à 2,5 avec ΔI : un WTA « doux ».Demo 2 (simulated), soft Winner-Take-All competition: N1 and N2 excite N_inh, which inhibits them back through a shared shunt (red). The f₁/f₂ ratio goes from 0.18 to 2.5 with ΔI: a "soft" WTA.Démo 2 simulée : f₁, f₂ et f_inh selon I₁ avec I₂ = 15 nA (gauche) ; rapport f₁/f₂ selon ΔI = I₁ − I₂, monotone et égal à 1 en ΔI = 0 (droite).Simulated demo 2: f₁, f₂ and f_inh versus I₁ with I₂ = 15 nA (left); ratio f₁/f₂ versus ΔI = I₁ − I₂, monotonic and equal to 1 at ΔI = 0 (right).Démo 3 (simulée), preuve de concept de multiplexeur 2:1 : C ferme le canal A, et ferme N_tonic. N_tonic (« not C ») ferme le canal B tant que C est silencieux. Y ≈ A si C = 0, Y ≈ B si C = 1.Demo 3 (simulated), 2:1 multiplexer proof of concept: C closes channel A and silences N_tonic. N_tonic ("not C") closes channel B while C is silent. Y ≈ A if C = 0, Y ≈ B if C = 1.Démo 3 simulée : fréquence de sortie f_Y dans les quatre conditions, avec une diaphonie de +8,9 % et +10,5 % (gauche) ; f_Y instantanée autour de la commutation de C à t = 1 s, du plafond A au plafond B en ≈ 72 ms (droite).Simulated demo 3: output frequency f_Y in the four conditions, with +8.9 % and +10.5 % crosstalk (left); instantaneous f_Y around the switch of C at t = 1 s, from the A ceiling to the B ceiling in ≈ 72 ms (right).Les 8 phases du projet : les phases 0 à 5 sont faites en simulation, la validation Nengo et la synthèse restent à faire.The 8 project phases: phases 0 to 5 are done in simulation, the Nengo validation and the write-up are still to do.
Et ensuite
Tout ce qui précède vient de simulations SPICE. L'étape suivante est le PCB : caractériser des BS170 / BS250 réels (la seule étape qui ne se fait pas en simulation), vérifier l'hypothèse sur les tirages silencieux, valider les démos avec Nengo, puis faire le montage physique.
Sources
Lapicque, L. (1907). Recherches quantitatives sur l'excitation électrique des nerfs traitée comme une polarisation. J. Physiol. Pathol. Gén., 9, 620–635. — modèle LIF
Hodgkin, A. L. & Huxley, A. F. (1952). A quantitative description of membrane current and its application to conduction and excitation in nerve. J. Physiol., 117, 500–544. doi:10.1113/jphysiol.1952.sp004764 — modèle de référence du neurone biologique
Gerstner, W. & Kistler, W. M. (2002). Spiking Neuron Models. Cambridge University Press. — modèles à seuil et à fuite
Mead, C. (1989). Analog VLSI and Neural Systems. Addison-Wesley. — transistor sub-threshold et neurone axon-hillock
Mead, C. (1990). Neuromorphic electronic systems. Proc. IEEE, 78(10), 1629–1636. doi:10.1109/5.58356
Liu, S.-C. et al. (2002). Analog VLSI: Circuits and Principles. MIT Press. — équation du MOS sub-threshold
Indiveri, G. et al. (2011). Neuromorphic silicon neuron circuits. Front. Neurosci., 5, 73. frontiersin.org — revue des neurones en silicium
Lazzaro, J., Ryckebusch, S., Mahowald, M. A. & Mead, C. A. (1989). Winner-take-all networks of O(n) complexity. NIPS 1. neurips.cc — winner-take-all analogique de référence (le WTA doux s'en inspire sans le reproduire)
Holt, G. R. & Koch, C. (1997). Shunting inhibition does not have a divisive effect on firing rates. Neural Computation, 9(5). mlanthology.org — effet de l'inhibition par shunt sur la fréquence de décharge
Personal project, summer 2026: a small library of neuromorphic primitives (electronic LIF neuron model, two synapses, three computation demos) intended for discrete BS170 / BS250 MOSFETs biased below threshold.
Project status: for now the results come from SPICE simulations (ngspice, Python scripts); the next step is validating on a PCB. The sub-threshold transistors are idealized models: only the reset uses the model of a real BS170.
The idea
L'analogie de Mead : chaque élément du neurone a son équivalent dans le circuit.Mead's analogy: each element of the neuron has a counterpart in the circuit.Le modèle LIF (Lapicque) : un circuit RC qui intègre le courant, un seuil, un reset. Trois paramètres : τ_m, V_th, V_reset.The LIF model (Lapicque): an RC circuit integrating the current, a threshold, a reset. Three parameters: τ_m, V_th, V_reset.
Carver Mead observed that a MOSFET biased below its threshold has a current that is exponential in VGS, like some ion transport mechanisms. Rather than simulating a neuron on a microcontroller, I wanted an analog circuit that behaves like the LIF model (for now, in simulation): the capacitor plays the membrane, the leak plays the ionic leak.
Method
La chaîne de simulation : tout est scripté, donc chaque courbe du projet se régénère.The simulation chain: everything is scripted, so every curve in the project can be regenerated.
The neuron model
Modèle de neurone LIF de type axon-hillock de Mead : intégration sur C_mem, deux inverseurs sub-threshold pour la bascule, reset par BS170.Mead axon-hillock LIF neuron model: integration on C_mem, two sub-threshold inverters for the switching, BS170 reset.Neurone axon-hillock au niveau transistor. Mp/Mn : MOS sub-threshold (SUBTH_PMOS / SUBTH_NMOS), reset par BS170 (rouge).Axon-hillock neuron at transistor level. Mp/Mn: sub-threshold MOSFETs (SUBTH_PMOS / SUBTH_NMOS), reset by the BS170 (red).
A Mead axon-hillock: Cmem = 100 pF in parallel with a 200 MΩ leak (τ = 20 ms), two sub-threshold CMOS inverters in cascade, and a BS170 that resets the membrane. It took 4 bug fixes before getting spikes in simulation, including a 100 MΩ parasitic resistor hidden in the SPICE model of the BS170 used, which kept Vm from reaching threshold.
The simulated f-I curve has the expected shape (simulated rheobase of 9 to 10 nA vs 7.5 nA in theory). The gap comes from assuming Vth = VDD/2: the dynamic threshold extracted from simulation is 2.08 V, well above the simulated static threshold (1.01 V). I suspect capacitive kickback from the reset transistor, but I haven't checked. With this threshold the gap to theory goes from −21/−35 % to +10/+18 %.
Courbe f-I simulée (ngspice, points bleus) contre la théorie LIF idéale (pointillés, V_th = 1,5 V). Rhéobase théorique : 7,5 nA ; premier spike simulé à 10 nA.Simulated f-I curve (ngspice, blue dots) against ideal LIF theory (dashed, V_th = 1.5 V). Theoretical rheobase: 7.5 nA; first simulated spike at 10 nA.
I_inj (nA)
f_sim (Hz)
f théorie, V_th = 1,5 Vf theory, V_th = 1.5 V
ÉcartGap
f théorie, V_th = 2,075 Vf theory, V_th = 2.075 V
ÉcartGap
10
8,47
36,07
−76,5 %
—
—
15
46,73
72,13
−35,2 %
42,50
+10,0 %
20
80,86
106,38
−24,0 %
68,36
+18,3 %
25
107,39
140,18
−23,4 %
93,26
+15,2 %
30
137,19
173,80
−21,1 %
117,82
+16,4 %
Approach: the dynamic-threshold case
La démarche appliquée au seuil dynamique du neurone : vert = fait en simulation, rouge = à faire sur PCB.The approach applied to the neuron's dynamic threshold: green = done in simulation, red = still to do on a PCB.
ÉtapeStep
Cas du seuil dynamiqueDynamic-threshold case
ProblèmeProblem
La courbe f-I simulée s'écarte de la théorie (−76 % à 10 nA).The simulated f-I curve departs from theory (−76 % at 10 nA).
HypothèseHypothesis
Le seuil de bascule n'est pas V_DD/2 = 1,5 V.The switching threshold is not V_DD/2 = 1.5 V.
ConceptionDesign
Simulation transitoire dédiée (pas de 1 µs) : on relève V_m quand V_spike franchit 1,5 V.Dedicated transient simulation (1 µs step): V_m is read when V_spike crosses 1.5 V.
SimulationSimulation
Seuil dynamique ≈ 2,08 V, constant (2,075 ± 0,006 V sur 10 à 30 nA, 5 points) ; seuil statique 1,01 V.Dynamic threshold ≈ 2.08 V, constant (2.075 ± 0.006 V over 10 to 30 nA, 5 points); static threshold 1.01 V.
MesureMeasurement
À faire sur PCB.To do on a PCB.
AnalyseAnalysis
Avec V_th = 2,075 V : écart de +10 à +18 % au lieu de −21 à −35 %.With V_th = 2.075 V: gap of +10 to +18 % instead of −21 to −35 %.
CritiqueCritique
À 10 nA l'asymptote RC (2,000 V) est sous le seuil relevé : un kickback capacitif du reset est plausible, non vérifié. La bascule n'est pas instantanée, ce qui explique l'écart résiduel.At 10 nA the RC asymptote (2.000 V) is below the dynamic threshold extracted from simulation: capacitive kickback from the reset is plausible, unverified. The switching is not instantaneous, which accounts for the residual gap.
Trajectoire simulée de V_m à 10 nA : la bascule a lieu à V_m ≈ 2,08 V (seuil dynamique), bien au-dessus du seuil statique (1,01 V) et de l'hypothèse V_DD/2 (1,5 V).Simulated V_m trajectory at 10 nA: switching happens at V_m ≈ 2.08 V (dynamic threshold), well above the static threshold (1.01 V) and the V_DD/2 assumption (1.5 V).
Mismatch (Monte-Carlo on model parameters)
The draws are on the SPICE model parameters. I haven't measured anything on real components, so the standard deviations are assumptions.
With σ(VT0) = 150 mV (an assumption for discrete MOSFETs) over 30 draws: simulated spread of f of 14 to 19 %, and at 10 nA, 14 draws out of 30 stop spiking.
Also varying I0, κ and the VTO parameter of the reset transistor model (a threshold whose real spread is large, around 0.8 to 3 V according to the datasheet): 2 draws out of 30 stay silent over the whole simulated range. They are the ones with the lowest reset VTO (< 1.5 V in this model). My guess: the reset conducts too early and drains the membrane. To be verified experimentally; if confirmed, real BS170s will need sorting.
Monte-Carlo sur les paramètres du modèle (σ(V_T0) = 150 mV, 30 tirages) : faisceau de courbes f-I, moyenne ±1σ et nominal. À 10 nA, 14 tirages sur 30 sont silencieux.Monte-Carlo on the model parameters (σ(V_T0) = 150 mV, 30 draws): f-I curve bundle, mean ±1σ and nominal. At 10 nA, 14 draws out of 30 are silent.Monte-Carlo étendu : nuage f-I (gauche), coefficient de variation de f par courant (centre), et statut de chaque tirage selon son V_TO de reset (droite). Les deux tirages silencieux partout ont le V_TO de reset le plus bas : hypothèse non vérifiée (« mort » sur le graphe = silencieux en simulation).Extended Monte-Carlo: f-I cloud (left), coefficient of variation of f per current (middle), and status of each draw by its reset V_TO (right). The two draws silent everywhere have the lowest reset V_TO: unverified hypothesis ('mort' on the plot = silent in simulation).Hypothèse (à vérifier) pour les 2 tirages silencieux du Monte-Carlo étendu : un reset au V_TO trop bas viderait la membrane en continu.Hypothesis (to be checked) for the 2 silent draws of the extended Monte-Carlo: a reset with too low a V_TO would drain the membrane continuously.
Synapses and interface
Les deux synapses : un seul transistor chacune. L'excitatrice injecte du courant, l'inhibitrice court-circuite la membrane.The two synapses: a single transistor each. The excitatory one injects current, the inhibitory one shorts the membrane.Réponse simulée de la synapse inhibitrice : V_m, pré-chargé à 1,5 V, est tiré à ~7 mV en 1 ms par un spike inhibiteur (V_inh = 0,75 V), puis se recharge.Simulated response of the inhibitory synapse: V_m, pre-charged to 1.5 V, is pulled down to ~7 mV in 1 ms by an inhibitory spike (V_inh = 0.75 V), then recharges.Le monostable peak-and-hold : la diode charge C_hold au passage du spike, R_hold le décharge lentement. Le shaper convertit v_hold en v_pre (PMOS) ou v_gate (NMOS).The peak-and-hold monostable: the diode charges C_hold when the spike passes, R_hold discharges it slowly. The shaper converts v_hold into v_pre (PMOS) or v_gate (NMOS).Monostable peak-and-hold simulé : le v_spike brut (0,17 µs) est quasi invisible à cette échelle, v_hold (pic 1,5 V) décroît avec τ ≈ 1 ms.Simulated peak-and-hold monostable: the raw v_spike (0.17 µs) is almost invisible at this scale, v_hold (1.5 V peak) decays with τ ≈ 1 ms.Interface neurone → synapse : sans monostable, la charge injectée par spike est ~7000× trop faible.Neuron → synapse interface: without the monostable, the charge injected per spike is ~7000× too small.
Excitatory (PMOS): ~15 pC per spike in the model, mean current linear with frequency (R² = 1.0 in simulation).
Shunting inhibitory (NMOS): pulls the membrane to ground. Above ~70 Hz of inhibition the neuron model goes silent in this simulation: this is the mechanism used for the soft WTA.
The interface problem: the simulated spike lasts 0.17 µs and reaches 2.03 V, too short for a synapse (~2 fC per spike instead of ~15 pC). No cheating with a huge I0: I added a charge-holding monostable (diode + capacitor + resistor, τ ≈ 1 ms), and the charge per spike goes up to ~92 pC.
The three demos (simulated)
Rate-coding adder: the firing rates of two neurons add up on a third one, in simulation. f3 = 0.62·(f1+f2) − 23, R² = 0.98 on the simulated sweep. The output neuron model spikes more than its mean current predicts: I think it is fluctuation-driven excitability, but I haven't tested that outside simulation.
Soft Winner-Take-All (soft WTA) competition mechanism: at I1 = I2, f1/f2 = 1.000. It rises smoothly from 0.18 to 2.5 with ΔI: it is not a hard switch (nothing in the circuit would give better).
2:1 multiplexer by shunting: it works in simulation as a proof of concept, without going as far as a complete neuromorphic implementation of a multiplexer. Simulated outputs at 56.6 Hz (channel A) and 19.4 Hz (channel B), ~10 % residual crosstalk, switches in ~72 ms. It needed a 50× stronger shunt, and the simulation revealed a synaptic transmission threshold (≳ 20 nA).
Démo 1 (simulée), additionneur en rate coding : deux modèles de neurone d'entrée excitent un troisième via deux synapses.Demo 1 (simulated), rate-coding adder: two input neuron models excite a third one through two synapses.Démo 1 simulée : f₁, f₂, f₃ selon I₁ avec I₂ = 12 nA (gauche) ; f₃ simulé contre la prédiction par courant moyen équivalent (droite). Régression f₃ = 0,622·(f₁+f₂) − 23,1, R² = 0,977.Simulated demo 1: f₁, f₂, f₃ versus I₁ with I₂ = 12 nA (left); simulated f₃ against the equivalent-mean-current prediction (right). Regression f₃ = 0.622·(f₁+f₂) − 23.1, R² = 0.977.Démo 2 (simulée), compétition de type soft Winner-Take-All : N1 et N2 excitent N_inh, qui les inhibe en retour par un shunt partagé (rouge). Le rapport f₁/f₂ monte de 0,18 à 2,5 avec ΔI : un WTA « doux ».Demo 2 (simulated), soft Winner-Take-All competition: N1 and N2 excite N_inh, which inhibits them back through a shared shunt (red). The f₁/f₂ ratio goes from 0.18 to 2.5 with ΔI: a "soft" WTA.Démo 2 simulée : f₁, f₂ et f_inh selon I₁ avec I₂ = 15 nA (gauche) ; rapport f₁/f₂ selon ΔI = I₁ − I₂, monotone et égal à 1 en ΔI = 0 (droite).Simulated demo 2: f₁, f₂ and f_inh versus I₁ with I₂ = 15 nA (left); ratio f₁/f₂ versus ΔI = I₁ − I₂, monotonic and equal to 1 at ΔI = 0 (right).Démo 3 (simulée), preuve de concept de multiplexeur 2:1 : C ferme le canal A, et ferme N_tonic. N_tonic (« not C ») ferme le canal B tant que C est silencieux. Y ≈ A si C = 0, Y ≈ B si C = 1.Demo 3 (simulated), 2:1 multiplexer proof of concept: C closes channel A and silences N_tonic. N_tonic ("not C") closes channel B while C is silent. Y ≈ A if C = 0, Y ≈ B if C = 1.Démo 3 simulée : fréquence de sortie f_Y dans les quatre conditions, avec une diaphonie de +8,9 % et +10,5 % (gauche) ; f_Y instantanée autour de la commutation de C à t = 1 s, du plafond A au plafond B en ≈ 72 ms (droite).Simulated demo 3: output frequency f_Y in the four conditions, with +8.9 % and +10.5 % crosstalk (left); instantaneous f_Y around the switch of C at t = 1 s, from the A ceiling to the B ceiling in ≈ 72 ms (right).Les 8 phases du projet : les phases 0 à 5 sont faites en simulation, la validation Nengo et la synthèse restent à faire.The 8 project phases: phases 0 to 5 are done in simulation, the Nengo validation and the write-up are still to do.
Next
Everything above comes from SPICE simulations. The next step is the PCB: characterizing real BS170 / BS250 (the only step that can't be done in simulation), checking the hypothesis on the silent draws, validating the demos with Nengo, then building the physical circuit.
Sources
Lapicque, L. (1907). Recherches quantitatives sur l'excitation électrique des nerfs traitée comme une polarisation. J. Physiol. Pathol. Gén., 9, 620–635. — LIF model
Hodgkin, A. L. & Huxley, A. F. (1952). A quantitative description of membrane current and its application to conduction and excitation in nerve. J. Physiol., 117, 500–544. doi:10.1113/jphysiol.1952.sp004764 — reference model of the biological neuron
Gerstner, W. & Kistler, W. M. (2002). Spiking Neuron Models. Cambridge University Press. — leaky threshold models
Mead, C. (1989). Analog VLSI and Neural Systems. Addison-Wesley. — sub-threshold transistor and axon-hillock neuron
Mead, C. (1990). Neuromorphic electronic systems. Proc. IEEE, 78(10), 1629–1636. doi:10.1109/5.58356
Liu, S.-C. et al. (2002). Analog VLSI: Circuits and Principles. MIT Press. — sub-threshold MOSFET equation
Indiveri, G. et al. (2011). Neuromorphic silicon neuron circuits. Front. Neurosci., 5, 73. frontiersin.org — review of silicon neurons
Lazzaro, J., Ryckebusch, S., Mahowald, M. A. & Mead, C. A. (1989). Winner-take-all networks of O(n) complexity. NIPS 1. neurips.cc — reference analog winner-take-all (the soft WTA is inspired by it, not a reproduction)
Holt, G. R. & Koch, C. (1997). Shunting inhibition does not have a divisive effect on firing rates. Neural Computation, 9(5). mlanthology.org — effect of shunting inhibition on firing rate