<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Neurosci.</journal-id>
<journal-title>Frontiers in Neuroscience</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurosci.</abbrev-journal-title>
<issn pub-type="epub">1662-453X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnins.2023.1333238</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>The silence of the neurons: an application to enhance performance and energy efficiency</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Heidarpur</surname> <given-names>Moslem</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/456212/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Ahmadi</surname> <given-names>Arash</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/587151/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Ahmadi</surname> <given-names>Majid</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1782485/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Department of Computer and Electrical Engineering, University of Windsor</institution>, <addr-line>Windsor, ON</addr-line>, <country>Canada</country></aff>
<aff id="aff2"><sup>2</sup><institution>Department of Electronics, Carleton University</institution>, <addr-line>Ottawa, ON</addr-line>, <country>Canada</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Jiyong Woo, Kyungpook National University, Republic of Korea</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Shuangming Yang, Tianjin University, China</p>
<p>Wooseok Choi, IBM, Switzerland</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Moslem Heidarpur <email>heidarp&#x00040;uwindsor.ca</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>28</day>
<month>02</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>17</volume>
<elocation-id>1333238</elocation-id>
<history>
<date date-type="received">
<day>04</day>
<month>11</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>19</day>
<month>12</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2024 Heidarpur, Ahmadi and Ahmadi.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Heidarpur, Ahmadi and Ahmadi</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract>
<sec>
<title>Introduction</title>
<p>Simulation of biological neural networks is a computationally intensive task due to the number of neurons, various communication pathways, and non-linear terms in the differential equations of the neuron.</p>
</sec>
<sec>
<title>Method</title>
<p>This study proposes an original modification to optimize performance and power consumption in systems, simulating or implementing spiking neural networks. First, the proposed modified models were simulated for validation. Furthermore, digital hardware was designed, and both the original and proposed models were implemented on a Field-Programmable Gate Array (FPGA).</p>
</sec>
<sec>
<title>Results and discussion</title>
<p>Moreover, the impact of the proposed modification on performance metrics was studied. The implementation results confirmed that the proposed models are considerably faster and require less energy to generate a spike compared with unmodified neurons.</p>
</sec></abstract>
<kwd-group>
<kwd>Izhikevich neuron</kwd>
<kwd>biological neuron</kwd>
<kwd>CORDIC</kwd>
<kwd>digital implementation</kwd>
<kwd>neuromorphic</kwd>
<kwd>spiking neural network</kwd>
<kwd>FPGA</kwd>
</kwd-group>
<counts>
<fig-count count="15"/>
<table-count count="3"/>
<equation-count count="11"/>
<ref-count count="49"/>
<page-count count="14"/>
<word-count count="7767"/>
</counts>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Neuromorphic Engineering</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1 Introduction</title>
<p>Inspired by the brain, Spiking Neural Networks (SNNs) represent the third generation of neural networks where neurons communicate through sparse sequences of spikes. In comparison to classic Artificial Neural Networks (ANNs), SNNs have a higher learning and processing speed by considering the timing of events as another variable (Pfeiffer and Pfeil, <xref ref-type="bibr" rid="B34">2018</xref>). Furthermore, SNNs are orders of magnitude more energy-efficient due to a low spiking rate and activity. Such networks are also useful for studying biological neural networks and brain diseases (Pastur-Romay et al., <xref ref-type="bibr" rid="B33">2016</xref>). New learning algorithms for spiking neural network are also evolving (Yang and Chen, <xref ref-type="bibr" rid="B44">2023a</xref>,<xref ref-type="bibr" rid="B49">b</xref>; Yang et al., <xref ref-type="bibr" rid="B47">2023b</xref>). Yang et al. (<xref ref-type="bibr" rid="B48">2024</xref>) proposes a neuromorphic architecture designed for online learning through dendrites to improve the efficiency of spike-driven learning and enhance the performance of processing spatiotemporal patterns. A novel fault-tolerant address event representation approach is proposed the study by Yang et al. (<xref ref-type="bibr" rid="B46">2023a</xref>) for the spike information routing to improve the efficiency and reliability of smart traffic navigation.</p>
<p>Several computational models have been proposed to mimic biological neurons (Hodgkin and Huxley, <xref ref-type="bibr" rid="B18">1990</xref>; Gerstner and Kistler, <xref ref-type="bibr" rid="B11">2002</xref>; Izhikevich, <xref ref-type="bibr" rid="B20">2003</xref>; Brette, <xref ref-type="bibr" rid="B4">2005</xref>). In these models, there is often a trade-off between being concise and computationally efficient or being biologically plausible and complex.</p>
<p>Simulation of SNNs is computationally complex due to the number of neurons, various communication pathways, and non-linear terms in the differential equations describing these models. As implementation platforms, researchers have used PCs (NeMo, <xref ref-type="bibr" rid="B32">2024</xref>; The Brian Simulator, <xref ref-type="bibr" rid="B40">2024</xref>), supercomputers (EPFL, <xref ref-type="bibr" rid="B9">2024</xref>), analog (Schemmel et al., <xref ref-type="bibr" rid="B36">2010</xref>; Covi et al., <xref ref-type="bibr" rid="B6">2015</xref>), digital (Merolla et al., <xref ref-type="bibr" rid="B29">2011</xref>; Akopyan et al., <xref ref-type="bibr" rid="B1">2015</xref>; Barchi et al., <xref ref-type="bibr" rid="B2">2019</xref>), mixed analog/digital VLSI neuromorphic hardware (Benjamin et al., <xref ref-type="bibr" rid="B3">2014</xref>; Wang et al., <xref ref-type="bibr" rid="B42">2014</xref>; Neckar et al., <xref ref-type="bibr" rid="B30">2019</xref>), and FPGAs (Neil and Liu, <xref ref-type="bibr" rid="B31">2014</xref>; Liu et al., <xref ref-type="bibr" rid="B27">2018</xref>; Heidarpur et al., <xref ref-type="bibr" rid="B15">2019</xref>), to simulate and realize SNNs. Each platform comes with its own set of strengths and weaknesses. Nevertheless, in all aforementioned platforms, enhancing speed and minimizing energy consumption are very important.</p>
<p>An important contributing factor to the computational complexity of neuron models is calculating non-linear terms in their differential equations. In view of this, researchers have proposed a variety of approaches to speed up systems simulating or implementing spiking neurons where, in general, accuracy is exchanged for performance. Such methods include Piece-Wise Linear (PWL) approximation (Yamashita and Torikai, <xref ref-type="bibr" rid="B43">2014</xref>; Heidarpur et al., <xref ref-type="bibr" rid="B16">2017</xref>), Coordinate Rotation Digital Computer (CORDIC) (Heidarpour et al., <xref ref-type="bibr" rid="B14">2016</xref>; Elnabawy et al., <xref ref-type="bibr" rid="B8">2018</xref>), an asynchronous cellular automaton used in Matsubara and Torikai (<xref ref-type="bibr" rid="B28">2013</xref>), a nonlinear function evaluation technique (Jokar et al., <xref ref-type="bibr" rid="B22">2019</xref>), bit-serial reduced-range multipliers (Karim et al., <xref ref-type="bibr" rid="B23">2017</xref>; Kueh and Kazmierski, <xref ref-type="bibr" rid="B25">2017</xref>), and a novel rotate-and-fire neuron (Hishiki and Torikai, <xref ref-type="bibr" rid="B17">2011</xref>), among others.</p>
<p>Power dissipation and density are another important concern and one of the major challenges that need to be resolved for the massive large-scale implementation of neuromorphic systems. Total power dissipation is the sum of two components: static and dynamic power dissipation. Dynamic power is associated with activity and switching events in the core or I/O of the device (Rabaey et al., <xref ref-type="bibr" rid="B35">2003</xref>). Power optimization could be at the circuit, logic, architectural, or system levels (Devadas and Malik, <xref ref-type="bibr" rid="B7">1995</xref>). Various methods, mostly at the circuit and logic levels, are suggested to reduce power consumption of spiking neural networks (Lee et al., <xref ref-type="bibr" rid="B26">2004</xref>; Indiveri et al., <xref ref-type="bibr" rid="B19">2006</xref>; Tao and Rusu, <xref ref-type="bibr" rid="B39">2015</xref>; Kohno and Aihara, <xref ref-type="bibr" rid="B24">2016</xref>). Analysis of static power, which is independent of circuit activity and primarily from transistor leakage, is out of the scope of this study.</p>
<p>For computer simulation and digital hardware implementation, the differential equations describing spiking neurons are discretized and numerically solved by evaluating them at every time step, even when a neuron is silent. In this study, through the observation of both the input current and the derivative of the membrane potential, we discovered that the amount of computation could be reduced when a neuron is silent or spikes at a slow rate. Based on this insight, we proposed a modification to avoid computing certain terms of the differential equations in the spiking neuron model. During a fast spiking state, the neuron can switch back to the full calculation of Ordinary Differential Equations (ODEs). The proposed technique has the potential to save energy and time, making it particularly valuable when implementing large networks. In the case of software implementation, the proposed improvement over spiking neuron can reduce the total number of times that ODEs are evaluated and therefore reduce the total number of computation required for simulating neuron. In this study, software simulations were performed to measure the improved efficiency resulted from applying proposed method. Additionally, in the case of hardware implementation, the proposed method reduces the total number of computation required and also saves the energy consumption, which is the most useful if devices are operated on battery. The main focus of the paper remains the advantages of proposed method for hardware implementation.</p>
<p>As a case study, the Izhikevich neuron model (Izhikevich, <xref ref-type="bibr" rid="B20">2003</xref>) was modified using the proposed technique and further simulated for validation. Additionally, a network consisting of both the original and modified models was developed, trained, and implemented on hardware to study the effects of the proposed modification on both accuracy and performance.</p>
<p>The rest of the study is organized as follows: Section 2 reviews the Izhikevich neuron and presents the proposed method to save computations in neuronal differential equations. Section 3 investigates the validity of the proposed models through error analysis and studies their impacts on computer simulation performance. Section 4 discusses the FPGA implementation procedure and how the proposed modification optimizes energy consumption and speed of hardware. Finally, Section 5 concludes the study.</p>
</sec>
<sec id="s2">
<title>2 Proposed duplex neuron</title>
<p>This section presents a modification to optimize performance and power consumption in systems simulating or implementing spiking neural networks.</p>
<sec>
<title>2.1 Background</title>
<p>Researchers have presented various models to simulate and study the behavior of biological neurons. These models are formulated as coupled differential equations that need continuous evaluation over time, which typically involves numerical methods since spiking neuron models do not have analytical solutions. Furthermore, bifurcation analysis helps to study qualitative changes in the dynamics of neuron as a function of certain parameters, such as synaptic strengths, time constants, or external inputs (Izhikevich, <xref ref-type="bibr" rid="B21">2007</xref>). One of the bifurcation parameters, determining the states of a neuron, transitioning from silent to firing, and influencing its rate, is the input current. In <xref ref-type="fig" rid="F1">Figure 1</xref>, the simulation of two well-known spiking neuron models, Hodgkin&#x02013;Huxley (HH) (Hodgkin and Huxley, <xref ref-type="bibr" rid="B18">1990</xref>) and Izhikevich (Izhikevich, <xref ref-type="bibr" rid="B20">2003</xref>), is depicted for a constant input current. The Hodgkin&#x02013;Huxley (HH) neuron model is a mathematical model that describes the generation and propagation of action potentials, or spikes, in biological neurons, whereas the Izhikevich neuron model is a simplified model that aims to capture essential features of neuronal dynamics while minimizing computational complexity</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Computer simulation of Hodgkin-Huxley and Izhikevich neuron model for a constant input current. <bold>(A, D)</bold> Action potential of neurons. <bold>(B, E)</bold> Derivative of action potential during Quasi-Static (QS) state. <bold>(C, F)</bold> Derivative of action potential during firing state (FS).</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0001.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F1">Figure 1A</xref>, the membrane potential (<italic>V</italic>) of a Hodgkin&#x02013;Huxley neuron is demonstrated when the input current (or its integral over time) is sufficiently high in transition of the neuron from silence to firing. The derivative of the membrane potential over the dotted line in <xref ref-type="fig" rid="F1">Figure 1A</xref> is shown in <xref ref-type="fig" rid="F1">Figure 1B</xref>. In this state, which we further refer to as the quasi-static (QS) state, the derivative tends to remain almost constant with very small changes. The derivative of the membrane potential over the dashed line in <xref ref-type="fig" rid="F1">Figure 1A</xref> is depicted in <xref ref-type="fig" rid="F1">Figure 1C</xref>. The value of the derivative for this state [hereafter referred to as the Firing State (FS)] is considerably larger compared with that over the dotted line. The same scenario also applies to the Izhikevich neuron, with the corresponding simulations shown in <xref ref-type="fig" rid="F1">Figures 1D</xref>&#x02013;<xref ref-type="fig" rid="F1">F</xref>. What is interesting is that for the Hodgkin&#x02013;Huxley neuron, the quasi-static state makes up &#x0007E;75% of the spiking period, which is a significant portion. This percentage for the Izhikevich neuron is even higher, roughly &#x0007E;95%. The Izhikevich neuron is in the firing state for only &#x0007E;5% of a spike period.</p>
<p>The previous paragraph studied neuron behaviors while spiking consistently. To further investigate the behaviors of spiking neuron models, 1,000 Izhikevich neurons were randomly coupled and simulated according to the method utilized in reference (Izhikevich, <xref ref-type="bibr" rid="B20">2003</xref>). <xref ref-type="fig" rid="F2">Figure 2A</xref> shows the spike raster diagram for this network. Raster diagram provides a visual representation of the timing of action potentials or spikes across multiple neurons over time. Each vertical line in this diagram represents the occurrence of a spike, and the horizontal axis corresponds to time. Raster diagrams provide an intuitive and informative way to visualize the precise timing of spikes from individual neurons and can be used to study the patterns of spike synchrony or specific temporal relationships. Coherent activity could be observed as vertical columns of dots, which is similar to the temporal synchrony (alpha and gamma band rhythms) of neurons observed in biology (Vaidya and Johnston, <xref ref-type="bibr" rid="B41">2013</xref>).</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>One thousand Izhikevich neurons were randomly coupled and simulated for 1,000 ms following the method in the study by Izhikevich (<xref ref-type="bibr" rid="B20">2003</xref>). <bold>(A)</bold> Spike raster diagram where each dot represents a specific neuron spiking at a specific time. <bold>(B)</bold> Distribution of number of spikes for neurons in the network.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0002.tif"/>
</fig>
<p>Distribution of number of the spikes for the neurons in this network is presented in <xref ref-type="fig" rid="F2">Figure 2B</xref>. As this figure indicates, most of the neurons (almost 90 %) spike between 6 and 24 times during 1 s of simulation and are silent rest of the time. This indicates the potential of the proposed modification to save computation in a spiking neural network.</p>
<p>In the following sections, Izhikevich neuron was considered as case study, where the proposed method was applied to a single neuron and also an spiking neural network to evaluate performance.</p>
</sec>
<sec>
<title>2.2 The duplex neuron</title>
<p>Izhikevich neuron is a two-dimensional model consists of two coupled ODEs as follows:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>04</mml:mn><mml:msup><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mn>5</mml:mn><mml:mi>v</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>140</mml:mn><mml:mo>-</mml:mo><mml:mi>u</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>I</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E2"><label>(2)</label><mml:math id="M2"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>b</mml:mi><mml:mi>v</mml:mi><mml:mo>-</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>along with an after-spike reset equation as follows:</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M3"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>v</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:mn>30</mml:mn><mml:mi>m</mml:mi><mml:mi>v</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mi>v</mml:mi><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>u</mml:mi><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>u</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>d</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>v</italic> represents membrane potential, <italic>u</italic> is recovery variable, and <italic>I</italic> stands for injected current to the neuron. Other dimensionless parameters are as follows:</p>
<list list-type="simple">
<list-item><p><italic>a</italic> : Time scale of the recovery variable</p></list-item>
<list-item><p><italic>b</italic> : Sensitivity of the <italic>u</italic> to <italic>v</italic></p></list-item>
<list-item><p><italic>c</italic> : After-spike reset value of <italic>v</italic></p></list-item>
<list-item><p><italic>d</italic> : After-spike reset value of <italic>u</italic></p></list-item>
</list>
<p>By regulating these parameters, the Izhikevich model can mimic different neuronal behaviors observed in biological neurons. To simulate this model, <xref ref-type="disp-formula" rid="E1">Equations 1</xref>, <xref ref-type="disp-formula" rid="E2">2</xref> were discretized as follows:</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M4"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>04</mml:mn><mml:mi>v</mml:mi><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mn>5</mml:mn><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mn>140</mml:mn><mml:mo>-</mml:mo><mml:mi>u</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>I</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>u</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>b</mml:mi><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>u</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>u</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>and numerically solved using the Euler method.</p>
<p><xref ref-type="fig" rid="F3">Figure 3A</xref> shows simulation of a tonic spiking Izhikevich neuron stimulated with a constant input current. The neuron parameters for this simulation are: <italic>a</italic> &#x0003D; 0.02, <italic>b</italic> &#x0003D; 0.2, <italic>I</italic> &#x0003D; 4 mA, and <italic>dt</italic> &#x0003D; 1/32 ms. <xref ref-type="fig" rid="F3">Figure 3B</xref> plots the derivative of the membrane potential (<italic>v</italic>[<italic>n</italic> &#x0002B; 1] &#x02212; <italic>v</italic>[<italic>n</italic>]). As shown in this figure, the derivative is approximately constant and close to zero (quasi-static state), except when the neuron membrane goes up for a spike (firing state). The small value of the derivative for the quasi-static state implies a small change in action potential when the neuron is in the quasi-static state or when it is silent. To benefit from this property, <xref ref-type="disp-formula" rid="E4">Equation 4</xref> was modified as follows:</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Simulation of a tonic spiking Izhikevich neuron which is stimulated with a constant current (<xref ref-type="disp-formula" rid="E4">Equation 4</xref>). <bold>(A)</bold> Membrane potential <italic>v</italic>[<italic>n</italic>] and <bold>(B)</bold> membrane potential derivative <italic>v</italic>[<italic>n</italic> &#x0002B; 1] &#x02212; <italic>v</italic>[<italic>n</italic>].</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0003.tif"/>
</fig>
<p>When the neuron is silent or in the quasi-static state, &#x003B1; and &#x003B2; do not change significantly, and the last values of these parameters can be used to evaluate neuron ODEs instead of calculating them every time. The modified model is hereafter referred to as the Duplex (DX) neuron. The term 5<italic>v</italic>[<italic>n</italic>] was excluded from &#x003B1; since the coefficient is relatively larger than other parameters, considering that it constant affects neuron behaviors. The parameter &#x003B4; is the threshold value that determines whether it is necessary to update &#x003B1; and &#x003B2; or if the last updated value is still valid. A larger value of delta results in greater computational savings but induces higher error and vice versa. Therefore, determining the proper &#x003B4; is a compromise between accuracy and performance. In the following, we investigate this trade-off.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Computer simulation</title>
<p>This section investigates the impacts of proposed modification on error and performance of a single and a network of Izhikevich neurons.</p>
<sec>
<title>3.1 Error analysis</title>
<p>The objective of this section is to investigate whether the neurons with the proposed modification still have a valid behavior, which is similar to unmodified neuron.</p>
<sec>
<title>3.1.1 Qualitative comparison</title>
<p>First, for qualitative comparison, proposed duplex Izhikevich neurons were simulated for different values of the &#x003B4;, as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. As shown in this figure, even for greater values of delta such as &#x003B4; &#x0003D; 0.2 mv, besides small oscillations, the membrane potential waveform of the proposed duplex neuron is close to that of the model which constantly evaluates the entire differential equation. Nevertheless, proposed modification evidently results in some discrepancies in timing of spikes.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p><bold>(A&#x02013;L)</bold> Computer simulation of a tonic spiking/bursting Izhikevich and proposed duplex Izhikevich neuron for different values of &#x003B4;. As it is evident in this figure, even for large values of &#x003B4; such as 0.2 mv, besides small oscillations, waveform of the membrane potentials (<italic>v</italic>) are close to those of the unmodified model.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0004.tif"/>
</fig>
</sec>
<sec>
<title>3.1.2 Quantitative comparison</title>
<p>In the following, the deviations in the previous section were quantified by calculating the following errors:</p>
<p>Normalized root mean square deviation (NRMSD): This error was calculated to measure the deviation induced by different values of &#x003B4; to the shape of the membrane potential waveform. Higher resemblance between the form of the spikes results in a lower value for this error. This error is calculated as follows:</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M5"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>N</mml:mi><mml:mi>R</mml:mi><mml:mi>M</mml:mi><mml:mi>S</mml:mi><mml:mi>D</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msqrt><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mi>n</mml:mi><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mi>n</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>&#x000D7;</mml:mo><mml:mn>100</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>V</italic><sub><italic>DX</italic></sub> and <italic>V</italic><sub><italic>Un</italic></sub> are waveforms of the duplex and unmodified Izhikevich neurons. <italic>v</italic><sub><italic>Unmax</italic></sub> and <italic>v</italic><sub><italic>Unmin</italic></sub> are the minimum and maximum of membrane potential (<italic>v</italic>) between <italic>v</italic>[1] and <italic>v</italic>[<italic>n</italic>], where <italic>n</italic> is the total number of points that this error is evaluated. Timing error (TE): This error measures the difference in the time interval between two consecutive spikes and is calculated as follows:</p>
<disp-formula id="E6"><label>(6)</label><mml:math id="M6"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>T</mml:mi><mml:mi>E</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mfrac><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo><mml:mn>100</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x00394;<italic>ts</italic><sub><italic>Un</italic></sub> and &#x00394;<italic>ts</italic><sub><italic>DX</italic></sub> are spike periods of the unmodified and proposed duplex Izhikevich neuron.</p>
<p>These errors were calculated for a tonic spiking Izhikevich neuron which was simulated with an input current of 4 mA and a time step of 1/32 ms and are presented in <xref ref-type="table" rid="T1">Table 1</xref>. As data in this table indicate, these errors are higher for larger values of &#x003B4;. However, the increase rate almost levels out for &#x003B4; &#x0003E; 0.01 mv.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Errors, computer saving percentage, and speed up percentage for computer simulation of proposed duplex neuron on the basis of &#x003B4; (mv).</p></caption>
<table frame="box" rules="all">
<thead>
<tr style="background-color:#919498;color:#ffffff">
<th valign="top" align="left"><bold>&#x003B4; (mv)</bold></th>
<th valign="top" align="center"><bold>TE% (<xref ref-type="disp-formula" rid="E6">Eq. 6</xref>)</bold></th>
<th valign="top" align="center"><bold>NRMSD% (<xref ref-type="disp-formula" rid="E5">Eq. 5</xref>)</bold></th>
<th valign="top" align="center"><bold>CSP% (<xref ref-type="disp-formula" rid="E7">Eq. 7</xref>)</bold></th>
<th valign="top" align="center"><bold>Speed up % (<xref ref-type="disp-formula" rid="E8">Eq. 8</xref>)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">0.001</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">0.11</td>
<td valign="top" align="center">00.3</td>
<td valign="top" align="center">2.52</td>
</tr> <tr>
<td valign="top" align="left">0.005</td>
<td valign="top" align="center">1.87</td>
<td valign="top" align="center">0.12</td>
<td valign="top" align="center">58.2</td>
<td valign="top" align="center">10.47</td>
</tr> <tr>
<td valign="top" align="left">0.010</td>
<td valign="top" align="center">6.67</td>
<td valign="top" align="center">0.31</td>
<td valign="top" align="center">85.3</td>
<td valign="top" align="center">16.78</td>
</tr> <tr>
<td valign="top" align="left">0.050</td>
<td valign="top" align="center">18.25</td>
<td valign="top" align="center">1.12</td>
<td valign="top" align="center">91.8</td>
<td valign="top" align="center">18.19</td>
</tr> <tr>
<td valign="top" align="left">0.100</td>
<td valign="top" align="center">20.74</td>
<td valign="top" align="center">1.51</td>
<td valign="top" align="center">92.3</td>
<td valign="top" align="center">18.31</td>
</tr> <tr>
<td valign="top" align="left">0.200</td>
<td valign="top" align="center">23.22</td>
<td valign="top" align="center">1.79</td>
<td valign="top" align="center">93.7</td>
<td valign="top" align="center">18.53</td>
</tr></tbody>
</table>
<table-wrap-foot>
<p>The neuron was stimulated with a constant input current of 4 mA.</p>
</table-wrap-foot>
</table-wrap>
</sec>
<sec>
<title>3.1.3 Network behavior</title>
<p>To study the behavior of the proposed duplex model in an application, a basic three-layer network of Izhikevich neurons was constructed, as shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. The network comprises 42 neurons in the first layer, seven neurons in the second layer, and, finally, one neuron in the output layer. This network was trained using the Spike Time Dependent Plasticity (STDP) rule to recognize two patterns of <italic>E</italic> and <italic>H</italic>, following the method used in references Christophe et al. (<xref ref-type="bibr" rid="B5">2015</xref>) and Farsa et al. (<xref ref-type="bibr" rid="B10">2019</xref>). First, weights were initialized randomly. Furthermore, the network was stimulated with the pattern <italic>E</italic> during the training phase. In the next phase, both patterns of <italic>E</italic> and <italic>H</italic> were applied randomly to the input of the network to test its validity. For more details, please refer to references Christophe et al. (<xref ref-type="bibr" rid="B5">2015</xref>) and Farsa et al. (<xref ref-type="bibr" rid="B10">2019</xref>).</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>To study behavior of the modified model, a three-layer network of the Izhikevich neurons was developed and trained according to the method presented in references Christophe et al. (<xref ref-type="bibr" rid="B5">2015</xref>) and Farsa et al. (<xref ref-type="bibr" rid="B10">2019</xref>).</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0005.tif"/>
</fig>
<p>To evaluate the behavior of the proposed models, the network was trained with both duplex and original Izhikevich neurons. <xref ref-type="fig" rid="F6">Figures 6A</xref>, <xref ref-type="fig" rid="F6">C</xref> show the membrane potential of the output neuron for the original and the modified model with &#x003B4; &#x0003D; 0.05 mV. The corresponding raster diagram for the networks during the training and testing phases is shown in <xref ref-type="fig" rid="F6">Figures 6B</xref>, <xref ref-type="fig" rid="F6">D</xref>. In the previous section, the input current of the neuron was presumed to be constant. On the other hand, in a practical application or biology, the input current is not steady and may abruptly change. The results of this test confirm that the behavior of the proposed duplex neuron remains close to the original model even with interrupted input currents.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>The network in <xref ref-type="fig" rid="F6">Figure 6</xref> was trained using the method described in Christophe et al. (<xref ref-type="bibr" rid="B5">2015</xref>) and Farsa et al. (<xref ref-type="bibr" rid="B10">2019</xref>). <bold>(A, B)</bold> Shows the output neuron membrane potential and network raster diagram during testing phase for unmodified model. <bold>(C, D)</bold> Shows the same diagrams for the proposed duplex Izhikevich neuron. The objective of this figure is to demonstrate that the network behavior of the modified model is similar to that of the original model.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0006.tif"/>
</fig>
</sec>
</sec>
<sec>
<title>3.2 Performance analysis</title>
<p>This section investigates the impacts of proposed modification on computer simulation performance.</p>
<sec>
<title>3.2.1 Single neuron</title>
<p>In the proposed duplex neuron, there is no need to compute &#x003B1; and &#x003B2; terms (<xref ref-type="table" rid="T4">Algorithm 1</xref>) constantly. The percentage of iterations that these terms are computed in the duplex neuron to the total number of iterations determines the performance improvement. Therefore, Computation Saving Percentage (CSP) was defined and formulated as follows:</p>
<disp-formula id="E7"><label>(7)</label><mml:math id="M7"><mml:mtable class="eqnarray" columnalign="center"><mml:mtr><mml:mtd><mml:mi>C</mml:mi><mml:mi>S</mml:mi><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>N</mml:mi><mml:mi>u</mml:mi><mml:mi>m</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>i</mml:mi><mml:mi>t</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>&#x003B1;</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>&#x003B2;</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>n</mml:mi><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi><mml:mi>u</mml:mi><mml:mi>t</mml:mi><mml:mi>e</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>n</mml:mi><mml:mi>u</mml:mi><mml:mi>m</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>i</mml:mi><mml:mi>t</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mfrac><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x000D7;</mml:mo><mml:mn>100</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<table-wrap position="float" id="T4">
<label>Algorithm 1</label>
<caption><p>Proposed duplex neuron.</p></caption>
<table frame="lhs" rules="none">
<tbody>
<tr><td align="left" valign="top"><monospace>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;1: &#x000A0;&#x000A0;&#x000A0;if |<italic>v</italic>[<italic>n</italic> &#x0002B; 1] &#x02212; <italic>v</italic>[<italic>n</italic>]| &#x0003E; &#x003B4; <bold>then</bold></monospace></td></tr>
<tr><td align="left" valign="top"><monospace>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;2: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x003B1; &#x02190; 0.04<italic>v</italic>[<italic>n</italic>]<sup>2</sup> &#x0002B; 140 &#x02212; <italic>u</italic>[<italic>n</italic>]</monospace></td></tr>
<tr><td align="left" valign="top"><monospace>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;3: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x003B2; &#x02190; <italic>a</italic>(<italic>bv</italic>[<italic>n</italic>] &#x02212; <italic>u</italic>[<italic>u</italic>])</monospace></td></tr>
<tr><td align="left" valign="top"><monospace>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;4: &#x000A0;&#x000A0;&#x000A0;else</monospace></td></tr>
<tr><td align="left" valign="top"><monospace>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;5: &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>do nothing</italic></monospace></td></tr>
<tr><td align="left" valign="top"><monospace>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;6: &#x000A0;&#x000A0;&#x000A0;end <bold>if</bold></monospace></td></tr>
<tr><td align="left" valign="top"><monospace>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;7: &#x000A0;&#x000A0;&#x000A0;<italic>v</italic>[<italic>n</italic> &#x0002B; 1] &#x0003D; (&#x003B1; &#x0002B; 5<italic>v</italic>[<italic>n</italic>] &#x0002B; <italic>I</italic>[<italic>n</italic>])<italic>dt</italic> &#x0002B; <italic>v</italic>[<italic>n</italic>]</monospace></td></tr>
<tr><td align="left" valign="top"><monospace>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;8: &#x000A0;&#x000A0;&#x000A0;<italic>u</italic>[<italic>n</italic> &#x0002B; 1] &#x0003D; (&#x003B2;)<italic>dt</italic> &#x0002B; <italic>u</italic>[<italic>u</italic>]</monospace></td></tr>
</tbody>
</table>
</table-wrap>
<p>CSP for different values of &#x003B4; is presented in <xref ref-type="table" rid="T1">Table 1</xref>. According to the results in this table, for &#x003B4; &#x0003E; 0.01, more than 90% of the time, there is no need to constantly calculate the square function in Izhikevich neuron ODEs. To study performance improvement, original and duplex neurons with different values of &#x003B4; were simulated for 20 s in MATLAB software, and total execution times were measured to calculate the Speed Up Percentage (SUP) as follows:</p>
<disp-formula id="E8"><label>(8)</label><mml:math id="M8"><mml:mtable class="eqnarray" columnalign="center"><mml:mtr><mml:mtd><mml:mi>S</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>e</mml:mi><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>u</mml:mi><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>&#x000D7;</mml:mo><mml:mn>100</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>T</italic><sub><italic>DX</italic></sub> and <italic>T</italic><sub><italic>Un</italic></sub> are execution time of proposed duplex and unmodified Izhikevich model, respectively. Speed up percentage for various values of &#x003B4; is presented in <xref ref-type="table" rid="T1">Table 1</xref>. As data suggest, speed up is higher for larger values of &#x003B4;. Nevertheless, following the pattern of errors, speed up also levels out after &#x003B4; &#x0003E; 0.01 mv.</p>
</sec>
<sec>
<title>3.2.2 Neurons in a network</title>
<p>The neuron in the previous section was stimulated with a constant current to spike continuously. However, as discussed before, this is not the case in a network of spiking neurons. Therefore, it is expected that the proposed duplex neuron features even better performance improvement in a network. To investigate this, the computation saving percentage for each neuron in the network, as shown in <xref ref-type="fig" rid="F5">Figure 5</xref>, was calculated during the testing phase. The results for neurons in each layer are presented in <xref ref-type="fig" rid="F7">Figure 7</xref> on the basis of &#x003B4;.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Distribution of computation saving percentage for the neurons in network of <xref ref-type="fig" rid="F5">Figure 5</xref> based on layer. Computation saving percentages were measured during a testing phase. <bold>(A)</bold> Neurons with &#x003B4; &#x0003D; 0.005 mv, <bold>(B)</bold> Neurons with &#x003B4; &#x0003D; 0.05 mv, and <bold>(C)</bold> Neurons with &#x003B4; &#x0003D; 0.1 mv. This figure indicates that computation-saving percentage of the proposed modified model is even higher in a network, where the neuron is not active all the time in comparison with a single neuron that is stimulated with a constant input current (results in <xref ref-type="table" rid="T1">Table 1</xref>).</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0007.tif"/>
</fig>
<p><xref ref-type="fig" rid="F7">Figure 7</xref> column (A) shows the computation saving percentage for duplex neurons with &#x003B4; &#x0003D; 0.005 mV. Such CSPs are much higher than those calculated for the neurons with a constant input current (<xref ref-type="table" rid="T1">Table 1</xref>). Indeed, even for the neurons with relatively small &#x003B4;, which have very low error, the computation saving percentage is considerable in a practical application.</p>
</sec>
<sec>
<title>3.2.3 Input current</title>
<p>Higher spike rate results in shorter QS period during a spike. This, in turn, leads to lower computation saving percentage and, as a consequence, lower performance improvement.</p>
<p><xref ref-type="fig" rid="F8">Figure 8</xref> shows the computation saving percentage as a function of the input current. As it is evident in this figure, computation saving percentage is lower for larger input currents.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>Computation saving percentage as a function of the input current. The higher value of the input current results in higher activity, smaller QS state period, and, consequently, declining computation saving percentage.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0008.tif"/>
</fig>
<p>In contrary, the quasi-static state makes up the majority of the time for the neurons that rarely fire. Therefore, for silent neurons, the proposed modification saves more computation. In addition to improving execution time, proposed modification also saves energy by decreasing switching activity during simulation.</p>
</sec>
</sec>
</sec>
<sec id="s4">
<title>4 Hardware implementation</title>
<p>This section discusses hardware design and implementation of the proposed duplex neuron models on FPGA and interpretation of results.</p>
<sec>
<title>4.1 Hardware design</title>
<p>The Data Flow Graph (DFG) for digital implementation of the discretized Izhikevich equations (<xref ref-type="disp-formula" rid="E4">Equation 4</xref>) and reset equation (<xref ref-type="disp-formula" rid="E3">Equation 3</xref>) is shown in <xref ref-type="fig" rid="F9">Figure 9</xref>.</p>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>Data flow graph for digital implementation of proposed duplex Izhikevich neuron. A comparator and multiplexer determine whether a neuron is in the quasi-static state (QS bracket) or the firing state (FS bracket) by comparing the updated value of action potential (<italic>v</italic>[<italic>n</italic> &#x0002B; 1]) with its previous value (<italic>v</italic>[<italic>n</italic>]). As shown in this figure, if neuron is in quasi-static sate, critical path is shorter, and there is no need to compute square term which is slowest and most complex operation.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0009.tif"/>
</fig>
<p>In this illustration, addition, subtraction, and multiplication operations are represented as circles. A comparator and multiplexer determine whether the neuron is in the quasi-static state or the firing state by comparing the updated value of the action potential (<italic>v</italic>[<italic>n</italic> &#x0002B; 1]<italic>v</italic>[<italic>n</italic> &#x0002B; 1]) with its previous value (<italic>v</italic>[<italic>n</italic>]<italic>v</italic>[<italic>n</italic>]). As shown in this figure, if the neuron is in the quasi-static state, the critical path is shorter, and there is no need to compute the square term, which is the slowest and most complex operation.</p>
<p>Values of &#x003B1; and &#x003B2; are stored in two registers (shown as rectangles). The operation units are scheduled in a way that no more than two adders are needed at any time. Arithmetic shift operations are denoted by &#x0201C;&#x0226A;&#x0201D; symbol, where &#x0201C;&#x0226A;2&#x0201D; indicates that data shifted twice to the left. Multiplication with constants is performed using add and shift operations. For instance, 0.04 &#x000D7; <italic>v</italic>[<italic>n</italic>] was calculated as follows:</p>
<disp-formula id="E9"><label>(9)</label><mml:math id="M9"><mml:mtable class="eqnarray" columnalign="center"><mml:mtr><mml:mtd><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>04</mml:mn><mml:mo>&#x000D7;</mml:mo><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02248;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>0396</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>11</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>7</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>5</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x0003C;</mml:mo><mml:mo>&#x0003C;</mml:mo><mml:mn>11</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x0003C;</mml:mo><mml:mo>&#x0003C;</mml:mo><mml:mn>7</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>v</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x0003C;</mml:mo><mml:mo>&#x0003C;</mml:mo><mml:mn>5</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Such approximation causes a small error; however, it considerably improves the performance of the design. A CORDIC algorithm, as presented in the study by Heidarpur et al. (<xref ref-type="bibr" rid="B15">2019</xref>), was used to perform the square function in neuron ODEs. Fixed-point arithmetic was utilized since fixed-point units are considerably cheaper and faster compared with floating-point units. Furthermore, the word length of the design was determined considering the number of integer bits to represent variables in their domain and the number of fraction bits for the minimum required precision. Additional bits were also added to avoid overflow or underflow. Taking these requirements into consideration, a 30-bit word length was specified, comprised of a 14-bit fraction and a 16-bit integer part.</p>
</sec>
<sec>
<title>4.2 Hardware implementation</title>
<p>To implement the design on FPGA, the architecture, as shown in <xref ref-type="fig" rid="F9">Figure 9</xref>, was modeled in Very High-speed integrated circuit Hardware Description Language (VHDL). The design was verified by simulating and testing using ModelSim software. Subsequently, the HDL description was synthesized and configured for FPGA implementation using Xilinx Integrated Synthesis Environment (ISE) software tool.</p>
<sec>
<title>4.2.1 A single neuron</title>
<p><xref ref-type="fig" rid="F10">Figure 10</xref> shows membrane potential of a tonic spiking/bursting Izhikivech and a duplex proposed neuron for different values of &#x003B4; on Spartan 6 XC6LX75 FPGA. The data were converted to analog using a 12 bit Digital to Analog Converter (DAC).</p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p><bold>(A&#x02013;L)</bold> Oscilloscope photos of FPGA implementation of a tonic spiking/bursting Izhikivech and duplex proposed neurons with different values of &#x003B4;. The input current for all of these case is 16 mA. The oscilloscope time scale and volt scale for all of figures are 1 ms and 100 mv, respectively. This figure demonstrates that the proposed hardware for the modified Izhikevch neuron has the same behavior as the hardware of the original neuron.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0010.tif"/>
</fig>
<p>As this figure demonstrates, even for large values of &#x003B4;, such as 0.128 mv, the duplex model still follows the original model. However, by increasing &#x003B4;, one can observe some differences in the shapes of spikes. The input current for all neurons is the same, but spike rate for neurons with larger &#x003B4; are higher since they have higher throughput.</p>
<p>To transfer data from FPGA to PC for further analysis, a Universal Asynchronous Receiver-Transmitter (UART) module was developed and implemented on FPGA as described in the reference Heidarpur et al. (<xref ref-type="bibr" rid="B15">2019</xref>). Transferred data are presented in <xref ref-type="fig" rid="F11">Figure 11</xref>. As it is evident in this figure, the proposed and unmodified model has a similar membrane potential waveform apart from some deviations in the shape of spikes. These implementation results are in agreement with computer simulation results in Computer Simulation Section, as presented in <xref ref-type="fig" rid="F4">Figure 4</xref> and <xref ref-type="table" rid="T1">Table 1</xref>.</p>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>The on-FPGA data were transferred to PC through UART port, recovered and plotted for the Izhikevich neuron (red lines) and proposed duplex neuron with different values of &#x003B4; (black lines). Duplex neurons with relatively large &#x003B4;, such as 1/8 mv, still follow the unmodified model except for small changes in the shapes of spikes.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0011.tif"/>
</fig>
</sec>
<sec>
<title>4.2.2 A network of neurons</title>
<p>The network, as shown in <xref ref-type="fig" rid="F5">Figure 5</xref>, was described in VHDL and implemented on Spartan 6 XC6LX75 FPGA. <xref ref-type="fig" rid="F12">Figure 12</xref> shows oscilloscope photos of membrane potential of output neuron of the network while tests are applied to the network. <xref ref-type="fig" rid="F12">Figure 12A</xref> shows the result for the network of the unmodified Izhikevich neurons where the output neuron spikes for &#x0201C;E&#x0201D; and is silent for &#x0201C;H.&#x0201D; Thereafter, the same network with proposed duplex neurons was implemented on FPGA. While implementing modified models with different values of &#x003B4;, we faced two unexpected challenges.</p>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p><bold>(A&#x02013;F)</bold> Oscilloscope photos of FPGA implementation of the network of Izhikevich neurons in <xref ref-type="fig" rid="F5">Figure 5</xref> for a very basic pattern recognition application. The pulses with higher amplitude indicate where the letter &#x0201C;E&#x0201D; is applied to the network, and pulses with lower amplitudes stand for the letter &#x0201C;H.&#x0201D; The output neuron spikes when &#x0201C;E&#x0201D; is applied and is silent otherwise. The oscilloscope time scale for all figures is 10 ms. The oscilloscope volt scale for figures showing the membrane potential of the output neuron is 200 mV and for figures showing patterns is 2V. The objective of this figure is to demonstrate that the hardware designed for the modified model has the same behavior in a network as unmodified Izhikevich neurons, despite the fact that the network of the modified models is computationally cheaper and consumes less energy because of lower switching activity.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0012.tif"/>
</fig>
<p>First, in the unmodified Izhikevich neuron, all neurons generate new output after a certain number of the clock cycles and have the same throughput. However, for the duplex neuron, this number could be different for each neuron depending on its input weights. Transferring data from one layer to the next layer requires that all neurons action potentials of that layer to be updated. Therefore, the slowest neuron determines the critical path, and faster neurons must wait in idle state for others to finish.</p>
<p>Second, the proposed modification results in discrepancy in timing of the spikes since the duplex neurons are faster than unmodified neurons. On the other hand, SNNs are primarily based on timing. Because of that, the network, initially, did not function properly with the weights calculated based on the original neuron and was not able to recognize all instances of input patterns. For larger values of &#x003B4;, where the speed up was more dramatic, overall network failure rate was higher. To resolve this issue, the weights were recalculated by applying STDP rule to network of duplex neurons. <xref ref-type="fig" rid="F12">Figure 12</xref> shows oscilloscope photos of FPGA implementation of the trained network, where two test patterns are applied to network. It could be observed in this figure that the on-FPGA network of duplex neurons, even for large values of &#x003B4;, has the same behavior as the network of original Izhikevich neurons.</p>
</sec>
</sec>
<sec>
<title>4.3 Results and discussion</title>
<p>The objective of the proposed modification is to reduce the number of the clock cycles required to generate an output. This contributes to increasing speed and reducing power consumption of the circuit. <xref ref-type="table" rid="T2">Table 2</xref> compares resource utilization and operation frequency for FPGA implementation of the original and duplex modified Izhikevich neuron. The proposed modification does not result in a notable increase in resources that are needed to implement the neuron hardware on FPGA. Furthermore, resources and frequency are comparable to similar studies. Some studies reported low resources but they use extensive approximations and are not very accurate replicators of Izhikevich neuron. <xref ref-type="table" rid="T3">Table 3</xref> shows on-FPGA dynamic power consumption reported by Xilinx Power Estimator (XPE), and the number of the clock cycles and time is required to generate a spike.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Comparison between resource utilization and frequency of the proposed method and previously published studies.</p></caption>
<table frame="box" rules="all">
<thead>
<tr style="background-color:#919498;color:#ffffff">
<th valign="top" align="left"><bold>References</bold></th>
<th valign="top" align="center"><bold>Slice registers</bold></th>
<th valign="top" align="center"><bold>Slice LUT&#x00027;s</bold></th>
<th valign="top" align="center"><bold>Frequency</bold></th>
<th valign="top" align="center"><bold>DSPs</bold></th>
<th valign="top" align="left"><bold>Device</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Soleimani et al. (<xref ref-type="bibr" rid="B38">2012</xref>)</td>
<td valign="top" align="center">493</td>
<td valign="top" align="center">617</td>
<td valign="top" align="center">241.9</td>
<td valign="top" align="center">0</td>
<td valign="top" align="left">Virtex-II Pro XC2VP30</td>
</tr> <tr>
<td valign="top" align="left">Haghiri et al. (<xref ref-type="bibr" rid="B13">2018</xref>)</td>
<td valign="top" align="center">490</td>
<td valign="top" align="center">459</td>
<td valign="top" align="center">240</td>
<td valign="top" align="center">0</td>
<td valign="top" align="left">Virtex-II Pro</td>
</tr> <tr>
<td valign="top" align="left">Yang et al. (<xref ref-type="bibr" rid="B45">2020</xref>)</td>
<td valign="top" align="center">130</td>
<td valign="top" align="center">119</td>
<td valign="top" align="center">291.8</td>
<td valign="top" align="center">-</td>
<td valign="top" align="left">ZCU102</td>
</tr> <tr>
<td valign="top" align="left">Jokar et al. (<xref ref-type="bibr" rid="B22">2019</xref>)</td>
<td valign="top" align="center">195</td>
<td valign="top" align="center">198</td>
<td valign="top" align="center">285</td>
<td valign="top" align="center">0</td>
<td valign="top" align="left">Virtex-6</td>
</tr> <tr>
<td valign="top" align="left">Grassia et al. (<xref ref-type="bibr" rid="B12">2014</xref>)</td>
<td valign="top" align="center">646</td>
<td valign="top" align="center">1,048</td>
<td valign="top" align="center">105</td>
<td valign="top" align="center">22</td>
<td valign="top" align="left">Virtex-5 XC5VLX50</td>
</tr> <tr>
<td valign="top" align="left">Heidarpour et al. (<xref ref-type="bibr" rid="B14">2016</xref>)</td>
<td valign="top" align="center">829</td>
<td valign="top" align="center">1,221</td>
<td valign="top" align="center">134.3</td>
<td valign="top" align="center">0</td>
<td valign="top" align="left">Spartan-6 XC6SLX9</td>
</tr> <tr>
<td valign="top" align="left">Shimada and Torikai (<xref ref-type="bibr" rid="B37">2015</xref>)</td>
<td valign="top" align="center">357</td>
<td valign="top" align="center">1,776</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="left">Zync-7000 XC7Z020</td>
</tr> <tr>
<td valign="top" align="left">Original Izhikevich</td>
<td valign="top" align="center">270</td>
<td valign="top" align="center">469</td>
<td valign="top" align="center">212.8</td>
<td valign="top" align="center">0</td>
<td valign="top" align="left">Spartan-6 XC6SLX75</td>
</tr>
<tr>
<td valign="top" align="left">Duplex Izhikevich</td>
<td valign="top" align="center">297</td>
<td valign="top" align="center">532</td>
<td valign="top" align="center">171.9</td>
<td valign="top" align="center">0</td>
<td valign="top" align="left">Spartan-6 XC6SLX75</td>
</tr></tbody>
</table>
<table-wrap-foot>
<p>Objective of this study is not to reduce resource utilization or increase the frequency of design but rather to skip unnecessary computations to save power and reduce latency of the neuron.</p>
</table-wrap-foot>
</table-wrap>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>On FPGA dynamic power, total number of clock cycles and total time required for unmodified and proposed DX Izhikevich neurons with different values of &#x003B4; (mv) to generate a spike.</p></caption>
<table frame="box" rules="all">
<thead>
<tr style="background-color:#919498;color:#ffffff">
<th/>
<th valign="top" align="center"><bold>Unmodified</bold></th>
<th valign="top" align="center"><bold>&#x003B4;=1/1,024</bold></th>
<th valign="top" align="center"><bold>&#x003B4;=1/256</bold></th>
<th valign="top" align="center"><bold>&#x003B4;=1/128</bold></th>
<th valign="top" align="center"><bold>&#x003B4;=1/16</bold></th>
<th valign="top" align="center"><bold>&#x003B4;=1/8</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Dynamic power (mW)</td>
<td valign="top" align="center">11</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">6</td>
</tr> <tr>
<td valign="top" align="left">Number of clocks</td>
<td valign="top" align="center">122,400</td>
<td valign="top" align="center">120,788</td>
<td valign="top" align="center">114,704</td>
<td valign="top" align="center">73,780</td>
<td valign="top" align="center">37,312</td>
<td valign="top" align="center">32,200</td>
</tr> <tr>
<td valign="top" align="left">Total time (ms)</td>
<td valign="top" align="center">2.45</td>
<td valign="top" align="center">2.42</td>
<td valign="top" align="center">2.30</td>
<td valign="top" align="center">1.47</td>
<td valign="top" align="center">0.74</td>
<td valign="top" align="center">0.65</td>
</tr></tbody>
</table>
</table-wrap>
<sec>
<title>4.3.1 Speed</title>
<p>As data in <xref ref-type="table" rid="T3">Table 3</xref> indicate, proposed modification, especially for larger values of <italic>delta</italic>, considerably decreases total computation time per spike. Furthermore, speed up percentage was calculated according to <xref ref-type="disp-formula" rid="E8">Equation 8</xref> and compared as follows</p>
<disp-formula id="E10"><label>(10)</label><mml:math id="M10"><mml:mtable class="eqnarray" columnalign="center"><mml:mtr><mml:mtd><mml:mi>S</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>e</mml:mi><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>u</mml:mi><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>&#x000D7;</mml:mo><mml:mn>100</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>T</italic><sub><italic>Un</italic></sub> and <italic>T</italic><sub><italic>DX</italic></sub> are total computation time per spike for unmodified and duplex Izhikevich neuron. This percentage was calculated and compared for different values of <italic>delta</italic>, as shown in <xref ref-type="fig" rid="F13">Figure 13</xref>. As this figure indicates, models with &#x003B4; &#x0003D; 1/8 mv and 1/16 mv require almost 70% less computation time to generate a spike.</p>
<fig id="F13" position="float">
<label>Figure 13</label>
<caption><p>Speed up percentage for on-FPGA duplex models with different values of &#x003B4; (mv) (<xref ref-type="table" rid="T4">Algorithm 1</xref>). Speed up percentage is considerably higher for larger values of &#x003B4; while the neuron behavior does not change notably as demonstrated before.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0013.tif"/>
</fig>
</sec>
<sec>
<title>4.3.2 Power dissipation</title>
<p>Reported by XPE, original Izhikevich model dynamic power on FPGA is almost double of those of the modified models. These powers were calculated for operation frequency of 50 MHz, which is the frequency of on-board oscillator. The total energy consumption per spike (<italic>E</italic><sub><italic>ps</italic></sub>) could be calculated as follows:</p>
<disp-formula id="E11"><label>(11)</label><mml:math id="M11"><mml:mtable class="eqnarray" columnalign="center"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>P</italic><sub><italic>d</italic></sub> is dynamic power and <italic>T</italic><sub><italic>s</italic></sub> is total time to generate an spike.</p>
<p><italic>E</italic><sub><italic>ps</italic></sub> for unmodified and proposed duplex Izhikevich models with different values of &#x003B4; is presented in <xref ref-type="fig" rid="F14">Figure 14</xref>. As results indicate, proposed models considerably reduce energy consumption per spike. This is because proposed modification not only decreases switching activity of the circuit but it also reduces total computing time. This applies to the trained network as well. As shown in <xref ref-type="fig" rid="F12">Figure 12</xref>, the network with &#x003B4; &#x0003D; 1/8 mv can process patterns almost 2.5 times faster, which also results in less switching and energy consumption as well.</p>
<fig id="F14" position="float">
<label>Figure 14</label>
<caption><p>Energy consumption per spike for on-FPGA unmodified and proposed duplex Izhikevich neuron on the basis of &#x003B4;. The proposed modified neuron consumes considerably lower amount of energy due to its lower switching activity.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0014.tif"/>
</fig>
</sec>
<sec>
<title>4.3.3 Impact of input current</title>
<p>To calculate the total number of clocks required to generate a spike and energy consumption measurements, it was assumed that input current of the neuron is 16 mA. Changing the input current will affect the results that presented in the previous section. As discussed in the previous sections, increasing input current results in a higher spike rate and decreasing ratio of quasi-static state period to the total period of a spike. This, in turn, leads to a lower speed up percentage.</p>
<p><xref ref-type="fig" rid="F15">Figure 15</xref> shows on-FPGA speed up percentage (<xref ref-type="disp-formula" rid="E10">Equation 10</xref>) for the duplex neurons as a function of the input current. As this figure demonstrates, SUP is considerably higher for smaller input currents. This denotes that the proposed modification is most useful when neuronal activity is low.</p>
<fig id="F15" position="float">
<label>Figure 15</label>
<caption><p>Speed up percentage for on-FPGA proposed duplex Izhikevich neuron with &#x003B4; &#x0003D; 1/128 mv as a function of input current. The hardware for the modified model is faster for smaller values of the input current. By increasing the input current, the rate of which the speed up percentage declines becomes slower. This demonstrate that the proposed modification is most useful when neuronal activity is low.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnins-17-1333238-g0015.tif"/>
</fig>
</sec>
</sec>
</sec>
<sec sec-type="conclusions" id="s5">
<title>5 Conclusion</title>
<p>In this study, a novel modification to neuron differential equations was presented to avoid unnecessary computation while simulating neurons on computers or implementing them on hardware. The proposed method is inspired by biology and benefits from the fact that most biological neurons are either silent or fire with a very slow rate. First, the proposed models were simulated for validation both as a single neuron and as a part of a network of neurons trained using STDP. Second, the impact of the proposed modification was studied on computer simulation performance in terms of the total time required to simulate neurons. The results show that the proposed modification can avoid unnecessary computations from 20 to 90 % and speed up simulation time from 2 to 18 % depending on the value of &#x003B4;, input current, and time step. Furthermore, hardware was designed, described in VHDL, and simulated and implemented on FPGA. Implementation results indicated that the proposed modification accelerates the speed of hardware up to 70 %. The results for energy consumption also revealed that the proposed models can reduce energy consumption per spike from 50 % to 1/7th of its value for an unmodified neuron.</p>
</sec>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec sec-type="author-contributions" id="s7">
<title>Author contributions</title>
<p>MH: Writing &#x02013; original draft, Writing &#x02013; review &#x00026; editing. AA: Conceptualization, Supervision, Validation, Writing &#x02013; review &#x00026; editing. MA: Conceptualization, Supervision, Validation, Writing &#x02013; review &#x00026; editing.</p>
</sec>
</body>
<back>
<sec sec-type="funding-information" id="s8">
<title>Funding</title>
<p>The author(s) declare that no financial support was received for the research, authorship, and/or publication of this article.</p>
</sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s9">
<title>Publisher&#x00027;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Akopyan</surname> <given-names>F.</given-names></name> <name><surname>Sawada</surname> <given-names>J.</given-names></name> <name><surname>Cassidy</surname> <given-names>A.</given-names></name> <name><surname>Alvarez-Icaza</surname> <given-names>R.</given-names></name> <name><surname>Arthur</surname> <given-names>J.</given-names></name> <name><surname>Merolla</surname> <given-names>P.</given-names></name> <etal/></person-group>. (<year>2015</year>). <article-title>Truenorth: design and tool flow of a 65 mw 1 million neuron programmable neurosynaptic chip</article-title>. <source>IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst</source>. <volume>34</volume>, <fpage>1537</fpage>&#x02013;<lpage>1557</lpage>. <pub-id pub-id-type="doi">10.1109/TCAD.2015.2474396</pub-id></citation>
</ref>
<ref id="B2">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Barchi</surname> <given-names>F.</given-names></name> <name><surname>Urgese</surname> <given-names>G.</given-names></name> <name><surname>Siino</surname> <given-names>A.</given-names></name> <name><surname>Di Cataldo</surname> <given-names>S.</given-names></name> <name><surname>Macii</surname> <given-names>E.</given-names></name> <name><surname>Acquaviva</surname> <given-names>A.</given-names></name></person-group> (<year>2019</year>). <article-title>Flexible on-line reconfiguration of multi-core neuromorphic platforms</article-title>. <source>IEEE Trans. Emerg. Topics Comput</source>. <volume>9</volume>, <fpage>915</fpage>&#x02013;<lpage>927</lpage>. <pub-id pub-id-type="doi">10.1109/TETC.2019.2908079</pub-id></citation>
</ref>
<ref id="B3">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Benjamin</surname> <given-names>B. V.</given-names></name> <name><surname>Gao</surname> <given-names>P.</given-names></name> <name><surname>McQuinn</surname> <given-names>E.</given-names></name> <name><surname>Choudhary</surname> <given-names>S.</given-names></name> <name><surname>Chandrasekaran</surname> <given-names>A. R.</given-names></name> <name><surname>Bussat</surname> <given-names>J. M.</given-names></name> <etal/></person-group>. (<year>2014</year>). <article-title>Neurogrid: a mixed-analog-digital multichip system for large-scale neural simulations</article-title>. <source>Proc. IEEE</source> <volume>102</volume>, <fpage>699</fpage>&#x02013;<lpage>716</lpage>. <pub-id pub-id-type="doi">10.1109/JPROC.2014.2313565</pub-id></citation>
</ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Brette</surname> <given-names>R.</given-names></name></person-group> (<year>2005</year>). <article-title>Adaptive exponential integrate-and-fire model as an effective description of neuronal activity</article-title>. <source>J. Neurophysiol</source>. <volume>94</volume>, <fpage>3637</fpage>&#x02013;<lpage>3642</lpage>. <pub-id pub-id-type="doi">10.1152/jn.00686.2005</pub-id><pub-id pub-id-type="pmid">16014787</pub-id></citation></ref>
<ref id="B5">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Christophe</surname> <given-names>F.</given-names></name> <name><surname>Mikkonen</surname> <given-names>T. J.</given-names></name> <name><surname>Andalibi</surname> <given-names>V.</given-names></name> <name><surname>Koskimies</surname> <given-names>K.</given-names></name> <name><surname>Laukkarinen</surname> <given-names>T.</given-names></name></person-group> (<year>2015</year>). <article-title>Pattern recognition with spiking neural networks: a simple training method</article-title>, in <source>14th Symposium on programming Languages and Software Tools</source> (<publisher-loc>Tampere</publisher-loc>).</citation>
</ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Covi</surname> <given-names>E.</given-names></name> <name><surname>Brivio</surname> <given-names>S.</given-names></name> <name><surname>Fanciulli</surname> <given-names>M.</given-names></name> <name><surname>Spiga</surname> <given-names>S.</given-names></name></person-group> (<year>2015</year>). <article-title>Synaptic potentiation and depression in al: Hfo2-based memristor</article-title>. <source>Microelectron. Eng</source>. <volume>147</volume>, <fpage>41</fpage>&#x02013;<lpage>44</lpage>. <pub-id pub-id-type="doi">10.1016/j.mee.2015.04.052</pub-id></citation>
</ref>
<ref id="B7">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Devadas</surname> <given-names>S.</given-names></name> <name><surname>Malik</surname> <given-names>S.</given-names></name></person-group> (<year>1995</year>). <article-title>A survey of optimization techniques targeting low power vlsi circuits</article-title>, in <source>Proceedings of the 32nd annual ACM/IEEE Design Automation Conference</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>242</fpage>&#x02013;<lpage>247</lpage>. <pub-id pub-id-type="doi">10.1145/217474.217536</pub-id></citation>
</ref>
<ref id="B8">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Elnabawy</surname> <given-names>A.</given-names></name> <name><surname>Abdelmohsen</surname> <given-names>H.</given-names></name> <name><surname>Moustafa</surname> <given-names>M.</given-names></name> <name><surname>Elbediwy</surname> <given-names>M.</given-names></name> <name><surname>Helmy</surname> <given-names>A.</given-names></name> <name><surname>Mostafa</surname> <given-names>H.</given-names></name> <etal/></person-group>. (<year>2018</year>). <article-title>A low power cordic-based hardware implementation of Izhikevich neuron model</article-title>, in <source>2018 16th IEEE International New Circuits and Systems Conference (NEWCAS)</source> (<publisher-loc>Montreal, QC</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>130</fpage>&#x02013;<lpage>133</lpage>. <pub-id pub-id-type="doi">10.1109/NEWCAS.2018.8585485</pub-id></citation>
</ref>
<ref id="B9">
<citation citation-type="web"><person-group person-group-type="author"><collab>EPFL</collab></person-group> (<year>2024</year>). <source>Home</source>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.epfl.ch/en/">https://www.epfl.ch/en/</ext-link> (accessed February 15, 2024).</citation>
</ref>
<ref id="B10">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Farsa</surname> <given-names>E. Z.</given-names></name> <name><surname>Ahmadi</surname> <given-names>A.</given-names></name> <name><surname>Maleki</surname> <given-names>M. A.</given-names></name> <name><surname>Gholami</surname> <given-names>M.</given-names></name> <name><surname>Rad</surname> <given-names>H. N.</given-names></name></person-group> (<year>2019</year>). <article-title>A low-cost high-speed neuromorphic hardware based on spiking neural network</article-title>. <source>IEEE Trans. Circuits Syst. II Express Briefs</source> <volume>66</volume>, <fpage>1582</fpage>&#x02013;<lpage>1586</lpage>. <pub-id pub-id-type="doi">10.1109/TCSII.2019.2890846</pub-id></citation>
</ref>
<ref id="B11">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Gerstner</surname> <given-names>W.</given-names></name> <name><surname>Kistler</surname> <given-names>W. M.</given-names></name></person-group> (<year>2002</year>). <source>Spiking Neuron Models: Single Neurons, Populations, Plasticity</source>. <publisher-loc>Cambridge</publisher-loc>: <publisher-name>Cambridge University Press</publisher-name>. <pub-id pub-id-type="doi">10.1017/CBO9780511815706</pub-id></citation>
</ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Grassia</surname> <given-names>F.</given-names></name> <name><surname>Levi</surname> <given-names>T.</given-names></name> <name><surname>Kohno</surname> <given-names>T.</given-names></name> <name><surname>Saghi</surname> <given-names>S.</given-names></name></person-group> (<year>2014</year>). <article-title>Silicon neuron: digital hardware implementation of the quartic model</article-title>. <source>Artif. Life Robot</source>. <volume>19</volume>, <fpage>215</fpage>&#x02013;<lpage>219</lpage>. <pub-id pub-id-type="doi">10.1007/s10015-014-0160-2</pub-id></citation>
</ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Haghiri</surname> <given-names>S.</given-names></name> <name><surname>Zahedi</surname> <given-names>A.</given-names></name> <name><surname>Naderi</surname> <given-names>A.</given-names></name> <name><surname>Ahmadi</surname> <given-names>A.</given-names></name></person-group> (<year>2018</year>). <article-title>Multiplierless implementation of noisy Izhikevich neuron with low-cost digital design</article-title>. <source>IEEE Trans. Biomed. Circuits Syst</source>. <volume>12</volume>, <fpage>1422</fpage>&#x02013;<lpage>1430</lpage>. <pub-id pub-id-type="doi">10.1109/TBCAS.2018.2868746</pub-id><pub-id pub-id-type="pmid">30188839</pub-id></citation></ref>
<ref id="B14">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Heidarpour</surname> <given-names>M.</given-names></name> <name><surname>Ahmadi</surname> <given-names>A.</given-names></name> <name><surname>Rashidzadeh</surname> <given-names>R.</given-names></name></person-group> (<year>2016</year>). <article-title>A cordic based digital hardware for adaptive exponential integrate and fire neuron</article-title>. <source>IEEE Trans. Circuits Syst. I: Regul. Pap</source>. <volume>63</volume>, <fpage>1986</fpage>&#x02013;<lpage>1996</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2016.2598161</pub-id></citation>
</ref>
<ref id="B15">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Heidarpur</surname> <given-names>M.</given-names></name> <name><surname>Ahmadi</surname> <given-names>A.</given-names></name> <name><surname>Ahmadi</surname> <given-names>M.</given-names></name> <name><surname>Rahimi Azghadi</surname> <given-names>M.</given-names></name></person-group> (<year>2019</year>). <article-title>CORDIC-SNN: On-FPGA STDP learning with Izhikevich neurons</article-title>. <source>IEEE Trans. Circuits Syst. I: Regul. Pap</source>. <volume>66</volume>, <fpage>2651</fpage>&#x02013;<lpage>2661</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2019.2899356</pub-id></citation>
</ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Heidarpur</surname> <given-names>M.</given-names></name> <name><surname>Ahmadi</surname> <given-names>A.</given-names></name> <name><surname>Kandalaft</surname> <given-names>N.</given-names></name></person-group> (<year>2017</year>). <article-title>A digital implementation of 2D hindmarsh-rose neuron</article-title>. <source>Nonlinear Dyn</source>. <volume>89</volume>, <fpage>2259</fpage>&#x02013;<lpage>2272</lpage>. <pub-id pub-id-type="doi">10.1007/s11071-017-3584-0</pub-id></citation>
</ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hishiki</surname> <given-names>T.</given-names></name> <name><surname>Torikai</surname> <given-names>H.</given-names></name></person-group> (<year>2011</year>). <article-title>A novel rotate-and-fire digital spiking neuron and its neuron-like bifurcations and responses</article-title>. <source>IEEE Trans. n Neural Netw</source>. <volume>22</volume>, <fpage>752</fpage>&#x02013;<lpage>767</lpage>. <pub-id pub-id-type="doi">10.1109/TNN.2011.2116802</pub-id><pub-id pub-id-type="pmid">21550873</pub-id></citation></ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hodgkin</surname> <given-names>A. L.</given-names></name> <name><surname>Huxley</surname> <given-names>A. F.</given-names></name></person-group> (<year>1990</year>). <article-title>A quantitative description of membrane current and its application to conduction and excitation in nerve</article-title>. <source>Bull. Math. Biol</source>. <volume>52</volume>, <fpage>25</fpage>&#x02013;<lpage>71</lpage>. <pub-id pub-id-type="doi">10.1016/S0092-8240(05)80004-7</pub-id><pub-id pub-id-type="pmid">12991237</pub-id></citation></ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Indiveri</surname> <given-names>G.</given-names></name> <name><surname>Chicca</surname> <given-names>E.</given-names></name> <name><surname>Douglas</surname> <given-names>R.</given-names></name></person-group> (<year>2006</year>). <article-title>A VLSI array of low-power spiking neurons and bistable synapses with spike-timing dependent plasticity</article-title>. <source>IEEE Trans. Neural Netw</source>. <volume>17</volume>, <fpage>211</fpage>&#x02013;<lpage>221</lpage>. <pub-id pub-id-type="doi">10.1109/TNN.2005.860850</pub-id><pub-id pub-id-type="pmid">16526488</pub-id></citation></ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Izhikevich</surname> <given-names>E.</given-names></name></person-group> (<year>2003</year>). <article-title>Simple model of spiking neurons</article-title>. <source>IEEE Trans. Neural Netw</source>. <volume>14</volume>, <fpage>1569</fpage>&#x02013;<lpage>1572</lpage>. <pub-id pub-id-type="doi">10.1109/TNN.2003.820440</pub-id><pub-id pub-id-type="pmid">18244602</pub-id></citation></ref>
<ref id="B21">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Izhikevich</surname> <given-names>E. M.</given-names></name></person-group> (<year>2007</year>). <source>Dynamical Systems in Neuroscience</source>. <publisher-loc>Cambridge, MA</publisher-loc>: <publisher-name>MIT Press</publisher-name>.</citation>
</ref>
<ref id="B22">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jokar</surname> <given-names>E.</given-names></name> <name><surname>Abolfathi</surname> <given-names>H.</given-names></name> <name><surname>Ahmadi</surname> <given-names>A.</given-names></name></person-group> (<year>2019</year>). <article-title>A novel nonlinear function evaluation approach for efficient FPGA mapping of neuron and synaptic plasticity models</article-title>. <source>IEEE Trans. Biomed. Circuits Syst</source>. <volume>13</volume>, <fpage>454</fpage>&#x02013;<lpage>469</lpage>. <pub-id pub-id-type="doi">10.1109/TBCAS.2019.2900943</pub-id><pub-id pub-id-type="pmid">30802873</pub-id></citation></ref>
<ref id="B23">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Karim</surname> <given-names>S.</given-names></name> <name><surname>Harkin</surname> <given-names>J.</given-names></name> <name><surname>McDaid</surname> <given-names>L.</given-names></name> <name><surname>Gardiner</surname> <given-names>B.</given-names></name> <name><surname>Liu</surname> <given-names>J.</given-names></name> <name><surname>Halliday</surname> <given-names>D. M.</given-names></name> <etal/></person-group>. (<year>2017</year>). <article-title>Assessing self-repair on FPGAS with biologically realistic astrocyte-neuron networks</article-title>, in <source>2017 IEEE Computer Society Annual Symposium on VLSI (ISVLSI)</source> (<publisher-loc>Bochum</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>421</fpage>&#x02013;<lpage>426</lpage>. <pub-id pub-id-type="doi">10.1109/ISVLSI.2017.80</pub-id></citation>
</ref>
<ref id="B24">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kohno</surname> <given-names>T.</given-names></name> <name><surname>Aihara</surname> <given-names>K.</given-names></name></person-group> (<year>2016</year>). <article-title>A three-variable ultralow-power analog silicon neuron circuit</article-title>. <source>Neural Netw</source>. <volume>3</volume>, <fpage>6</fpage>. <pub-id pub-id-type="doi">10.34385/proc.48.A3L-G-1</pub-id></citation>
</ref>
<ref id="B25">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Kueh</surname> <given-names>S. M.</given-names></name> <name><surname>Kazmierski</surname> <given-names>T.</given-names></name></person-group> (<year>2017</year>). <article-title>A dedicated bit-serial hardware neuron for massively-parallel neural networks in fast epilepsy diagnosis</article-title>, in <source>2017 IEEE Healthcare Innovations and Point of Care Technologies (HI-POCT)</source> (<publisher-loc>Bethesda, MD</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>105</fpage>&#x02013;<lpage>108</lpage>. <pub-id pub-id-type="doi">10.1109/HIC.2017.8227595</pub-id></citation>
</ref>
<ref id="B26">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lee</surname> <given-names>Y. J.</given-names></name> <name><surname>Lee</surname> <given-names>J.</given-names></name> <name><surname>Kim</surname> <given-names>Y. B.</given-names></name> <name><surname>Ayers</surname> <given-names>J.</given-names></name> <name><surname>Volkovskii</surname> <given-names>A.</given-names></name> <name><surname>Selverston</surname> <given-names>A.</given-names></name> <etal/></person-group>. (<year>2004</year>). <article-title>Low power real time electronic neuron vlsi design using subthreshold technique</article-title>, in <source>2004 IEEE International Symposium on Circuits and Systems</source>, <volume>Volume 4</volume> (<publisher-loc>Vancouver, BC</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>IV</fpage>&#x02013;<lpage>744</lpage>. <pub-id pub-id-type="doi">10.1109/ISCAS.2004.1329111</pub-id></citation>
</ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>J.</given-names></name> <name><surname>Harkin</surname> <given-names>J.</given-names></name> <name><surname>Maguire</surname> <given-names>L. P.</given-names></name> <name><surname>McDaid</surname> <given-names>L. J.</given-names></name> <name><surname>Wade</surname> <given-names>J. J.</given-names></name></person-group> (<year>2018</year>). <article-title>Spanner: a self-repairing spiking neural network hardware architecture</article-title>. <source>IEEE Trans. Neural Netw. Learn. Syst</source>. <volume>29</volume>, <fpage>1287</fpage>&#x02013;<lpage>1300</lpage>. <pub-id pub-id-type="doi">10.1109/TNNLS.2017.2673021</pub-id><pub-id pub-id-type="pmid">28287992</pub-id></citation></ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Matsubara</surname> <given-names>T.</given-names></name> <name><surname>Torikai</surname> <given-names>H.</given-names></name></person-group> (<year>2013</year>). <article-title>Asynchronous cellular automaton-based neuron: theoretical analysis and on-fpga learning</article-title>. <source>IEEE Trans. Neural Netw. Learn. Syst</source>. <volume>24</volume>, <fpage>736</fpage>&#x02013;<lpage>748</lpage>. <pub-id pub-id-type="doi">10.1109/TNNLS.2012.2230643</pub-id><pub-id pub-id-type="pmid">24808424</pub-id></citation></ref>
<ref id="B29">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Merolla</surname> <given-names>P.</given-names></name> <name><surname>Arthur</surname> <given-names>J.</given-names></name> <name><surname>Akopyan</surname> <given-names>F.</given-names></name> <name><surname>Imam</surname> <given-names>N.</given-names></name> <name><surname>Manohar</surname> <given-names>R.</given-names></name> <name><surname>Modha</surname> <given-names>D. S.</given-names></name> <etal/></person-group>. (<year>2011</year>). <article-title>A digital neurosynaptic core using embedded crossbar memory with 45pJ per spike in 45nm</article-title>, in <source>2011 IEEE Custom Integrated Circuits Conference (CICC)</source> (<publisher-loc>San Jose, CA</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x02013;<lpage>4</lpage>. <pub-id pub-id-type="doi">10.1109/CICC.2011.6055294</pub-id></citation>
</ref>
<ref id="B30">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Neckar</surname> <given-names>A.</given-names></name> <name><surname>Fok</surname> <given-names>S.</given-names></name> <name><surname>Benjamin</surname> <given-names>B. V.</given-names></name> <name><surname>Stewart</surname> <given-names>T. C.</given-names></name> <name><surname>Oza</surname> <given-names>N. N.</given-names></name> <name><surname>Voelker</surname> <given-names>A. R.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>Braindrop: a mixed-signal neuromorphic architecture with a dynamical systems-based programming model</article-title>. <source>Proc. IEEE</source> <volume>107</volume>, <fpage>144</fpage>&#x02013;<lpage>164</lpage>. <pub-id pub-id-type="doi">10.1109/JPROC.2018.2881432</pub-id></citation>
</ref>
<ref id="B31">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Neil</surname> <given-names>D.</given-names></name> <name><surname>Liu</surname> <given-names>S.</given-names></name></person-group> (<year>2014</year>). <article-title>Minitaur, an event-driven fpga-based spiking network accelerator</article-title>. <source>IEEE Trans. Very Large Scale Integr</source>. (<italic>VLSI) Syst</italic>. <volume>22</volume>, <fpage>2621</fpage>&#x02013;<lpage>2628</lpage>. <pub-id pub-id-type="doi">10.1109/TVLSI.2013.2294916</pub-id></citation>
</ref>
<ref id="B32">
<citation citation-type="web"><person-group person-group-type="author"><collab>Nemo</collab></person-group> (<year>2024</year>). <source>Home.</source> Available online at: <ext-link ext-link-type="uri" xlink:href="https://nemosim.sourceforge.net/">https://nemosim.sourceforge.net/</ext-link> (accessed February 15, 2024).</citation>
</ref>
<ref id="B33">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pastur-Romay</surname> <given-names>L.</given-names></name> <name><surname>Cedron</surname> <given-names>F.</given-names></name> <name><surname>Pazos</surname> <given-names>A.</given-names></name> <name><surname>Porto-Pazos</surname> <given-names>A.</given-names></name></person-group> (<year>2016</year>). <article-title>Deep artificial neural networks and neuromorphic chips for big data analysis: pharmaceutical and bioinformatics applications</article-title>. <source>Int. J. Mol. Sci</source>. <volume>17</volume>, <fpage>1313</fpage>. <pub-id pub-id-type="doi">10.3390/ijms17081313</pub-id><pub-id pub-id-type="pmid">27529225</pub-id></citation></ref>
<ref id="B34">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pfeiffer</surname> <given-names>M.</given-names></name> <name><surname>Pfeil</surname> <given-names>T.</given-names></name></person-group> (<year>2018</year>). <article-title>Deep learning with spiking neurons: opportunities and challenges</article-title>. <source>Front. Neurosci</source>. <volume>12</volume>, <fpage>774</fpage>. <pub-id pub-id-type="doi">10.3389/fnins.2018.00774</pub-id><pub-id pub-id-type="pmid">30410432</pub-id></citation></ref>
<ref id="B35">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Rabaey</surname> <given-names>J. M.</given-names></name> <name><surname>Chandrakasan</surname> <given-names>A. P.</given-names></name> <name><surname>Nikoli&#x00107;</surname> <given-names>B.</given-names></name></person-group> (<year>2003</year>). <source>Digital Integrated Circuits: A Design Perspective, Volume 7</source>. <publisher-loc>Upper Saddle River, NJ</publisher-loc>: <publisher-name>Pearson Education</publisher-name>.</citation>
</ref>
<ref id="B36">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Schemmel</surname> <given-names>J.</given-names></name> <name><surname>Briiderle</surname> <given-names>D.</given-names></name> <name><surname>Griibl</surname> <given-names>A.</given-names></name> <name><surname>Hock</surname> <given-names>M.</given-names></name> <name><surname>Meier</surname> <given-names>K.</given-names></name> <name><surname>Millner</surname> <given-names>S.</given-names></name> <etal/></person-group>. (<year>2010</year>). <article-title>A wafer-scale neuromorphic hardware system for large-scale neural modeling</article-title>, in <source>Proceedings of 2010 IEEE International Symposium on Circuits and Systems</source> (<publisher-loc>Paris</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1947</fpage>&#x02013;<lpage>1950</lpage>. <pub-id pub-id-type="doi">10.1109/ISCAS.2010.5536970</pub-id></citation>
</ref>
<ref id="B37">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Shimada</surname> <given-names>N.</given-names></name> <name><surname>Torikai</surname> <given-names>H.</given-names></name></person-group> (<year>2015</year>). <article-title>A novel asynchronous cellular automaton multicompartment neuron model</article-title>. <source>IEEE Trans. Circuits Syst. II Express Briefs</source> <volume>62</volume>, <fpage>776</fpage>&#x02013;<lpage>780</lpage>. <pub-id pub-id-type="doi">10.1109/TCSII.2015.2433471</pub-id></citation>
</ref>
<ref id="B38">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Soleimani</surname> <given-names>H.</given-names></name> <name><surname>Ahmadi</surname> <given-names>A.</given-names></name> <name><surname>Bavandpour</surname> <given-names>M.</given-names></name></person-group> (<year>2012</year>). <article-title>Biologically inspired spiking neurons: piecewise linear models and digital implementation</article-title>. <source>IEEE Trans. Circuits Syst. I: Regul. Pap</source>. <volume>59</volume>, <fpage>2991</fpage>&#x02013;<lpage>3004</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2012.2206463</pub-id></citation>
</ref>
<ref id="B39">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tao</surname> <given-names>S.</given-names></name> <name><surname>Rusu</surname> <given-names>A.</given-names></name></person-group> (<year>2015</year>). <article-title>A power-efficient continuous-time incremental sigma-delta adc for neural recording systems</article-title>. <source>IEEE Trans. Circuits Syst. I: Regul. Pap</source>. <volume>62</volume>, <fpage>1489</fpage>&#x02013;<lpage>1498</lpage>. <pub-id pub-id-type="doi">10.1109/TCSI.2015.2418892</pub-id></citation>
</ref>
<ref id="B40">
<citation citation-type="web"><person-group person-group-type="author"><collab>The Brian Simulator</collab></person-group> (<year>2024</year>). <source>Home</source>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://briansimulator.org/">https://briansimulator.org/</ext-link> (accessed February 15, 2024).</citation>
</ref>
<ref id="B41">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Vaidya</surname> <given-names>S. P.</given-names></name> <name><surname>Johnston</surname> <given-names>D.</given-names></name></person-group> (<year>2013</year>). <article-title>Temporal synchrony and gamma-to-theta power conversion in the dendrites of ca1 pyramidal neurons</article-title>. <source>Nat. Neurosci</source>. <volume>16</volume>, <fpage>1812</fpage>. <pub-id pub-id-type="doi">10.1038/nn.3562</pub-id><pub-id pub-id-type="pmid">24185428</pub-id></citation></ref>
<ref id="B42">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>R. M.</given-names></name> <name><surname>Hamilton</surname> <given-names>T. J.</given-names></name> <name><surname>Tapson</surname> <given-names>J.</given-names></name> <name><surname>van Schaik</surname> <given-names>A.</given-names></name></person-group> (<year>2014</year>). <article-title>A mixed-signal implementation of a polychronous spiking neural network with delay adaptation</article-title>. <source>Front. Neurosci</source>. <volume>8</volume>, <fpage>51</fpage>. <pub-id pub-id-type="doi">10.3389/fnins.2014.00051</pub-id><pub-id pub-id-type="pmid">24672422</pub-id></citation></ref>
<ref id="B43">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yamashita</surname> <given-names>Y.</given-names></name> <name><surname>Torikai</surname> <given-names>H.</given-names></name></person-group> (<year>2014</year>). <article-title>Theoretical analysis for efficient design of a piecewise constant spiking neuron model</article-title>. <source>IEEE Trans. Circuits Syst. II: Express Briefs</source> <volume>61</volume>, <fpage>54</fpage>&#x02013;<lpage>58</lpage>. <pub-id pub-id-type="doi">10.1109/TCSII.2013.2285982</pub-id></citation>
</ref>
<ref id="B44">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>S.</given-names></name> <name><surname>Chen</surname> <given-names>B.</given-names></name></person-group> (<year>2023a</year>). <article-title>SNIB: improving spike-based machine learning using nonlinear information bottleneck</article-title>. <source>IEEE Trans. Syst. Man Cybernet. Syst.</source> <volume>53</volume>, <fpage>78527863</fpage>. <pub-id pub-id-type="doi">10.1109/TSMC.2023.3300318</pub-id></citation>
</ref>
<ref id="B45">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>S.</given-names></name> <name><surname>Liu</surname> <given-names>P.</given-names></name> <name><surname>Xue</surname> <given-names>J.</given-names></name> <name><surname>Sun</surname> <given-names>R.</given-names></name> <name><surname>Ying</surname> <given-names>R.</given-names></name></person-group> (<year>2020</year>). <article-title>An efficient fpga implementation of Izhikevich neuron model</article-title>, in <source>2020 International SoC Design Conference (ISOCC)</source> (<publisher-loc>Yeosu</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>141</fpage>&#x02013;<lpage>142</lpage>. <pub-id pub-id-type="doi">10.1109/ISOCC50952.2020.9333014</pub-id></citation>
</ref>
<ref id="B46">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>S.</given-names></name> <name><surname>Liu</surname> <given-names>P.</given-names></name> <name><surname>Xue</surname> <given-names>J.</given-names></name> <name><surname>Sun</surname></name> <name><surname>Yang</surname> <given-names>S.</given-names></name> <name><surname>Tan</surname> <given-names>J.</given-names></name> <name><surname>Lei</surname> <given-names>T.</given-names></name> <name><surname>Linares-Barranco</surname> <given-names>B.</given-names></name></person-group> (<year>2023a</year>). <article-title>Smart traffic navigation system for fault tolerant edge computing of internet of vehicle in intelligent transportation gateway</article-title>. <source>IEEE Trans. Intell. Transp. Syst.</source> <volume>24</volume>, <fpage>13011</fpage>&#x02013;<lpage>13022</lpage>. <pub-id pub-id-type="doi">10.1109/TITS.2022.3232231</pub-id></citation>
</ref>
<ref id="B47">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>S.</given-names></name> <name><surname>Wang</surname> <given-names>H.</given-names></name> <name><surname>Chen</surname> <given-names>B.</given-names></name></person-group> (<year>2023b</year>). <article-title>Sibols: robust and energy-efficient learning for spike-based machine intelligence in information bottleneck framework</article-title>. <source>IEEE Trans. Cogn. Dev. Syst.</source> <fpage>1</fpage>&#x02013;<lpage>13</lpage>. <pub-id pub-id-type="doi">10.1109/TCDS.2023.3329532</pub-id></citation>
</ref>
<ref id="B48">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>S.</given-names></name> <name><surname>Wang</surname> <given-names>H.</given-names></name> <name><surname>Pang</surname> <given-names>Y.</given-names></name> <name><surname>Azghadi</surname> <given-names>M. R.</given-names></name> <name><surname>Linares-Barranco</surname> <given-names>B.</given-names></name></person-group> (<year>2024</year>). <article-title>NADOL: neuromorphic architecture for spike-driven online learning by dendrites</article-title>. <source>IEEE Trans. Biomed. Circuits Syst</source>. <volume>18</volume>, <fpage>186199</fpage>. <pub-id pub-id-type="doi">10.1109/TBCAS.2023.3316968</pub-id><pub-id pub-id-type="pmid">37725735</pub-id></citation></ref>
<ref id="B49">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>S.</given-names></name> <name><surname>Chen</surname> <given-names>B.</given-names></name></person-group> (<year>2023b</year>). <article-title>SNIB: improving spike-based machine learning using nonlinear information bottleneck</article-title>. <source>IEEE Trans. Syst. Man Cybernet. Syst.</source> <volume>53</volume>, <fpage>7852</fpage>&#x02013;<lpage>7863</lpage>. <pub-id pub-id-type="doi">10.1109/TSMC.2023.3300318</pub-id></citation>
</ref>
</ref-list>
</back>
</article>