首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

论工业控制系统的FPGA设计方法(4)-基于FPGA的控制器设计原则

论工业控制系统的FPGA设计方法(4)-基于FPGA的控制器设计原则

世界杯开幕了,大家在赏球的同时,也别忘了我们的“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛啊:祝我们的大赛越来越红火!
上次博文大概介绍了整个控制系统的建模与设计。本次主要就基于FPGA的控制器设计原则进行总体分析。同时介绍了一种国外设计师采用较多A3原则,希望能对大家有帮助。
FPGA技术允许在灵活可编程的环境下开发特定的硬件结构,这一独特的特性设计相比使用微处理器时增加了更多的自由度。然而,在许多场合下,这种结构的开发过于依赖直觉,并不适合实现越来越复杂的算法。所以,为了利用FPGA的优点和它们强大的CAD工具,设计者需要遵循一些有效的设计法则。这些设计法则主要有3个基本原则:控制算法的改进、模块化以及将要被实现的算法与实际硬件间的适配。接下来我们详细讨论这三个原则。
1. 算法的改进
算法的改进是使用FPGA进行设计时的必要步骤。可以使用FPGA进行浮点算术的运算,但是不能做到对资源的优化利用。为了减小开销,制造商要求最终用户设计定点算法的控制器。鉴于这种背景,需要在控制器性能与硬件实现的复杂度之间做出平衡,即讲究成本效率的结构。这促成了两种研究方向:
1) 计算的简化
在早期的FPGA设计中,迫于芯片密度的限制,人们提出了许多简化的方案来避免开销大的运算(如乘法器)。使用最为广泛一个例子是CORDIC 算法,即数字计算机旋转变换(coordinate rotation digital computer)的缩写。CORDIC 是一个非常高效的算法,它只使用加法器/减法器和移位操作来实现一系列复杂的运算,如三角函数、双曲函数、线性与对数函数等。另一个有价值的例子是分布式运算,它可以对LUT进行有效的扩展应用,在基于LUT结构的FPGA中实现DSP功能非常有效。
为了说明这些设计规则,在此举一个简单的例子:它就是三相电气系统中广为人知的坐标变换,也称Park变换,即把三相(a, b, c)坐标系下实际的三相电量,通过坐标变换变到以任意角度θ同步选择的参考坐标系下,而变换前后的瞬时功率保持恒定。用数学公式表示即
(1)
假设被研究的三相系统平衡(不含零序分量),则式(1)可以被简化为
(2)
从式(1)到式(2),这已经可以看做是一种化简。 接下来将式(2)转换为n位的定点格式,而这种格式必须保证要求的计算精度和合理的硬件资源占用,即
(3)
其中从浮点转换到n位定点的转换式为
(4)
预定标因子 Qx 需要进行仔细的选择,以避免运算过程中的溢出,并保持合理的动态范围。此外,在转换过程中,设计者可以有多种方式来选择预定标因子。在上面的例子中,平方根因子就被化简掉了。此外可以注意到式(3)中的规律,即所有的Aij(θ) 都是正弦函数,所有的点乘都具有相同的结构。这一特点使得设计者在化简算法时具有更多的选择性;更详细的讲述将放在本博文的第3部分——A3算法中。
2) 寻找优化的定点格式:
前面已经提到,在使用FPGA进行设计时,需要在控制变量的定点格式大小和控制系统的要求之间寻找一个最佳的折衷方案。为了达到这个目的,在控制系统中常使用一种称为L1(l1)基准的方法来计算每一个控制器变量需要的位数(可以参考Z. Salcic, C. Jiaying, and N. Sing Kiong“A floating-point FPGA-based self-tuning regulator,” IEEE Trans. Ind. Electron., vol. 53, no. 2,pp. 693–704, Apr. 2006.)。这种方法在基于FPGA实现的磁轴承控制系统中得到了成功应用。
为了在保证足够的计算精度前提下使用定点数表示所有的数值,人们往往更希望使用能够自动确定定点位数的方法。首先,需要借助区间运算理论(interval arithmetic theory)对控制算法中所有数据的动态范围进行预估,并确定所需要的最小位数,然后在此基础上分析计算精度。在数字信号处理领域,最常用的评价准则是信号-量化噪声比(SQNR)。
B. 基于重用的设计方法
在复杂系统设计中,常使用模块化的思想来缩短设计周期。这种设计方法基于层次结构与规律的概念。层次结构用来把一个较大的、复杂的系统分解为子系统,即更容易管理的子模块。规律性的目标是将已经设计出来的模块进行最大化的重用。
随着CAD工具的进展,开发周期的改进更多的依赖于设计者整理与重用已经存在的模块的能力,而不是对他所使用的CAD工具的熟练使用。如今,电路的设计与制造厂商提出了可以免费或付费使用的、已经设计好的模块,也叫做知识产权(IP)模块。这就是基于IP核重用的设计方法。
模块可以被定义为库的基本原件,并使得人们无需再重新设计而直接使用。这些模块的调用分布在各个抽象层次的设计流程中,与传统的DSP开发中调用软件宏类似。图1给出了两种对IP库重用的示例,包括行为级和RTL级。

图1 复用与IP模块库
C. A3 方法
为了保证设计效率,模块化的设计方法必须基于对可信赖模块的重用。但是,在许多场合下,需要的模块并不存在,必须再进行专门设计。因此,考虑各种约束的有效的设计方法是至关重要的。
A3方法“Adequation(法语:一致,相符)”在FPGA设计中的目标是,找到一种优化的硬件结构来实现所期待的算法,同时满足时序/面积约束。它使用图形模型同时展示所提出的设计结构中算法的潜在并行性与实际可利用的并行性。下面以第一节中的(a, b, c) 到 (d, q)的坐标变换为例来图示这种设计方法。
1) 数据流图 (DFG)
在完成算法的简化之后,算法的数据流图可由式(3)推导得到。图2给出了坐标变换的数据流图。每一个结点代表一个运算,每一条竖线代表一个操作数。

图2 坐标变换的数据流
2) A3优化结构的设计
图2所示数据流图中,具有重复性的模式有助于使用A3方法进行进一步的因子分解,以满足硬件约束的要求。这导致了多种可能的数据通路。接下来,运算被运算符代替;实际上,每个运算符都包含一个消耗硬件资源的数据通路。在坐标变换算法的例子中,四个不同的ALU数据通路可以由图2推导出来,如图3所示。

图3 坐标变换的ALU数据通道
为了简化说明,只有算法的变换和计算部分被图示;实际上,A3方法还可以用于正弦函数的产生。然后,考虑各种性能指标,如延时、速度、面积等,对不同的数据通路进行比较,以便在所有的约束中取得最好的折衷。为了更好的比较,使用VHDL对各数据通路进行综合并实现到同一块FPGA上(Xilinx SPARTAN-2 XC2S100 PQ208),比较的结果如图4所示。对比12位、14位和16位的方案,ALU-1消耗硬件资源最多,但同时其速度也最快;另一方面,ALU-4的数据通路速度最慢,但是它代表了硬件资源消耗的最优方案(仅为ALU的1/3)。ALU-2和ALU-3代表了电路速度与资源消耗之间的折衷。因此,设计者可以根据硬件特性与期待的控制性能综合选择一种最合适的解决方案。

图4 不同数据通路的性能比较

附件大小Shi_1.gif4.65 KBShi_2.gif2.89 KBShi_3.gif2.82 KBShi_4.gif1.33 KBTu_1_Fu_Yong_Yu_IPMo_Kuai_Ku_.jpg30.73 KBTu_2_Zuo_Biao_Bian_Huan_De_Shu_Ju_Liu_.jpg32.05 KBTu_3_Zuo_Biao_Bian_Huan_De_ALUShu_Ju_Tong_Dao_.JPG71.35 KBTu_4_Bu_Tong_Shu_Ju_Tong_Lu_De_Xing_Neng_Bi_Jiao_.jpg40.51 KB
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表