基于FPGA的流水线并行结构的模糊逻辑控制器(IJMECS-V4-N7-4)
- 格式:pdf
- 大小:1.05 MB
- 文档页数:7
基于FPGA的模糊控制技术研究模糊控制是一种非精确控制方法,它在控制系统中采用模糊逻辑来处理不确定性和模糊性。
它通过将输入和输出的关系描述为一系列模糊集合和模糊规则,来实现对系统的控制。
FPGA是一种可编程逻辑器件,具有高度的灵活性和可编程性。
将模糊控制技术与FPGA相结合,可以实现高效、实时的模糊控制系统。
首先,基于FPGA的模糊控制技术可以实现高速的计算和实时响应。
FPGA具有并行计算的能力,可以同时计算多个模糊规则,从而大大提高了控制系统的响应速度。
与传统的DSP或微控制器相比,FPGA在运算速度和计算能力方面具有明显的优势。
这对于一些实时性要求较高的控制系统尤为重要,如机器人控制、电力系统控制等。
其次,基于FPGA的模糊控制技术还可以实现灵活的控制算法和系统结构。
FPGA的可编程性使得模糊控制器的算法和结构可以根据实际需求进行灵活调整和优化。
可以根据系统的实际情况选择适当的模糊集合和模糊规则,从而提高控制系统的性能和效果。
此外,FPGA还提供了丰富的资源和接口,可以方便地与其他系统模块进行连接和集成,从而实现更复杂的控制系统。
另外,基于FPGA的模糊控制技术还具有一些其他的优点。
首先,FPGA的可重构性和可扩展性使得系统的升级和扩展变得更加容易。
当需要调整控制算法或增加输入输出接口时,只需对FPGA进行重新编程或重新配置即可,无需改变硬件结构。
其次,FPGA具有低功耗和体积小的特点,适合应用于一些嵌入式系统或移动设备中。
最后,FPGA还具有较高的可靠性和抗干扰性,能够适应各种复杂的环境和工作条件。
然而,基于FPGA的模糊控制技术也存在一些挑战和限制。
首先,FPGA的设计和编程需要专业的知识和技能,并且开发周期较长,成本较高。
其次,FPGA的资源有限,对于一些复杂的控制系统可能无法满足要求。
此外,FPGA的可编程性也可能导致一些优化问题,需要进行充分的设计和优化才能达到最佳性能。
综上所述,基于FPGA的模糊控制技术具有高速计算、灵活性、可重构性等优势,适用于一些实时性要求较高、复杂度较高的控制系统。
基于FPGA的精跟踪控制系统的设计与实验李红军;艾勇;陈晶;周浩天【摘要】针对自由空间光通信精跟踪系统对小型化、智能化的要求,设计了一套以FPGA为处理核心的精跟踪控制系统,完成了对光斑的采集处理、补偿控制及相机的自适应控制等功能,并重点介绍了模糊自适应PID控制的原理及实现方法.最后,搭建了室内试验平台,对系统进行了评估.【期刊名称】《光通信技术》【年(卷),期】2015(039)005【总页数】4页(P50-53)【关键词】自由空间光通信;FPGA;精跟踪;模糊自适应PID【作者】李红军;艾勇;陈晶;周浩天【作者单位】武汉大学电子信息学院,武汉430079;武汉大学电子信息学院,武汉430079;地球空间信息技术协同创新中心,武汉430079;武汉大学电子信息学院,武汉430079;地球空间信息技术协同创新中心,武汉430079;武汉大学电子信息学院,武汉430079【正文语种】中文【中图分类】TN929.10 引言激光通信相较于传统微波通信具有带宽高、保密性高、抗干扰能力强、体积小、重量轻和低功耗等优点,使其在自由空间通信和军事通信领域具有广泛的应用前景[1]。
空间激光通信建立激光通信之前需要完成对目标的瞄准、捕获和跟踪(Pointing,Acquisition,Tracking,PAT),通常采用粗精复合轴的PAT技术。
粗跟踪控制系统对目标进行初始捕获,将视轴引入精跟踪视场;精跟踪控制系统进一步抑制粗跟踪残差,实现高精度的动态跟踪。
高精度的精跟踪系统是建立空间激光通信链路的前提,也是激光通信的技术难点。
有关精跟踪技术上,国外开展了较深入的研究[2,3],国内也做了不少工作[4,5]。
小型化、智能化和高精度是精跟踪系统的发展趋势。
本文设计一套以FPGA为处理核心的精跟踪控制系统,实现对光斑的采集处理、补偿控制、COMS相机的智能控制等功能。
考虑到强天空背景光、大气扰动以及PZT振镜等非线性、不确定因素的影响,我们采用模糊自适应PID控制策略代替传统的PID控制,实现控制参数的自适应调整。
基于FPGA的多路数字信号编解码器的设计宋若愚;余娟;丁国宁;臧鹏【期刊名称】《计算机与数字工程》【年(卷),期】2013(041)007【摘要】Encoding and decoding technology is important measure in the modem digital communication.In the field of digital communication,coding can improve the transmission efficiency effectively,expanding the amount of data transmission.This paper describes a codec technology,multiplexing signals for voice,data and other FPGA-based implementations of the encoding/decoding method and a detailed description of the design process.%编解码技术是现代数字通信中信息处理的重要手段.在数字通信领域中,编解码技术可以有效的提高传输效率、扩大数据传输量.论文介绍一种编解码技术,基于FPGA对语音、数据等多路不同信号进行编码/解码的实现方法,对设计过程进行了详细的描述.【总页数】3页(P1199-1201)【作者】宋若愚;余娟;丁国宁;臧鹏【作者单位】空军预警学院武汉430019;空军预警学院武汉430019;空军预警学院武汉430019;空军预警学院武汉430019【正文语种】中文【中图分类】TN912.3【相关文献】1.基于FPGA的多路数字信号复分接器的设计 [J], 褚改霞;潘卫;王栋;胡文彬2.基于FPGA的多路数字信号复接系统设计与实现 [J], 赵怡;但涛3.基于多处理器结构的多路话音编解码器设计 [J], 郭巍;倪永婧4.基于FPGA的多路数字信号检测电路实验研究 [J], 高英姿;张伟明5.基于FPGA的曼彻斯特编解码器的设计 [J], 董毅;何刚强;梁汉文;倪凯诚;黄秋月因版权原因,仅展示原文概要,查看原文内容请购买。
基于FPGA的流水线单精度浮点数乘法器设计彭章国;张征宇;王学渊;赖瀚轩;茆骥【摘要】针对现有的采用Booth算法与华莱士(Wallace)树结构设计的浮点乘法器运算速度慢、布局布线复杂等问题,设计了基于FPGA的流水线精度浮点数乘法器.该乘法器采用规则的Vedic算法结构,解决了布局布线复杂的问题;使用超前进位加法器(Carry Look-ahead Adder,CLA)将部分积并行相加,以减少路径延迟;并通过优化的4级流水线结构处理,在Xilinx(R)ISE 14.7软件开发平台上通过了编译、综合及仿真验证.结果证明,在相同的硬件条件下,本文所设计的浮点乘法器与基4-Booth算法浮点乘法器消耗时钟数的比值约为两者消耗硬件资源比值的1.56倍.【期刊名称】《微型机与应用》【年(卷),期】2017(036)004【总页数】5页(P74-77,83)【关键词】浮点乘法器;超前进位加法器;华莱士树;流水线结构;Vedic算法;Booth 算法【作者】彭章国;张征宇;王学渊;赖瀚轩;茆骥【作者单位】西南科技大学信息工程学院,四川绵阳621010;西南科技大学信息工程学院,四川绵阳621010;中国空气动力研究与发展中心,四川绵阳621000;西南科技大学信息工程学院,四川绵阳621010;西南科技大学信息工程学院,四川绵阳621010;西南科技大学信息工程学院,四川绵阳621010【正文语种】中文【中图分类】TP331.2浮点乘法器(eFloating Point Multiplier,FPM)是数字信号处理(eDigital Signal Processing,DSP)、视频图像处理以及信号识别等应用邻域重要的运算单元。
尤其是在视频图像处理领域,随着对高速海量图像数据处理的实时性要求逐渐提高,设计一种具有更高速率、低功耗、布局规律、占用面积小和集成度高的浮点乘法器极其重要。
阵列乘法器是采用移位与求和的算法而设计的一种乘法器[1]。
基于FPGA的模糊PID控制器的研究
王志华;李绍文
【期刊名称】《微计算机信息》
【年(卷),期】2009(025)029
【摘要】提出了一种基于VHDL描述、FPGA实现的模糊自整定PID控制器设计方法.首先,借助Matlab系统仿真工具,优化得出模糊PID参数的模糊推理规则和控制器算法结构.然后,进行控制器的VHDL分层设计.最后,在一个具体的FPGA芯片上实现了该控制器.由于采用了离线计算、在线查表的模糊自整定参数技术和增量式PID算法,本设计既降低了FPGA的资源耗费,又改善了传统PID控制器的控制性能.是实现单片或小系统智能控制策略的一种新的有效途径.
【总页数】3页(P168-170)
【作者】王志华;李绍文
【作者单位】541004,广西桂林,桂林电子科技大学计算机与控制学院;541004,广西桂林,桂林电子科技大学网络信息中心
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于FPGA的模糊PID控制器的设计 [J], 齐建玲;庄士霞
2.基于FPGA的模糊PID控制器设计 [J], 许忠仁;姜丽;杨冶杰;朱文伟
3.基于FPGA的模糊PID控制器设计 [J], 沈峰;郝国法;贺秋实
4.基于FPGA的倒立摆模糊PID控制器设计实现 [J], 郑浩;汪正祥;张凤登
5.基于FPGA的BLDCM模糊PID控制器设计 [J], 卿金晖;胡黄水;王宏志
因版权原因,仅展示原文概要,查看原文内容请购买。
fpga顶层架构应用实例及讲解FPGA顶层架构应用实例及讲解FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,具有在实际应用中重新配置其内部电路的能力。
它的顶层架构是指FPGA电路的整体组织和设计方式。
在本文中,我们将介绍一些常见的FPGA顶层架构应用实例,并对其进行详细讲解。
一、流水线架构流水线架构是一种常见的FPGA顶层架构,它将任务拆分为多个阶段,每个阶段只处理部分任务。
这种架构可以提高处理器的吞吐量和效率。
例如,在图像处理领域,可以将图像处理任务拆分为载入图像、预处理、特征提取、分类等多个阶段,通过流水线架构,可以同时处理多个图像并提高处理速度。
二、多核架构多核架构是指在一个FPGA芯片上集成多个处理核心,每个核心可以独立运行不同的任务。
这种架构适用于需要并行处理多个任务的应用场景,例如高性能计算、机器学习等。
通过多核架构,可以实现任务的并行处理,提高系统的整体性能。
三、片上系统架构片上系统(System-on-Chip,SoC)架构是指将多个硬件模块(如处理器、内存、外设等)集成到一个FPGA芯片上,形成一个完整的系统。
这种架构适用于嵌入式系统和移动设备等领域,可以实现高度集成和灵活性。
例如,可以将处理器核心、图像处理模块、通信接口等集成到一个FPGA芯片上,实现一个完整的图像处理系统。
四、分布式架构分布式架构是指将任务分布到多个FPGA芯片或多个FPGA板卡上进行处理。
每个FPGA芯片或板卡负责处理部分任务,通过通信接口进行数据传输和协调。
这种架构适用于需要处理大规模数据和高性能计算的应用场景,例如数据中心、超级计算机等。
通过分布式架构,可以实现任务的并行处理和资源的扩展。
FPGA顶层架构在不同的应用领域中有着广泛的应用。
流水线架构可以提高处理效率,多核架构可以实现任务的并行处理,片上系统架构可以实现高度集成和灵活性,分布式架构可以实现任务的并行处理和资源的扩展。
小型微型计算机系统Journal of Chinese C o m p u t e r Systems 2021年6月第6期 V o l.42 No. 62021基于FPGA的指令集架构神经网络协处理器的设计与验证邓良\陈章进U2,乔栋、屠程力1y上海大学微电子研究与开发中心,上海200444)2 (上海大学计算中心,上海200444)E-mail:*****************摘要:针对大多数基于FPGA的加速器受限于运算资源与访存带宽,很难部署大型的神经网络这一问题,通过研究神经网络 的计算特点,运用通用计算模型的思想,提出了一种指令集架构的神经网络协处理器的设计方案.该方案中的协处理器具有一 套专用的运算指令集,支持多种神经网络结构的运算,搭配相应的指令生成程序,能够灵活快速的进行神经网络在FPGA平台 上的部署.考虑神经网络运算的相似性,对电路进行复用,降低资源的占用;设计内存多端口读写控制模块,通过协调片上缓存 与片外存储,降低对访存带宽的需求.使用python与UVM验证方法学搭建验证平台进行验证,并在PYNQ-Z2开发板上进行实 验.结果表明:方案中的协处理器对激活函数的运算误差在0_ 05以下,对其他类型指令的运算误差在104级别,工作在100MHz 下的运算性能达到41.73GOPS,达到同类设计的主流水平,消耗的资源比同类设计平均降低80%.关键词:协处理器;神经网络加速;指令集架构;可编程逻辑器件中图分类号:TP183,TP338 文献标识码:A文章编号:1000-1220(2021)06-1129-07Design and Verification of Instruction Set Architecture Neural Network Coprocessor Based on FPGAD E N G Liang1 ,C H E N Zhang-jin1'2,Q I A O Dong' ,T U Cheng-li11( Shanghai University Microelectronics Research and Development Center, Shanghai 200444, China)2( Shanghai University Computing Center, Shanghai 200444, China)Abstract:A i m i n g at the problem that m ost F P G A-b a s e d accelerators are limited by computing resources and m e m o r y access b a n dwidth, i t is difficult to deploy large-scale neural networks. Using the idea of a universal computing m o del and studying the computing characteristics of neural networks,an instruction set architecture is proposed. Design of neural network coprocessor. T h e coprocessor in this solution has a dedicated set of operation instruction sets .which supports a variety of neural network structure operations. W i t h corresponding instruction generation programs,the neural network can be flexibly and quickly deployed on the F P G A platform. Considering the similarity of neural network operations,multiplexing circuits to reduce the use of resources ;designing a multi-port data read- write control m o d u l e that reduces the need for m e m o r y bandwidth by coordinating on-chip caches and off-chip storage. Using Python and U V M verification methodologies to build a verification platform for verification,and perform experiments on the P Y N Q-Z2 develo p m e n t board. T h e results s h o w that the coprcx:essor^ calculation error for the activation function is b e low 0. 05, the calculation error for other types of instructions is at the level of 104 ,and the operating performance at 100M H z reaches 41.73 G O P S,w h ich reaches the mainstream level of similar designs,and c o n sumes 80%less resources on average than similar designs.K e y words:coprocessor ;neural network acceleration ;instruction set architecture;p r o g r ammable logic devicei前言随着近年来大数据的爆发与计算机性能的飞跃式的提 升,人工智能的研究重新变得火热起来,神经网络算法已经被 广泛应用于图像处理[1]、人脸识别[2]、语音识别13]等场景.随 着神经网络结构的不断加深,对运算平台的资源与计算能力 要求越来越高,使得通用处理器对于网络模型的运算越来越 吃力.目前针对神经网络模型进行加速的方案主要有3种:1)使用图像处理器GPU进行模型计算的加速,但存在着功耗高,难于集成等缺点,只适合于大型运算平台或云端服务器;2)使用专用集成电路进行模型计算的加速,具有更高性能、更 低功耗的特点,但存在设计周期长、开发成本髙等缺点;3)使用 FPGA进行模型计算的加速,具有低功耗、开发周期短、灵活性 高等特点[4],逐渐成为目前研究神经网络加速的热门平台.2011年?3«1)61等[5]人提出了一种基于FPGA的卷积神 经网络处理器,该处理器在计算时可重构数据流,包含了多个 计算单元.2〇13年Peenmen M等人在Virtex6 FPGA上实 现了卷积神经网络的加速,使用MicroBlaze软核处理器作为收稿日期:202(M)6>08收修改稿日期:202(M)6-28基金项目:国家自然科学基金项目(61674100,61774101)资助.作者简介:邓良,男,1996年生,硕士研究生,研究方向为数字集成电路设计、人脸识别技术等;陈章进(通讯作者),男,博士,教授,研究数字集成电路设计、L E D显示 等;乔栋,男,1995年生,硕士研究生,研究方向为神经网络硬件加速技术;屠程力,男,1996年生,硕士研究生,研究方向为数字集成电路与系统设计.1130小型微型计算机系统2021 年控制器.2014 年 Gokhale V 等[7]人使用 Xilinx ZYNQ FPGA 设计了一种卷积神经网络加速器,该方法使用8路并行的计 算单元,每个计算单元能够进行最大1〇 x 10的卷积计算. 2016年Motamedi M 等[8]人提出了输出间并行、卷积核间并 行和卷积核内并行3种可行的并行计算方法,详尽的总结了 卷积层并行计算的设计方案.2017年Y u 等[9]人使用Wino -grad 算法[m ]实现卷积运算,减少了模型计算过程中乘法器的使用数量,提高了计算的并行度,但Winograd 算法通常只适用于较小的卷积神经网络模型.2019年曾成龙等[11]人提出 了一种单计算引擎的神经网络加速器的设计方案,只使用单 个计算引擎进行实时配置实现不同卷积神经网络层的计算, 大大减小对FPGA 资源的消耗.这些研究工作主要关注于对并行设计空间的探索,尝试 通过使用多计算单元计算,数据分块与并行,使用流水计算等 方法提高设计的并行度,往往需要消耗大量的资源,而没有全 面考虑到对FPGA 资源的合理利用,基于FPGA 的神经网络 加速架构主要有数据流处理架构和单计算单元架构2种[12]. 数据流处理架构通常是在FPGA 上实现神经网络模型的全部 层,数据从实现这些层的电路中流过就完成了一次计算,因为 每一层的电路结构都经过精心的设计,能够为每一层灵活的 配置资源,提髙计算的性能.但是当计算不同的神经网络模型 时,需要重新配置FPGA ,并且这种方法对FPGA 设备的资源要求很高,对于大型的神经网络模型,很难进行部署.单计算 单元架构的加速器通过对计算单元的配置来实现神经网络中 不同层的计算,按照一定的配置顺序就能实现整个神经网络 的计算,当计算不同的神经网络模型时,只需要改变配置顺序 即可,与数据流处理架构相比,尽管达不到最佳的计算性能, 但占用资源少,灵活性与通用性强.本文基于FPGA 平台提出一种自定义指令集的神经网络 处理器的设计方案,指令集包含了 16条的运算指令,该处理 器使用128位宽的指令来控制实现不同计算操作,对卷积与 池化系列的计算电路进行复用,减少对FPGA 资源的消耗,使 用流水线CORDIC 算法[131实现激活函数的计算,同时本文设 计了一种多端口读写控制模块,处理器通过该模块实现对总 线数据的读写.2卷积神经网络的结构分析与运算模块设计2.1卷积神经网络结构分析卷积神经网络是神经网络中最常用到的网络之一,卷 积神经网络模型通常包括:卷积层、池化层、激活函数计算、全 连接层等.卷积神经网络每一层的输人通常都是一个三维矩 阵,分别定义为:长、宽、深度,深度有时也被表述为通道数.图 1是一种常见的卷积神经网络结构.Convolution Pooling Convolution Pooling Full Connection图i卷积神经网络结构图Fig . 1 Convolutional neural network structure2.1.1卷积层运算模型卷积层的作用是为了提取输人图像的某些特征,并输出 一个新的特征图作为下一层的输人图像,计算的过程通常为先卷积再经过一个激活函数得到结果.卷积层存在4种卷积 的实现方式:直接卷积、展开式卷积[15] .Winograd 卷积和快速 傅里叶卷积[16].本文中使用直接卷积的方法进行计算.直接 卷积使用卷积核与在图像上截取到的相同尺寸的图像进行累 乘和累加计算,计算的数学表达式为:h K y〇(x ,y ) =/( y ( Xxf^O K x =0K y =0In(x +k x ,y +ky)f- +^))(1)其中/(•)是非线性激活函数,#表示偏移值,c »U ,y )表示输入特征图坐标U ,y )处的值表示卷积核坐标 (、,卜)上的权重值,/«(;<: + 1,;>> +卜)表示输出特征图坐标U + + 上的值;表示卷积核的大小,/表示第I '幅输人特征图,巧,.表示输人特征图的数目.2. 1.2池化层运算模型大池化的表达式为式(2),平均池化的表达式为式(3):/;了 = max (H,,/二2,…,_C +, ,r inJm + 1.f in,•/ m h + p-l ,«+/>-r i nJ m,n,)fZP x p(2)(3)式(3)中的/°w 表示输出图像(U )位置的值,广表示输 人图像中0_J ')位置的值,P 表示池化核的尺寸.2.1.3 激活函数介绍激活函数能够对输人的激励进行非线性转换,通常跟在 卷积层之后,使用激活函数能够使网络的表达能力变得更强大,而不是只能简单的进行线性表达.常用的激活函数有Sig moid 函数、 Tanh 函数和 ReLu 函数,它们的表达式分别为式(4)、式(5)、式(6).Sigmoid (x )=(4)tanh (x )=e 1 -e~xex +e 'x(5)池化层也被称为下采样层,通常被放置在卷积层后,根据不Relu = max (0,x )(6)同的采样规格分为最大池化与平均池化.池化层的作用是提取特 2.2卷积与池化运算模块设计征图的局部特征,并对特征图进行降维,减少模型的计算时间.最本文中卷积层使用直接卷积的方法进行计算,直接卷积6期邓良等:基于FPG A 的指令集架构神经网络协处理器的设计与验证1131图2卷积与池化模块设计框图Fig. 2 Convolution and pooling m o d u l e design block diagram对于池化运算,其划窗操作与卷积运算的划窗操作相同, 只需要对卷积核中的数值进行配置即可实现池化运算.当执 行最大池化运算时,通过卷积核配置模块将卷积核寄存器中 的值都配置为1,同时基2加法树运算阵列不再是(a + fc )运 算,而是执行运算;当执行平均池化运算时,通过卷 积核配置模块将卷积核寄存器中的值都配置为1,基2加法 树阵列执行U + fc )运算,将最终的累加和使用定点除法器求 商,作为最后的池化结果.当执行卷积计算与最大池化运算 时,除法器的除数设置为1.2.3激活函数计算模块设计为了使卷积神经网络的表征能力更强,通常会在卷积计 算之后使用激活函数进行非线性映射,常见的激活函数包括 了:Sigmoid 函数、Tanh 函数和ReLU 函数.本文基于CORDIC 算法设计了一种流水线结构的激活函数计算模块.激活函数 计算过程中最复杂的就是指数计算,以exp 指数计算为例,阐 述基于CORDIC 算法的流水线结构的激活函数计算模块的 设计原理.CORDIC 算法的迭代表达式为式(7).其中士表示 第次旋转的角度,4表示第次旋转的方向,表示坐标,z 表示角度值.=xk -mdk yt -2-k-yt + ^k xk '2(7)Zt +1 = Zj + rf * • 0*基于CORDIC 算法的流水线结构的激活函数计算模块如图3所示,整个计算单元包括了:旋转角度R O M 表、输出 校正系数R O M 表、系统控制、各级的坐标旋转器等模块.其 中,旋转角度R O M 表中存储着C O R D I C 旋转时的旋转角度1 A丨;输出校正系数R O M 表中存储着对输出结果的校正系数系统控制模块主要由 状态机构成,在收到复位信号后,先加载R O M 表内的旋转角图3流水线C O R D I C 算法实现框图Fig. 3 Pipeline C O R D I C algorithm implementationblock diagram度与校正系数;各级坐标旋转器实现C O R D I C 算法中角度的旋转变换,通过不同级的坐标旋转,可以实C O R D I C 算法的 流水化处理.通过配置初始化的以及C O R D I C 旋转角 度表中每一级的旋转角度值,可以实现指数函数的计算.CORDIC 旋转角度表需要在输人图像上进行划窗操作,再将窗口截取到的矩阵与 卷积核进行逐点累乘与累加,最后的累加值作为一次卷积的 输出值,随着窗口在图像上的滑动,最终完成对图像的卷积计 算.池化计算与卷积计算类似,也需要在输人图像上进行划窗 操作,但截取到的窗口矩阵不再进行累乘和累加计算,而是根 据相应的采样规则计算窗口矩阵的值.由于卷积与池化都包 含了划窗这个操作,因此本文对电路进行复用,通过信 号* 来控制实现卷积与池化功能.为实现划窗操作,首先需要对输入图像进行行缓存,当缓 存所需窗口尺寸的行数后,再按列进行输出,即可实现开窗的 操作,随着图像数据的串行输人,最终达到划窗的效果.由于 卷积与池化计算的输人图像尺寸是不确定的,不能采用常规 的条状移位寄存器来进行行缓存,本文中使用双端口 R A M 来实现窗口的构造,图2是卷积与池化运算模块设计框图.将 双口 R A M 进行首尾相连,当一个R A M 缓存输人图像宽度个 数据后,开始从当前R A M 读取数据并写人到下一个R A M中,当最后一个R A M 也缓存输人图像宽度个数据后,将所有RAM 中的数据按列一拍一拍的输出,同时,图像继续串行输人,从而实现划窗的操作.由于图像的数据是串行输人的,导 致开窗后的数据矩阵与真正需要计算的矩阵是倒置的,因此 需要将开窗截取到的数据矩阵进行一次重映射,重映射后的 数据矩阵就是正确开窗后的矩阵.卷积核配置通过写人模块 根据相关信号的控制,配置寄存器的个数,形成卷积核矩阵, 将从外部存储器中读取到的权重值按照顺序写入到寄存卷积 核矩阵中.当卷积核与卷积域的数据都存放到相应的寄存器 后,将存放权重的寄存器矩阵与存放图像数据的寄存器矩阵 进行逐点乘法计算,将计算后的值存放到一个加法树寄存器矩阵中.当逐点乘法运算完成后,对加法树矩阵进行基2加法 树运算,即每相邻的两个寄存器的值相加放到下一层的加法 树寄存器中,通过层层的加法运算,最终求得加法树矩阵中所 有值的和,即为一次窗口卷积的结果,配合前边的划窗操作, 最终实现对图像的卷积计算.CORDIC 输出校正系数表I fi核与模 积置人块卷配写1132小型微型计算机系统2021 年卷积神经网络中的Sigmoid函数和T anh函数可以通过 式(4)和式(5)的指数运算得到.因此为了实现Sigmoid函数 与Tanh函数的流水线型计算,需要额外增加流水线型除法器.针对不同级的流水,通过CORDIC算法计算激活函数所 消耗的资源,实现的精度有所不同,需要在精度与消耗的资源 之间进行衡量.根据实验测试发现,选择10级流水的CORDIC算法实现Sigmoid函数与Tanh函数的效果最好.3指令集架构的协处理器设计为了能够对不同类型的卷积神经网络进行加速计算,本 文设计了一种基于指令集架构的神经网络协处理器,图4为 处理器的整体框图.处理器采用指令的形式进行控制与计算,每一条指令的运算结果都以二维矩阵为粒度,每一行的运算 结果都缓存在片上_中并最终写人到片外存储器中.处理 器的运算指令需要固化在片内RAM中,可以通过总线进行修 改与配置,卷积神经网络中的权重值、输人图像的数据、中间的 运算结果都通过多端口读写控制模块存储到片外存储器中.图4协处理器总体设计框架Fig. 4 Coprocessor overall design framework3.1指令集与指令执行器设计在卷积神经网络中,大多数运算都可以分为向量运算、标 量运算和矩阵运算[17],如加法、乘法、激活函数的运算可以看 作是向量运算,矩阵乘法、点乘可以看作是矩阵运算,立即数 的加减运算可以看作是标量运算.因此本文将卷积神经网络 的计算具体细分到了矩阵的加减法、乘法、非线性函数映射、二维图像的卷积与池化运算、矩阵与立即数的加减运算等指 令操作.为方便计算,本文中所有的运算数据都是32位有符 号的定点运算,其中高16位表示整数位,低16位表示小数 位.指令被设计为128位,指令结构如表1所示.表1协处理器指令结构说明Table 1Coprocessor instruction structure description 127:124123:92 91:60 59:2827: 0Opcode$1起始地址$ 2起始地址$ 3起始地址其他参数其中[127: 124]表示操作码;[123: 92]表示该指令输人 数据参数1的起始地址;[91: 60]表示该指令输人数据参数2 的起始地址;[59: 28]表示输出数据参数3的起始地址; [27:0]根据指令的不同分别用于表示图像的尺寸,卷积核的 尺寸等运算参数.本文设计指令执行器,用于控制指令的顺序执行,不需要每执行完一条指令就访问外部处理器.在系统复位后,只需向神经网络协处理器发送一条启动运算的指令,处理器就能够按照顺序将指令RAM中的指令全部执行一遍.指令顺序执行器的实现分为两个步骤:1)将外部发送过来的指令存储到指令RAM中;2)接收到启动运算指令后,按照顺序获取指令 RAM中的指令,当指令全部执行结束后,发出运算结束信号.整个指令顺序执行器设计框图见图5,主要有指令分析模块和顺序执行状态机组成.指令分析模块需要对接收到的指令进行分析,如果是启动指令,则通知顺序执行状态机启动神经网络计算模块的指令调度.指令执行状态机在接收到指令分析模块的启动命令后,会循环给出指令的地址,并获取指令,调度计算单元开始计算,直到所有指令执行完成.图5指令执行器设计框图Fig.5 Instruction executor design block diagram顺序执行状态机由 IDLE、READ、SEND、DELAY、WAIT、ADDR这6个状态组成,各个状态与跳转条件说明如下:1) 系统复位进人空闲状态IDLE;2) 在IDLE状态,如果收到启动运算信号,则会跳转到 READ状态;3) 在READ状态,等待3个时钟完成指令读取任务,如 果指令是无效指令,则跳转到IDLE,否则进人SEND状态;4) 在SEND状态,将指令发送给计算单元,并给出指令 有效信号,之后进人DELAY状态;5) 在DELAY状态,等待5个时钟周期,使计算单元接收 指令和指令有效信号,之后进人WAIT状态;6)在WAIT状态,等待计算单元完成计算,在收到计算 单元给出的完成信号后,之后进人ADDR状态;7)在ADDR状态,对指令RAM的寻址地址加1,之后进 人READ状态.3.2多端口读写控制器设计由于外部的D D R存储器通常只有一个总线接口,而在系统中存在多个单元需要对存储器进行读写,并且不同的单元对存储器的访问速度也可能不同.本文设计一种基于异步F I F O的多端口读写控制器,将D D R控制的单端口分时复用,从而实现多个端口对一个端口的读写控制功能,不同的端口之间存在着优先级.图6是2个端口写和2个读写的控制器框架,想要实现更多的端口只需增加相应的F I F O即可.写端口缓存与读端口地址缓存有3个输入信号,分别为:地址信号、请求信号和缓存余量信号;读端口数据缓存有两个输出信号,分别为数据有效信号和数据读完信号.对于写端口,使用64bit宽度,深度为8的异步F I F O进行数据缓存,在F I F O中每个存储空间存放32bit地址与32bit数据;对于读端邓良等:基于FPG A 的指令集架构神经网络协处理器的设计与验证1133口,使用32b it 宽度,深度为8的异步FIFO 进行缓存,在FIFO 中每个存储空间存放了要读取的DDR 地址.使用32b it 宽度, 深度为64的异步FIFO 缓存从DDR 中读取到的数据.d_validread_data图6多端口读写控制器设计框图Fig . 6 Multiport read-write controller design block diagram读写端口选择控制模块主要由状态机构成,状态机的跳 转逻辑如下:1) 系统复位后,状态机进人0状态;2)在0状态,首先使能所有的读写端口,并按照顺序扫描不同的读写端口,如果某个端口的异步FIFO 非空,根据端口 序号跳转到1 ~4不同状态;3) 在1状态,处理来自写人端口 #0的写人请求,生成DDR 相应的写地址、写请求信号,在完成写人操作后,撤销DDR 写人请求,随后屏蔽端口#0,使能其他端口,扫描是否有读写端口存在请求;4)在2状态,处理来自读取端口#1的读取请求,生成DDR 相应的读地址、读请求信号,在完成数据的读取后,撤销DDR读取请求,随后屏蔽端口#1,使能其他端口,扫描是否有读写 端口存在请求;5)在3状态,处理来自写人端口 #2的写人请求,生成DDR 相应的写地址、写请求信号,在完成写人操作后,撤销 DDR 写人请求,随后屏蔽端口#2,使能其他端口,扫描是否有读写端口存在请求;6) 在4状态,处理来自读取端口 #3的读取请求,生成DDR 相应的读地址、读请求信号,在完成数据的读取后,撤销 DDR 读取请求,随后屏蔽端口#3,使能其他端口,扫描是否有读写端口存在请求;为了区分读数据信号与读数据有效信号对应读取端口 #1还 是读取端口》,使用一个4b it 宽度,深度为64的异步FIFO 进行读取端口选择的缓存,运行时钟与端口选择控制模块时钟相同. 使用多端口控制器进行读写端口的扩展,要求各个读写端口尽可 能的发起连续地址的读写请求,以达到最大的DDR 读写带宽利 用率.每次端口选择控制模块切换端口的周期计算为:一 64 x 32bitT,:1.36ji .s (8)FdWdEd 100MHz x 16bit x 32/34其中,厂为切换端口的周期;为当前FIFO 在被选中时 刻的深度,%为FIFO 的位宽为控制器的工作频率为内存的位宽,&为控制器的读写效率.3.3神经网络计算单元设计协处理器中的运算逻辑在神经网络计算单元中实现, 计算单元由运算控制逻辑、指令解析逻辑、指令运算逻辑和 DDR 读写接口等部分组成.如果计算单元准备就绪,就会发出 Ready 信号,表示可以接收运算指令,在接收到指令和指令有效信号后,解析指令的执行类型并由控制逻辑控制计算单元开始数据的读取与指令的运算,神经网络计算单元设计框图见图 7.读写地址生成模块用于产生读写操作时DDR 中的数据的地读端口选择lj^> |〇PCodeH$i~|i $2 |r$3~||Km^m||Kn/Pn|卷积池化运算模块j 运算控制逻辑-------激活函数 运算模块Sigmod/tanh/Relu S2 .Q$|I M M.乘$1$1(0CRAM)$2ADDi/SUBi/MULTiMULT读地址生成写地址生成$3回写缓存111D D R 读写接口图7神经网络计算单元设计框图Fig . 7 Design block diagram of neural network computing unit址,回写缓存模块用于缓存每条指令计算的结果.根据指令类型的不同,计算任务可以划分为双矩阵逐点 运算(矩阵的加法、减法和点积运算)、单矩阵逐点运算(矩阵 与立即数的加法、减法、乘法运算以及激活函数的计算)、矩 阵转置运算、矩阵乘法运算和图像的卷积与池化运算等任务. 不同任务对数据的读写与运算方式不同,任务间的转换通过运算控制逻辑实现.运算控制逻辑主要由有限状态机构成,包 含了执行不同任务的子状态机.当系统复位时,控制逻辑处于空闲状态,接收到指令后,根据Opcode 的编码跳转到相应任 务的子状态机中,通过子状态机控制对数据的读写与运算.为提高运算的效率,执行每个任务时进行边读边写的操 作.执行双矩阵逐点运算任务时,先读取参数1的一行数据,读写端口选择控制 微读端口 #3数据 缓存 32bit 64读端口 #3紐 缓存32bit 8写端刚请求缓存Mbit 86期M C X1134小型微型计算机系统2021 年然后读取参数2的一行数据,同时每读取参数2的一个数据 便与对应的参数1的数据进行逐点运算,并将结果进行缓存,当一行数据全部计算完成后将结果写回到DDR,之后开始读 取下一行的数据,直到整个矩阵全部读取完成.执行单矩阵逐 点运算任务时,只要先读取参数1的数据,进行相应的流水线 运算,对一行的数据逐点进行相应运算的同时写回到DDR,当一行数据计算完成后继续读取下一行的数据,直到参数1的数据全部计算完成.执行矩阵转置任务时,为保证写回的数 据是按行连续的,因此在读取数据时优先按列读取参数1指示 的数据,并直接按行写回到DDR,直到整个矩阵完整转置.执 行矩阵乘法任务时,需要先读取参数1指示数据的某一行,之 后依次读取参数2指示数据的每一列,在读取参数2指示数据 的同时进行乘累加运算,将结果进行缓存,当参数2指示数据 的每一列都读取完成后,将运算结果写回到DDR,并开始读取 参数1指示数据的下一行,直到参数1指示的数据完全读取.4实验结果与分析4.1实验方案本文中的实验使用TenS〇rfl〇w n8]深度学习框架搭建卷积神经网络,网络结构如表2,在WindowslO环境下,使用Intel 15 9400 CPU+GTX1070 GPU在 MNIST数据集[19]上进行 训练,在PYNQ-Z2开发板进行前向推理.PYNQ-Z2开发板的 芯片型号为Xilinx的XC7Z020-1CLG400C,主要的内部资源 分为PS、P L和外设等部分,P S端包括双核ARM Cortex-A9 处理器,工作频率为650MHz,P L端包括1. 3M逻辑片,220 个DSPs,同时开发板包括512MB16位总线宽度的DDR3存 储器,最高工作频率为1050Mbps.表2卷积神经网络结构说明Table 2 Convolutional neural network structure description 层类型层结构参数数量(个)卷积层5x5卷积核,步长为132激活层RELU0池化层2x2最大池化,步长为20卷积层5x5卷积核,步长为164激活层RELU0池化层2x2最大池化,步长为20全连接层10个输出神经元1024为验证神经网络计算单元指令集运算的准确性,本文使 用Python与UVM验证方法学搭建指令运算验证平台,使用 Modelsim软件进行仿真,验证平台结构如图8所示.首先使 用Python读取卷积神经网络模型结构文件,通过解析各个层 的种类,生成相应的处理器运算指令;之后使用Python读取 卷积神经网络模型参数文件,将这些参数量化为32位有符号 定点数,分配到不同的内存地址,并生成DDR初始化文件.使 用Modelsim加载生成的指令文件对指令RAM存储模型进 行初始化,之后加载DDR初始化文件将模型的参数初始化到 DDR仿真模型中.通过将Monitor接收到的运算结果与在Tensorflow中模型的运算结果进行对比,验证指令运算的准 确性,并对计算误差进行统计.4.2实验结果通过搭建的指令运算验证平台,可以精准地知道神经网络 协处理器在运算过程中每一步和最终的计算结果,以及与单精 度浮点数运算相比,由精度损失导致的相对误差.通过进行大图8协处理器验证平台Fig. 8 Coprocessor verification platform量指令运算,将运算结果的相对误差进行统计,图9是部分指 令的计算相对误差.通过统计发现,加法、点乘、乘法和卷积等 指令的运算结果相对误差控制在1〇4级别,激活函数的计算相 对误差控制在〇.〇5以下,满足神经网络协处理器的运算需求.0.040.020.00-0.02-0.04convd instI 2000 30000.0150.0100.0050.000-0.005-0.010sigmoid instM……:|_...............。
fpga原理及案例分享FPGA是可编程逻辑器件,全称为Field-Programmable Gate Array,它是一种集成电路芯片,可以通过编程来实现特定的功能。
FPGA的原理是基于可编程的逻辑单元和可编程的连接资源,通过编程来配置这些逻辑单元和连接资源,从而实现特定的逻辑功能。
FPGA的原理可以简单理解为它包含了大量的可编程逻辑单元和可编程连接资源,用户可以根据自己的需求编写代码,将特定的逻辑功能映射到FPGA芯片上,实现定制化的硬件功能。
与传统的固定功能集成电路相比,FPGA具有灵活性高、可重构性强的特点。
在实际应用中,FPGA被广泛用于数字信号处理、通信、图像处理、嵌入式系统等领域。
例如,FPGA可以用于实现数字滤波器、通信协议处理、图像处理算法加速等功能。
另外,FPGA还常用于快速原型设计和验证,因为它可以在短时间内重新编程实现不同的功能,从而加快产品开发的速度。
一个经典的FPGA案例是Xilinx的Zynq系列芯片,它集成了ARM处理器和FPGA芯片,可以实现高性能的嵌入式系统设计。
Zynq芯片可以用于无人机控制、工业自动化、医疗设备等领域,通过FPGA部分实现实时信号处理、高速数据传输等功能,而通过ARM处理器部分实现运行实时操作系统、控制外围设备等任务。
另一个案例是Altera(现在被Intel收购)的Cyclone系列FPGA,它在通信领域有着广泛的应用,可以用于实现各种通信协议的处理、信号处理算法的加速等功能。
Cyclone系列FPGA还常用于工业控制、汽车电子、网络设备等领域,因为它具有低功耗、高集成度、灵活性强的特点。
总的来说,FPGA作为一种可编程逻辑器件,具有灵活性高、可重构性强的特点,在数字信号处理、通信、图像处理、嵌入式系统等领域有着广泛的应用。
通过编程实现特定的硬件功能,FPGA可以加速算法运行、提高系统性能,并且在产品开发过程中起到快速原型设计和验证的作用。
基于FPGA的永磁同步电机模糊控制研究的开题报告一、研究背景永磁同步电机具有高效、高功率密度等优点,因此在工业制造和交通运输领域很受欢迎。
然而,由于其非线性性、多变性和复杂性,传统的PID控制器往往难以满足其控制性能要求。
相比之下,模糊控制器在非线性系统中具有良好的鲁棒性和适应性,可以克服永磁同步电机这种复杂系统的非线性特性。
FPGA作为一种可编程逻辑器件,提供了高速、高灵活性和高可扩展性的硬件实现方式。
采用FPGA实现模糊控制器,可以提高控制器的实时性和计算速度,从而实现永磁同步电机的精确控制。
二、研究内容本课题旨在利用FPGA实现基于模糊控制的永磁同步电机控制算法,具体研究内容包括:1. 建立永磁同步电机数学模型,考虑非线性因素和负载扰动等影响因素,以及模糊控制器的设计方法。
2. 利用Verilog语言编写FPGA的硬件描述语言,实现模糊控制器的硬件电路设计。
3. 利用MATLAB和Vivado对模糊控制器进行仿真和测试,验证FPGA实现的控制算法的准确性、实时性和可靠性。
三、研究意义本课题的研究成果有望应用于永磁同步电机的控制领域,具有以下几点重要意义:1. 提高永磁同步电机的精确控制能力,实现其更加稳定和高效的运行。
2. 探索FPGA实现模糊控制器的新途径,为探索高性能控制器的实现提供新的思路。
3. 对于解决复杂非线性系统控制问题具有指导作用,可以为其他业务领域的控制器研究提供参考和借鉴。
四、研究计划本课题的研究计划如下:1. 第一阶段(1个月):调研永磁同步电机控制的基础理论和现有的控制方法,确定模糊控制的优劣和FPGA实现的可行性。
2. 第二阶段(2个月):建立永磁同步电机的数学模型,分析控制性能的要求,设计模糊控制器。
3. 第三阶段(3个月):利用Verilog实现模糊控制器的硬件电路设计,进行仿真验证。
4. 第四阶段(1个月):进行实验验证,并对FPGA控制器的性能进行评估和验证。
基于FPGA的网络通讯流量模糊控制器的实现
谭会生
【期刊名称】《测试技术学报》
【年(卷),期】2011(025)005
【摘要】提出了一种基于FPGA的网络通讯流量模糊控制器的实现方法.根据一个基于缓冲管理模式和模糊逻辑的网络通讯流量模糊控制器模型,提出了系统总体实现结构和模糊化、模糊推理和去模糊化模块的实现方法,给出了Verilog HDL程序实现结果,包括功能仿真结果、逻辑资源消耗和系统最高时钟频率.为了提高系统的处理速度,系统结构设计中采用了流水线技术和并行技术,并采用了专门设计的乘法器和除法器.实验结果验证了本控制器结构设计的有效性和程序设计的正确性,系统的最高时钟频率达273.22 MHz.本系统可以应用于ATM和IP网络的流量控制,修改后也可应用于智能交通控制.
【总页数】6页(P421-426)
【作者】谭会生
【作者单位】湖南工业大学电气与信息工程学院,湖南株洲412008
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于FPGA的高速模糊控制器设计与实现 [J], 张超;支晓东;司兵见;唐旭光
2.基于FPGA的温度模糊控制器的实现 [J], 彭成功;刘艳萍;朱紫嫄
3.基于FPGA技术实现柴油机齿条位移模糊控制器 [J], 刘大鹏
4.参数自调整模糊控制器研究及基于FPGA实现设计 [J], 路永坤
5.参数自调整模糊控制器研究及基于FPGA实现设计 [J], 路永坤
因版权原因,仅展示原文概要,查看原文内容请购买。
现场可编程门阵列FPGA是近年来发展迅速的大规模可编程逻辑器件,它具有设计周期短,片内资源丰富,可无限次加载和现场可编程等特点。
在FPGA上实现模糊控制器是一种介于专用集成电路(ASIC )和通用处理器之间的方案,具有电子产品的高速度、高可靠性、小型化、集成化、低功耗、保密性能好、具有自主知识产权、产品上市快等优势。
模糊控制器不需要控制对象的精确数学模型,是一种基于规则的控制,依据操作人员的控制经验和专家的知识,通过查表得到控制量。
因此,模糊控制器具有响应快,超调量小,鲁棒性强等特点。
它能够克服系统中模型参数变化和非线性等不确定因素,在大滞后、非线性系统中得到广泛应用。
随着EDA技术的发展,FPGA在数字逻辑系统中发挥越来越重要的作用,采用硬件描述语言的硬件电路设计方法得到了广泛应用。
本文利用VHDL硬件描述语言在FPGA芯片上设计一种简化的模糊控制器。
一模糊控制器的结构及其FPGA实现流程图1 模糊控制器的组成框图图2 模糊控制器机构图由于一维模糊控制器的动态性能不能令人满意,三维及三维以上的模糊控制器结构复杂,建立模糊控制规则比较困难,因此一般采用双输入单输出的二维模糊控制器。
典型的两输人单输出模糊控制器的结构如图2所示,它由知识库、模糊化、模糊推理和逆模糊化4部分构成。
知识库向模糊化模块提供模糊量的隶属函数形态,使模糊化模块在接收到外部的精确量输人之后,能够将其转换成相对应时模糊量及隶属度。
同时,知识库向模糊推理模块提供控制规则,由模糊推理模块执行推理过程,由输人的模糊量推出输出的模糊量。
知识库也向反模糊化模块提供模糊量的隶属函数形态,反模糊化接口则将输出的模糊量及隶属度转换成与之对应的精确量。
论域和模糊状态应根据问题的实际情况而定,现在假设e,ec和u的模糊子集均为{NB,NM,NS,ZO,PS,PM,PB},模糊论域均为[-4,-3,-2,-1,0,1,2,3,4],设e的基本论域为[-2,2],ec的基本论域为[-1,1],u的基本论域为[-5,5]。
基于模糊控制的迟早门同步器及其 FPGA 实现 摘要介绍了迟早门同步器的基本工作原理,提出了在迟早门同步器中 引入模糊逻辑控制获得较小相位抖动的方法,给出了迟早门同步器在FP GA上的具体实现。
关键词符号同步模糊控制FPGA在数字通信系统中,必须以符号速 率对解调器的输出进行周期性地采样。
为此,接收器需要一个采样时钟信号,这个时钟信号的频率和符号速 率相等,相位则必须保证采样时刻是最佳的。
在接收器中获得这个采样时钟的过程被称为符号同步或符号定时恢 复。
迟早门Early-lateGate是实现符号同步的重要方法 之一,广泛运用于各种数字通信系统中。
本文提出的基于模糊控制的迟早门与传统的迟早门相比,具有同步速 度快、过冲小、相位抖动小等优点。
在其FPGA实现中,采用了离线计算实时查表控制的方法,并针对 实际应用的情况,将控制表转化为逻辑方程,进一步简化了电路。
1迟早门简介一阶闭环平衡双积分型迟早门结构如图1所示。
范文先生网收集整理早门累加器和迟门累加器分别在两个连续的半符号周期内对输入数据的采样值进行累加,即计算前半符号周期和后半符 号周期内接收到的信号的能量,它们与一个减法器共同构成了相位检测器。
为了保证相位检测的有效性,采样时钟的频率必须是符号速率的偶数 倍,一般至少要为8倍。
如果接收到的信号为连续的0或1,那么相位误差 Δe为零;如果接 收到的信号中0、1交替出现,那么相位误差 Δe可能不为零。
误差累加器和比较器构成了一阶低通环路滤波器,相位误差累加值与 一个门限值比较,产生的差值控制本地生成的数据时钟相位。
相位误差累加值的符号决定数据时钟的相位是前移还是后移,每次相 位调整的幅度是固定的,调整的门限值也是固定的。
控制逻辑根据本地生成的数据时钟决定早门累加器、迟门累加器和误 差累加器的工作时序。
若迟早门的采样周期为Ts,数控振荡器的调整幅度为d,则由于迟 早门相位调整造成的接收数据时钟的相位抖动为d· Ts。
I.J.Modern Education and Computer Science, 2012, 7, 24-30Published Online July 2012 in MECS (/)DOI: 10.5815/ijmecs.2012.07.04FPGA Based Pipelined Parallel Architecture forFuzzy Logic ControllerVinod KapseResearch Scholar, Dept. of Electronics & Communication Engg. Jabalpur Engineering College, Jabalpur, IndiaEmail: kapse.vinod@Bhavana JhariaAssociate Professor, Dept. of Electronics & Communication Engg. Jabalpur Engineering College, Jabalpur, IndiaEmail: dr.bhavana.jharia@S. S. ThakurProfessor, Dept. of Mathematics, Jabalpur Engineering College, Jabalpur, IndiaEmail: samajh_singh@Abstract— This paper presents a high-speed VLSI fuzzy inference processor for the real-time applications using trapezoid-shaped membership functions. Analysis shows that the matching degree between two trapezoid-shaped membership functions can be obtained without traversing all the elements in the universal disclosure set of all possible conditions. A FPGA based pipelined parallel VLSI architecture has been proposed to take advantage of this basic idea, implemented on CycloneII-EP2C70F896C8. The controller is capable of processing fuzzified input.The proposed controller is designed for 2-input 1-output with maximum clock rate is 12.96 MHz and 275.33 MHz for 16 and 8 rules respectively. Thus, the inference speed is 0.81 and 34.41 MFLIPS for 16 and 8 rules, respectively.Index Terms—VLSI, FPGA, Pipelined, Inference Processor, Matching Degree.I.I NTRODUCTIONFuzzy inference techniques [1] are becoming an attractive approach to solve control and decision-making problems. This is mainly due to its inherent ability to manage the intuitive and ambiguous behavioral rules given by a human operator to describe a complex system. The application of fuzzy technologies to real-time control problems implies that hardware realizations be adapted to the fuzzy paradigm. Many microelectronics implementations of fuzzy controllers have been proposed recently [2-7]. However, if fuzzy controllers are to be massively adopted in consumer products, they must fulfill some additional characteristics. First, they must be flexible, that is, suitable for adapting their functionality to different applications. This implies the capability to program the knowledge base and select different inference mechanisms. On the other hand, considering fuzzy controllers as integrated circuits, they must be efficient in terms of operational speed.Fuzzy Logic (FL) control system implemented and tested successfully on simple, small, embedded micro-controllers to large, networked, multi-channel PC or workstation-based data acquisition and control systems, but they are not precise to achieve more accurate control such type of controller should be implemented on FPGA which is faster and cost effective.The various fuzzy inference systems are realized by different researcher for different applications. The original digital realization of fuzzy inference processor was performed by Toga and Watanabe [2]. H. Peyravi et al. [6] have proposed reconfigurable inference engine for the analog fuzzy logic controller, based on Mamdani inference technique. J.M. Jou et al. [7], R. d 'Amore [8] and N. E. Evmorfopoulong et al. [9] have proposed different architecture for the fuzzy inference processor. Many variations [1-14] have been proposed to improve the inferencing performance. The speed bottleneck of these fuzzy inference processors lies in the calculation of the matching degree. In order to obtain the matching degree between two membership functions, these fuzzy inference processors need to traverse all the elements in the universal disclosure set. As a result, calculating the matching degree requires very high latency, which limits the overall circuit performance.Some digital hardware fuzzy inference processors [7-8] restrict their inputs to crisp values; in other words, they do not tackle fuzzified inputs. Since calculation of the matching degree requires a crisp value and a membership function, these fuzzy inference processors need not traverse all the elements in the universal disclosure set to obtain the same. The main drawback of these fuzzy inference processors [7-8] is that they do not cover the ignorance of the input measure.Figure 1. Block diagram of the Max-Min CalculatorAsica, Catania and Russo [12] assumed that each membership function is composed of nine segments. Based on this assumption, they used a binary search mechanism to obtain the matching degree between two membership functions. The main drawback of their fuzzy inference processor [13] is that they applied a detection process to extract active rules from the knowledge base. As a result, the inference speed of their fuzzy inference processor depends on the number of active rules. Therefore, their fuzzy inference processor is only suitable for applications that have few active rules.In this paper, it is assumed that each membership function is in trapezoid-shape. The matching degree between two trapezoid-shaped membership functions can be obtained by providing fuzzy input to the controller. Based on this analysis, a pipelined parallel FPGA based hardware is proposed to take advantage of basic idea. The rest of the paper is organized as follows. Section II present the motivation for fast calculation of the matching degree. The architecture of our proposed fuzzy inference processor is described in section III. Comparisons with other hardware architectures are presented in section IV. Finally, some concluding remarks are presented in section V.II.M IN-MAX UNITThe block diagram of the max min calculation is shown in fig.1. This block is used to calculate the degree of membership function. For this design, assuming that the membership grades are discretized into 16 levels which is represented by l=4 bits and it has 64 elements at universal disclosure i.e. e=6 bits. Thus the degree of membership ranges from 0 to 1 is represented as 0000 to 1111, respectively.The max-min block is used to calculate the matching degree of the fuzzy input and antecedent membership functions as shown in fig. 1. Assume that the trapezoidal antecedent membership function is (a1, a2, a3, and a4) and the trapezoidal fuzzified input is (x1, x2, x3, and x4). The following four mutually exclusive conditions are used to calculate the degree of matching between the antecedents and fuzzified input membership functions. The conditions are as follows: 1. If a3 < x2 and x1 < a4: MD is the grade value of the cross-over point ( Fig. 2).2. If x3 < a2 and a1 < x4: MD is the grade value of the cross-over point (Fig. 3).3. If a1=x1, a2=x2, a3=x3, a4=x4: MD = …1‟ (Fig. 4).4. If a4 ≤x1 or x4 ≤a1: MD = …0‟ (Fig. 5).Figure 2. Cross Over PointFigure 3. Cross Over PointFigure 4. Complete MatchingFigure 5. No MatchingThe max-min calculator circuit is consisting of comparator, multiplexers, subtractors, adders, divider and shifter circuit. The comparator circuit is used to differentiate four condition to find matching degree. The inputs to the comparator circuit are a1, a2, a3, a4, x1, x2, x3 and x4, whereas circuit produces two bit output to find out matching degree for four different condition that may occur. According to the result obtained by the comparator circuit, the output of the dedicated max-min calculation hardware is selected. The 00 and 11 output value of comparator circuit indicates that the two membership functions are completely matched or mismatched respectively. The value “01” output of the comparator circuit realizes the equation (1) and “10” realize s equation (2).If (a3 < x2 and x1 < a4) Then()( ) If (x3 < a2 and a1 < x4) Then()( )The proposed fuzzy controller has pipelined parallel architecture with 16 and 8 rules, two inputs and one output variable. The membership degree is divided into 16 levels which is represented by l=4 bits.III.PROPOSED ARCHITECTUREThe fuzzy inference execution can be split into the following three primary steps: fuzzy decoding, inference decision, and defuzzification. The proposed fuzzy decoding is a pipelined architecture is shown in fig. 6. The center of gravity (COG) technique is used for defuzzification process. This can be done using accumulation and division process.Figure 6. The Pipelined ArchitectureA.Fuzzy DecodingThe function of fuzzy decoding unit is to find the weights of rules, including weight0, weight1… weight16, as shown in fig.7. The function of the max-min calculator is split into two phases. Thus, the fuzzy decoding step is also divided into two pipeline stages.Two max-min calculation units operate in parallel to obtain the matching degrees of the two input variables at the same time, as shown in Eqs. (3) and (4).( ( ()())) ( )( ( ()())) ( ) Then, a minimum unit is employed to obtain the weight, as shown in equation (5).() ( ) Note that, at each pipeline stage, a rule will take only two clock cycles. Thus, in order to utilize the fuzzy decoder fully, four rules are processed sequentially during a pipeline stage. In the first pipeline stage, two 4-to-1 multiplexers are used to sequentially pass the rules to max-min calculators; in the second pipeline stage, a 1-to-4 demultiplexer is used to sequentially store the obtained weights. This fuzzy decoder is expandable. To process 16 rules, four fuzzy decoders, operating in parallel are employed. During a pipeline stage, rules R4i (i = 0, 1, 2, 3) are processed in the first and the second cycles, rules R4i+1 (i = 0, 1, 2, 3) are processed in the third and the fourth cycles, rules R4i+2 (i = 0, 1, 2, 3) are processed in the fifth and the sixth cycles, and so on.B.Inference DecisionThe inference decision unit finds degree of membership of the output variable, including O(0), O(1), …, and O(15). Each grade O(m), where m = 0, 1, 2, …, and 15, is determined by means of a maximum of 16 control decisions, which are O0(m), O1(m), …, and O16(m).Simultaneously operating, 16 control decision units are employed. As equation (6) shows, the control decision of a rule O i(m) is obtained by means of the minimum between weight i and C i(m), where m = 0, 1, 2, …, and 16, and i = 0, 1, 2, …, and 16.()(( )) ( )Fig. 8 depicts the control decision unit of a fuzzy rule. The weighti , which is the weight of rule Ri , is calculated in the fuzzy decoding step. Ci is the consequent membership function associated with rule Ri . For computation of Oi (m ), where m = 0, 1, 2, …, and 16, we need to have all 64 elements of . To find all the control decisions within a pipeline stage, four 4-to-1 multiplexers are used. Then, Ci (15), Ci (11), Ci (7), and Ci (3) are sampled on the first cycle, Ci (14), Ci (10), Ci (6), and Ci (2) are sampled on the second cycle, and so on. Consequently, Oi (15), Oi (11), Oi (7), and Oi (3) are obtained on the first cycle, Oi (14), Oi (10), Oi (6), and Oi (2) are obtained on the second cycle, and so on.Four maximum units, i.e., MAX1, MAX2, MAX3, and MAX4, are used to calculate output. The output is calculated using equation (7) is as follows:( ) ( ( ) ( )) ( )Each maximum unit has 64 inputs. In the first cycle, the inputs to MAX1 are ( ) ( ) ( ); the inputs to MAX2 are ( ) ( ) ( ), the inputs to MAX3 are O 0(11), O 1(11), …, and O 15(11); and the inputs to MAX4 are ( ) ( ) ( ). In the second cycle, the inputs to MAX1 are ( ) ( ) ( ) ( ); the inputs to MAX2 are ( ) ( ) ( ) ( );the inputs to MAX3 are ( ) ( ) ( ) ( ); the inputs to MAX4 are ( ) ( ) ( ) ( ); and so on.Figure7. Fuzzy decoder unitFigure 8. Fuzzy control decision unitC.DefuzzificationThe Center of gravity defuzzification method is used to find the final output. It includes two pipeline stages: accumulation and division. For processing the output, four parallel maximum units are used. The numerator N and denominator D is calculated using equation (8) and (9), respectively.∑()∑()∑()∑() ( )∑()∑()∑()∑() ( ) After calculating the value of N and D, the output will be calculated using N/D.PARISONSome high-speed fuzzy inference processors are proposed in [3, 5, 8, 10, 13] and [14] using different approaches such as ASIC, FPGA, DSP and MIPS processor approach.Note that the [10] is a software implementation running on a high-speed DSP, those in [5, 8] and [14] are FPGA implementations, and [13] is an extension of the MIPS processor. Table I shows the comparative study of proposed design with different architectures in terms of resolution , number of inputs and outputs, number of rules and speed in terms mega logic inferences (MFLIPS). Table I compares proposed fuzzy inference processor with above mentioned fuzzy inference processor concludes that it achieves very high performance. It is worth mentioning that [3] and [13] executed their instructions sequentially. Therefore, the works in [3] and [13] are only suitable for applications that have few rules or whose required inference speeds are not high.V.CONCLUSIONIn this paper, a high-speed VLSI fuzzy inference processor for the real-time applications using trapezoid-shaped membership functions has been presented. From the analysis it is clear that the matching degree between two trapezoid-shaped membership functions can be obtained without traversing all the elements in the universal disclosure set of all possible conditions. A pipelined parallel VLSI architecture has been proposed to take advantage of this basic idea.The proposed fuzzy inference processor has been implemented on FPGA CycloneII- EP2C70F896C8. The proposed controller is designed and found maximum clock rate as 12.96 MHz and 275.33 MHz for 16 and 8 rules respectively. Thus, the inference speed is 0.81 and 34.41 MFLIPS for 16 and 8 rules respectively.TABLE I COMPARATIVE STUDY OF DIFFERENT FUZZY CONTROLLERREFERENCES[1]K. Nakamura, N. Sakashita, Y. Nitta, K.Shimomura, and T. Tokuda, “Fuzzy inference andfuzzy inference processor,” IEEE Micro, Vol. 13,1993, pp. 37-48.[2]M. Togai and H. Watanabe, “Expert system on achip: an engine for real-time approximatereasoning ,”IEEE Expert Magazine, Vol. 1, 1986,pp. 55-62.[3]S.H.Huang et al, “High Speed Fuzzy Inferencep rocessor Using Active Rules Identification” JCIS06-Joint conference on Information Sciences, Oct 8-11, 2006, Taiwan.R. J. Dirkman and J.Leonard,68HC11 Microcontroller LaboratoryWorkbook, Prentice Hall, 1996.[4]J.Y. Lai et al, “A High Speed VLSI Fuzzy LogicController with Pipeline Architecture”, Proceedingsof IEEE International Conference on Fuzzy Systems, vol. 3, pp.1054-1057, 2001[5] F. Homburg and R. Palomera-Garcia, “A high-speed scalable and reconfigurable fuzzy controller,”in proceedings of IEEE International Symposium onCircuits and Systems, Vol. 5, 2003, pp. 797-800 [6]H. Peyravi, A. Khoei, and K. Hadidi, “Design of anan alog CMOS fuzzy logic controller chip”, FuzzySets and Systems 132, PP. 254-260, 2002.[7]J. M. Jou and P. Y. Chen, “An adaptive fuzzy logiccontroller: its VLSI architecture and applications,”IEEE Transactions on Very Large Scale Integration(VLSI) Systems, Vol. 8, 2000, pp. 52-60.[8]R. D‟Amore, O. Saotome, and K. H. Kienitz, “Atwo-input, one-output bit-scalable architecture forfuzzy processors,” IEEE Design and Test ofComputers, 2001, pp.56-64.[9]N. E. Evmorfopoulos, and J. N. Avaritsiots, “Anadaptive digital fuzzy architecture for application-specific integrated circuits”, Active and PassiveElec. Comp., Vol. 25, pp. 289-306, 2002.[10] E. Frias-Martinez, “Real-time fuzzy processor on aDSP,” in Proceedings of IEEE InternationalConference on Emerging Technologies andFactory Automation, Vol.1, 2001, pp. 403-408. [11]Sajad A. Loan and Asim M. Murshid,“A NovelFuzzy Inference Processor using Trapezoidal-Shaped Membership Function”Proceedings of theIEEE International Conference on Open Systems(ICOS2011), September 25 - 28, 2011, Langkawi,Malaysia.[12]G. Asica, V. Catania, M. Russo, and L. Vita, “Ruledriven VLSI fuzzy processor,” IEEE Micro, Vol.1996, pp. 62-74.[13]V. Salapura, “A fuzzy RISC processor”, IEEETransactions on Fuzzy Systems, Vol.8, 2000, pp.781-790.[14]Shabiul Islam, Mukter Zaman, Bakri Madon, andMasuri Othman (2008). Designing Fuzzy BasedMobile Robot Controller using VHDL. InternationalJournal of Mathematical Models and Methods inApplied Science, Issue 1, Volume 2, ,p-p 138-142.Vinod Kapse born at Nagpur in India. He received the B.E. degree in Industrial Electronics from Amaravati University, Amaravati , India, in 1998, M. Tech. degree in Electronics Engg. from Nagpur University, Nagpur , India in 2007.In 1999, he joined the Srijan Control Drives in R & D department. In 2000, he joined the Sibar Software Services (India) Ltd. as a Design Engineer. In 2002, he joined as a Lecturer in Department of Electronics & Communication in Guru Ramdas Khalsa Institute of Science & Technology, Jabalpur(M.P.) India. He has been member of IEEE. He is currently a Asst. Professor in Gyan Ganga Institute of Technology & Science,Jabalpur(M.P.) India. His research interest includes VLSI Design, Fuzzy logic, Robotics.Bhavana Jharia is presently working as a Associate professor in Department of Electronics & Communication Engineering, Jabalpur Engineering College, Jabalpur, (M. P.), INDIA. Dr. B. Jharia received B.E. degree from Government Engineering College, Jabalpur in 1987 , M.E. from UOR, Roorkee in 1998 and Ph. D. Degrees from I.I.T. Roorkee in 2008. She has published more than 40 research papers in national, International Journals and supervised 30 B.E. 20 M.E. thesis in the area of VLSI design, Communication etc. She is a member of IEEE, IE (I), CSI, VLSI Society of India, senior member of IACSIT and Life Member of ISTE. She has been the coordinator, National Mission on Education through ICT conducted by I.I.T. Bombay. She is a member of editorial board and reviewer of many International Journals and Conferences. The main interest of her current work includes VLSI Design, Communication, Wireless communication and Fuzzy Logic. S. S. Thakur is presently working as a professor in Department of Applied Mathematics and Coordinator Advanced Computing Centre of Fuzzy Technology, Jabalpur Engineering College, Jabalpur, (M. P.), INDIA. Dr. Thakur received M. Sc. and Ph. D. Degrees in mathematics from Dr. Hari Singh Gour University, Sagar in 1977 and 1982 respectively. He has published more than 160 research papers and supervised sixteen Ph. D. students most in the area of Topology and Fuzzy Topology and Fuzzy Data bases. He has been the organizing secretary of an International conference on “Soft Computing and Intelligent Systems” held in Dec. 2007. He is a member of editorial board and serves as referee of many international Journals. The main foci of his current work includes Intuitionist Fuzzy Topology and applications of Intuitionist Fuzzy Sets in Databases.。