基于 FPGA的32位除法器设计

阅读: 评论:0

目录
摘要    1
第1章 绪论    2
第2章 设计原理    3
2.1 除法运算分析    3
2.2 除法器算法的实现    4
2.2.1除法器无符号数的除法    4
2.2.2除法器有符号数的除法    4
第3章 软件介绍及设计过程    5
3.1  Quartus II简介    5
3.2  程序设计过程    6
3.3 仿真结果    7
结论    8
参考文献    9
附录1 源程序    10
摘要
介绍了一种使用可编程逻辑器件FPGAVHDL语言实现32位除法器的设计方法。该除法器不仅可以实现有符号数运算,也可以实现无符号数的运算。除法器采用节省FPGA逻辑资源的时序方式设计,主要由移位、比较和减法三种操作构成。由于优化了程序结构,因此程序浅显易懂,算法简单,不需要分层次分模块进行。并使用Altera公司的QuartusⅡ软件对该除法器进行编译、仿真,得到了完全正确的结果。
关键词:FPGAVHDL;除法器;减法;移位
1 绪论
EDA 技术就是以计算机为工具,设计者在 EDA 软件平台上,用硬件描述语言 VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA 技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
    VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为 3 种描述形式的混合描述,因此 VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL来完成。另外,VHDL还有以下优点:VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL的设计不依赖于特定的器件,方便了工艺的转换。VHDL 是一个标准语言,为众多的 EDA 场上支持,因此移植性好[2]
    本次课程设计通过利用 QuartusII 软件实现32位除法器。从而对 EDA 技术进一步的熟悉、了解和掌握。通过本课程的学习,可以了解硬件描述语言编程方法 ,掌握 VHDL编程方法。
除法是数值计算和数据分析中最常用的运算之一,许多高级运算如平方根、指数、三角函数等都与其有关。在FPGA中,有加、减、乘、除的算法指令,但除法中除数必须是2的幂,因此无法实现除数为任意数的除法。然而除法器是微处理器的一个重要运算单元,除法器的运算速度、性能、功耗等都会影响系统的整体性能,相对于其他运算操作,除法很复杂且其操作的效率很低,所以研究的人很少 引,但是对除法的忽视会导致系统整体性能的下降。因此当前不但应该研究除法,而且研究的重点应该放在提升运算速度上。如今大部分电子系统的最大位宽只有32位,因此本文用VHDL编写了实现32位数相除的除法器。本文设计的除法器,不仅能实现有符号数的运算,也可以实现无符号数的运算。
除法器是电子技术领域的基础模块, 在电子电路设计中得到广泛地应用。然而相对于加法和乘法等其他操作, 除法操作的效率很低。出现这种情况的原因除了除法本身的复杂性外夏天也是好天气, 还与人们普遍认为除法是不频繁的操作有关。作为微处理器的一个重要的运算单元, 除法器的运算速度、性能、功耗等都会影响系统的整体性能, 所以对除法效率的忽视会导致系统整体性能的下降。硬件除法器的运算速度比软件实现方法快得多, 但为了提升运算速度, 就要以硬件资源的消耗为代价。
2 设计原理
2.1 除法运算分析
除法器的算法可分为两类: 基于减法操作和基于乘法操作的算法。数字循环是最简单, 运用最广泛的一类算法, 以减法为基本的操作, 在每一次迭代中求固定位数的商。在最早的Resorting 方法中, 每次尝试在余数中减去除数, 然后判断得到的结果, 如果结果为正就上商 1, 否则上商 0, 并恢复余数, 最后移位进行下一次迭代。Resorting 方法一次迭代的框图如图 1 所示:在这种方法中一次迭代需要 2 次加法运算, 这样增加了不必要延时, Non_resorting 方法把下一次迭代中和减法合并, 这样在每次迭代中根据上一次上商的结果进行操作, 如果上次上商为 1, 这次迭代用余数减去除数, 否则用余数加上除数, 然后和Resorting 方法一样得到本次迭代的商。。还有就是基于乘法的算法, 土壤固化剂把除法看成是乘法的逆运算。如下面的式子所示:A=B×Q+R其中 A 为被除数, B 为除数, Q 为商, R 为余数。这样的算法主要有 SRT, Newton- Raphson Goldschmidt 算法等。除法在护理学杂志很多方面与乘法不同, 最重要的区别就是在乘法中所有的部分乘积都可以并行生成, 而在除法中每个商的位都是以一种顺序的过程确定的,因此速度较慢。而以FPGA为硬件基础,基于减法的除法器算法不仅节省资源,速度也较快。
2.2 勒夫数除法器算法的实现                                                                                       
2.2.1除法器无符号数的除法
本设计中的除法器,巧用stiefelVHDL语言,将有符号数和无符号数的除法结合在一起,节省了资源,也提高了速度。其算法如下:对于32位无符号被除数a,先将a转换成高32位是032位是a的数temp_a。在每个周期开始时temp_a向左移动一位,最后一位补零,然后判断temp_a的高32位是否大于等于除数b,如是则temp_aemt的高32位减去b并且加I,得到的新值仍赋给temp_a;如不是直接进入下一步。上面的移位、比较、减法(减法视情况而定)要进行32次,经过32个周期后,运算结束,所得到的temp_a的高32位为余数,低32位为商。将移位、比较和相减放在同一个循环中,去除了不必要的延时,增加了设计的可靠性。

本文发布于:2023-07-05 13:50:09,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/173597.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设计   除法   运算   操作
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图