页面加载中,请稍候
来源:现代电子技术发布时间:2012-04-23478浏览
询问 AI摘要:在级数的基础上,设计一种基于FPGA的多项式运算器。利用该运算器可以在数字系统设计中更好地处理和应用各种函数。首先实现基于FPGA的多项式运算器,利用这个基本单元,进而实现了比较复杂的函数。经过验证,该运算器结构简单,运算实时性和准确性都能很好地满足需要,最后对数据进行了误差分析。
关键词:多项式;运算器;FPGA;电路设计
0 引言
传统的DSP都基于CPU结构,是一种基于特定指令系统的处理器,但随着运算时钟越来越接近电子器件可以接受的极限,这种DSP的处理能力也在接近它的极限;另一方面随着EDA技术的发展,尤其像FPGA和CPLD器件的成熟和应用,可以通过直接设计电路来实现并行的运算,这样运算的效率从本质上得到了提高,而且目前能实时地实现非常复杂的运算,所以基于FPGA的运算器被提上议事日程,并受到越来越多的重视。一种便于用电路实现而且通用性强的算法,可以帮助工程师简单高效地完成一个能在FPGA上工作的运算器的设计。
1 数字电路实现运算的优缺点
初步的FPGA设计是用硬件描述语言完成器件逻辑功能的描述,一个好的设计必须考虑数字电路的特点。CPU是一个典型的数字电路,因为其只能做加法运算,所以需要通过程序将各种运算都转换为加法来完成。传统的“数值分析”正是在这种程序设计的基础上形成的,不但复杂而且效率不高,不能实现真正的实时运算,而FPGA本身除了能做加法运算外,做无符号数的减法和乘法也很方便。目前两大FPGA生产商推出的集成开发软件中,都有集成的加、减法和乘法的IP核,运算效率非常高,对于无符号数的运算一般只要1个时钟,甚至是不需要时钟的组合逻辑电路,文献中也有这些运算器的详细介绍。但是直接做除法则不同,虽然也有除法IP核,但是需要许多个时钟,而且占用逻辑资源很多,无论设计还是应用都不方便。电路运算的另一个缺点是表示有符号数和小数,以及做有符号小数间的运算也很麻烦。所以在设计DSP时总是希望能够找到一种方法尽量的趋易避难。
2 麦克劳林级数和多项式
运算器的作用是对数据进行各种运算,这个过程可以用一个函数来表示:y=f(x)。任何一个在零附近连续的函数都可以展开为麦克劳林级数:
[!--empirenews.page--]
将设计下载到芯片XC2VP30,并用Chipscope进行片内逻辑分析,外部时钟和采样时钟都是100 MHz,得到电路的输入/输出曲线(见图2)。图2中虚线是输入变量x,实线是输出变量y。纵坐标的数值显示的是Y=y×28的值,即显示时没有考虑小数点。
从图2中可以看到,输出有大约3~4个时钟的延时,对比CPU执行1条指令就需要3~4个时钟,运算效率已经很高,而且这里使用的逻辑资源很少。
4 实验结果分析
多项式拟合函数会有误差。这里只分析运算器相对多项式的误差。因为数据位宽有限,会出现截断误差。设计实例采用8位小数位,最大表示误差是±2-9。由于常数也有数据截断,实际运算误差会更大。
减小误差的惟一办法是增加数据的位数。在本例中将数据上传电脑并测算,最大误差在x=π/2处,绝对值是0.0063,相对值是0.63%。对于一些特殊的输入如x=0或x=0.5等,运算没有误差。
5 结语
通信系统的仿真与硬件实现涉及到很多复杂的函数,直接实现会造成资源浪费,而且实现难度比较大。采用FPGA实现多项式运算,实现起来比较简单,为之后实现复杂函数提供了基础,大大提高了运算速度和实现效率,在通信系统的硬件实现上有很广阔的应用前景。
新闻来源:现代电子技术,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!
2026-07-15