CN110414083B - 一种Chay模型电子神经元产品和仿真平台 - Google Patents
一种Chay模型电子神经元产品和仿真平台 Download PDFInfo
- Publication number
- CN110414083B CN110414083B CN201910615430.7A CN201910615430A CN110414083B CN 110414083 B CN110414083 B CN 110414083B CN 201910615430 A CN201910615430 A CN 201910615430A CN 110414083 B CN110414083 B CN 110414083B
- Authority
- CN
- China
- Prior art keywords
- module
- chay
- model
- value
- electronic neuron
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 210000002569 neuron Anatomy 0.000 title claims abstract description 81
- 238000004088 simulation Methods 0.000 title claims abstract description 29
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 17
- 102000004310 Ion Channels Human genes 0.000 claims description 31
- 238000010586 diagram Methods 0.000 claims description 23
- 150000002500 ions Chemical class 0.000 claims description 17
- 230000003834 intracellular effect Effects 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 229910001414 potassium ion Inorganic materials 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 4
- 210000000170 cell membrane Anatomy 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000013473 artificial intelligence Methods 0.000 abstract description 14
- 230000001737 promoting effect Effects 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 9
- 239000012528 membrane Substances 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 210000005036 nerve Anatomy 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 210000002237 B-cell of pancreatic islet Anatomy 0.000 description 1
- 101100113692 Caenorhabditis elegans clk-2 gene Proteins 0.000 description 1
- 101100264080 Caenorhabditis elegans wrt-1 gene Proteins 0.000 description 1
- 101100003180 Colletotrichum lindemuthianum ATG1 gene Proteins 0.000 description 1
- 241000238371 Sepiidae Species 0.000 description 1
- 210000003050 axon Anatomy 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Abstract
本发明公开了一种Chay模型电子神经元产品和仿真平台,涉及人工智能技术领域。其中,所述电子神经元产品基于FPGA实现,包括:控制模块,用于确定经由龙格‑库塔算法离散化处理后的Chay模型中的目标变量的初始值、并产生逻辑控制信号;运算模块,用于在所述逻辑控制信号的控制下,根据所述目标变量的初始值计算中间变量的取值;更新模块,用于在所述逻辑控制信号的控制下,根据所述中间变量的取值对所述目标变量的取值进行更新,直至满足迭代终止条件,并将最终得到的目标变量的取值发送至输出模块。本发明实现了Chay模型电子神经元产品,有助于促进Chay模型在人工智能领域的工程化应用。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种Chay模型电子神经元产品和仿真平台。
背景技术
近年来,人工智能领域呈现群体跃进态势,颠覆性技术不断涌现。人工神经网络在自主学习、联想记忆、神经形态计算等方面有着广阔的应用前景,必将给人工智能领域带来巨大变革。
人工神经网络的实现方式主要有两种:软件编程方式、电路实现方式(或者成为“硬件实现方式”)。进一步,电路实现方式又可分为模拟电路实现方式、数字电路实现方式(比如基于FPGA实现)。由于软件编程方式无法满足人工神经网络的实时运算需求,而电路实现方式能够满足人工神经网络的实时运算需求,因此,基于电路实现的人工神经网络(即神经形态电路)已成为人工智能应用领域的研发热点。
神经元模型作为人工神经网络的基本组成单元,是生物神经元的抽象数学模型,可对生物神经元动力学行为进行有效模拟。基于神经元模型的电子神经元产品可有效模拟并再现生物系统信息编码与存储方式,是高效推动人工神经网络在人工智能领域实现工程应用的关键。
Hodgkin-Huxley模型是1952年由Hodgkin和Huxley根据乌贼轴突电生理活动的大量实验数据提出的,其可有效模拟生物神经元的簇发振荡行为。此后,科学家们通过大量的生物电生理实验对Hodgkin-Huxley模型进行了简化,并提出了Chay模型、Hindmarsh-Rose模型和Izhikevich模型等。其中,Chay模型由于能够较为精确的描述胰腺β-细胞的动力学行为而备受关注。
在实现本发明的过程中,本发明的发明人发现:第一、由于Hindmarsh-Rose模型和Izhikevich模型不含指数项,可较为方便的采用模拟电路实现,然而Chay模型含有指数项和高次项,因此采用模拟电路实现极为复杂,而且采用模拟电路实现存在开发周期长、不利于电路集成、难以实现大规模集成的神经形态电路等缺点;第二、虽然已有研究采用数字电路(比如FPGA)对一些神经元模型进行了物理实现,但尚未有针对具有指数项和高次项的Chay模型的数字电路实现,这也进一步限制了Chay模型在人工智能领域的工程化应用。
因此,针对以上不足,需要提供一种Chay模型电子神经元产品。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是解决现有技术中不存在Chay模型电子神经元产品,导致Chay模型在人工智能领域的工程化应用受限的问题。
(二)技术方案
为了解决上述技术问题,一方面,本发明提供了一种Chay模型电子神经元产品。
本发明提供的一种Chay模型电子神经元产品,基于FPGA实现,包括:控制模块,用于确定经由龙格-库塔算法离散化处理后的Chay模型中的目标变量的初始值、并产生逻辑控制信号;其中,所述离散化处理后的Chay模型中的目标变量包括:膜压、K+离子通道打开概率、以及细胞内Ca2+离子浓度;运算模块,用于在所述逻辑控制信号的控制下,根据所述目标变量的初始值计算所述经由龙格-库塔算法离散化处理后的Chay模型中的中间变量的取值;更新模块,用于在所述逻辑控制信号的控制下,根据所述中间变量的取值对所述目标变量的取值进行更新,直至满足迭代终止条件,并将最终得到的目标变量的取值发送至输出模块;输出模块,用于将所述最终得到的目标变量的取值进行输出。
可选地,所述经由龙格-库塔算法离散化处理后的Chay模型中的中间变量包括:第一中间变量,第二中间变量和第三中间变量;所述运算模块包括能够并行运行、且与所述更新模块分别电相连的第一至第三运算单元;其中,第一运算单元用于计算第一中间变量,第二运算单元用于计算第二中间变量,第三运算单元用于计算第三中间变量。
可选地,所述第一至第三运算单元采用流水线结构,且包括以下至少一项:乘法运算器、加法运算器、指数项运算器。
可选地,所述电子神经元产品还包括:复位模块,用于在上电后自动产生复位脉冲信号,并将所述复位脉冲信号发送至所述控制模块,以触发所述控制模块执行所述确定经由龙格-库塔算法离散化处理后的Chay模型中的目标变量的初始值、并产生逻辑控制信号的操作。
可选地,所述电子神经元产品还包括:仿真模块,用于在接收到所述复位模块发送的复位脉冲信号后,计算连续Chay模型中的函数值,然后将计算得到的所述连续Chay模型中的函数值发送至所述输出模块;所述输出模块,还用于将所述连续Chay模型中的函数值进行输出。
可选地,所述电子神经元产品还包括:逻辑分析模块,用于对所述目标变量的初始值和/或所述最终得到的目标变量的取值进行监测。
可选地,所述输出模块还用于,在执行所述将所述最终得到的目标变量的取值进行输出的操作之前,将所述最终得到的目标变量的取值由单精度浮点型数据转变为数字整型数据。
可选地,所述电子神经元产品还包括:时钟模块,用于生成系统时钟信号,以保证所述电子神经元产品中其他模块的正常运行。
为了解决上述技术问题,另一方面,本发明还提供了一种仿真平台。
本发明提供的一种仿真平台包括:本发明中的电子神经元产品、数模转换器、示波器;所述数模转换器,用于将所述电子神经元产品输出的数据进行数模转换,然后将转换得到的模拟数据发送至示波器;所述示波器,用于根据所述转换得到的模拟数据生成相轨迹图,并对所述相轨迹图进行显示。
可选地,所述仿真平台还包括:电源模块,与所述电子神经元产品和所述数模转换器分别相连,用于为所述电子神经元产品和所述数模转换器供电。
(三)有益效果
本发明的上述技术方案具有如下优点:本发明的Chay模型电子神经元产品基于FPGA实现,包括:控制模块,用于确定经由龙格-库塔算法离散化处理后的Chay模型中的目标变量的初始值、并产生逻辑控制信号;运算模块,用于在所述逻辑控制信号的控制下,根据所述目标变量的初始值计算中间变量的取值;更新模块,用于在所述逻辑控制信号的控制下,根据所述中间变量的取值对所述目标变量的取值进行更新,直至满足迭代终止条件,并将最终得到的目标变量的取值发送至输出模块。本发明基于FPGA实现的Chay模型电子神经元产品具有低功耗、易于大规模集成、开发周期短、能够提高人工神经网络的运算效率,降低功耗等优点。通过基于FPGA实现Chay模型电子神经元产品,有助于促进Chay模型在人工智能领域的工程化应用。
附图说明
图1是本发明实施例一中的Chay模型电子神经元产品的模块组成示意图;
图2是本发明实施例二中的Chay模型电子神经元产品的模块组成示意图;
图3是本发明实施例二中一种可选的计算参数αm的时钟序列示意图;
图4是本发明实施例三中的仿真平台的模块组成示意图;
图5是本发明实施例四中Chay模型电子神经元产品的RTL原理电路示意图;
图6是本发明实施例四中的MATLAB数值仿真3维Chay模型周期簇发状态(每周期5个尖峰)在C-V平面的相轨图;
图7是本发明实施例四中基于Chay模型电子神经元产品测量得到的周期簇发状态(每周期5个尖峰)在C-V平面的相轨图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以相互组合。
实施例一
图1是本发明实施例一中的Chay模型电子神经元产品的模块组成示意图。本发明实施例提供的Chay模型电子神经元产品100基于FPGA实现,包括:控制模块101、运算模块102、更新模块103、输出模块104。
控制模块101,用于确定经由龙格-库塔算法离散化处理后的Chay模型中的目标变量的初始值、并产生逻辑控制信号。其中,所述离散化处理后的Chay模型中的目标变量包括:膜压、K+离子通道打开概率、以及细胞内Ca2+离子浓度。
具体地,三维Chay模型(或称为“Chay神经元模型”)可表示为:
其中,(1)式描述了神经元细胞膜电位(或者称为“膜压”)V的变化规律,(1)式右边四项依次表示Na+–Ca2+混合离子通道中的电流、电导依赖于电位的K+离子通道电流、电导依赖于细胞膜内Ca2+离子浓度的K+离子通道电流、泄漏离子通道电流;VI为Na+–Ca2+混合离子通道的反向偏压,VK为K+离子通道反向偏压,VL为泄漏离子通道反向偏压,gI为Na+–Ca2+混合离子通道的最大电导,gK,V为电导依赖于电位的K+离子通道的最大电导,gK,C为电导依赖于细胞膜内Ca2+离子浓度的K+离子通道的最大电导,gL为泄漏离子通道的最大电导;(2)式描述了依赖于电位的K+离子通道打开概率n的变化规律,τn为弛豫时间常数,n∞为K+离子通道打开的概率稳定值;(3)式描述了细胞内Ca2+离子浓度C的变化规律,(3)式右边两项依次表示进、出膜的Ca2+离子通道电流,m∞、h∞分别为Ca2+、Na+离子通道打开的概率稳定值,kC为离子流出速率,ρ为细胞内Ca2+离子浓度变化率。在具体实施时,Chay模型中的部分典型参数取值可设置为:VI=100,Vk=-75,VL=-40,VC=100,gI=1800,gK,V=1650,gK,C=12,gL=7,rn=230,kC=3.3/18,ρ=0.27。
进一步,用y代表m、h或n,则m∞、h∞和n∞可统一表示为:
其中,αm、βm、αh、βh、αn、βn、τn可进一步表示为:
为了采用FPGA实现Chay模型电子神经元产品,需要对Chay模型进行离散化。在本发明实施例中,采用四阶龙格-库塔算法对Chay模型进行了离散化处理,进而得到:
其中,l为迭代步长,N、N–1为迭代次数,Di(i=1,2,3,4)为变化系数,VN、VN–1、nN、nN–1、CN、CN–1为离散化处理后的Chay模型中的目标变量,VN为第N次的膜压,nN为第N次的K+离子通道打开概率,CN为第N次细胞内Ca2+离子浓度;kVi、kni、kCi(i=1,2,3,4)为离散化处理后的Chay模型中的中间变量。
在得到离散化后的Chay模型之后,可通过控制模块101确定目标变量的初始值。例如,可将膜压、K+离子通道打开概率、以及细胞内Ca2+离子浓度的初始值依次设为0.1、0.1、0.1。另外,控制模块101还可用于设置迭代步长、迭代总次数、变化系数等参数的值。例如,控制模块101可将迭代步长设为0.001,将迭代总次数设为150000,将变化系数D1至D4依次设为1、2、2、1。
运算模块102,用于在所述逻辑控制信号的控制下,根据所述目标变量的初始值计算所述经由龙格-库塔算法离散化处理后的Chay模型中的中间变量的取值。
在一个可选示例中,假设kV0=kn0=kC0=0,则运算模块102可根据如下公式计算所述中间变量的取值:
其中,i=1,2,3,4,mN、hN、dN、τN可进一步表示为:
在一个可选示例中,运算模块102包括能够并行运行、且与更新模块103分别电相连的第一至第三运算单元;其中,第一运算单元用于计算第一中间变量,第二运算单元用于计算第二中间变量,第三运算单元用于计算第三中间变量。通过在运算模块中设置第一至第三运算单元进行并行计算,能够进一步提高Chay模型电子神经元产品的运算效率,降低功耗。具体来说,第一中间变量包括kV1、kV2、kV3和kV4,第二中间变量包括kn1、kn2、kn3和kn4,第三中间变量包括kC1、kC2、kC3和kC4。
在另一个可选示例中,运算模块包括:顺序执行、且与更新模块分别电相连的第一至第四运算单元;其中,第一运算单元用于根据kV1、kn1和kC1和计算中间变量kV2、kn2和kC2,第二运算单元用于根据kV2、kn2和kC2计算中间变量kV3、kn3和kC3,第四运算单元用于根据kV3、kn3和kC3计算中间变量kV4、kn4和kC4。
更新模块103,用于在所述逻辑控制信号的控制下,根据所述中间变量的取值对所述目标变量的取值进行更新,直至满足迭代终止条件,并将最终得到的目标变量的取值发送至输出模块。另外,更新模块103,还可用于将每次迭代更新后的目标变量的值发送至输出模块。
示例性地,在目标变量的第一次更新过程中,更新模块103可根据目标变量的初始值(即V0、n0、C0的值)、以及运算模块102第一次计算得到的中间变量的值(即kV1、kV2、kV3、kV4、kn1、kn2、kn3、kn4、kC1、kC2、kC3、kC4的值)对目标变量的取值进行更新,即计算V1、n1、C1的值。示例性地,在目标变量的第二次更新过程中,更新模块103可根据目标变量的当前值(即V1、n1、C1的值)、以及运算模块102第二次计算得到的中间变量的值对目标变量的取值进行更新,即计算V2、n2、C2的值。
输出模块104,用于将所述最终得到的目标变量的取值进行输出。
在一个可选示例中,电子神经元产品运算中的数据均采用单精度浮点型数据。在该可选示例中,输出模块104还可用于,在执行所述将所述最终得到的目标变量的取值进行输出的操作之前,将所述最终得到的目标变量的取值由单精度浮点型数据转变为数字整型数据。通过以上操作,便于后续生成相轨迹图。
本发明实施例中的基于FPGA实现的Chay模型电子神经元产品具有低功耗、易于大规模集成、开发周期短、能够提高人工神经网络的运算效率,降低功耗等优点。通过基于FPGA实现Chay模型电子神经元产品,有助于促进Chay模型在人工智能领域的工程化应用。
实施例二
图2是本发明实施例二中的Chay模型电子神经元产品的模块组成示意图。本发明实施例提供的Chay模型电子神经元产品200基于FPGA实现,包括:复位模块201、控制模块202、运算模块203、更新模块204、仿真模块205、输出模块206、逻辑分析模块207。具体实施时,可采用VerilogHDL语言进行编程,并将VerilogHDL程序编译、下载到FPGA中,以得到图2所示各个模块。
复位模块201,用于在上电后自动产生复位脉冲信号,并将所述复位脉冲信号发送至控制模块202和仿真模块205。
控制模块202,响应于所述复位脉冲信号,确定经由龙格-库塔算法离散化处理后的Chay模型中的目标变量的初始值、并产生逻辑控制信号。其中,所述离散化处理后的Chay模型中的目标变量包括:膜压、K+离子通道打开概率、以及细胞内Ca2+离子浓度。
在本发明实施例中,采用四阶龙格-库塔算法对Chay模型进行了离散化处理。在得到离散化后的Chay模型之后,可通过控制模块202确定目标变量的初始值。例如,可将膜压、K+离子通道打开概率、以及细胞内Ca2+离子浓度的初始值依次设为0.1、0.1、0.1。另外,控制模块202还可用于设置迭代步长、迭代总次数、变化系数等参数的值。例如,控制模块202可将迭代步长设为0.001,将迭代总次数设为150000,将变化系数D1至D4依次设为1、2、2、1。
运算模块203,用于在所述逻辑控制信号的控制下,根据所述目标变量的初始值计算所述经由龙格-库塔算法离散化处理后的Chay模型中的中间变量的取值。具体来说,离散化处理后的Chay模型中的中间变量为kVi、kni、kCi(i=1,2,3,4)。
在一个可选示例中,运算模块203包括能够并行运行、且与更新模块204分别电相连的第一至第三运算单元;其中,第一运算单元用于计算第一中间变量,第二运算单元用于计算第二中间变量,第三运算单元用于计算第三中间变量。具体来说,第一中间变量包括kV1、kV2、kV3和kV4,第二中间变量包括kn1、kn2、kn3和kn4,第三中间变量包括kC1、kC2、kC3和kC4。
在另一个可选示例中,运算模块包括:顺序执行、且与更新模块分别电相连的第一至第四运算单元;其中,第一运算单元用于根据kV1、kn1和kC1和计算中间变量kV2、kn2和kC2,第二运算单元用于根据kV2、kn2和kC2计算中间变量kV3、kn3和kC3,第四运算单元用于根据kV3、kn3和kC3计算中间变量kV4、kn4和kC4。
进一步,所述第一至第三运算单元采用流水线结构,且包括以下至少一项:乘法运算器(或称为“乘法单元”)、加法运算器(或称为“加法单元”)、减法运算器(或称为“减法单元”)、指数项运算器(或称为“指数项单元”)。在本发明实施例中,通过在运算模块中设置第一至第三运算单元进行并行计算,以及令第一至第三运算单元采用流水线结构,能够进一步提高Chay模型电子神经元产品的运算效率,降低功耗。
更新模块204,用于在所述逻辑控制信号的控制下,根据所述中间变量的取值对所述目标变量的取值进行更新,直至满足迭代终止条件,并将最终得到的目标变量的取值发送至输出模块。另外,更新模块204,还可用于将每次迭代更新后的目标变量的值发送至输出模块。
示例性地,在目标变量的第一次更新过程中,更新模块204可根据目标变量的初始值(即V0、n0、C0的值)、以及运算模块203第一次计算得到的中间变量的值(即kV1、kV2、kV3、kV4、kn1、kn2、kn3、kn4、kC1、kC2、kC3、kC4的值)对目标变量的取值进行更新,即计算V1、n1、C1的值。示例性地,在目标变量的第二次更新过程中,更新模块204可根据目标变量的当前值(即V1、n1、C1的值)、以及运算模块203第二次计算得到的中间变量的值对目标变量的取值进行更新,即计算V2、n2、C2的值。
仿真模块205,响应于所述复位脉冲信号,计算连续Chay模型中的函数值,然后将计算得到的所述连续Chay模型中的函数值发送至所述输出模块。
具体来说,仿真模块205可先根据式(4)至(7)计算连续Chay模型中的m∞、h∞和n∞的值,然后根据式(1)至(3)计算连续Chay模型中的函数值(即fV、fn和fC的值)。具体实施时,仿真模块205也可采用流水线结构,并包括以下至少一项:乘法运算器(或称为“乘法单元”)、加法运算器(或称为“加法单元”)、减法运算器(或称为“减法单元”)、指数项运算器(或称为“指数项单元”)。
输出模块206,用于将所述离散化处理后的Chay模型中最终得到的目标变量的取值,和/或,所述连续Chay模型中的函数值进行输出。
在一个可选示例中,电子神经元产品运算中的数据均可采用单精度浮点型数据。在该可选示例中,输出模块206还可用于,在执行所述将所述离散化处理后的Chay模型中最终得到的目标变量的取值和/或所述连续Chay模型中的函数值进行输出的操作之前,将所述离散化处理后的Chay模型中最终得到的目标变量的取值和/或所述连续Chay模型中的函数值由单精度浮点型数据转变为数字整型数据。通过以上操作,便于后续生成相轨迹图。
逻辑分析模块207,用于对所述离散化处理后的Chay模型中的目标变量的初始值,和/或,所述离散化处理后的Chay模型中最终得到的目标变量的取值,和/或,所述连续Chay模型中的函数值进行实时监测。通过在Chay模型电子神经元产品中设置逻辑分析模块,可实现电子神经元产品设计过程的实时调整、软件控制和实时观测。
进一步,本发明实施例的Chay模型电子神经元产品还可包括:时钟模块,用于生成系统时钟信号,以保证所述电子神经元产品中其他模块的正常运行。具体实施时,所述时钟模块可采用FPGA内置的50MHz系统时钟。
示例性地,仿真模块205进行各个参数(比如αm、βm、m∞、h∞和n∞等)时受系统时钟驱动。图3示出了仿真模块计算参数αm的一种可选时钟序列示意图。如图3所示,计算参数αm的时钟序列有两个,第一个时钟序列从乘法单元开始计算-0.1V,第二个时钟序列从加法单元开始计算25+V,在第四个时钟脉冲到来之后,第一个时钟序列得到1-e(-0.1V-2.5),第二个时钟序列得到0.1(25+V)。在第五个时钟脉冲到来之后,基于除法单元对第一个时钟序列和第二个时钟序列的计算结果进行处理,从而得到αm的值。
示例性地,运算模块203在计算中间变量时受系统时钟驱动。例如,在运算模块通过时分复用的方式计算中间变量的一种可选时钟序列中,计算kV1、kn1、kC1的值需要25个系统时钟,计算kV2、kn2、kC2、的值需要25个系统时钟,计算kV3、kn3、kC3的值需要25个系统时钟,计算kV4、kn4、kC4的值需要25个系统时钟,因而计算一次中间变量的值总共需要100个系统时钟。
在本发明实施例中,基于FPGA实现了Chay模型电子神经元产品。与采用模拟电路实现电子神经元产品的方式相比,能够缩短Chay模型电子神经元产品的开发周期,更有利于电路集成,有利于实现大规模集成的神经形态电路。进一步,通过基于FPGA实现Chay模型电子神经元产品,有助于促进Chay模型在人工智能领域的工程化应用。
实施例三
图4是本发明实施例三中的仿真平台的模块组成示意图。如图4所示,本发明实施例的仿真平台400包括:Chay模型电子神经元产品401、数模转换器402、示波器403。
Chay模型电子神经元产品401,基于FPGA实现,包括:控制模块、运算模块、更新模块和输出模块。其中,控制模块,用于确定经由龙格-库塔算法离散化处理后的Chay模型中的目标变量的初始值、并产生逻辑控制信号;其中,所述离散化处理后的Chay模型中的目标变量包括:膜压、K+离子通道打开概率、以及细胞内Ca2+离子浓度;运算模块,用于在所述逻辑控制信号的控制下,根据所述目标变量的初始值计算所述经由龙格-库塔算法离散化处理后的Chay模型中的中间变量的取值;更新模块,用于在所述逻辑控制信号的控制下,根据所述中间变量的取值对所述目标变量的取值进行更新,直至满足迭代终止条件,并将最终得到的目标变量的取值发送至输出模块;输出模块,用于将所述最终得到的目标变量的取值进行输出。
数模转换器402,用于将所述电子神经元产品输出的数据进行数模转换,然后将转换得到的模拟数据发送至示波器403。示例性地,数模转换器402可采用14位数模转换器。具体实施时,为了便于后续进行示波器显示,还可在进行数模转换之前,将Chay模型电子神经元产品计算得到的浮点型数据结果乘以常系数来调整输出。例如,某一14位数模转换器的范围为[-8192,8191],目标变量V(膜压)的取值范围约在[-50,-10],动态范围约为40;目标变量C(细胞内Ca2+离子浓度)的取值范围约在[0.38,0.44],动态范围约为0.06,因此可将Chay模型电子神经元产品最终计算得到的目标变量V的值放大128倍,将Chay模型电子神经元产品最终计算得到的目标变量C的值放大128×600倍。
示波器403,用于根据所述转换得到的模拟数据生成相轨迹图,并对所述相轨迹图进行显示。具体实施时,通过使示波器工作于X-Y模式,可在示波器上观测到C–V相平面的相轨迹图。通过将本发明实施例得到的相轨迹图与理论结果进行对比发现:硬件电路中观测到的相轨图与理论结果一致。因此,本发明基于FPGA实现的Chay模型电子神经元产品具有科学的理论依据和物理上的可实现性,对Chay模型的动力学行为的再现以及Chay模型在人工智能领域的应用研究起到积极推动作用。
进一步,仿真平台400还可包括:电源模块。所述电源模块与所述电子神经元产品和所述数模转换器分别相连,用于为所述电子神经元产品和所述数模转换器供电。例如,所述电源模块可采用+5V电源模块。
实施例四
图5是本发明实施例四中Chay模型电子神经元产品的RTL原理电路示意图。如图5所示,在本发明实施例的Chay模型电子神经元产品的RTL原理电路中,复位模块由模块⑨实现;控制模块由模块⑤实现;运算模块由模块②、③、④实现,可用于计算中间变量kV1、kV2、kV3、kV4、kn1、kn2、kn3、kn4、kC1、kC2、kC3和kC4,具体来说,模块②用于计算中间变量kV2、kn2和kC2,模块③用于计算中间变量kV3、kn3和kC3,模块④用于计算中间变量kV4、kn4和kC4;更新模块由模块①实现;仿真模块由模块⑧实现;输出模块由模块⑥实现;逻辑分析模块由模块⑦实现。
以下对图5所示RTL原理电路中各模块的输入端口、输出端口的信号含义、以及各引脚之间的连接关系进行说明。
在复位模块(即模块⑨)中,输入端口的含义具体为:sys_clk表示系统时钟;输出端口的含义具体为:calc_chaos_ena表示迭代运算开始使能信号、cacl_tvalid表示浮点运算使能信号、m_rst表示复位脉冲信号。其中,浮点运算使能信号和迭代运算开始使能信号为模块使能信号,复位脉冲信号能使各个变量得到初始值。
在控制模块(即模块⑤)中,输入端口的含义具体为:calc_chaos_ena表示迭代运算开始使能信号,calc_tvalid表示浮点运算使能信号,cc,nn,vv_ki[95:0](i=1,2,3)表示计算k2(k2具体包括kV2、kn2和kC2)、k3、k4时的输入变量值,cc,nn,vv_new[95:0]表示在第N+1时刻的目标变量V、n、C的值,dc,dn,dv_o[95:0]表示基于离散Chay模型计算中间变量时每步调用后的输出变量,m_rst表示复位脉冲信号,sys_clk表示系统时钟信号;其输出端口的含义具体为:DAC_clk1表示发送至数模转换器第一通道的转换时钟信号,DAC_clk2表示发送至数模转换器第二通道的转换时钟信号,DAC_wrt1表示发送给数模转换器第一通道的辅助时钟信号,DAC_wrt2表示发送给数模转换器第二通道的辅助时钟信号,dc_ki[31:0](i=1,2,3,4)表示计算目标变量C所需的中间变量值,dn_ki[31:0](i=1,2,3,4)表示计算目标变量n所需的中间变量值,dv_ki[31:0](i=1,2,3,4)表示计算目标变量V所需的中间变量值,cc,nn,vv[95:0]表示在第N时刻目标变量V、n、C的值,yc,yn,yv[95:0]表示基于离散Chay模型计算中间变量时每步调用输入的目标变量的值。
在模块②中,输入端口的具体含义为:calc_tvalid表示浮点运算使能信号,cc,nn,vv[95:0]表示第N时刻目标变量V、n、C的值,dc_k1[31:0]表示计算目标变量C所需的中间变量kC1,dn_k1[31:0]表示计算目标变量n所需的中间变量kn1,dv_k1[31:0]表示计算目标变量V所需的中间变量kV1,sys_clk表示系统时钟信号;输出端口的具体含义为:cc,nn,vv_k1[95:0]表示计算k2(k2具体包括kV2、kn2和kC2)时的输入变量值。
在模块③中,输入端口的具体含义为:calc_tvalid表示浮点运算使能信号,cc,nn,vv[95:0]表示第N时刻目标变量V、n、C的值,dc_k2[31:0]表示计算目标变量C所需的中间变量kC2,dn_k2[31:0]表示计算目标变量n所需的中间变量kn2,dv_k2[31:0]表示计算目标变量V所需的中间变量kV2,sys_clk表示系统时钟信号;输出端口的具体含义为:cc,nn,vv_k2[95:0]表示计算k3(k3具体包括kV3、kn3和kC3)时的输入变量值。
在模块④中,输入端口的具体含义为:calc_tvalid表示浮点运算使能信号,cc,nn,vv[95:0]表示第N时刻目标变量V、n、C的值,dc_k3[31:0]表示计算目标变量C所需的中间变量kC3,dn_k3[31:0]表示计算目标变量n所需的中间变量kn3,dv_k3[31:0]表示计算目标变量V所需的中间变量kV3,sys_clk表示系统时钟信号;输出端口的具体含义为:cc,nn,vv_k3[95:0]表示计算k4(k4具体包括kV4、kn4和kC4)时的输入变量值。
在更新模块(即模块①)中,输入端口的具体含义为:calc_tvalid表示浮点运算使能信号,cc,nn,vv[95:0]表示第N时刻目标变量V、n、C的值,dc_ki[31:0](i=1,2,3,4)表示计算目标变量C所需的中间变量ki(i=1,2,3,4),dn_ki[31:0](i=1,2,3,4)表示计算目标变量n所需的中间变量ki(i=1,2,3,4),dv_ki[31:0](i=1,2,3,4)表示计算目标变量V所需的中间变量ki(i=1,2,3,4);输出端口的具体含义为:cc,nn,vv_new[95:0]表示第N+1时刻目标变量V、n、C的值。
在仿真模块(即模块⑧)中,输入端口的具体含义为:calc_tvalid表示浮点运算使能信号,clk_in表示输入时钟,c,n,v,in[95:0]表示调用该模块时目标变量V、n、C的输入值;输出端口的具体含义为:dc,dn,dv_out[95:0]表示调用该模块后目标变量V、n、C的输出值。
在输出模块(即模块⑥)中,输入端口的具体含义为:calc_tvalid表示浮点运算使能信号,cc,nn,vv[95:0]表示第N时刻目标变量V、n、C的值,sys_clk表示系统时钟信号;输出端口的具体含义为:c_out[13:0]表示第N时刻目标变量C的值,v_out[13:0]表示第N时刻目标变量V的值。
在逻辑分析模块(即模块⑦)中,输入端口的具体含义为:clk表示输入时钟信号,Probe0,1,2[95:0]表示第0、1、2测试信号,Probe3表示第3测试信号,Probe4[13:0]表示第4测试信号,Probe5[13:0]表示第5测试信号。
进一步,图5所示各模块的连接关系如下:芯片①至⑨的输入端sys_clk引脚连接系统时钟信号,模块⑨的输出端calc_tvalid引脚连接模块①~⑥和⑧的输入端calc_tvalid引脚,模块⑨的输出端m_rst引脚连接模块⑤的输入端m_rst引脚,模块⑨的输出端calc_chaos_ena引脚连接模块⑤的输入端calc_chaos_ena引脚,模块⑤的输出端cc,nn,vv[95:0]引脚连接模块①~④与⑥的输入端cc,nn,vv[95:0]引脚和模块⑦的输入端Probe0,1,2[95:0]引脚,模块⑤的输出端yc,yn,yv[95:0]引脚连接模块⑧的输入端c,n,v_in[95:0]引脚,模块⑤的输出端dc_ki[31:0](i=1,2,3,4)引脚分别连接模块①的输入端dc_ki[31:0](i=1,2,3,4)引脚,模块⑤的输出端dn_ki[31:0](i=1,2,3,4)引脚分别连接模块①的输入端dn_ki[31:0](i=1,2,3,4)引脚,模块⑤的输出端dv_ki[31:0](i=1,2,3,4)引脚分别连接模块①的输入端dv_ki[31:0](i=1,2,3,4)引脚,模块⑤的输出端dc_ki[31:0],dn_ki[31:0]与dv_ki[31:0](i=1,2,3)引脚分别连接模块②③④的输入端dc_ki[31:0],dn_ki[31:0]与dv_ki[31:0](i=1,2,3)引脚,模块①的输出端cc,nn,vv_new[95:0]引脚连接模块⑤的输入端cc,nn,vv_new[95:0]引脚,模块②的输出端cc,nn,vv_k1[95:0]引脚连接模块⑤的输入端cc,nn,vv_k1[95:0]引脚,模块③的输出端cc,nn,vv_k2[95:0]引脚连接模块⑤的输入端cc,nn,vv_k2[95:0]引脚,模块④的输出端cc,nn,vv_k3[95:0]引脚连接模块⑤的输入端cc,nn,vv_k3[95:0]引脚,模块⑧的输出端dc,dn,dv_out[95:0]引脚连接模块⑤的输入端dc,dn,dv_0[95:0]引脚,模块⑤的输出端DAC_clk1引脚连接模块⑦的输入端Probe3引脚,模块⑥的输出端v_out[13:0]引脚连接模块⑦的输入端Probe4[13:0]引脚,模块⑥的输出端c_out[13:0]引脚连接模块⑦的输入端Probe5[13:0]引脚。
具体实施时,采用MATLAB仿真软件可对实施例一中3维Chay模型进行数值仿真,所得周期簇发状态(每周期5个尖峰)在C-V平面的相轨图如图6所示。另外,采用实施例四中的Chay模型电子神经元产品可对MATLAB数值仿真结果进行硬件实验验证,示波器测量结果如图7所示。结果表明,数值仿真与硬件测量结果保持一致,进一步验证了本发明所提出的基于FPGA实现的Chay模型电子神经元产品的可行性。
在本发明实施例中,通过以上仿真平台实现了对Chay模型的硬件建模,对Chay模型的动力学行为的再现以及Chay模型在人工智能领域的应用研究起到积极推动作用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种Chay模型电子神经元产品,其特征在于,所述电子神经元产品基于FPGA实现,包括:
控制模块,用于确定经由龙格-库塔算法离散化处理后的Chay模型中的目标变量的初始值、并产生逻辑控制信号;其中,所述离散化处理后的Chay模型中的目标变量包括:膜压、K+离子通道打开概率、以及细胞内Ca2+离子浓度;
运算模块,用于在所述逻辑控制信号的控制下,根据所述目标变量的初始值计算所述经由龙格-库塔算法离散化处理后的Chay模型中的中间变量的取值;
更新模块,用于在所述逻辑控制信号的控制下,根据所述中间变量的取值对所述目标变量的取值进行更新,直至满足迭代终止条件,并将最终得到的目标变量的取值发送至输出模块;
输出模块,用于将所述最终得到的目标变量的取值进行输出;
其中,设kV0=kn0=kC0=0,则运算模块根据如下公式计算中间变量的取值:
其中,kVi、kni、kCi为离散化处理后的Chay模型中的中间变量,i=1,2,3,4,mN、hN、dN、τN表示为:
VI为Na+–Ca2+混合离子通道的反向偏压,VK为K+离子通道反向偏压,VL为泄漏离子通道反向偏压,gI为Na+–Ca2+混合离子通道的最大电导,gK,V为电导依赖于电位的K+离子通道的最大电导,gK,C为电导依赖于细胞膜内Ca2+离子浓度的K+离子通道的最大电导,gL为泄漏离子通道的最大电导;
l为迭代步长,N、N–1为迭代次数,Di为变化系数,VN、VN–1、nN、nN–1、CN、CN–1为离散化处理后的Chay模型中的目标变量,VN为第N次的膜压,nN为第N次的K+离子通道打开概率,CN为第N次细胞内Ca2+离子浓度;ρ为细胞内Ca2+离子浓度变化率;kC为离子流出速率。
2.根据权利要求1所述的电子神经元产品,其特征在于,所述经由龙格-库塔算法离散化处理后的Chay模型中的中间变量包括:第一中间变量,第二中间变量和第三中间变量;所述运算模块包括能够并行运行、且与所述更新模块分别电相连的第一至第三运算单元;其中,第一运算单元用于计算第一中间变量,第二运算单元用于计算第二中间变量,第三运算单元用于计算第三中间变量。
3.根据权利要求2所述的电子神经元产品,其特征在于,所述第一至第三运算单元采用流水线结构,且包括以下至少一项:乘法运算器、加法运算器、减法运算器、指数项运算器。
4.根据权利要求2所述的电子神经元产品,其特征在于,所述电子神经元产品还包括:
复位模块,用于在上电后自动产生复位脉冲信号,并将所述复位脉冲信号发送至所述控制模块,以触发所述控制模块执行所述确定经由龙格-库塔算法离散化处理后的Chay模型中的目标变量的初始值、并产生逻辑控制信号的操作。
5.根据权利要求4所述的电子神经元产品,其特征在于,所述电子神经元产品还包括:
仿真模块,用于在接收到所述复位模块发送的复位脉冲信号后,计算连续Chay模型中的函数值,然后将计算得到的所述连续Chay模型中的函数值发送至所述输出模块;
所述输出模块,还用于将所述连续Chay模型中的函数值进行输出。
6.根据权利要求1所述的电子神经元产品,其特征在于,所述电子神经元产品还包括:
逻辑分析模块,用于对所述目标变量的初始值和/或所述最终得到的目标变量的取值进行监测。
7.根据权利要求1所述的电子神经元产品,其特征在于,所述输出模块还用于,在执行所述将所述最终得到的目标变量的取值进行输出的操作之前,将所述最终得到的目标变量的取值由单精度浮点型数据转变为数字整型数据。
8.根据权利要求1所述的电子神经元产品,其特征在于,所述电子神经元产品还包括:
时钟模块,用于生成系统时钟信号,以保证所述电子神经元产品中其他模块的正常运行。
9.一种仿真平台,其特征在于,所述仿真平台包括:如权利要求1-8任一项所述的电子神经元产品、数模转换器、示波器;
所述数模转换器,用于将所述电子神经元产品输出的数据进行数模转换,然后将转换得到的模拟数据发送至示波器;
所述示波器,用于根据所述转换得到的模拟数据生成相轨迹图,并对所述相轨迹图进行显示。
10.根据权利要求9所述的仿真平台,其特征在于,所述仿真平台还包括:
电源模块,与所述电子神经元产品和所述数模转换器分别相连,用于为所述电子神经元产品和所述数模转换器供电。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910615430.7A CN110414083B (zh) | 2019-07-09 | 2019-07-09 | 一种Chay模型电子神经元产品和仿真平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910615430.7A CN110414083B (zh) | 2019-07-09 | 2019-07-09 | 一种Chay模型电子神经元产品和仿真平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110414083A CN110414083A (zh) | 2019-11-05 |
CN110414083B true CN110414083B (zh) | 2023-02-03 |
Family
ID=68360760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910615430.7A Active CN110414083B (zh) | 2019-07-09 | 2019-07-09 | 一种Chay模型电子神经元产品和仿真平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110414083B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110598857B (zh) * | 2019-05-14 | 2021-02-19 | 河北工业大学 | 一种显示Izhikevich神经元模型的方法 |
CN116402105B (zh) * | 2023-04-17 | 2023-09-22 | 西安理工大学 | 具有复杂放电特性分数阶Chay神经元模型的建立方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615909B (zh) * | 2015-02-02 | 2018-02-13 | 天津大学 | 基于FPGA的Izhikevich神经元网络同步放电仿真平台 |
CN107590360B (zh) * | 2017-08-21 | 2019-08-23 | 天津大学 | 基于fpga的神经元离子通道动态特性实验平台 |
-
2019
- 2019-07-09 CN CN201910615430.7A patent/CN110414083B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110414083A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nouri et al. | Digital multiplierless implementation of the biological FitzHugh–Nagumo model | |
Eldredge et al. | RRANN: a hardware implementation of the backpropagation algorithm using reconfigurable FPGAs | |
Chen et al. | A real-time FPGA implementation of a biologically inspired central pattern generator network | |
CN104615909A (zh) | 基于FPGA的Izhikevich神经元网络同步放电仿真平台 | |
CN110414083B (zh) | 一种Chay模型电子神经元产品和仿真平台 | |
Wu et al. | Efficient design of spiking neural network with STDP learning based on fast CORDIC | |
Liu et al. | Fast neural network training on FPGA using quasi-Newton optimization method | |
Ortega-Zamorano et al. | High precision FPGA implementation of neural network activation functions | |
Rahimian et al. | Digital implementation of the two-compartmental Pinsky–Rinzel pyramidal neuron model | |
Danopoulos et al. | Adapt: Fast emulation of approximate dnn accelerators in pytorch | |
Gupta et al. | FPGA implementation of simplified spiking neural network | |
Akbarzadeh-Sherbaf et al. | A digital hardware implementation of spiking neural networks with binary FORCE training | |
Hao et al. | A CORDIC based real-time implementation and analysis of a respiratory central pattern generator | |
Ghiasi et al. | Field-programmable gate arrays-based Morris-Lecar implementation using multiplierless digital approach and new divider-exponential modules | |
Zhu et al. | FPGA-based experiments for demonstrating bi-stability in tabu learning neuron model | |
CN111882050B (zh) | 基于fpga的用于提高bcpnn速度的设计方法 | |
Kawashima et al. | FPGA implementation of hardware-oriented chaotic Boltzmann machines | |
Zhang et al. | A dynamic branch predictor based on parallel structure of SRNN | |
Skibinsky-Gitlin et al. | Reservoir computing hardware for time series forecasting | |
Bezborah | A hardware architecture for training of artificial neural networks using particle swarm optimization | |
Sanchez et al. | A compact neuromorphic architecture with dynamic routing to efficiently simulate the FXECAP-L algorithm for real-time active noise control | |
Wu et al. | A 3.89-GOPS/mW scalable recurrent neural network processor with improved efficiency on memory and computation | |
Ahn | Computation of deep belief networks using special-purpose hardware architecture | |
Gholami et al. | Digital cellular implementation of Morris-Lecar neuron model | |
Carpegna et al. | Spiker+: a framework for the generation of efficient Spiking Neural Networks FPGA accelerators for inference at the edge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20191105 Assignee: Jiangsu Gongwei Electronic Technology Co.,Ltd. Assignor: CHANGZHOU University Contract record no.: X2023980049800 Denomination of invention: A Chay Model Electronic Neuron Product and Simulation Platform Granted publication date: 20230203 License type: Common License Record date: 20231205 |