Safouane NOUBIR, Yannick BORNAT and Bertrand LE GAL
IMS Laboratory, UMR CNRS 5218, Bordeaux INP, University of Bordeaux
Talence, France
Real-time analysis of living biological cell activity
Signal processing system System complexity
Conclusion and Perspectives Design methodology
Application domain Abstract
Processing system for cell network identification
Behavioral description of the processing system
System design constraints
DASIP’18 : the Conference on Design and Architectures for Signal and Image Processing, Porto, Portugal, October 2018.
(a) spike detection
HPF SWT Mono CM OUT
IN
(b) inter-channel correlation Signal processing system
<latexit sha1_base64="QlCqhBrKZNLJfqGbfEpluChfxGY=">AAAC8XicjVLLSsQwFD3W1/gedemmOAiuhlYEXQ66cangzAgq0tbMGO2LJhVE/Ae3uhK3fpF/oPgTnsQKPvCR0vbk3HPuzU0S5rFU2vMeB5zBoeGR0drY+MTk1PRMfXauo7KyiEQ7yuKs2AsDJWKZiraWOhZ7eSGCJIxFNzzbNPHuuSiUzNJdfZGLwyTop7Ino0CT6hwo2U+Co3rDa3p2uN+BX4EGqrGd1V9wgGNkiFAigUAKTRwjgOKzDx8ecnKHuCRXEEkbF7jCOL0lVYKKgOwZv33O9is25dzkVNYdsUrMt6DTxRI9GXUFsanm2nhpMxv2p9yXNqdZ2wX/YZUrIatxQvYv37vyvz7Ti0YP67YHyZ5yy5juoipLaXfFrNz90JVmhpycwceMF8SRdb7vs2s9yvZu9jaw8SerNKyZR5W2xPOv3eWs0GNto+XJ8CL4X4/9O+isNH2v6e+sNlob1ZWoYQGLWOa5r6GFLWyjzTqnuMYNbh3l3Dh3zv2b1BmoPPP4NJyHV+M7moc=</latexit><latexit sha1_base64="QlCqhBrKZNLJfqGbfEpluChfxGY=">AAAC8XicjVLLSsQwFD3W1/gedemmOAiuhlYEXQ66cangzAgq0tbMGO2LJhVE/Ae3uhK3fpF/oPgTnsQKPvCR0vbk3HPuzU0S5rFU2vMeB5zBoeGR0drY+MTk1PRMfXauo7KyiEQ7yuKs2AsDJWKZiraWOhZ7eSGCJIxFNzzbNPHuuSiUzNJdfZGLwyTop7Ino0CT6hwo2U+Co3rDa3p2uN+BX4EGqrGd1V9wgGNkiFAigUAKTRwjgOKzDx8ecnKHuCRXEEkbF7jCOL0lVYKKgOwZv33O9is25dzkVNYdsUrMt6DTxRI9GXUFsanm2nhpMxv2p9yXNqdZ2wX/YZUrIatxQvYv37vyvz7Ti0YP67YHyZ5yy5juoipLaXfFrNz90JVmhpycwceMF8SRdb7vs2s9yvZu9jaw8SerNKyZR5W2xPOv3eWs0GNto+XJ8CL4X4/9O+isNH2v6e+sNlob1ZWoYQGLWOa5r6GFLWyjzTqnuMYNbh3l3Dh3zv2b1BmoPPP4NJyHV+M7moc=</latexit><latexit sha1_base64="QlCqhBrKZNLJfqGbfEpluChfxGY=">AAAC8XicjVLLSsQwFD3W1/gedemmOAiuhlYEXQ66cangzAgq0tbMGO2LJhVE/Ae3uhK3fpF/oPgTnsQKPvCR0vbk3HPuzU0S5rFU2vMeB5zBoeGR0drY+MTk1PRMfXauo7KyiEQ7yuKs2AsDJWKZiraWOhZ7eSGCJIxFNzzbNPHuuSiUzNJdfZGLwyTop7Ino0CT6hwo2U+Co3rDa3p2uN+BX4EGqrGd1V9wgGNkiFAigUAKTRwjgOKzDx8ecnKHuCRXEEkbF7jCOL0lVYKKgOwZv33O9is25dzkVNYdsUrMt6DTxRI9GXUFsanm2nhpMxv2p9yXNqdZ2wX/YZUrIatxQvYv37vyvz7Ti0YP67YHyZ5yy5juoipLaXfFrNz90JVmhpycwceMF8SRdb7vs2s9yvZu9jaw8SerNKyZR5W2xPOv3eWs0GNto+XJ8CL4X4/9O+isNH2v6e+sNlob1ZWoYQGLWOa5r6GFLWyjzTqnuMYNbh3l3Dh3zv2b1BmoPPP4NJyHV+M7moc=</latexit><latexit sha1_base64="QlCqhBrKZNLJfqGbfEpluChfxGY=">AAAC8XicjVLLSsQwFD3W1/gedemmOAiuhlYEXQ66cangzAgq0tbMGO2LJhVE/Ae3uhK3fpF/oPgTnsQKPvCR0vbk3HPuzU0S5rFU2vMeB5zBoeGR0drY+MTk1PRMfXauo7KyiEQ7yuKs2AsDJWKZiraWOhZ7eSGCJIxFNzzbNPHuuSiUzNJdfZGLwyTop7Ino0CT6hwo2U+Co3rDa3p2uN+BX4EGqrGd1V9wgGNkiFAigUAKTRwjgOKzDx8ecnKHuCRXEEkbF7jCOL0lVYKKgOwZv33O9is25dzkVNYdsUrMt6DTxRI9GXUFsanm2nhpMxv2p9yXNqdZ2wX/YZUrIatxQvYv37vyvz7Ti0YP67YHyZ5yy5juoipLaXfFrNz90JVmhpycwceMF8SRdb7vs2s9yvZu9jaw8SerNKyZR5W2xPOv3eWs0GNto+XJ8CL4X4/9O+isNH2v6e+sNlob1ZWoYQGLWOa5r6GFLWyjzTqnuMYNbh3l3Dh3zv2b1BmoPPP4NJyHV+M7moc=</latexit>
e x
<latexit sha1_base64="9VcLpn75v0Ow2R4s5D+sbVL4PXU=">AAAC8XicjVLLSsNAFD3GV31XXboJFsGNJRFBl6IblxXsA+qDJJ3W2DQJyUSU0n9wW1fi1i/yDxR/wjNjBB/4mJDkzLnn3Dt3Ztw48FNpWY8jxujY+MRkYWp6ZnZufqG4uFRLoyzxRNWLgihpuE4qAj8UVenLQDTiRDg9NxB1t7uv4vVLkaR+FB7J61ic9JxO6Ld9z5GkauK0v3E1OCuWrLKlh/kd2DkoIR+VqPiCY7QQwUOGHgRCSOIADlI+TdiwEJM7QZ9cQuTruMAA0/RmVAkqHLJdfjucNXM25FzlTLXbY5WAb0KniTV6IuoSYlXN1PFMZ1bsT7n7Oqda2zX/bp6rR1binOxfvnflf32qF4k2dnQPPnuKNaO68/Ismd4VtXLzQ1eSGWJyCrcYT4g97XzfZ1N7Ut272ltHx5+0UrFq7uXaDM+/dhezQpu1lZYnw4tgfz3276C2Wbatsn24Vdrdy69EAStYxTrPfRu7OEAFVda5wA2GuDVSY2jcGfdvUmMk9yzj0zAeXgHB+Zp6</latexit><latexit sha1_base64="9VcLpn75v0Ow2R4s5D+sbVL4PXU=">AAAC8XicjVLLSsNAFD3GV31XXboJFsGNJRFBl6IblxXsA+qDJJ3W2DQJyUSU0n9wW1fi1i/yDxR/wjNjBB/4mJDkzLnn3Dt3Ztw48FNpWY8jxujY+MRkYWp6ZnZufqG4uFRLoyzxRNWLgihpuE4qAj8UVenLQDTiRDg9NxB1t7uv4vVLkaR+FB7J61ic9JxO6Ld9z5GkauK0v3E1OCuWrLKlh/kd2DkoIR+VqPiCY7QQwUOGHgRCSOIADlI+TdiwEJM7QZ9cQuTruMAA0/RmVAkqHLJdfjucNXM25FzlTLXbY5WAb0KniTV6IuoSYlXN1PFMZ1bsT7n7Oqda2zX/bp6rR1binOxfvnflf32qF4k2dnQPPnuKNaO68/Ismd4VtXLzQ1eSGWJyCrcYT4g97XzfZ1N7Ut272ltHx5+0UrFq7uXaDM+/dhezQpu1lZYnw4tgfz3276C2Wbatsn24Vdrdy69EAStYxTrPfRu7OEAFVda5wA2GuDVSY2jcGfdvUmMk9yzj0zAeXgHB+Zp6</latexit><latexit sha1_base64="9VcLpn75v0Ow2R4s5D+sbVL4PXU=">AAAC8XicjVLLSsNAFD3GV31XXboJFsGNJRFBl6IblxXsA+qDJJ3W2DQJyUSU0n9wW1fi1i/yDxR/wjNjBB/4mJDkzLnn3Dt3Ztw48FNpWY8jxujY+MRkYWp6ZnZufqG4uFRLoyzxRNWLgihpuE4qAj8UVenLQDTiRDg9NxB1t7uv4vVLkaR+FB7J61ic9JxO6Ld9z5GkauK0v3E1OCuWrLKlh/kd2DkoIR+VqPiCY7QQwUOGHgRCSOIADlI+TdiwEJM7QZ9cQuTruMAA0/RmVAkqHLJdfjucNXM25FzlTLXbY5WAb0KniTV6IuoSYlXN1PFMZ1bsT7n7Oqda2zX/bp6rR1binOxfvnflf32qF4k2dnQPPnuKNaO68/Ismd4VtXLzQ1eSGWJyCrcYT4g97XzfZ1N7Ut272ltHx5+0UrFq7uXaDM+/dhezQpu1lZYnw4tgfz3276C2Wbatsn24Vdrdy69EAStYxTrPfRu7OEAFVda5wA2GuDVSY2jcGfdvUmMk9yzj0zAeXgHB+Zp6</latexit><latexit sha1_base64="9VcLpn75v0Ow2R4s5D+sbVL4PXU=">AAAC8XicjVLLSsNAFD3GV31XXboJFsGNJRFBl6IblxXsA+qDJJ3W2DQJyUSU0n9wW1fi1i/yDxR/wjNjBB/4mJDkzLnn3Dt3Ztw48FNpWY8jxujY+MRkYWp6ZnZufqG4uFRLoyzxRNWLgihpuE4qAj8UVenLQDTiRDg9NxB1t7uv4vVLkaR+FB7J61ic9JxO6Ld9z5GkauK0v3E1OCuWrLKlh/kd2DkoIR+VqPiCY7QQwUOGHgRCSOIADlI+TdiwEJM7QZ9cQuTruMAA0/RmVAkqHLJdfjucNXM25FzlTLXbY5WAb0KniTV6IuoSYlXN1PFMZ1bsT7n7Oqda2zX/bp6rR1binOxfvnflf32qF4k2dnQPPnuKNaO68/Ismd4VtXLzQ1eSGWJyCrcYT4g97XzfZ1N7Ut272ltHx5+0UrFq7uXaDM+/dhezQpu1lZYnw4tgfz3276C2Wbatsn24Vdrdy69EAStYxTrPfRu7OEAFVda5wA2GuDVSY2jcGfdvUmMk9yzj0zAeXgHB+Zp6</latexit>Fig. 1. Digital signal processing chain used to extract information from biological signals
order to maintain high levels of flexibility and genericity, the choice was made to turn to hardware generation from models using HLS tools [1]. Consequently, all the modules presented above have been described at the behavioural level using the SystemC language. These SystemC models have been made flexible and generic through the use of tempered parameters.
For example, the number of channels or the type of data can be adapted to the application needs. Data transfer between the different modules is ensured by FIFOs. It allows smoothing the processing load over time. In order to improve module implementation parameters, annotations have been added to the module source code. The latter allow for example to specify the code sections to be unrolled or pipelined.
IV. EXPERIMENTAL RESULTS
The main objective of the project was to design a real-time system to process at least the signals from 64 electrodes in parallel. The sampling frequency of the electrodes is 10 kHz.
These specifications correspond to the specifications of the analog acquisition boards available on the commercial market.
The SystemC models describing the system (Figure 1) were provided to the Vivado HLS 2018.1 synthesis tool.
The latter is in charge of generating the RTL-level hardware architecture. To simplify placement and routing on an ARTIX- 7 (XC7A100T-1CSG324C) component, a target working fre- quency of 100 MHz for the architecture has been set.
The whole system consists of 10 modules described in SystemC, which represents about 981 lines of C++ code, was entrusted in one go to the HLS tool. The digital architecture generated and which meets the specifications is composed of 1315 LUTs, 1887 FFs, 6 DSPs and 26 BRAMs (18k) after placement and routing. That’s about 9% of the FPGA circuit. A functional validation of the system was performed on FPGA using several technical resources (OLED screen, UART monitoring, SDcard reading) and real or synthetic data.
From the collected post-place and route data we notice that the system can be greatly extended in terms of number of chan- nels processed in parallel. Indeed, in the target component, up to 700 channels in parallel can be supported if the maximal event rate at the output of the spike detection processing is about 100 spikes per second and per channel.
An analysis of the resources occupied by the system ac- cording to the number of channels processed is provided in Figure 2. Memory is the bottleneck of the system. Currently, it is impossible to exceed 512 channels on a Nexys-4 FPGA
board. In order to exceed this threshold, and then to address much complex cell experiments, it is necessary to switch at least to a mid-range FPGA device.
V. CONCLUSION
The objective of the demonstration is to highlight an appli- cation from the biomedical field whose processing properties are quite different from video and communication system ones. Then it also demonstrates that HLS methodologies are currently mature enough to generate complete processing systems. However, performance level depends on SystemC model quality and user defined annotations.
ACKNOWLEDGEMENT
The authors thank the SIS GPU at IMS Laboratory for its financial support.
REFERENCES
[1] Xilinx, Vivado Design Suite User Guide, UG902 (v2017.4), 2018
[2] J.H. Siegle, A. Cuevas L´opez, Y.A. Patel, K. Abramov, S. Ohayon and J. Voigts, Open Ephys: an open-source, plugin-based platform for multichannel electrophysiology. J Neural Eng 14: 045003
[3] G. Le Masson, S. Renaud-Le Masson, D. Debay, and T. Bal, Feedback inhibition controls spike transfer in hybrid thalamic circuits Nature. vol.
417, pp. 854–858, 2002.
[4] A. Quotb, Y. Bornat, M. Raoux, J. Lang, S. Renaud, NeuroBetaMed: A re- configurable wavelet-based event detection circuit for in vitro biological signals. ISCAS, 2012.
[5] E Casseau, B Le Gal, P Bomel, C Jego, S Huet and E Martin, C-based rapid prototyping for digital signal processing. EUSIPCO, 2005.
[6] R.R. Harrison, A low-power integrated circuit for adaptive detection of action potentials in noisy signals, IEEE EMBC, 2003.
[7] Yang Dan, Mu-ming Poo, Spike Timing-Dependent Plasticity of Neural Circuits. Neuron, vol. 44, 2004.
0 10 20 30 40 50 60 70 80 90 100 0
512 1,024 1,536 2,048
FPGA BRAM usage (%)
Numberofchannels
Nexys-4 VC-707 Genesis-2
Fig. 2. Number of supported channels depending on the FPGA device
2.3. Synthèse et implémentation 13
une paire de filtres (HPF 2.6 & LPF 2.4) :
dl[n] =
2l
X
i=1
gl[k]al 1[n k] (2.3)
al[n] =
2l
X
i=1
hl[k]al 1[n k] (2.4)
Dans les équations 2.6 et 2.4,L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.
Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :
d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)
d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.
0,3 0 0,3
Input
0,1 0 0,1
Filteredsig.
Events 0
Figure2.7 – Signal biologique avant et après HPF & SWT
2.3 Synthèse et implémentation
La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.
Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il
2.3. Synthèse et implémentation 13
une paire de filtres (HPF 2.6 & LPF 2.4) :
dl[n] =
2l
X
i=1
gl[k]al 1[n k] (2.3)
al[n] =
2l
X
i=1
hl[k]al 1[n k] (2.4)
Dans les équations 2.6 et 2.4, Lreprésente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.
Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :
d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)
d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.
0,3 0 0,3
Input
0,1 0 0,1
Filteredsig.
Events 0
Figure2.7 – Signal biologique avant et après HPF & SWT
2.3 Synthèse et implémentation
La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.
Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il
22Chapitre3.Extractiondesliensentreneuronnes
Figure3.6–Illustrationdelamatrice
essayerdecontournerleproblème,lafigure3.8représentel’évolutiondelalimiteenfonctiondelafréquence.Ilexisteaussidescellulesquiaurontunefréquencedespikeinférieurà100hzetdoncauraitunelimiteplusgrande.
3.5Résultatsd’implantation
Enreprenantlesmêmesparamètresdelapremièrepartie(64canaux,10khzdefré-quenced’échantillonnageetuneNexys4),uneimplémentationdetouslessystèmesaétéeffectué.Leprojetutiliseauxtotaux10modulesdécritenSytemC,cequiestpresqueégalà981lignesdecodeC++.L’architecturedigitalegénéréeàpartirdesesmodulesutilise1315LUTs,1887FFs,6DSPser26BRAMs(18k)égalepresqueà9%desressourcesdelacarte.Vulahauteconsommationderessources,ilestimpossiblededépasser64canauxsurNexys4.Lafigure3.9représentel’évocationdel’utilisationderessourcesenfonctiondunombredescanauxpourdifférentescartes.
3.6. Conclusion 25
0 10 20 30 40 50 60 70 80 90 100
0 512 1 024 1 536 2 048
FPGA BRAM usage (%)
Numberofchannels
Nexys-4 VC-707 Genesis-2
Figure3.9 – Utilisation de ressource en fonction du nombre de canaux sur diffèrent carte FPGA
3.6. Conclusion 23
0 100 200 300 400 500 600 700 800 900 1 000 1 100
0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8
2 ·104
Number of channels
clockcycles
Available clock cycles Needed clock cycles
Figure3.7 – Évolution du temps disponible entre chaque spike en fonction des canaux
3.6 Conclusion
Même si le SystemC et l’outil HLS permet de simplifier la modélisation de système complexe, il est toujours nécessaire de simplifier nos algorithmes, d’utiliser des fonctions simples et de les optimiser afin d’assurer le bon fonctionnement et limiter l’utilisation de
ressources. 16 Chapitre 2. De la modélisation à l’implantation automatique
Table 2.1 – Comparaison des ressources
HLS generated [Pirog 2018]
fixed float fixed fixed
Quantization 18b 32b 18b –b
Design pipeline pipeline semi-seq. semi-seq.
LUTs 1003 2899 979 352
FFs 1242 3935 1097 181
BRAMs 7.5 6 6.5 5
DSPs 6 43 4 2
Fmax (MHz) 200 200 166 153
Latency (cycles) 72 125 664 3204
2.4.1 Conclusion
Dans cette première partie, il est clair qu’un système conçu avec le SystemC et HLS utilise un peu plus de ressources mais en échange, il offre une latence minimale avec un très grand débit et fréquence de fonctionnement.
2.3. Synthèse et implémentation 13
une paire de filtres (HPF 2.6 & LPF 2.4) :
dl[n] =
2l
X
i=1
gl[k]al 1[n k] (2.3)
al[n] =
2l
X
i=1
hl[k]al 1[n k] (2.4)
Dans les équations 2.6 et 2.4, L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.
Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :
d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)
d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.
0,3 0 0,3
Input
0,1 0 0,1
Filteredsig.
Events 0
Figure 2.7 – Signal biologique avant et après HPF & SWT
2.3 Synthèse et implémentation
La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.
Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il
2.3. Synthèse et implémentation 13
une paire de filtres (HPF 2.6 & LPF 2.4) :
dl[n] =
2l
X
i=1
gl[k]al 1[n k] (2.3)
al[n] =
2l
X
i=1
hl[k]al 1[n k] (2.4)
Dans les équations 2.6 et 2.4, L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.
Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :
d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)
d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.
0,3 0 0,3
Input
0,1 0 0,1
Filteredsig.
Events 0
Figure2.7 – Signal biologique avant et après HPF & SWT
2.3 Synthèse et implémentation
La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.
Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il
2.3. Synthèse et implémentation 13
une paire de filtres (HPF 2.6 & LPF 2.4) :
dl[n] =
2l
X
i=1
gl[k]al 1[n k] (2.3)
al[n] =
2l
X
i=1
hl[k]al 1[n k] (2.4)
Dans les équations 2.6 et 2.4, L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.
Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :
d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)
d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.
0,3 0 0,3
Input
0,1 0 0,1
Filteredsig.
Events 0
Figure2.7 – Signal biologique avant et après HPF & SWT
2.3 Synthèse et implémentation
La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.
Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il
2.3. Synthèse et implémentation 13
une paire de filtres (HPF 2.6 & LPF 2.4) :
dl[n] =
2l
X
i=1
gl[k]al 1[n k] (2.3)
al[n] =
2l
X
i=1
hl[k]al 1[n k] (2.4)
Dans les équations 2.6 et 2.4, L représente le niveau de décomposition auquel le filtre appartient. Chaque niveau correspond à une certaine utilisation et type de signal, il dé- pend généralement du SNR, de l’échantillonnage et de la fréquence de spikes. Afin de traiter plusieurs types de signaux, une SWT avec plusieurs niveaux doit être implémentée.
Cependant, passe d’un niveau un autre nécessite deux fois plus d’échantillons (2, 4, 8, 16, ...) :
d1[n] =g1[1]a0[n 1] +g2[2]a0[n 2] (2.5)
d2[n] =g2[1]a1[n 1] +g2[2]a1[n 2] +g2[3]a1[n 3] +g2[4]a1[n 4] (2.6) Finalement, la valeur fournie par le RMS est employé comme valeur seuil. cependant, une mise en échelle est nécessaire avant de la comparée au signal biologique filtré comme montré dans la figure 2.7.
0,3 0 0,3
Input
0,1 0 0,1
Filteredsig.
Events 0
Figure 2.7 – Signal biologique avant et après HPF & SWT
2.3 Synthèse et implémentation
La chaîne de traitement de signal présentée dans précédemment a été décrite en Sys- temC. La modélisation en SystemC et sa validation en simulation à nécessité 5 semaines.
Normalement, la chaîne est adaptée pour les neurones et les cellules pancréatique mais il
3.1. Analyse aux limites 19
(read & write) ce qui est équivalent à 16 opérations, en généralisant, chaque spike mène à 2n opérations. Dans la matrice suivante, il est possible d’observer le nombre d’opération apporté par un seul spike.
2 66 4
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 77 5!
2 66 4
0 0 1 0
0 0 2 0
↵1 ↵2 ↵3 + 3 ↵4
0 0 4 0
3 77 5
3.1.2 L’exponentielle
Comme vu précédemment, la modification de point se fait avec la formule : e t/⌧, où t est le temps entre deux spikes consécutives. L’outil HLS fourni des fonctions publiques réalisant le calcul exponentiel directement, cependant, l’exponentiel est une fonction com- plexe nécessitant beaucoup de ressources et de latence dans certains cas, figure 3.2.
Table 3.1 – Utilisation de ressource HLS Maths float fixed
Quantization 32b 16b
Design sequential sequential
LUTs 864 2660
FFs 245 349
BRAMs (18k) 1 3
DSP 7 1
Latency 16 211
3.1.3 Équation différentielle
Parmi les solutions possible permettant de simplifier le calcul, on trouve la résolution continue de l’équation differentielle d’une exponentielle :
@y(t)
@t = 1
⌧y(t) (3.3)
yn = xn + 1 +⌧
⌧ yn 1 (3.4)
Résoudre l’équation revient est équivalent à filtrer les spikes à travers un filtre dont la réponse pulsionnelle est une e t/⌧. Dans ce cas, chaque exponentielle sera transformé en 18 Chapitre 3. Extraction des liens entre neuronnes
00 1
Neurone1
00 1
Neurone2
00 1
Influence
Figure 3.2 – Signal biologique avant et après HPF & SWT
et à chaque spike, une modification de poids (incrémentations ou décrémentation) se fait.
Cette modification est calculée en fonction du temps écoulé entre deux spike avec la formule e t/⌧ ou ⌧ est le temps entre deux spikes successives.
Dans la figure 3.2, il possible de voir la modification qu’un spike peut apporter en fonction du temps écoulé.
si j spike wi!i(t) =wi!i(t dt) + X
spikes
e tt (3.1)
wj!i(t) =wj!i(t dt) X
spikes
e tt (3.2)
Dans le milieu de culture, il est possible qu’un haut potentiel se propage et donc, une électrode peut récupérer des signaux provenant de plusieurs cellules et peut introduire des erreurs lors du calcul du poids il est donc nécessaire de supposer dans la suite que chaque électrode représente un seul neurone.
3.1 Analyse aux limites
3.1.1 Quelques détails sur cette méthode
En utilisant la méthode décrite précédemment, un système prenant en entrée les spikes et calcul les poids entre chaque neurone. Ce poids sera stocké dans une matrice n suivant et sera appelé matrice de corrélation dans la suite.
Il est nécessaire de comprendre que la mise à jour de la matrice de corrélation nécessite un grand nombre d’opération. Par exemple, pour 4 neurones, si un spike est détecté, il faut modifier 8 cases dans la matrice, chaque modification représente deux opérations