您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页ArchitectureFPGA结构详解

ArchitectureFPGA结构详解

来源:好走旅游网


Architecture of FPGA Embedded Multiprocessor Programmable Controller

嵌入式多处理器可编程控制器的FPGA的结构

摘要—本文介绍了在现场可编程门阵列处理器的可编程控制器的设计与实现(FPGA)。建议的解决方案的新颖之处在于它结合了FPGA在实现控制算法,即域迄今使用的两种方法,基于程序的硬件编码,和多个处理器在一个单一的FPGA芯片的应用。该控制器是根据IEC 61131-3编程和运行控制任务并行。性能测试的原型表明,它是能够执行控制程序显着速度比工业可编程逻辑控制器。

关键字—FPGA,工业控制,可编程逻辑器件

因为在坚固性和采用IEC 61131-3语言编程等广泛领域的运用,可编程逻辑控制器(PLC)是工业自动化的基础。一段时间以来,由于结构的灵活性和FPGA的芯片速度,PLC算法的FPGA实现已经成为一个重要的研究领域。专用控制器[ 4 ]或特定的图像处理过滤器就是这种方法的例子。由于PLC的性能标准并不总是满足高度敏感的系统要求,由FPGA所提供程序的并行执行创造了显著的潜力。

在FPGA领域中,控制算法实现各种技术涉及的论文可以分为两类。第一个是一个程序的正式描述转换为一个HDL的编码。例如,在[7]中所示是PLC指令转换到高速集成电路HDL,在[8]和[9]所示是梯形图的转换(LDS)。在[10]中所示的是基于Petri网矩阵模型的敏感逻辑器件的实现。硬件编码程序的快速执行是第一种方法的基本优点。然而,控制概念的变化需要利用三个软件工具,即使用PLC程序编辑器,转换为HDL综合器,和FPGA

综合器。

第二方法假定完整的可编程控制器,或者至少它的重要组成部分是在FPGA中实现。这种基于FPGA的 PLC原型可以通过一个单一的工具编程,不需转换成HDL。这在[11]中所示的是通用FPGA的微型PLC执行梯形图。一些解决方案包括主处理器与协处理器,例如,在[12]中所示的是专门为PLC而设计的精简指令集计算机(RISC)处理器,和加速位操作的布尔处理器。[13]所示的是测试2个基于FPGA的处理器单元的硬件-软件平台,即一个比特和字节(字)的操作。

控制设备制造商也开始对FPGA技术感兴趣。西门子开发的基于FPGA的FM 352-5布尔处理器模块就是这样的一个例子。该模块提高逻辑运算的速度,并可以作为一个较大系统的部分组成或作为一个的控制器运行。它是利用西门子STEP-7 LD或功能块图(FBD)语言和执行程序并行指令编写的。关于FPGA更强大的可编程自动化控制器是由国家仪器公司(NI)提供。CompactRIO平台[ 15 ]包括一个用户可编程的FPGA底盘,带有浮点(FP)处理器的嵌入式控制器与和输入/输出(I/O)模块。CompactRIO程序采用LabVIEW图形化编程工具(NI)。西门子和NI的解决方案接近第一个方法,即在FPGA内PLC程序实现。程序使用一个集成的软件开发,隐式调用FPGA的HDL综合工具。

制造商对多处理器系统的FPGA实现也有更多的兴趣[16]。例如,[17]所示的是一个对称的多线程并行执行的多处理器系统的设计。另一种系统实现了宽带码分多址算法,用于软件定义无线电[ 18 ]。多个非常长的指令字处理器加速了氧饱和度图的计算[ 19 ]。

在本文中,我们提出了一个由相同CPU在一个单一的FPGA芯片中,用IEC 61131-3

语言编程的多处理器控制器。因此,这种方法与上述FPGA 实现PLC第二种方法一致,但通过使用多个CPU,控制程序可分为并行执行的任务,因此速度更快。此外,该控制器集成了根据第一种方法开发的硬件功能模块(HFBs),即在HDL中直接配置,提高速度的模块。一个HFB可能代表连续控制器,过滤器,因此,该解决方案结合了现有的两个方法,即基于程序和硬件编码。这一思想的初步实现在[20]中所示,此处设计了带有一个单处理器的FPGA控制器。在[ 21 ]所示的是使用多处理器执行多个控制任务的思想。然而,在提出一个初步的架构之后,本文着重解决方案的软件方面。

在这里,我们提出了下面新颖方面进一步发展的结果:对于并行执行增强多处理器架构和IEC 61131-3任务同步、HFBs扩展架构,和自定义的FP单元(FPU)。新的硬件,包括改进的访问全局内存,宽32位全局内存总线,对于快速任务同步的直接访问寄存器(DARs),和针对处理器瞬间触发或其他处理器或外部输入的配置寄存器(CRs)。性能改进是通过一系列试验证明,与一些商业用途的PLC比较。本文也描述了一个完整的基于FPGA 原型PLC的多处理器控制器。

这里介绍的FPGA控制器是由控制程序开发者(cpdev)工程工具开发的,以前开发了一段时间[ 22 ]。该工具已被扩展专门为FPGA处理多处理和硬件功能模块。

本文组织如下。第二节解释了目前通用微处理器由CPDev编程可由FPGA代替的概念。第III部分介绍了FPU的架构。第四节提出HFB(硬件功能模块)和CPU集成。第五部分描述了具有可配置数量的CPU多处理器控制器的总体结构。第六节介绍了对于多任务CPDev工具扩展,全局内存的使用,同步机制。第七节介绍了多处理器控制器的原型。第八节介绍了工业PLC与CPUs时间减少的比较,HFBs,硬件改进等性能测试的结果。

(百度翻译)

II CPU结构与概念

基于FPGA可编程控制器的概念最初是由cpdev编程环境[ 22 ]的经营结构的影响。主要思想是根据FPGA cpdev编写的程序在IEC 61131-3语言平台。

cpdev为目标的的工具,最初开发的编程控制器与通用AVR,ARM和x86处理器。类似的环境下支持IEC 61131-3编程包括知名的CoDeSys,ISaGRAF、或Multiprog。就像三,cpdev支持多种平台;然而,它主要是面向资源有限的小型和中等规模的控制器(计算能力、内存)。虽然缺乏商业同行的一些高级功能,一些独特的解决方案,如SysML的建模和单元测试[ 23 ]支持。

cpdev具有一定的工业应用,包括船舶监控[ 24 ]或小型分布式控制系统[ 23 ]。工具的整体结构如图1所示。用结构化文本(ST)的程序或指令表(IL)的文本语言或译圣从FBD、LD、或顺序功能图(SFC)图编译成虚拟机汇编程序(vmasm)通用的可执行代码,并在虚拟机(VM),目标处理器执行不同,例如,CoDeSys,直接生成本地机器码数的CPU类型。vmasm是汇编型语言,任何特定的处理器不相关,但面向多少对IEC 61131-3 [ 25 ]。该软件虚拟机是书面的,因此,它可以运行在不同的硬件平台,从8位微控制器到32 / 位通用处理器。它由通用和平台相关的模块(由控制器制造商编写的后者)。在[ 25 ]的虚拟机模型和架构已经提出。

有这样一个工具,它可能是不足为奇的,在FPGA控制器发展的基本概念是通过实施

FPGA硬件机取代VM。因此,控制器实际上是一个专用的FPGA处理器针对vmasm执行代码。此外,FPGA的实施提供了新的功能,如多与肾综合征出血热,在通用处理器不可用。

专用的32位处理器,它实现了虚拟机指令是控制器的一个重要组成部分。在[ 20 ]中的2个版本的处理器已被调查。一个更好的结果的性能测试已经选择了进一步扩展在这里。

在多处理器控制器中的一个处理器的体系结构如图2所示。并行执行一些内部操作的能力是直接影响处理器性能的重要特征。例如,当连续的参数从程序存储器读取时,可以访问数据存储器,并且在相同周期的32位寄存器中读取和存储操作数。类似地,写一个算术逻辑单元(ALU)的结果是运行在相同的时钟周期为从程序存储器读取下一条指令的代码(类似于流水线处理)。

扩展引入CPU与早期的设计[ 20 ]比较新的多处理器控制器包括通信与其他CPU通过全局内存,以FPU和肾综合征出血热接口,对全局变量的信号量操作的详细说明,并在电路调试的能力。在与[ 21 ],等待指令的任务同步已被添加和说明相关的全球内存通信已被修改和优化。下一个计算机块(见图2)负责维护程序计数器(电脑)的下一个值也被升级,即,修改电脑的指令(跳转)现在执行在一个单一的指令周期。这里应用的机制是类似于在[ 26 ],是相当独特的功能,作为典型的微处理器的特点。

III FPU

FPGA结构定点优化计算。FP算法的实现需要大量的资源;因此,最大时钟频率变低

[ 27 ]。为了克服这个部分,FP算法的高效实现方法进行设计,例如,顺序和流水线除法器和平方根块[ 27 ],对数和指数函数[ 28 ],和一组特定的库[ 29 ]。

在上一节中提到的CPU ALU(见图2)只处理整数。在cpdev工具真的是单精度FP数量的IEEE 7标准。除了基本的操作,如加、减、乘、除法,控制器FPU也执行比较(相等,超过,等),整数舍入和截断FP双向转换,绝对值的测定,标志反转和IEC 61131-3功能(min,max,)。

可接受的权衡资源需求和计算速度之间一直是一个重要的目标而对多处理机控制器的FPU部件设计。作为一个例子,让我们简要地讨论浮点乘法器的设计问题。

两FP数乘法的尾数和指数运算执行加法。FP的乘数的简化结构如图3所示。在右边的归一化块是一个简单的转移登记,有条件地右移尾数相乘的结果。结果是圆形的,使用圆形到最近的模式。舍入需要额外三位A3地块,即确定警卫,圆,和粘性位。

四个版本的乘法器进行了研究。他们在定点乘法器块A3的设计不同,其结构参数对最终实现至关重要的影响,如FPGA和计算速度要求的资源。标准系列的纸和铅笔的乘法算法,以及并行、流水线、快速阵列乘法器或无FPGA嵌入式硬件乘法器,已审查。乘法器版本的性能测试和实施参数评估表明,纸张和铅笔算法是一个很好的妥协之间的速度和资源的要求。因此,此版本已被选定为FPU FP乘数。类似的评价已经在最终实现FPU其他部件进行。

IV HFBS

肾综合征出血热是FPGA控制器的另一个特点。他们可能驱动定制外设和提供访问底层硬件,例如,显示。此外,肾综合征出血热也可作为硬件加速器,以提高计算速度。他们可以实现特定的控制算法,如连续控制,神经网络等,成为FPGA PLC程序直接实现的桥梁(见第一节)。

肾综合征出血热可以是特别有用的时间要求苛刻的应用,如,例如,快速传感器和内置的微机电系统技术执行机构驱动,其响应时间,在某些情况下,小于50 ns。

在这里,HFBs设计的知识产权(IP)芯;因此,他们可以通过设计的控制器集成。对肾综合征出血热与CPU或HFB存取仲裁的方式呈现在图4。PC的应用,其中以肾综合征出血热集成,自动生成Verilog HDL代码块和CPU之间的连接。硬件模块与CPU之间的数据传输专用握手协议也已实施。

V.多处理器可编程控制器

在介绍说,FPGA实现多处理器系统变得越来越重要,[ 16 ]、[ 17 ]、[ 19 ]。在这一部分中,多处理器片上系统架构(MPSoC)实现了FPGA的控制器。它由一些处理器浮点运算,HFBs集成部分和通信模块(CM),系统是可编程控制器,能够同时运行多个任务的控制。每个任务由一个单独的处理器执行。设计目标并没有对多处理器系统的发展做出新的贡献,而是将这些系统应用到可编程控制器的领域中。在这里,控制,技术计算,通信,等等,可以被分配到不同的CPU。此外,关键时间和非时间关键功能可以分离。

我们的多处理器系统结构的一般概念主要是由IEC 61131-3软件模型确定(见第六)。

此外,我们介绍了一些功能来提高处理器间的同步和通信,如等待指令和信号灯。

控制器的简化结构如图5所示。一个CPU的数量(或另一个的话,CPU内核),配备浮点运算描述在第II和III,分别是控制器的基本组成。它还包括一个启动核,是一个简单的微处理器,负责全局变量的初始化。引发是触发电源上或后加载新程序到控制器。只有在初始化后,所有的处理器内核开始执行它们的任务。

在原有建筑of the cpdev VM [ 25 ],the CPU通过磁芯将全球的记忆。as shown in图之前,每个CPU的接口是全局内存中to 32位总线。since the has also its own CPU集成数据存储器,因此,只有当全球memory is used data need to be exchanged普通。这可以显著减少瓶颈。

全局内存地址空间被划分为2个范围以相同的方式访问。较低的范围,即从地址0到配置的值,是保留给我/输出外设。上限范围映射物理同步RAM、双端口RAM块实施,及特殊功能寄存器(SFR),存储器存储典型的全局变量,而SFR,占据空间的最高地址,包括汽车和CRS。无冲突访问的全局存储器和I/O存取仲裁提供块(见图5)。汽车是一个例外,因为读操作可以在任何时间以任何CPU不涉及仲裁。这大大降低了CPU的时间之间的同步和通信。CRS控制触发CPU(如果选择单模式)的CPU或响应于所选择的输入信号的有效边。

仲裁者使用协议类似于令牌授予访问权限。握手是用于CPU核心与仲裁机构之间的数据传输。已审查的仲裁算法。第一个,相对简单,应用于控制器原型的初步版本[ 21 ],但与吞吐量差。在当前版本中,复杂优先级编码器和优化的时钟方案(授予访问减少到一个

时钟周期),大大提高了全球的数据吞吐量。

肾综合征出血热可以以两种方式在控制器的实现。在第一个,每个CPU核心都有一套自己的肾综合征出血热。二假定该实例可以共享CPU。在图5中,HFB实例1,…,m(左上)永久地分配CPU 1。这些模块是不容易的CPU,2,…,n的另一边,HFB实例m + 1,…,q(右上)都是CPU除了CPU 1之间共享。

虽然在IEC软件模型[ 1 ],功能块之间不共享资源(CPU),共享可能在硬件同行的情况下是有用的。例如,每个CPU核心可以访问常用的外设,如显示器、触摸屏等的共享需要仲裁者块提供无冲突访问肾综合征出血热。仲裁者使用类似的握手协议作为全球内存和I/O访问仲裁。图5中的该分离器由多路复用器、地址译码器和具体连接如图4所示。

作为一个评论我们解释,为什么两个接口,即一个全局内存和另一个肾综合征出血热已应用,而不是采用一个标准接口,如处理器局部总线(PLB)用于系统[ 30 ]。答案是:小巴的实施需要一个PLB核心IP块,这通常是供应商的依赖。此外,小巴的功能明显超过需要的控制器。相反,我们的接口是简单的,需要少量的逻辑资源,可以进行优化的具体操作。

厘米图5所示提供数据传输从/到cpdev编程工具。厘米的基本功能是从外部闪存或从个人电脑到程序存储器的每一个处理器核心,实现为双端口块内存加载程序代码。在在线监测和测试期间,还读取和写入全局变量,并提供每个处理器的程序和数据存储器的访问。一些特殊的功能,也可在线调试。

厘米实现RS-232串行接口到PC主机。通信协议适用于英特尔十六进制格式。每个数据记录,配备一个校验和,必须承认由接收器(电脑或厘米模块),以确保可靠的数据传输。

VI 软件结构

FPGA处理器的控制器是cpdev工程环境[ 22 ]程序,[ 25 ]。在这里,我们描述cpdev处理肾综合征出血热,扩展多任务同步。也给出了一些意见,并产生二进制文件。

A. HFBS

一个软件项目是以分层的方式创建的,从处理器内核的数量开始。IEC 61131-3程序组织单元(例),即,程序,功能块和功能,然后创建或收购库。可用的2种类型的功能块,即程序块和硬件块。程序块是在软件中实现,为典型的PLC。硬件模块是用HDL和配置FPGA芯片(见第四)。然而,HFBs仍然必须声明,类似于程序的功能块,而是用一种特殊的编译器指令表示一个硬件模块,例如:

($HARDWARE_BODY_CALL ID : 0002∗ )

该指令表示该类型标识符(ID),对应的CPU接口总线fb_sel图4所示的价值。处理程序中定义的该多个实例,每一个自动给出连续数(以fb_inst图4相关)。基于fb_sel和fb_inst,适当的块被从图4的地址译码器的活性。

肾综合征出血热的实例可以被调用的程序相同的程序块。与同类软件,该实例同时运行在控制器的CPU,即肾综合征出血热可以做他们的工作之间的通话。

B.控制任务

由于该控制器包括一个CPU的数量,它可以被看作是一组单任务控制器(或执行任务的单位)。它可以配置为并行运行一些控制任务,每一个由单独的处理器。例如,快速逻辑控制(LC)可以并行运行较慢的连续控制,通信和人类–人机界面(HMI)。

原来单一的任务cpdev工具[ 22 ]已经扩展到包括多个任务为一个项目。因此,IEC 61131-3软件模型[ 1 ]是这样实现的。配置为控制器本身创建。用户创建一个任务,要给它适当的例。每个任务由单一的CPU核心的执行,对应的IEC资源。用户指定的处理器将执行特定的任务。

该任务执行周期与选定的时间(在控制应用中常见的实时周期任务),如死循环或非周期性实时任务(需求)。非周期任务由专门的布尔变量映射到CRS触发(第五)。如果该变量变为真,任务立即执行。非周期性任务也可以触发由外部输入信号和用于报警程序,启动,关闭,处理人机界面,等。

所有任务共享的全局变量是数据交换的方法。提供全局变量的一致性

计算,任务不直接操作这些变量,但在所谓的过程图像,或者,换句话说,在当地的阴影。在执行的开始时,处理器将全局变量复制到内存中,创建了阴影。只有影子是用于执行任务;因此,全局变量的同时引发了其他的变化不影响计算的CPU。在结束时,更新

的阴影被存储在全局存储器中。无冲突访问全局变量(这意味着两个或两个以上的任务不能读/写特定变量同时)是由硬件仲裁者提供。程序员还必须确保全局变量被正确地使用,例如,通过2个任务编写相同的输出变量可以被视为程序员的错误。

B. 任务同步

根据系统的设计,任务的同步可以是合作或竞争的问题(对于一个共享资源)。多处理器控制器提供机制来处理这两种情况。

在并行编程的常见方法是实现一个服务器的任务,它执行的其他任务(客户端)请求的计算。要处理这样的场景,控制器包括服务器和客户端使用的特殊等待指令。在执行等待时,服务器任务进入等待状态等待客户端请求的请求。一个客户端可以触发服务器并继续执行,以互补的等待在服务器结果是必要的点。下面的代码使用可变服务器在特定时间同步客户端(左)和服务器任务。

一些对肾综合征出血热控制外设可以创建并行环境下的冲突。冲突避免这样的块分配特定的CPU或HFB访问仲裁器(见图5)。第二方案,实现对控制器的计算基于任务同步与互斥信号量的程序。其实,解决方案适用于IEC 61131-3的第一个版本定义的双态信号块特殊的延伸。在这里,一个信号量是一个全球性的整数变量的访问任务的锁定和解锁功

能,专用CPU指令执行。解锁的增量信号量值,而将它锁。当该值为零,锁定任务暂停至另一个任务解锁信号。检查(无需等待一个信号量)是否解锁,使用指令trylock。

D.程序编译与执行

阶段的IEC程序翻译成可执行的形式已经在图1所示。在编译过程中,代码是vmasm POU首先转换成助记符然后组装成二进制机器码[ 22 ]。vmasm指令处理IEC 61131-3数据类型:布尔,字节,int,字,真的,time_of_day,date_and_time,及其他。机器代码包括算术、布尔和位操作,比较和跳[ 25 ]。此外,处理阵列和结构的操作是可用的。

机器指令的执行时间由一个时钟周期和实际时钟频率决定。因为它们在程序运行之前就知道,一个可以在一定程度上估计执行将要多长时间。遵循这一思路,cpdev环境得到了扩展,估计机制,模拟程序的执行时间信息;收集每个指令;并提出了最大、最小、平均。因此,程序员可以检查代码是否满足时间周期要求。

在FPGA控制器的情况下,该cpdev编译器创建一个单独的二进制文件的每一项任务,即每个CPU核心。此外,一个全局变量的初始化代码被创建,因此,可执行代码的一般结构看起来像在图6中.

cpdev工具涉及的组件称为cpsim加载、运行,并利用控制器模块的编译软件测试厘米(见第五)。在在线测试(调试),全局和局部任务变量进行监测。每个任务的实际执行时间的测量,并给出了1 -的分辨率。所选的CPU的当前状态可以显示,即,系统时钟周期计数器循环verrun旗帜,违反数组的大小。cpsim还提供了基本的调试工具,硬件断点

停止机器在特定代码行的检查变量的值的形式。

VII 控制器原型

多处理器的可编程控制器设计了一套IP核在Verilog HDL描述。这个

描述不依赖于特定的FPGA家庭或厂商。因此,控制器可以在任何FPGA芯片的逻辑资源实现足够的量。用于验证功能性能和性能测试的原型硬件平台的描述如下。

虽然控制器HDL描述不是面向任何FPGA的家庭,我们选择了一个受欢迎的和相对便宜,家庭从Xilinx Spartan-6作为一个必不可少的组成部分。原型是在图7。它由七个模块组成,即数字输出(1),两个模块的数字输入(2,3),(4)数字输出,模拟输出,模拟量输入(5)、(6)、主要模块与FPGA芯片(7)。

主要模块包括Xilinx的Spartan 6 FPGA xc6slx100-3fgg676。模拟输入/输出模块使用专用的模拟器件集成电路。所有的I / O模块与主模块电流分离(通过光学和数字隔离器)的手段。

FPGA的芯片已经实现了16个CPU核心足够的逻辑资源。最大可达到的时钟频率稍微超过40兆赫。

这是从图7的FPGA控制器样机组装比较简单。整体成本也相当低,低于450美元。

VIII 性能测试结果

FPGA的原型控制器性能(40 MHz)已与传统PLC,即进行对比评价,GE Fanuc VersaMax和西门子的内部,并与软PLC的CPU cp6607 ixp430倍福(533兆赫)。试验涉及三个算法,即逻辑控制(LC),比例积分微分(PID)––,和FPGA原型控制器精确输出性能(40 MHz)已与传统PLC,即进行对比评价,GE Fanuc VersaMax和西门子的内部,并与软PLC cp6607从ixp430 CPU系列(533兆赫)。测试涉及三种算法,即逻辑控制(LC),比例-积分-微分(PID),和清脆的输出。

试验结果显示在表1中,每一个的三个算法,计算时间和速度的因素。速度因素表明多少次FPGA控制器与单CPU(速度系数1)比别人快。可见,FPGA控制器比GE Fanuc快得多(38,417,和312倍的LC,PID,和p1-ts,分别)和西门子(29,22,和内部的20倍)。在LC算法的情况下,FPGA控制器比BECKHOFF软PLC明显减慢(11.5次–0.08速度的因素),但它是速度稍快的其他两个算法。考虑到软PLC的时钟的13倍,比FPGA的控制器更快(533兆赫和40兆赫),后者仍具有合理的性能,特别是在FP计算案例。值得一提的是,FPGA和西门子PLC控制器执行控制程序的逻辑控制算法的速度比。这是相反的另两个PLC因此,FP的计算似乎是弱侧的Beckhoff和FANUC PLC。

计算时间可以减少,通过使用更多的处理器内核。两种情况都是可能的:1)并行计算在特定的算法;或2)同时运行多个任务的控制。第一个案例是采用两,四在p1-ts算法的实现,以及八的CPU计算并行Kolmogorov–Gabor多项式的特定部分,以及PID算法两个CPU只。结果是在第二表。可见,合理的时间减少了p1-ts模糊算法。然而,减少的数量是不是一个线性函数的CPU,由于p1-ts算法序列的一部分,不能并行处理。总的来说,时间减少的只能是更苛刻的计算实现,当单CPU的计算时间是合理的时间比同步和数据传输所需的时间CPU。这不是很简单的立法的情况下。此外,没有复杂的PID算法,两

个CPU只提供适度的减少。

当两个或多个任务同时执行时,多个处理器内核的使用可能是特别有用的。考虑,例如,当控制程序,实现了两种算法从表,即情况下,LC和模糊逻辑p1-ts.承担此外,液晶响应时间必须如果程序运行作为一个单一的任务不到50μS.,总计算时间是相应的算法,即时代和,11.5 + 117.3 = 128.8μ这里;因此,它不满足50的要求,μ。然而,使用两个CPU,每个运行它自己的周期,给出了11.5μ的LC周期(117.3μ的p1-ts);因此,满足要.

类似的概念可以缩短程序的执行,涉及控制回路的几个控制回路。在四发布会的情况下,单CPU控制器会计算在4×5.5 = 22μ的输出(见表)。采用四个CPU,每个PID可以执行每5.5Μs

如果周期时间由多个CPU还不足够短,肾综合征出血热成为一种解决方案。表三显示测试时间和速度的因素是用于肾综合征出血热。速度系数表明多少次控制器HFB比没有它。对于LC算法计算的结果,该在一个时钟周期可主频为240 MHz(Spartan 6;回想HFBs时钟可以比CPU更高的频率)。现在计算时间(0.0042μS)是2738倍小于控制器没有HFB。这也是238次小于倍福PLC(1μs-see表)。PID HFB由四浮点乘法器和三个加法器。这需要36个时钟周期,因为只有少数的算法可以被并行化。因此,对PID算法实现的HFB(主频为82.6 MHz)比对应的软件的速度只有12倍。p1-ts HFB的结构非常类似于[ 32 ](递归算法),需要932个时钟周期(10.3μ的90 MHz)。可以预期惊人的加速度是由逻辑控制算法的硬件实现提供了直接、FPGA并行逻辑结构可以充分利用。加速度不高的运算(PID和p1-ts算法)。它也可以被观察到的P1的计算时间TS算法八CPU

的HFB较近(28.7μS与10.3μS)。这是递归的结果,因此,该算法的硬件实。

这里介绍的FPGA原型控制器也可与基于FPGA的FM 352-5布尔处理器从西门子相比(见第一节)。根据规范[ 14 ],FM的执行时间为1μ和不依赖于数量的LD / FBD组件。随着LC算法软件实现FPGA控制器慢11.5倍(第五列在表1)比FM。然而,当LC实现为HFB(二列在表三),它是1 / 0.0042 = 238倍的速度比FM。然而,在FM 352-5 STEP-7编程是重要的优势,而LC HFB的实施需要明确使用FPGA合成工具

FPGA的控制器性能是时钟频率成正比。如果是在一个更快的FPGA芯片实现(Spartan-6并不代表FPGA最新技术),在速度的因素会相应增加。因此,所提出的比较是相当保守的。值得一提的是,FPGA控制器没有周期抖动,而在传统的PLC的周期波动在接近规定值一定范围内。FPGA控制器的执行周期真的不变,可以在实时应用中是非常重要的。

由于全球内存吞吐量的增加一直是设计目标之一,因此,先前提出的架构是渐进的初步版本的改进的结果。这些改进的评估简要地描述了以下,提供一些洞察发展过程。改进了以下内容:a-cpu Globalmemory通信指令的优化和采用DARS和32位的数据总线,b-arbitration算法改变,c-32-bit全局内存数据总线的介绍,d-dars应用,e-wait指令添加。为评估,一种p1-ts算法,分布在八个CPU之间的数据传输和重组密集的CPU已经使用。表四给出4000次迭代的改进为五A到E的测试程序的执行时间,实现单独或与他人联合累积。成绩单被引用到不同的影响类型(没有其他的改进将是不可能的),或者裁判的累积影响型。文献表明初级版本。

可见,当时的最高的减少是由D(29.4%,DARS),其次为E(24.4%,等),B(19.1%,仲裁),C(18.1%,32位全局内存总线)。整体的累积减少的所有改进的因素是72.7%,这意味着,控制器的最终版本是3.7倍的速度比初步。

IX 结论与展望

它已经表明,FPGA能够成为一个平台,建立一个低成本的,单片机,PLC和多处理器提供高执行速度,多和IEC 61131-3编程,即相似的特征为大的工业PLC。速度可提高通过控制程序分布在多个CPU或通过实施为HFB。与现有的基于FPGA的控制平台,如西门子FM 352-5和NI的CompactRIO,该控制器原型可以在IEC语言编程;因此,对于标准的应用,它不需要FPGA合成工具。然而,为了获得最高的执行速度,需要的肾综合征出血热。一个可以描述他们直接在HDL甚至产生从一个C / C++规范使用Xilinx的HLS(高级合成)技术。然而,一个准备使用HFBs涉及典型的控制和信号处理算法会有很大的帮助图书馆发展。

该架构是灵活的小仙女,FPGA PLC的应用(例如,标志尺寸),以及更大的控制器。由于FPGA的重构能力,也相对容易定制(CPU数量和肾综合征出血热)和升级(例如,远程或SD卡)。HDL描述可以利用特定的嵌入式系统的硬件特性优化目标FPGA。另一种方法可能涉及知识产权的核心领域。多处理器的控制器IP核的可用于定制的自动化系统集成实施。性能的控制器和精确的时间似乎足够的实时工业控制,运输和机器人等应用领域。

测试还透露了一些薄弱点的原型。目前的CPU指令列表,最初开发的软件的虚拟机,并没有为FPGA实现高性能优化。因此,一个新的RISC CPU正在开发中,数据流的类型

从三变化到一个地址和不同的指令集支持产品布尔和快速计算。初步设计考虑和仿真结果指出,新的处理器应该是6到7倍的速度比当前版本的逻辑控制算法。它是希望,新的指令集也将减少逻辑资源的要求(目前比较高),并增加最高的时钟频率。虽然通信之间的CPU已经明显改善,另一个CPU连接的拓扑结构,如网格(网格),也可考虑而不是全局存储器的通信方案。在Xilinx Zynq [ 33 ]应用软硬件体系结构是研究的另一个有趣的地区。额外的加速度可能由Neon协处理器和加速同调端口之间的数据交换处理器和FPGA的部分。

感谢

作者要感谢主编,教授C. cecati,和其宝贵的意见,增强了本文的匿名审稿人的质量。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务