FPGA数学基础分析、与CORDIC算法计算方式对比
eeskill 2023-11-28

FPGA的最大优势之一是您能够利用其嵌入式DSP模块解决最棘手的数学传递函数。多项式近似法就是此方面的良方。


由于其灵活性与高性能,FPGA已经在众多需要计算复杂数学题或传递函数的工业、科研、军事及其它应用中找到用武之地。苛刻的精度要求与计算时延在更关键的应用中并不少见。


在采用FPGA实现数学函数时,工程师一般选择定点数学(参见:赛灵思中国通讯第80期的《FPGA数学基础》, docs/xcell80/44?e=2232228/2002872 )。另外,您还可以采用CORDIC等许多算法计算超越函数(参见:赛灵思中国通讯第79期的《如何在FPGA中运用CORDIC算法》, publicaTIons/archives/xcel l/Xcell79.pdf )。


不过,在遇到极为复杂的数学函数时,与在FPGA之中实现精确需求函数相比,还有更高效的方法进行处理。为了理解这些变通方法 – 尤其是其中的多项式近似法,我们首先需要定义相关问题。

设置问题

FPGA中负责监控铂电阻温度计(PRT)并把PRT电阻转换成温度的复杂数学传递函数就是这样一个例子。这种转换一般采用Callendar-Van Dusen方程实现。通过以下该方程的简化形式,可以确定温度介于0 ℃~660 ℃之间。

式中,R0 为0 ℃时的电阻,a 与b 是PRT的系数,而t 则是温度。


现实中,我们希望从电阻转换到温度。为此,我们需要调整该方程,确保得出的结果是给定电阻下的温度。大多数采用PRT的系统都会设计电子装置、采用电子电路测量PRT的电阻,然后利用FPGA、通过调整后的下式计算温度。


在FPGA中实现此方程即使是经验丰富的FPGA工程师也会望而却步。参考温度绘制所获得的电阻可以获得图1所示图形。从图中可以清晰看出响应的非线性。



直接在FPGA中实现调整后的传递函数会在实际所需设计工作量以及验证方面面临着巨大挑战(确保精度以及跨边界与极端条件函数)。许多工程师会想方设法实现函数,以便减少设计与验证工作量,从而控制项目进度。一个可行的方法是采用查找表保存曲线中的一系列点,同时提供LUT所含点之间的线性插值。


根据相关精度要求和保存在查找表中的元素数量,这种方法有可能满足需求。但是,您仍然需要在设计中包含线性插值函数。此函数在数学上非常复杂,而且往往包含一个非二次幂除法,其会进一步增加复杂性。

利用FPGA资源

相反,您还可以利用另一种方法实现此类传递函数,那就是利用FPGA的本身特性。赛灵思 Spartan-6与7系列ArTIx、Kintex与Virtex等新型FPGA不仅仅只包含传统查找表和触发器,还具有内置DSP Slice、Block RAM、分布式RAM、PCIe®等众多高级IP硬核以及以太网端点、高速串行链路等。


由于其提供的48位累加器,工程师通常把DSP Slice称为DSP48s。不过,这些Slice还提供25 x 18位宽乘法器、加/减功能以及众多其它功能。您可以利用这些内部RAM结构和DSP Slice更轻松实现传递函数。

多项式近似法

利用FPGA具有丰富DSP与RAM的结构的一种方法是多项式近似法。为了使用此方法,您必须首先绘出数学函数图,在MATLAB或Excel等数学程序中涵盖输入值范围。然后您可以在相关数据集中添加多项式趋势线,然后可以在FPGA中实现该趋势线的等式,以取代复杂数学函数,只要趋势线等式符合精度要求。


如果一个多项式方程无法针对整个传递函数输入范围提供足够精度,则可以添加更多方程。只要生成一系列在相关输入范围使用的多项式常数,您就能够继续依赖此方法。


能够添加多项式趋势线的数学程序大部分都允许您选择阶次或多项式项的数量。阶次越高,则配合越准确——但是您需要在FPGA中实现更多的项。在针对传递函数示例实施此过程时,我们是采用Microsoft Excel,我们已经获得了图2所示趋势线与等式。本例中采用4次多项式方程。


在获得了适合我们希望实现的传递函数的多项式之后,我们可以采用相同分析工具(在本例中为Excel)针对原始传递函数仔细检查精度。在所述监控温度的例子中,最终测量精度可能会是+/-1C,这并非苛刻的精度要求。尽管如此,根据测量范围和您实现的传递函数,可能证实仍然很难仅用一个多项式方程实现。我们该如何解决这个问题呢?

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • EDA
  • 仿真
  • CAD
  • 芯片
  • 变容二极管的应用和仿真,用Multisim软件轻松实现

    仿真前仿真中XSC1XSC2XSC3波特图变容二极管的结电容,不仅与PN结的结构与加工工艺有关,还与所加的反向

    前天
  • 如何使步进电机效率最大化?

    电机是常用机械装置,很多朋友都见过电机。但是问题来了,你真的会有效使用电机吗?为增进大家对电机的认识,本文将探讨如何使步进电机的效率最大化。如果你对电机、步进电机具有兴趣,不妨和小编一起继续往下阅读哦...

    02-21
  • 以太网接入中存在哪些技术问题?

    以太网是应用最普遍的局域网技术,可以说,以太网是现实世界中最普遍的一种计算机网络。为增进大家对以太网的认识,本文将对以太网介入中的主要技术问题予以介绍。如果你对以太网具有兴趣,不妨和小编一起继续往下...

    02-21
  • 芯片的IP核是什么?

    芯片的重要性不言而喻,这也是各国都在大力发展芯片的原因之一。为增进大家对芯片的认识,本文将对芯片的IP核,以及芯片的市场需求予以介绍。如果你对芯片以及芯片的相关内容具有兴趣,不妨和小编一起继续往下阅读...

    02-21
  • 内存故障的惊险故事!12大解决方案

    内存对于电脑的重要性不言而喻,缺少内存,电脑将无法正常运转。如果内存发生故障,笔记本将同样产生一些令人疑惑的错误。本文中,小编将对内存可能出现的故障以及相应的解决措施予以介绍。如果你对内存具有兴趣,...

    02-21
  • 如何用MATLAB进行电路仿真

    本文演示如何用MATLAB进行电路仿真,测量RLC电路的电压。

    02-20
  • 一文教你QC、IQC、IPQC、QA有什么区别

    QC、IQC、IPQC、QA到底有什么区别,傻傻分不清,看完这篇你就懂了。

    02-20
  • 74ls283原理及应用

    1、74ls283概述    74ls283这类全加法器执行两个4位二进制数的加法。为每一位提供sum()输出,从第4位获得合成进位(C4)。这些加法器的特点是全内部向前看所有四个位。这为系统设计人员提供了部分的经济前瞻性性能,并...

    01-30
  • 什么是 LM386 芯片?LM386 引脚图及功能详解

        今天是 LM386 音频放大电路,主要是以下几个方面:1、什么是 LM386芯片?2、LM386 引脚图及功能3、LM386 CAD 模型4、LM386 的主要性能参数5、LM386 的工作原理6、LM386 音频放大电路图讲解7、LM386 功放电路8、L...

    01-29
  • SN74HC245系列芯片说明及逻辑电路图

    SN74HC245系列八进制总线收发器被设计用于数据总线之间的异步双向通信。它的控制功能的实现将外部时序要求最小化。SN74HC245系列芯片说明及逻辑电路图:SN74HC245系列允许数据传输从A总线到B总线或从B总线到A总线,...

    01-29
下载排行榜
更多
评测报告
更多
广告