32位浮点加法器设计[整理版]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1浮点数和浮点运算
源自文库1.1浮点数
浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示
任意某个
实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算
机中通常是
2)的整数次幕得到,这种表示方法类似于基数为10的科学记数法。
1.2浮点格式
常用的浮点格式为IEEE754标准,IEEE754标准有单精度浮点数、双精度
University, Shanghai,China)
Abstract: The floating-point arithmetic provides greater precision and greater dynamic representation indication range, with floating point calculations have become an indispensable part of the program.Floatingpoint adder is the most frequently used floating point arithmetic. Therefore, the performance of floating point adder affecting the entire CPU floating point processing capabilities. In this paper the principlebased floating-point addition, Verilog hardware description language
1.设计过程总结
本次实验采用Top_down的设计思路,在弄清楚了浮点数加法的基本规则过 后,即清楚输入输出,从而拟定几个基本的输入,ia,ib,ena,reset和clk,即用 于计算的两个浮点数ia和ib根据要求,其位宽定为32位,之后就是一个重置端reset,和脉冲信号elk,最后就是使能端ena,当然,有输入肯定有输出了,综合 浮点数的两个标准,尾数和指数,即ze和zm应浮点数的一般大小,暂时把ze设为8位,zm设定为24位,即暂定为两个输出端口,但是,作为一个完整的输出 结果,在输入信号的综合完成后,明显只有一个输出数是不完整的,因此我们增加 了一个辅助输出,即driver。输入输出结束过后,就是对一些寄存器的定义了, 显然,在对输入的锁存状态有一些特别的考虑,即ia和ib暂时锁存在一个状态 中,然后通过浮点加法规则,对寄存器取值计算,最后输出结果,具体加法器算法 参考网络。
浮点数和
扩展双精度浮点数3种,单精度为32位,双精度为64位,扩展双精度为80
位以上,位数
越多精度越高,表示范围也越大。在通常的数字信号处理应用中,单精度浮点
数已经足够用
了,本文将以它为例来设计快速浮点加法器。单精度浮点数如图1所示。
$
e
f
位数:3130n220
其中s为符号位,s为1时表示负数,s为0时表示正数;e为指数,取值范围
器,并用modelsim对浮点加法器进行仿真分析,从而验证设计的正确性和可 行性。
关键词:浮点运算 浮点加法器Verilog硬件描述语言
Studying on Relation of Technology and Civilization苦行僧宫城
(School of Mechatronic Engineering and Automation, Shanghai
desig n 32-bit sin gle-precisi on float in g-po int adder and float in g-po int
adder using modelsim simulatio n an alysis in order to verify the correctness andfeasibility of the desig小组成员及任务分配:
32
32位浮点加法器设计
苦行僧宫城
摘要:运算器的浮点数能够提供较大的表示精度和较大的动态表示范围,浮点 运算已成为现代计算程序中
不可缺少的部分。浮点加法运算是浮点运算中使用频率最高的运算。因此,浮 点加法器的性能影响着整个
CPU勺浮点处理能力。文中基于浮点加法的原理,采用Verilog硬件描述语言
设计32位单精度浮点数加法
a)指数相减:将2个指数化为相同值,通过比较2个指数的大小求出指数差的
绝对值△E。
b)对阶移位:将指数较小的操作数的尾数右移4E位。
c)尾数加减:对完成对阶移位后的操作数进行加减运算。
d)转换:当尾数相加的结果是负数时,要进行求补操作,将其转换为符号2尾数 的表示方式。
e)前导1和前导0的判定:判定由于减法结果产生的左移数量或由于加法结 果产生的右移数量。
f)规格化移位:对尾数加减结果进行移位,消除尾数的非有效位,使其最高位为
1。
g)舍入:有限精度浮点表示需要将规格化后的尾数舍入到固定结果。 由以上 基本算法可见,它包含2个全长的移位即对阶移位和规格化移位,还要包括3个全 长的有效加法,即步骤c、d、g。由此可见,基本算法将会有很大的时延。
2 32位浮点加法器设计与实现
基于上述浮点数的加法运算规则,我们小组主要的设计思路是:
1.前端处理,还原尾数
2.指数处理,尾数位移使指数相等
3.尾数相加
4.尾数规格化处理
5.后端处理,输出浮点数
设计代码如下:仿真结果如下:
3 3Verilog实验报告总结
此次实验,从国庆过后开始,28日结束,在小组三个人的共同努力下,克服多 次失败过后,终于把波形调了出来。实验过程中遇到了许多在之前没有遇过过的问 题,其中文件关联尤为突出,还有一些Verilog的语法问题,通过这次实验,学到 了许多实际编程有用的东西,特别是对Top_downObottom-up的设计思路,有了 更为深刻的理解。
为[1,
254],0和255表示特殊值;f有22位,再加上小数点左边一位隐含的1总共23位构成尾
数部分
1.3浮点运算
浮点加法运算由一些单独的操作组成。在规格化的表示中,对于基为2的尾数 的第1个非0位的1是隐含的,因此,可以通过不存储这一位而使表示数的数目增 加。但在进行运算时不能忽略。浮点加法一般要用以下步骤完成:
相关文档
最新文档