使用verilog设计一个符合IEEE标准的浮点乘法器,RTL实现仿真

使用verilog实现了设计了一个符合IEEE标准的32位单精度浮点数乘法器,并使用Modelsim进行仿真。

1、浮点数乘法器的流水线

都知道IEEE-754标准的单精度浮点数有32位,其中又分为3个部分 

图一 IEEE浮点标准

那么,浮点数乘法器也主要由下面几个步骤进行

1)、Sign异或

     对A,B的符号位异或:so = sa⊕sb;

2)、Exponent相加

     Exponent表示的数都是原来的浮点数加上127的结果,计算时A,B分别减去127后得到真实阶码,相加得到C的真实阶码,再加127得到C的Exponent,

    expo = (expa - 127) + (expb - 127) + 127 + n;//n是后面的进位,产生进位是1,未产生是0

3)、Significand相乘

    由于在IEEE标准中,A,B两个数的最高位1是隐藏的,这里Significand只表示后23位,在计算时需要带上最高位计算,假设A为1.m,B为1.n;

    A*B = 1+0.m+0.n+0.m*0.n;

4)、结果规格化及舍入处理

     ①舍入主要包括两种舍入方式,零舍入和就近舍入,可以根据自己需要选择舍入方式

     ②A,B两个数相乘时整数位可能会产生进位,如果计算结果整数位位10,11,则需要右移一位,同时Exponent加1

     ③将最后的结果打包成一个32位符合IEEE标准的数输出

用流程图表示就是:

2、Moldelsim仿真结果

这个网站可以实现IEEE 754 单精度浮点数转换:http://www.styb.cn/cms/ieee_754.php

100对应的是42C80000,0.5是3F000000

其中float_a和float_b是两个乘数,float_o是输出结果42480000对应的十进制数是50;

实验程序:https://download.csdn.net/download/weixin_42790063/13186995

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值