- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
?
?
基于FPGA的低功耗高速除法器设计
?
?
【摘要】本文介绍了一种使用可编程逻辑器件FPGA和Verilog语言实现的32位低功耗高速除法器的设计。该除法器可以实现有符号数运算和无符号数运算,主要操作有移位、比较和减法操作。设计中采用了一种新的基-16算法,该算法大幅度减少了除法运算过程中的移位操作,从而提高了除法器的运算速度。在该设计中加入了门控时钟,从而大幅度减少了动态功耗。仿真和综合结果表明其功能的正确性,运行频率最高可达530.772MHz,功耗降低了55.98%。
【关键词】低功耗;高速除法器;基-16算法;门控时钟
1.引言
除法器是是微处理器的核心部件之一,也是数字信号处理领域的基本单元。同时,除法运算也是四种算术运算中最复杂的运算单元,它的性能好坏直接关系到整个电路的性能。用FPGA实现的除法器能够以并行运算的工作方式,高速可靠的运行,并可以以IP核的形式被随时调用,所以在性能和应用的灵活性上都有很大优势。本设计主要从速度和功耗两个方面对除法器进行了优化设计。在速度方面通过改进算法,减少加法、乘法器的运用来改善速度。在功耗方面通过分析功耗产生的原因对其进行改善,有针对性的加入门控时钟等方法,最终使电路功耗大幅度降低。
2.高速除法器设计
2.1高速基-16除法器的算法
除法器算法主要分为Non-restoring算法(不恢复余数算法)和Restoring算法(恢复余数算法)。Non-restoring算法因为具有步长固定,控制简单,逻辑鲜明的特点,因而更多的被采用在硬件设计中。在该算法中,被除数若为负值则要先对其求补码,变为正值再进行运算。在运算结束后对结果进行调整,得到商和余数。非恢复操作每一步所执行的加减的判断,取决于上一步部分余数和被除数符号的异或,当结果为1时加上除数,当结果为0时减去除数。
本文将介绍一种基于Non-restoring算法的移位除法器设计。与传统的每次移1位的算法不同,该设计中每次移动4位被除数,其商的值就会在0~F之间。每次移位后通过判断余数与除数的倍数关系,得到本次的商值及下一次运算所需余数。由于该算法每次被除数移动4位二进制位即24=16,因此我们称其为基-16算法。
对被除数每次移动4位与除数做比较,可以得到商,余数,除数之间的关系。每次移位都将产生四位商,即0000~1111中的一组。因此减少了被除数移位的次数,提高了运算速度。
其每一次移位所做运算的表达式如下:
Did=Quo*Dis+Rem
Did代表本次移位后被除数上高4位与上一次循环所得余数左移4位的和。
Quo代表16组商值中所判断出的商值。Dis代表除数,Rem代表本次循环所得的余数,在下一次循环的时候该余数需要继续向左移动4位。
基16算法的运算流程为:
(1)当寄存器中置入数据后首先判断除数是否为0,若为0则说明输入错误,不计算,重新置数;否则进行步骤二;
(2)初始化循环变量,包括被除数寄存器和余数寄存器等;
(3)将余数与被除数合并左移四位;
(4)该步为整个程序的核心,在上一步中得到的余数寄存器中的数值分别与除数的0~F倍进行比较,得到商和该次循环所得到的商值和余数。
(5)将商值写入被除数寄存器的低4位中,并判断循环是否结束,若没有结束则程序跳转到第三步。
2.2高速除法器電路设计
本文设计的低功耗高速除法器的硬件框图如图1所示,该电路主要由时钟门控模块、补码转换模块、移位模块、N倍除数寄存模块、比较器模块和减法器模块组成。时钟门控模块主要完成对时钟的低功耗控制。因为输入数据是有符号的,因此要对输入数据进行补码处理,使其变为补码,然后将被除数补码送入移位模块中,与rem合并后进行循环移位;除数的补码送入N倍除数寄存模块中得到dis1~disF将移位模块中每次移位后得到的rem与dis1~disF进行比较后,通过比较模块的数据选择器送入减法模块,在比较模块中可以输出当前移位所得的商值,rem与disx在减法器中相减的结果送入移位模块中去继续参与下一次的移位,当移位模块的变量j计数8次时该次除法运算结束,输出quo和rem通过补码转换模块得到正确的商和余数。
图1除法器硬件框图
3.仿真及验证
根据系统设计的要求,我们利用Modelsim软件对整个除法器电路进行了仿真,并使用Verilog硬件描述语言在Xilinx的Kintex7系列FPGA上实现了该除法器。Modelsim仿真结果如图2所示,clk为该除法器的时钟,rst为复位信号,start为一次除法计算的开始信号,当start为低电平时开始置入数据,高电平时开始计算。dividend为被除数,divisor为除数,r_quot为商,remainder为余数。从仿真结果可以看出所设计电路的计算结果与理论计算结果一致,电路实现了正
文档评论(0)