基于StratixⅡEP2S30484C5芯片的乘除法和开方运算算法的实现

时间:2025-04-28  作者:Diven  阅读:0

1、引言

基于StratixⅡEP2S30484C5芯片的乘除法和开方运算算法的实现

在FPGA的开发应用中,大多数EDA软件(后面以altera QuartursII为例)都提供乘除法、开方运算的设计向导,或提供LPM宏函数,但普遍占用资源量大。而在许多信号处理应用中,要求计算精度高、资源敏感而计算时延要求并不高,这时我们需要保证计算正确且资源开销最低的FPGA实现方法,本文给出了实现乘除法、开方运算的FPGA串行实现算法,并与LPM宏函数进行了性价比比较。结果表明,本文给出的各算法计算准确,资源量远小于调用LPM宏函数。

2、算法描述

2.1、乘法

向左移位操作,那么乘积右移一位,相对而言可以认为乘数被放大两倍。可见Booth算法只采用加法、减法和右移操作便可计算补码数据的乘积。对乘数从低位开始判断,根据两个数据位的情况决定进行加法或减法运算,每次将乘积项向右移一位。

图1

实现结构如图1。可见,本算法将乘法转化为串行的加减和移位运算,从而节省了大量逻辑资源。

2.2、除法

除法计算我们采用经典的计算的方式,这种算法的实现思路清晰,实现的结构也很简单。我们首先介绍原码除法的实现。

设:A、B均为无符号数,A=1011,B=0011,求A/B。其计算如下图:

图2

其特点可归纳如下:

(1)、 每次比较余数(被除数)和除数的大小,确定商为1还是0;

(2)、 每做一次减法,保持余数不动,低位由被除数低位补进,再减去右移后的除数。

对于补码除法运算,为了简化中间判断过程,我们可以先将除数和被除数取模,然后按照原码的计算方法求出商和余数,再根据除数和被除数的符号对计算结果进行修正即可。由此可见,有符号除法包含了无符号除法的运算过程,所以我们这里也着重介绍有符号除法的计算过程。设:被除数(x)为56位,除数(y)为28位,考虑所有可能性,则商(q)取56位,余数(r)取28位。具体实现步骤如下:

(1)、56位余数移位寄存器shx=mod(x),28位余数寄存器reg=mod(y),被除数符号flagx=sign(x),除数符号flagy=sign(y), 29位余数移位寄存器shr=0,56位余数移位寄存器shq=0,k=112;

(2)、 若k为奇数, shr左移一位低位补shx最高位, shx左移一位低位补0;

若k为偶数,则 if shrelse shq左移一位低位补1,shr=shr-reg;

(3)、 重复步骤2,直到 ;

(4)、 结果修正(如表2)。

说明:最后需要根据A、D的符号和shQ、shR、regD的值对计算结果进行修正。修正方法如下表。

表2

本算法由于基于经典方式实现,思路清晰,同时全串行操作也很大程度上降低了资源量。

2.3、开方

非冗余算法是经典的开方算法,其基于如下计算:

图3

3、FPGA实现

我们在Altera公司的QuartusⅡ5.1软件环境下使用VHDL语言完成了上述各算法,并在StratixⅡEP2S30484C5芯片中实现。下面给出了各算法的资源消耗情况,并与IP_core作了比较(如表3)。

表3

可以看出本文中提出的算法对二进制数的乘除法以及开方占用资源很少,而且保证了计算精度;IP_core所用时间最短(输出时延可调),但占用逻辑单元随着位宽的增加急剧上升。由

此可见,当实际设计对逻辑单元使用要求不苛刻时,便可以使用IP_core,其设计简单且计算时

延小。若对逻辑单元使用有要求且对计算时延不敏感时,使用串行乘除法和开方是很好的选择。

4、结束语

本文给出了乘除法、开方运算的FPGA串行实现算法,与IP_core方法相比,本文中的算法占用逻辑单元少,但计算周期较长,实际应用中可以考虑采用流水线等改进办法,以进一步缩短计算周期。

猜您喜欢


  4.4 流水灯的设计输入  4.4.1 建立FPGA工程  完成项目需求分析、电路图分析以及方案设计后,接下来可以进行FPGA设计了。如果用户的...
2022-10-13 14:36:00

圆珠笔作为常见的书写工具,应用于多个领域。在教育领域,学生和教师使用圆珠笔进行笔记、作业和考试,方便快捷。在办公环境中,圆珠笔是员工日常工作的必备工具,常用于签...
2010-03-26 00:00:00


还在为查找贴片电阻值而烦恼吗?这款贴片电阻对照表下载软件将成为你的得力助手!它内置丰富的电阻值数据库,涵盖各种常见的贴片电阻封装尺寸和阻值范围。通过简洁直观的界...
2024-11-26 11:29:34


灭火毯是有效的消防工具,具有多项显著优势。使用简单方便,无需专业训练,任何人都可以迅速掌握。只需将灭火毯展开,覆盖在燃烧物体上,即可有效隔绝氧气,迅速扑灭火焰。...
2024-03-15 00:00:00

光敏电阻,又称光电导电阻,是利用光电效应工作的电阻元件,其电阻值会光照强度的变化而变化。应用于自动灯光控制、光线探测器、相机曝光控制等领域。本文将详细介绍光敏电...
2025-04-18 08:30:09


滤毒盒是现代防护装备中不可少的重要组成部分,应用于工业、军事及医疗等领域。根据其功能和使用场景,滤毒盒主要可以分为以下几类:第一,颗粒物滤毒盒。此类滤毒盒主要用...
2009-06-13 00:00:00