CN113705139A - 一种基于fpga的禁忌学习神经元电路实现方法和系统 - Google Patents
一种基于fpga的禁忌学习神经元电路实现方法和系统 Download PDFInfo
- Publication number
- CN113705139A CN113705139A CN202111104680.8A CN202111104680A CN113705139A CN 113705139 A CN113705139 A CN 113705139A CN 202111104680 A CN202111104680 A CN 202111104680A CN 113705139 A CN113705139 A CN 113705139A
- Authority
- CN
- China
- Prior art keywords
- fpga
- tabu
- function
- learning
- module
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/13—Differential equations
-
- 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/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
Abstract
本发明涉及类脑神经元科学技术领域,尤其为一种基于FPGA的禁忌学习神经元电路实现方法和系统,通过定义矢量和矢量化函数,利用四阶龙格库塔法对禁忌学习双神经元模型的微分方程进行变形,建立基于迭代法的数值求解模型,利用FPGA的浮点运算IP核,构建数值求解模型中所需的模型函数,并采用模块化设计思路建立双神经元系统。本发明提出的基于FPGA的禁忌学习神经元电路实现方法和系统,实现了禁忌学习模型的电子神经元,利用FPGA来模拟神经元的动力学行为,有助于促进禁忌学习模型在人工智能领域的工程化应用。研究人员可以利用本发明实时模拟脑神经元的各种动力学行为,为类脑计算和复杂机器人的研制提供核心功能组件。
Description
技术领域
本发明涉及类脑神经元科学技术领域,具体为一种基于FPGA的禁忌学习神经元电路实现方法和系统。
背景技术
科学研究表明,人脑是由无数个神经元并通过神经元突触连接成神经网络。科学家们已经根据实验数据提出了多种基于微分方程的神经元模型。多个神经元模型通过一定的方式耦合在一起能够呈现出混沌、周期振荡、稳定点、分岔等动力学行为,这些动力学行为与大脑的记忆、思维、联想等活动紧密相关。其中,禁忌学习神经元模型基于禁忌搜索思路而提出,禁忌搜索思路所构成的神经网络主要用于旅行商问题和最大独立集合问题的求解。利用FPGA来实现禁忌学习模型的电子神经元能够推动类脑科学研究成果的工程化应用。
发明内容
本发明的目的在于提供一种基于FPGA的禁忌学习神经元电路实现方法和系统,利用FPGA来模拟禁忌学习神经元的动力学行为,用于类脑电路的研究。
为实现上述目的,本发明提供如下技术方案:一种基于FPGA的禁忌学习神经元电路实现方法和系统,包括如下步骤:
S1:定义矢量X=[u1,u2,J1,J2]T和矢量化函数F(X)=[fu1,fu2,fJ1,fJ2]T,其中,四个子函数定义如下,即上述微分方程式等式右边:
S2:利用四阶龙格库塔法对禁忌学习模型的微分方程进行变形,建立基于迭代法的数值求解模型:
设定矢量X的初始值,矢量X的值将在迭代计算过程中不断得到更新,其中,Xn表示当前第n步矢量X的值,Xn+1表示经过一步迭代以后第n+1步矢量X的值,h是迭代步长;
S3:在FPGA开发环境中,利用单精度浮点IP的指数函数ez、加法运算、减法运算和除法运算及以下公式构建模型中所需的单精度浮点tanh函数程序:
S4:基于已构建的浮点tanh函数及其他浮点运算,构建PL端矢量化的数值求解模型函数F(X),F(X)函数将在迭代计算过程中被反复调用;
S5:构建PL端的龙格库塔参量模块,用于计算Xk1=Xn+ΔX1·h/2,Xk2=Xn+ΔX2·h/2,Xk3=Xn+ΔX3·h等F(X)函数的输入参量;
S6:构建矢量X的更新模块,用于计算新矢量:
Xn+1=Xn+(ΔX1+2ΔX2+2ΔX3+ΔX4)·h/6; (4)
S7:利用循环计数器,构建中央控制模块,用于控制函数模块、参量模块、更新模块的运算顺序和运算时钟周期数;同时,中央控制模块还通过PL端和PS端的GPIO接口接收来自PS端的变量初值、激励梯度、迭代重启等信息;
S8:构建PL端的输出模块,将浮点运算数值变换成定点数,并和随路时钟一起送至DAC。
S9:利用FPGA开发环境中的软件逻辑分析器,构建调试模块,用于在线观测各模块中的中间变量;
S10:构建PS端程序,通过以太网UDP数据通信方式接收上位机发送过来的变量初值、激励梯度、迭代重启等信息,并将这些信息通过GPIO接口发送给PL端的中央控制模块,以实现变量初值的在线重置和迭代重启。
优选的,利用FPGA的PL端浮点运算IP核所构建的全浮点数运算的电子神经元,以保证较高的运算精度和可控的运算时间。
优选的,利用FPGA的PS端(ARM处理器)构建电子神经元与外界进行数据交互的通道。
优选的,电子神经元模型的初始值利用上位机进行在线重置并重启迭代过程。
优选的,所述步骤S3中,在Xilinx FPGA开发环境Vivado中,利用32-bit浮点指数函数、加法运算、减法运算和除法运算的IP核及公式(3)构建PL端浮点运算tanh函数的Verilog程序。
优选的,所述步骤S7中,PL端所有模块的主时钟为100MHz,每步迭代共调用四次F(X)函数,每次调用F(X)函数使用25个时钟周期,另外更新模块也分配25个时钟周期。
优选的,所述步骤S8中,将32-bit浮点的u1和u2数值变换成14-bit定点数,并和随路时钟(0.8MHz)一起送至双通道14-bit的DAC。
优选的,所述步骤S8中,DAC将数字信号转换成模拟信号,经过DAC转换得到的两路模拟信号分别连接示波器的两个输入通道。
优选的,所述步骤S9中,构建ILA调试模块,设定ILA的存储深度和所要观察的变量个数及每个变量的位宽,并在Verilog程序中添加所要观察的中间变量。
优选的,所述步骤S10中,利用软件中断方式接收上位机发送过来的以太网UDP数据包,PS端一旦接收到UDP数据包并解析数据包内容,将解析信息通过GPIO接口模拟SPI总线发送给PL端的中央控制模块。
与现有技术相比,本发明的有益效果如下:
本发明利用四阶龙格库塔法对禁忌学习双神经元模型的微分方程进行变形并建立数值迭代求解模型,利用FPGA的浮点运算IP核,构建数值求解模型中所需的模型函数,并采用模块化设计思路建立双神经元系统。研究人员可以利用本发明实时模拟脑神经元的各种动力学行为,为类脑计算和复杂机器人的研制提供核心功能组件。
附图说明
图1为本发明基于FPGA的电子神经元组成框图;
图2为本发明PL端实现tanh函数的流程图;
图3为本发明PL端实现fu1函数的流程图;
图4为本发明PL端迭代计算流程图;
图5是g=5,初值=[1,-1,0,0]时,u1和u2在示波器上利用X-Y显示模式获得的相轨图(神经元处于周期振荡状态);
图6是g=5,初值=[10-6,0,0,0]时,u1和u2在示波器上利用X-Y显示模式获得的相轨图(神经元处于混沌状态)。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于FPGA的禁忌学习神经元电路实现方法和系统,包括如下步骤:
S1:定义矢量X=[u1,u2,J1,J2]T和矢量化函数F(X)=[fu1,fu2,fJ1,fJ2]T,其中,四个子函数定义如下,即上述微分方程式等式右边:
S2:利用四阶龙格库塔法对禁忌学习模型的微分方程进行变形,建立基于迭代法的数值求解模型:
设定矢量X的初始值,矢量X的值将在迭代计算过程中不断得到更新,其中,Xn表示当前第n步矢量X的值,Xn+1表示经过一步迭代以后第n+1步矢量X的值,h是迭代步长;
S3:在Xilinx FPGA开发环境Vivado中,利用32-bit浮点指数函数、加法运算、减法运算和除法运算的IP核及以下公式构建PL端浮点运算tanh函数的Verilog程序,其实现流程图如图2所示
S4:基于已构建的浮点tanh函数及其他浮点运算,构建PL端矢量化的数值求解模型函数F(X),F(X)函数将在迭代计算过程中被反复调用,作为实例,其中fu1子函数的实现流程图如图3所示;
S5:构建PL端的龙格库塔参量模块,用于计算Xk1=Xn+ΔX1·h/2,Xk2=Xn+ΔX2·h/2,Xk3=Xn+ΔX3·h等F(X)函数的输入参量,h取值为0.01,F(X)函数的调用顺序如图4所示;
S6:构建矢量X的更新模块,用于计算新矢量:
Xn+1=Xn+(ΔX1+2ΔX2+2ΔX3+ΔX4)·h/6; (4)
S7:利用循环计数器,构建中央控制模块,用于控制函数模块、参量模块、更新模块的运算顺序和运算时钟周期数;PL端所有模块的主时钟为100MHz,每步迭代共调用四次F(X)函数,每次调用F(X)函数使用25个时钟周期,另外更新模块也分配25个时钟周期,因此,每更新一次矢量X使用125个时钟周期,也即矢量X的更新频率为0.8MHz=100MHz/125,同时,中央控制模块还通过PL端和PS端的GPIO接口接收来自PS端的变量初值、激励梯度、迭代重启等信息;
S8:构建PL端的输出模块,将32-bit浮点的u1和u2数值变换成14-bit定点数,并和随路时钟(0.8MHz)一起送至双通道14-bit的DAC,经过DAC转换得到的两路模拟信号分别连接示波器的两个输入通道,便于在示波器上观察波形。
S9:利用FPGA开发环境Vivado中的综合逻辑分析仪(ILA),构建ILA调试模块,设定ILA的存储深度和所要观察的变量个数及每个变量的位宽,并在Verilog程序中添加所要观察的中间变量,用于在线观测各模块中的中间变量;
S10:构建PS端程序,利用软件中断方式接收上位机发送过来的以太网UDP数据包,约定UDP包的数据格式,数据格式包含变量初值、激励梯度、迭代重启等信息,PS端一旦接收到UDP数据包并解析数据包内容,根据数据包所包含的内容,并将这些信息通过GPIO接口模拟SPI总线发送给PL端的中央控制模块,以实现变量初值和激励梯度等变量的在线重置和迭代重启。
S11:利用Agilent示波器的X-Y显示模式,观察u1-u2的相轨图,如图5和图6。
本实施例中,利用FPGA的PL端浮点运算IP核所构建的全浮点数运算的电子神经元,以保证较高的运算精度和可控的运算时间。
本实施例中,利用FPGA的PS端(ARM处理器)构建电子神经元与外界进行数据交互的通道。
本实施例中,电子神经元模型的初始值利用上位机进行在线重置并重启迭代过程。
其中,双神经元禁忌学习模型可用如下微分方程式表示:
其中,ui是第i个神经元的电压、Ji是第i个神经元的自反馈突触,λ表示激励梯度,tanh为双曲正切函数。基于FPGA的电子神经元包括两大部分:实现模型计算的PL端(逻辑电路)程序和实现对外接口的PS端(ARM处理器)程序。
综上,本发明利用四阶龙格库塔法对禁忌学习双神经元模型的微分方程进行变形并建立数值迭代求解模型,利用FPGA的浮点运算IP核,构建数值求解模型中所需的模型函数,并采用模块化设计思路建立双神经元系统。研究人员可以利用本发明实时模拟脑神经元的各种动力学行为,为类脑计算和复杂机器人的研制提供核心功能组件。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于,包括如下步骤:
S1:定义矢量X=[u1,u2,J1,J2]T和矢量化函数F(X)=[fu1,fu2,fJ1,fJ2]T,其中,四个子函数定义如下,即上述微分方程式等式右边:
S2:利用四阶龙格库塔法对禁忌学习模型的微分方程进行变形,建立基于迭代法的数值求解模型:
设定矢量X的初始值,矢量X的值将在迭代计算过程中不断得到更新,其中,Xn表示当前第n步矢量X的值,Xn+1表示经过一步迭代以后第n+1步矢量X的值,h是迭代步长;
S3:在FPGA开发环境中,利用单精度浮点IP的指数函数ez、加法运算、减法运算和除法运算及以下公式构建模型中所需的单精度浮点tanh函数程序:
S4:基于已构建的浮点tanh函数及其他浮点运算,构建PL端矢量化的数值求解模型函数F(X),F(X)函数将在迭代计算过程中被反复调用;
S5:构建PL端的龙格库塔参量模块,用于计算Xk1=Xn+ΔX1·h/2,Xk2=Xn+ΔX2·h/2,Xk3=Xn+ΔX3·h等F(X)函数的输入参量;
S6:构建矢量X的更新模块,用于计算新矢量:
Xn+1=Xn+(ΔX1+2ΔX2+2ΔX3+ΔX4)·h/6; (4)
S7:利用循环计数器,构建中央控制模块,用于控制函数模块、参量模块、更新模块的运算顺序和运算时钟周期数;同时,中央控制模块还通过PL端和PS端的GPIO接口接收来自PS端的变量初值、激励梯度、迭代重启等信息;
S8:构建PL端的输出模块,将浮点运算数值变换成定点数,并和随路时钟一起送至DAC。
S9:利用FPGA开发环境中的软件逻辑分析器,构建调试模块,用于在线观测各模块中的中间变量;
S10:构建PS端程序,通过以太网UDP数据通信方式接收上位机发送过来的变量初值、激励梯度、迭代重启等信息,并将这些信息通过GPIO接口发送给PL端的中央控制模块,以实现变量初值的在线重置和迭代重启。
2.根据权利要求1所述的一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于:利用FPGA的PL端浮点运算IP核所构建的全浮点数运算的电子神经元,以保证较高的运算精度和可控的运算时间。
3.根据权利要求1所述的一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于:利用FPGA的PS端(ARM处理器)构建电子神经元与外界进行数据交互的通道。
4.根据权利要求1所述的一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于:电子神经元模型的初始值利用上位机进行在线重置并重启迭代过程。
5.根据权利要求1所述的一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于:所述步骤S3中,在Xilinx FPGA开发环境Vivado中,利用32-bit浮点指数函数、加法运算、减法运算和除法运算的IP核及公式(3)构建PL端浮点运算tanh函数的Verilog程序。
6.根据权利要求1所述的一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于:所述步骤S7中,PL端所有模块的主时钟为100MHz,每步迭代共调用四次F(X)函数,每次调用F(X)函数使用25个时钟周期,另外更新模块也分配25个时钟周期。
7.根据权利要求1所述的一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于:所述步骤S8中,将32-bit浮点的u1和u2数值变换成14-bit定点数,并和随路时钟(0.8MHz)一起送至双通道14-bit的DAC。
8.根据权利要求1所述的一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于:所述步骤S8中,DAC将数字信号转换成模拟信号,经过DAC转换得到的两路模拟信号分别连接示波器的两个输入通道。
9.根据权利要求1所述的一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于:所述步骤S9中,构建ILA调试模块,设定ILA的存储深度和所要观察的变量个数及每个变量的位宽,并在Verilog程序中添加所要观察的中间变量。
10.根据权利要求1所述的一种基于FPGA的禁忌学习神经元电路实现方法和系统,其特征在于:所述步骤S10中,利用软件中断方式接收上位机发送过来的以太网UDP数据包,PS端一旦接收到UDP数据包并解析数据包内容,将解析信息通过GPIO接口模拟SPI总线发送给PL端的中央控制模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111104680.8A CN113705139A (zh) | 2021-09-22 | 2021-09-22 | 一种基于fpga的禁忌学习神经元电路实现方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111104680.8A CN113705139A (zh) | 2021-09-22 | 2021-09-22 | 一种基于fpga的禁忌学习神经元电路实现方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113705139A true CN113705139A (zh) | 2021-11-26 |
Family
ID=78661367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111104680.8A Pending CN113705139A (zh) | 2021-09-22 | 2021-09-22 | 一种基于fpga的禁忌学习神经元电路实现方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113705139A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116720554A (zh) * | 2023-08-11 | 2023-09-08 | 南京师范大学 | 一种基于fpga技术的多段线性拟合的神经元电路实现方法 |
-
2021
- 2021-09-22 CN CN202111104680.8A patent/CN113705139A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116720554A (zh) * | 2023-08-11 | 2023-09-08 | 南京师范大学 | 一种基于fpga技术的多段线性拟合的神经元电路实现方法 |
CN116720554B (zh) * | 2023-08-11 | 2023-11-14 | 南京师范大学 | 一种基于fpga技术的多段线性拟合的神经元电路实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Heidarpur et al. | CORDIC-SNN: On-FPGA STDP learning with izhikevich neurons | |
Pearson et al. | Implementing spiking neural networks for real-time signal-processing and control applications: A model-validated FPGA approach | |
Gunasekaran et al. | Sampled-data synchronization of delayed multi-agent networks and its application to coupled circuit | |
US20170024644A1 (en) | Neural processor based accelerator system and method | |
Izhikevich | Hybrid spiking models | |
Peng et al. | Finite-time synchronization for Cohen–Grossberg neural networks with mixed time-delays | |
Haghiri et al. | High speed and low digital resources implementation of Hodgkin-Huxley neuronal model using base-2 functions | |
CN113705139A (zh) | 一种基于fpga的禁忌学习神经元电路实现方法和系统 | |
CN111859835A (zh) | 一种电路互连网络模型的降阶方法、降阶装置及降阶设备 | |
Chiu | Existence and global exponential stability of equilibrium for impulsive cellular neural network models with piecewise alternately advanced and retarded argument | |
Wang et al. | Complex dynamical behavior of neural networks in circuit implementation | |
Li | Chaos control of new Mathieu–van der Pol systems by fuzzy logic constant controllers | |
Singh et al. | Synchronization of quaternion valued neural networks with mixed time delays using Lyapunov function method | |
Akbarzadeh-Sherbaf et al. | A digital hardware implementation of spiking neural networks with binary FORCE training | |
Ghiasi et al. | Field-programmable gate arrays-based Morris-Lecar implementation using multiplierless digital approach and new divider-exponential modules | |
CN107784359A (zh) | 一种基于Hopfield神经网络的多稳定状态振荡电路 | |
CN110414083B (zh) | 一种Chay模型电子神经元产品和仿真平台 | |
Cao et al. | Impulsive control via variable impulsive perturbations on a generalized robust stability for Cohen–Grossberg neural networks with mixed delays | |
Heidarpur et al. | Time step impact on performance and accuracy of izhikevich neuron: Software simulation and hardware implementation | |
Faraji et al. | A hybrid approach based on recurrent neural network for macromodeling of nonlinear electronic circuits | |
Wu et al. | Development of fpga toolbox for implementation of spiking neural networks | |
Voit et al. | Dynamical inference of simple heteroclinic networks | |
MacLennan | A review of analog computing | |
Duan et al. | Finite-time synchronization of delayed competitive neural networks with different time scales | |
Haghiri et al. | Multiplierless low‐cost implementation of Hindmarsh–Rose neuron model in case of large‐scale realization |
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 |