基于FPGA为实现平台的低功耗高速解码器系统.doc
《基于FPGA为实现平台的低功耗高速解码器系统.doc》由会员分享,可在线阅读,更多相关《基于FPGA为实现平台的低功耗高速解码器系统.doc(9页珍藏版)》请在三一文库上搜索。
1、基于FPGA为实现平台的低功耗高速解码器系统针对传统编解码算法复杂度高、不易扩展等问题,对自编码神经网络前向传播算法和结构进行了研究,提出了一种以自编码神经网络为编解码算法,以FPGA为实现平台的低功耗高速解码器系统。该系统实现了字符的编解码,同时可被应用于各种多媒体信息的编解码。通过ModelSim仿真,Xilinx ISE实现后进行硬件实测,对计算精度、资源消耗、计算速度和功耗等进行分析。实验测试结果表明,所设计的解码器能够正确完成数据解码功能,算法简洁高效,扩展能力强,系统具有低功耗、速度快等特点,可广泛应用于各种低功耗、便携式产品。0引言计算机处理多媒体或文字信息的基础是对相关信息进行
2、编码和解码,以利于信息的传输、显示和保护1。面对巨大信息量的处理需求,快速高效的编解码系统能够有效提高信息处理能力。近年来,随着神经网络的发展和应用,利用神经网络进行数学函数回归的方案,为信息的编解码提供了简单有效的途径2。自编码神经网络是一种无监督的人工神经网络,其利用反向传播算法训练使得网络的输出值等于输入值,从而为输入数据学习到一种特征表示,广泛应用于图像压缩和数据降维等领域3-4。自编码神经网络输出等于输入的特点适合用于数据编码和解码,相比于传统的编解码方法,如熵编码5,该算法更简洁高效,结构可扩展,实用性更强3。而随着编解码器在一些低功耗、便携式产品中的应用,高速、高精度和低功耗已经
3、成为编解码器的一种发展趋势。现场可编程门阵列(Field Programmable Gate Array,FPGA)是一种可编程逻辑器件,用户可通过硬件描述语言完成硬件电路设计。FPGA内部集成了具有高性能的数字信号处理器和大量存储资源,可以高效低成本地实现定点运算和数据存储,因此目前FPGA是一种理想的编解码器实现平台5-6。FPGA中各个硬件模块并行执行,可将计算量大的算法映射到FPGA中实现硬件加速。有学者尝试采用FPGA作为神经网络的实现平台,并取得了优异的性能,尤以速度和功耗突出7-8。综上所述,基于自编码神经网络,以FPGA为实现平台的编解码系统,具有灵活性高、高速、低功耗等特点,
4、可广泛应用于各种低功耗、便携式应用中。本文通过分析自编码神经网络的结构和特点,提出了一种用于数据解码的硬件实现架构。根据网络计算过程中包含的运算和神经元间的并行性特点,结合FPGA高并行、低功耗和高速数据处理的优势,将自编码神经网络的解码部分映射到FPGA中。该架构具有速度快、功耗低等特点,除文中论述的文字信息解码外,该架构具备扩展到图像编解码的可能性。1自编码神经网络人工神经网络是基于生物神经网络的基本原理,通过模拟人脑神经系统的结构和功能而建立的一个数学模型,该模型拥有以任意精度逼近一个离散值、实数值或者目标函数的功能9-10。自编码神经网络是一种无监督的人工神经网络,其采用反向传播算法,
5、通过学习试图使得网络的输出值等于输入值,从而为输入数据学习到一种特征表示3-4。自编码神经网络模型是一种对称结构,中间为隐含层,输入输出层神经元节点数相等且通过训练使得网络输出值和输入值相等。如图1所示为自编码神经网络的结构图,输入层和输出层含有m个神经元,隐含层含有n个神经元,输入层和隐含层下方的“+1”是偏置节点。自编码神经网络的输入层到隐含层构成编码器,隐含层到输出层构成解码器,对自编码神经网络的训练过程就是通过调整编码器和解码器中的权值和偏置,使其逼近一个恒等函数,从而使得网络输出值等于输入值,这样网络隐含层的输出数据为原始输入数据的另一种特征表示,即该数据经过自编码神经网络的解码器可
6、以恢复原始的输入数据11。在本文中,利用自编码神经网络的编码器对输入数据进行编码,所得到隐含层的输出数据称为原始数据的编码;该编码数据经过自编码神经网络的解码器实现数据解码,从而恢复原始输入数据。下面参照图1所示的自编码神经网络结构,介绍自编码神经网络的前向计算过程,首先计算隐含层n个神经元的输出如式(1):输出层m个神经元的输出如式(2):通过对网络前向计算过程式(1)和式(2)的分析可以看出:自编码神经网络对信息的处理为从输入层开始,经过隐含层直到输出层输出为止,每一层各个神经元之间的计算具有独立性和并行性;式(1)和式(2)的计算包括乘加运算和激励函数运算,且两者按照顺序依次进行。2FP
7、GA设计方案本章对基于FPGA的硬件解码系统的设计需求进行分析,介绍整个系统的硬件架构设计、系统工作原理,最后对设计中的网络计算模块进行详细介绍。2.1系统分析本文在FPGA中设计实现图1所示自编码神经网络的解码器部分,从而实现数据解码功能。在软件端对自编码神经网络进行训练,得到网络模型后将对现今最通用的单字节编码ASCII码归一化后的数据输入至自编码神经网络的编码器以获得编码数据,最后将编码数据送至FPGA端实现数据解码以恢复原始输入的ASCII码。通过对自编码神经网络前向计算的分析,其计算过程中包括乘加运算和激励函数运算,网络每层中各个神经元之间的计算具有独立性和并行性。而对编码数据进行解
8、码操作的过程中,要求所设计的硬件系统具有实时性特点。FPGA作为一个分布式并行处理系统,其内部包含大量逻辑单元和计算单元,且具有可编程、速度快、灵活性高、易配置、设计周期短等特点,因此本文选用FPGA作为所设计数据解码器的硬件实现平台。所设计的解码器为图1所示自编码神经网络的隐含层到输出层部分,其所包含的权值参数有nm个,偏置参数有m个,n和m分别表示网络隐含层和输出层神经元的个数。由于实现解码功能仅需要网络的前向计算,因此网络的权值和偏置为固定值,所以在设计中可利用FPGA内部资源对网络权值和偏置进行存储并以固定值的形式参与网络运算。解码器一次完整的解码过程可简述为:输入数据解码计算输出结果
9、。在实际应用中往往包含有多组编码数据,因此设计中将编码数据存储在外部存储器中以供FPGA读取。SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它具有体积小、数据传输快、可热插拔等优良特性,被广泛应用于便携式设备中13。因此本设计选择使用SD卡来存储编码数据。SD卡读操作为每次读取一个扇区的数据,而网络计算模块的输入数据的个数与图1所示隐含层神经元个数相同,两个数据量并不匹配。另外,SD卡读数据操作和网络计算为异步关系,因此本设计中加入FIFO模块,作为SD卡读数据模块和网络计算模块两个异步模块之间的数据缓存器,这样的设计也易于扩展到其他不同神经元数量的网络结构。另外,为了便于人为控制
10、对多组编码数据进行解码,系统设计中利用按键来产生一次解码操作的起始信号。本设计是以ASCII码的编码和解码对系统进行测试,因此设计中采用专门显示字母、数字和符号等的工业字符型液晶LCD1602显示解码结果。最后为了增加FPGA硬件系统稳定性,减少系统时钟的抖动和倾斜,设计中增加混合模式时钟管理器(MMCM),用于在与输入时钟信号有设定的相位和频率关系的情况下,生成不同的时钟信号,该信号用于各个模块工作。2.2硬件系统架构基于上述分析,所设计FPGA硬件系统结构如图2所示。系统外围模块包括存储编码数据的SD卡,产生差分时钟信号的晶振,产生复位信号和控制系统工作的按键,和显示网络计算结果的LCD1
11、602显示器。FPGA内部包含三大模块,分别是:数据加载模块、数据处理模块和混合模式时钟管理器。设计中利用SD卡来存储编码数据,对SD卡的操作采用简单的命令/响应协议13,全部命令由FPGA发起,SD卡接收到命令后返回响应数据。要读取SD卡中的数据,需要首先完成SD卡的初始化,该系统按照功能分别设计SD卡初始化模块和SD卡读数据模块,其符合FPGA模块化的设计原则。FIFO模块作为SD卡和网络计算模块之间的数据缓存器,同时又用于异步数据传输,因此在设计中采用独立的读时钟和写时钟,以用于异步操作。按键检测模块不断读取外部按键输出信号key_in的值,当检测到按键按下时该模块产生一个高脉冲信号,该
12、信号将作为一次解码操作的起始信号。网络计算模块按照神经网络的计算方法对读入的数据进行计算。显示驱动模块设计中采用有限状态机的方式控制LCD1602的初始化和数据显示操作,该模块与网络计算模块之间有信号线连接,以实现将计算结果送至显示驱动模块,显示驱动模块控制LCD1602对计算结果进行显示。在图2所示的硬件架构图中,混合模式时钟管理器将外部时钟分频产生各个模块工作所需要的时钟信号,其通过两个时钟线分别与数据加载模块和数据处理模块连接,而数据加载模块和数据处理模块之间通过data_en、data和read_clk 3个信号连接。2.3系统工作原理FPGA的特点是可以实现并行操作,在图2所示的系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 实现 平台 功耗 高速 解码器 系统
链接地址:https://www.31doc.com/p-3410154.html