基于SoPC的人工神经网络的硬件实现方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n
sj =
i= 1
w j ix i -
j
( 1)
y j = f ( sj ) ( 2) 式中: j 为阈值, w j i 为连接权系数 , x i 为输入, y j 为输出 , f (. ) 为变换函数。 这里可再令 x 0 = j , w j 0 = - 1, 得到较简 洁的 s j 表达式:
n
sj =
图4
多层前馈神经网络及其神经元结点
图2
A valon 总线读模式时序图
由于人工神经网络的复杂性 , 使的不可能在 1 个或 2 个时钟周期内完成所有运算, 所以从启动神经网络模块到 得出运算结果会有一个延迟。因此可采用外设控制等待 周期的写传输模式来启动运算 , 它可以让神经网络模块在 得到启动指令后有足够的时间完成运算。即神经网络模 块接收到启动命令后 , 向 Avalon 总线发出等待请求, NIOS 处理器不再发出新的总线周期, 运算结束后, 神经网络 模块撤除等待请求, NIOS 可紧接着发出读总线操作取 走运算结果。但这样做会导致整个 Avalon 总线的暂停 , 影响 SoPC 系统的效率。通过对神经网络模 块的精心设 计, 仍然可采用基本的写传输模式。如图 3 所示为 Avalon 总线基本写传输的时序。 神经网络模块须在第 2 个时钟的上升沿之后立即捕 获地址信息和数据内容。
2
Avalon 总线接口模块
Avalon 总线有基本传输模式、 延迟传输模式和流传输 模式等多种传输模 式, 以适应不同 外设的要 求[ 6] 。本文 中, 对于参数的读出采用带一个等待周期的传输模式 , 时 序简单且有较高的传输速度。 图 2 所示为 A valon 总线读取神经网络数据的时序图 , 整个传输过程共需 3 个时钟周期。要读取的数据必须在 第 2 个时钟上升沿之后被稳定在数据总线上, NIOS II 处 理器将在第 3 个时钟的上升沿取走数据。
i= 0
w j ix i
( 3)
可见 , 即使是单个神经元, 其运算量也是比较大的, 且 输入 x i 越多 , 计算量越大。显然 , 用硬件并行处理比软件 串行处理要优越的多。
117
第 32 卷






本文通过 3 级流水线来实现单个三输入神经元的功 能。第 1 级为乘法运算 , 用一个时钟周期完成 w j i 和 x i 的 计算。 第 2 级为加法运算, 用一个时钟周期实现 sj 。第 3 级 则用一个时钟周期计算 f ( sj ) 。 其中 f (s j ) 为饱和函数 : = k s> k = sj - k s< k =- k s< - k 乘法运算和加法运算直接调用 Altera 的算术运算部 件, 而饱和函数则由 Verilog H DL 来实 现。从图 5 可看 出, 单个神经元能在 3 个时钟周期的时间内完成 3 次乘法、 1 次加法和 1 次饱和函数的计算。若上述运算在单周期指 令计算机上用软件来实现 , 至少需要 20 个指令周期才能 完成。 以上神 经 元用 Q uartus II 8. 0 版综 合的 结 果摘 要 如下 : Fam ily Device T otal L ogic elem ents T otal Regist ers Embedded M ult iplier 9 bit Cyclone II EP2C8Q208C8 387/ 8256( 5% ) 48 element s 6/ 36( 17% ) 从综合结果看, 单个神经元占用的 FPGA 资源还是比 较多的 , 一片 EP2C8Q208C8 仅能容纳 20 个 左右的神经 元, 当神经元数目较多时应选用规模更大的 FPGA 器件。 3. 2 人工神经网络的构造 单个神经元实现后, 可将其相互连接 , 构成不同的网 络模型。本文实现的是一个三输入三输出的 3 层前馈神 经网络, 但该方法也使用于更多输入和更多层次的神经网 络的构 造。其 中输 入 层由 输 入寄 存 器组 成 , 它 直接 从 Avalon 总线获取数据, 将数据锁存后分成 3 路, 供后继的 隐含层取用。隐含层和输出层的每个结点就是一个三输 入单输出的神经元, 它们的输入状态变量 x i 由前级结点提 供, 权值 w j i 由权值寄存器提供 , 其中权值寄存器的值也是 从 A valon 总线直接获取的。神经网络原理图如图 5 所示。
0 引

智能计算技术的进步总是离不开人工智能 , 特别是人 工神经网络技术的发展 [ 1] 。人工神经网络在智能控制、 模 式识别等领域有着广泛的应用 , 但由于其高度的并行性和 非线性性 , 使得传统的基于通用处理器的软件实现方法存 在诸多缺陷, 主要体现在并行度低、 运行速度慢 , 无法满足 [ 2] 现场的实时性要求 。实现人工神经网络较为理想的方 法应当是基于硬件的。用 ASIC 实现人工神经网络有速度 快、 功耗低的优点 , 但从逻辑设计、 物理设计到流片加工代 价高昂, 且一旦投片则无法再更改原有的设计。 如今 , FPGA 技 术的日 趋成 熟, 使 其不 再仅 是用 于 ASIC 的快速原型, 而是可以直接用作 S oPC( Syst em on a Programm able Chip) 的器件 。FPGA 技术本身具有的大 容量、 细粒度、 信息并行处理特性、 多功能复合以及在线可 重配置等特点, 再加上 H DL 与 FPGA 技术的强势发展和 实用化, 使得智能控制策略 ( 模糊逻辑、 神经网络、 遗传算 法等 ) 的 H DL 描述和 FPGA 固核实现的研究也随之活跃
[ 4]
116
潘峥嵘 等 : 基于 So PC 的人工神经网络的硬件实现方法
第6期
图3
外设控制等待周期的写传输时序
3
人工神经网络模块
图1
基于 So PC 的智能控制系统架构图
人工神经网络是并行和分布式的信息处理网络结构 , 该网络结构一般由许多个神经元组成, 神经元有一个单一 的输出 , 可以连接到其他的神经元上, 神经元的输入有多 个连接通路, 每个连接通路对应一个连接权系数。按网络 形态, 人工神经网络有前馈型和反馈型两种典型结构 , 本 文实现的是前馈型神经网络, 其网络结构和神经元结构如 图 4 所示。
Abstract: T his paper r epo rts on the implementation of an ar tificial neur al netwo rk based on the So PC. T his method integ rates a soft pro cessor which named NO IS II and an in chip buss named A valon to a sing le FP GA dev ice. It st udies the implementation of the multilayer ar tificia l neural netwo rk o n F PGA and descr ibes the int er face of neur al net wo rk and A valon bus. T his sy stem is implemented w ith EP2C8Q 208C8 o f A lter a. It is sho w that the metho d no t only step up the operat ion but also increase the f lex ible of ar tificial neur al netw ork. Keywords: F PG A; SoPC; neural netw o rk; av alon in chip buss
摘 要 : 提出了一种基于 So PC 的 神经网络的硬件实 现方法 , 该 方法以 F PG A 器件为硬件载体 , N IO S II 软核处理 器 为 CPU , A valon 片内总线为数据交换架构。研究了多层前馈神经 网络在 FPG A 上的 实现方法 , 描述了 神经网络模 块 与 A valon 片内总 线的接口技 术。整个系统 在 A ltera 的 EP2C8Q 208C8 器件上 实现 , 结果表明 , 该方法 的应用不仅 提 高了人工神经网络的运算速度 , 还提高了整个系统的灵活性。 关键词 : FP GA ; So PC; 神经网络 ; A valon 片内总线 中图分类号 : T P 183 文献标识码 : A
微处理器应用
电 子 测 量 技 术 ELECTRONIC MEA SUREM ENT T ECH NOLOGY
第 32 卷 第 6 期 2009 年 6 月
基于 SoPC 的人工神经网络的硬件实现方法
潘峥嵘1 张赵良1 朱菊香2
兰州 730050; 无锡 214100) ( 1. 兰州理工大学 电气工程与信息工程学院 2. 江南大学 信息与控制工程学院
[ 3]
起来。本文提出的基于 S oPC 的人工神经网络的硬件实现 方法, 结合了硬件的高速性和软件的灵活性 , 提高了智能 控制系统的适应性。
1
SoPC 系统架构
SoPC 即可编程片上系统, 它将主设备、 片内总线和从 设备 3 个部分集成在同一片 FPGA 器件中 ( 如图 1 所示) , 并可根据实际需要进行设计更改而不用更换 FPGA 芯片。 Avalon 交换架构作为片内总线将 NIOS 处理器与 片内外设连成一体, 构成一个完整的可编程片上系统。作 为 SoPC 的中枢 , Avalon 总线将挂接其上的设备分为主设 备和从设备两种。能够在 Avalon 总线上发起总线传输的 设备称为主设备 , 如本文使用的内核可裁剪的 32 位 RISC 处理器 NIOS 。只能响应而不能发起总线传输的设备 称为从设备, 包括存储器、 I/ O 口、 自定义算法部件 ( 如人工 神经网络 ) 等片内外设。本 文将仅限于人工神 经网络在 SoPC 中的实现方法。图 1 中的自定义控制算法部件是本 文要实现的权值离线学习的前馈神经网络 [ 5] 。
Βιβλιοθήκη Baidu
4
SoPC 系统合成
SoPC 的系 统合成需要使 用 A lt era 的 SOPC Builder 软件来完成。有两种方法可使人工神经网络模块嵌入到 SoPC 系统。一种是通过自定义指令方式 , 把对神经网络 的总线操作变成 N IOS II 处理器指令系统的一部分, 即为 这些操作分配二进制指令编码。但这种方法适用于较为 简单的操作, 对于人工神经网络这样相对复杂的运算 , 自 [ 7] 定义指令方式效率较低 。另一种方法是将神经网络单 [ 8] 元直接挂接在 Avalon 总线上 , 成为一个片内外设 。本文 采用第二种方法, 其接口图如图 6 所示。
神经网络具有如下性质: 1) 对于每个结点有一个状态变量 x i ; 2) 结点 i 到结点 j 有一个连接权系数 w j i ; 3) 对于每个结点有一个阈值 j ; 4) 对于 每 个结 点 定义 了 一个 变 换函 数 f i [ x i , w j i , ( i j )] 。 j 单个人工神经元的实现 由人工神经元模型可得出第 j 个神经元的输入输出关 系为: 3. 1
Hardware implementation of an artificial neural network based on SoPC
P an Z heng rong1 Z hang Z hao liang 1 Zhu Jux iang 2
( 1. College of Elect rical and Inf ormat ion Engineeri ng, Lanzh ou U nivers ity of T echnology, L anz hou 730050; 2. School of conmuni cat ion an d con t rol engineering, J iangn an U ni versit y, Wux i 214100)
相关文档
最新文档