完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
1 人工神经网络处理器
1.1 人工神经网络模型 人工神经网络是基于模仿大脑功能而建立的一种信息处理系统。它实际上是由大量的、很简单的处理单元(或称神经元),通过广泛的互相连接而形成的复杂网络系统。最早的神经元模型是MP模型,由输入X、连接权值W和阈值θ、激活函数f和输出O组成,如图1所示。 后来的各种网络模型基本都由这几个因素构成,例如图2的三层BP神经网络模型。 神经网络的训练学习的过程就是通过不断地调整各个节点的权值,使输出误差达到最小,最终获得稳定可靠的权值,实现网络的预定功能。 1.2 人工神经网络的FPGA实现 算法公式实际隐含着各种运算过程,乘累加计算、激活函数及其导数的计算和逻辑运算是3种必不可少的运算,因此FPGA的实现主要是各种运算器的设计和连接。处理器要处理各种类型的数据,样本数据X(训练样本、实际样本),网络参数(学习速率η、每层神经元个数n等)和权值W是必不可少的。网络参数和初始权值用来对网络初始化,训练样本用来训练网络学习,最后在网络应用阶段对实际样本进行处理。 |
|
|
|
|
|
2 通信硬件设计
2.1 系统整体架构 系统整体结构框图如图4所示,分为ARM端和FPGA端两个部分。ARM端有两个功能:一是从内存中读取已有数据,通过DMA方式下载到FPGA端,按照数据类型将数据下载到不同的存储设备和存储空间;二是对FPGA进行控制,主要是各种中断操作。FPGA端的功能是接收ARM传送的数据,存储数据,并在微程序控制器的控制下进行运算处理,最后把结果上传给ARM。 S3C4480X拥有4通道的DMA控制器,两个ZDMA,连接于SSB(三星系统总线);另外两个BDMA,连接在SSB和SPB(三星外围总线)之间的接口层。其中ZDMA可从存储器到存储器、存储器到I/O设备和I/O设备到存储器传送数据。DMA操作由S/W或来自外部请求引脚(nXDREQ0/1)的请求来启动。 在DMA操作中,通过配置DMA特殊功能寄存器来实现对DMA的控制,如图5所示。 2.2 硬件连接 从上面的介绍容易发现,ARM芯片的通信对象是基于SRAM工艺的FPGA芯片上的存储体。因此,FPGA芯片作为存储设备时,ARM芯片可直接与其相连。ARM与FPGA硬件连接示意图如图6所示。 数据总线的宽度为28位。神经网络处理器的数据精度为16位,FPGA样本数据寄存器还有12位外部扩展存储器的地址数据,因此整个数据总线的宽度为二者之和。除样本数据寄存器之外的片上存储体,数据线占用28位数据总线中的低16位。 控制总线包括ARM端的片选线nGCS6和读/写控制线。对ARM相应的寄存器进行配置可激活BANK6(FPGA片上存储体)和读/写数据。 根据数据存储位置的不同,硬件连接可分成两方面。如图7所示。 片上集成存储系统采用统一编址的方式,其优势在于可以通过ARM芯片的DMA方式进行数据传输,既可以提高传输速率又能够释放CPU。外部扩展存储器因为只受FPGA控制而采用独立编址,但地址域的设计接续片上集成存储系统的地址,如此方便操作。 |
|
|
|
|
|
3 ZDMA控制设计
ARM端与FPGA端的数据通信如图8所示,分为3个阶段: ①网络初始化阶段的数据通信:配置网络初始化数据。a)需对网络训练执行阶段②,b)否则执行阶段③。 ②网络训练阶段的通信:下载训练样本数据,训练完成上传稳定的权值。 ③实际应用阶段的通信:下载实际样本数据,上传处理结果。 3.1 下载数据时ZDMA的配置 按照是否为样本数据,通信可分为两个阶段:一是面向FPGA片上集成存储系统的非样本数据通信,二是面向FPGA片外扩展存储器的样本数据通信。 本设计使用ZDMA0、ZDMA1两个通道中的一个。与ZDMA有关的特殊功能寄存器有: ZDMA控制寄存器(①ZDCONn):主要用于对DMA通道进行控制,允许外部DMA请求(nXDREQ)。 ZDMA0/1初始源/目的地址和计数寄存器、ZDMA0/1当前源/目的地址和计数寄存器。 ZDMAn初始/当前源地址寄存器(②ZDISRC、③ZDCSRC):初始源地址为数据在ARM芯片内存的存放地址;当前源地址为即将传输的数据的内存地址,值为初始源地址+计数值。 ZDMAn初始/当前目的地址寄存器(④ZDIDES、⑤ZDCDES):分为两个阶段:第一阶段传输非样本数据时初始目的地址为BANK6的起始地址;当前目的地址是变化的,为初始目的地址+计数值。第二阶段传输样本数据时初始目的地址也是当前目的地址,为样本数据寄存器的地址。 ZDMAn初始/当前目的计数寄存器(⑥ZDICNT、⑦ZDCCNT):初始值为0,当前值随着传输数据的个数逐一递增,直至达到所有数据的数量。样本数据和非样本数据的传输分两个阶段进行,各自独立。 从这个过程中可以看出,配置ZDMA时需考虑FPGA端存储结构体多样性的问题。 3.2 上传数据时ZDMA的配置 神经网络处理器的稳定权值和处理结果存储在FPGA上统一编址的专用寄存器组B中,不存在存储结构体多样性的问题,所以上传数据时ZDMA的配置相对简单: 初始源地址即专用寄存器组B的起始地址,每传送一次数据专用寄存器组的地址指针+1并作为当前源地址。 初始目的地址为要存放数据的内存块的起始地址,每传送一次数据内存块地址指针+1并作为当前目的地址。 计数寄存器的初始值为0,每传送一次数据其值+1,达到设定的目标值时数据上传即完成。 |
|
|
|
|
|
结语
本文首先介绍了人工神经网络的模型和算法以及FPGA的实现,并通过对网络结构的分析设计了FPGA端的数据存储系统。然后分析了ARM端和FPGA端各自的功能,在此基础上把两者结合在一起,设计了一种利用ARM的ZDMA方式相互通信的方案。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
1068 浏览 1 评论
1889 浏览 0 评论
1868 浏览 1 评论
3290 浏览 5 评论
3617 浏览 9 评论
1068浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1394浏览 1评论
1889浏览 0评论
1208浏览 0评论
1341浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 19:55 , Processed in 0.654012 second(s), Total 50, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1630