🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/全国大学生集成电路创新创业大赛/(九)浮点乘法指令设计
(九)浮点乘法指令设计
全国大学生集成电路创新创业大赛 作者 hzzaz 发布于 2023-05-21 15:19(1237 天前) 3587 浏览

一、团队介绍

报名编号:CICC1327
团队名称:301小队

二、浮点乘法算法

设a = {sa,ea,fa},b = {sb,eb,fb}为两个IEEE754单精度浮点数,试计算c = {sc,ec,fc} = a b。c的绝对值|c| = |a| |b| = {2^(ea-127)1.1fa} {2^(eb-127)1.1fb} = 2^((ea+eb-127)-127) (1.1fa*1.1fb),

运算步骤如下:

符号位异或运算

sc = sa ⊕ sb,得到结果的符号位

阶码相加减

按照定点整数的加减法运算方法对两个浮点数的阶码进行加减运算,因为规格化数的价码e满足1≤e≤254,而ec有可能超出1~254范围,所以当1≤ec≤254,相乘结果为规格化数;当ec>254时,结果用无穷大表示;当ec<1时,相乘结果大于或等于2^-149,用非规格化数表示,否则用0表示。

尾数相乘

按照定点小数的阵列乘法运算方法对两个浮点数的尾数进行乘运算,如果1.1fa1.1fb <2.0,则ec = ea+eb-127,1.1fc = 1.1fa1.1fb,否则ec = ea+eb-127+1,1.1fc = (1.1fa*1.1fb)>>1(右移一位)。

舍入处理

浮点数乘运算结果舍入处理按照(六)浮点舍入模式介绍这篇博客进行舍入操作。

几种特殊运算

(1)假设b≠0并且b≠NAN,则∞ b = ∞;
(2)NAN
b = NAN;
(3)∞ * 0 = NAN。

三、仿真验证


2.50000*1.00000 = 2.50000,功能正确。

全部回复 0
暂无回复,抢个沙发~
💡 请 登录 后参与讨论(微信扫码即登录/注册)