论文部分内容阅读
人工神经网络ANNs(Artificial Neural Network)是一个模仿人脑神经网络结构和关系、由物理可实现的大量相互连接的处理单元组成的系统。如今,人工神经网络已经在多个领域得到广泛应用,比如信号处理、医疗卫生、控制系统、模式识别等。我们常见的实现神经网络的方法都是基于软件的。由于软件运算速度慢,所以要提出一种能够满足实时运算要求的新的神经网络实现方法。本文实现了一种基于FPGA的神经网络,它的特点是并行运算,运算速度快。该基于硬件实现的神经网络体现出神经网络固有的并行处理特性,处理速度得到大大提升。本论文首先介绍了如今人工神经网络研究的背景和国内外研究现状,以及人工神经网络硬件实现的方法和意义。然后,对典型的BP神经网络算法进行研究,包括具体的算法实现步骤。BP算法的实质是采用梯度下降法来不断修改神经元之间的联接权值,以此达到求解最优解的目的。由于本设计主要以26个英文大写字母的实时识别为应用背景,所以在介绍硬件实现神经网络需要考虑的问题中,对字母图像的数字化过程也予以了考虑。随后对硬件实现整个BP神经网络进行模块划分,并对各个模块进行硬件设计。其中,激励函数的硬件实现是基于FPGA的神经网络硬件设计的重点。本论文选用得到广泛运用的Sigmoid函数作为BP神经网络的激活函数,并用查找表和分段线性函数逼近相结合的方法在FPGA上实现了Sigmoid函数。除此之外,本文在设计整个神经网络的体系结构中采用了一种脉动阵列结构。该结构体现出神经网络的并行特性,它的硬件实现能够使得整个网络的运算处理速度得到很大的提升。然后,用Verilog硬件描述语言对设计好的神经网络进行硬件实现。之后,使用ModelsimSE 6.2仿真软件和Xilinx公司的Vivado集成开发工具对设计进行功能仿真和综合优化。在误差范围内,硬件功能实现正确。并且,设计对FPGA的资源利用率也比较低,在10%以下。最后,通过板级验证,整个硬件网络的最高时钟频率可以达到70MHz,可以满足26个英文大写字母实时识别的要求。因此,本文设计的基于FPGA的人工神经网络达到了设计的初衷。