定点数的除法C语言,FPGA定点小数计算(二)——除法运算

本文介绍了定点数除法在C语言和FPGA中的实现,包括恢复余数算法、不恢复余数算法、SRT算法、倒数算法和牛顿迭代法。强调了定点小数除法与整数除法的差异,并提供了一个简单的定点小数除法实现,该算法依赖于移位和减法操作,适用于资源有限的场景。
摘要由CSDN通过智能技术生成

0 引言

在四则运算中,除法最为复杂,在时间上和空间上的开销都比较大。因此很多算法都极力避免进行除法运算,或者采用其他的方案来代替除法运算。但是,除法运算作为基本的四则运算之一,在很多情况下依旧是不可避免的。近年来,陆续出现了很多种除法实现算法,如恢复余数算法(Restoring)、不恢复余数算法(Non-Restoring)、SRT算法、倒数算法和牛顿迭代法等。但是大部分算法都是基于整数除法或者浮点小数除法的,并不太适合进行定点小数计算。下面来简单地介绍一下几种常见除法算法、整数除法与定点小数除法的差异和一种简单的定点小数除法实现。

1 常见的除法算法

恢复余数算法

恢复余数算法是一种基于移位和减法的算法,比较适合FPGA或ASIC实现。恢复余数算法不能直接进行有符号数的补码运算,而只能采用原码进行运算。基于恢复余数算法的无符号除法器具有如下特征:

1)       各参数的字长:被除数为2nbit,除数,商和余数均为nbit;

2)       被除数的高nbit必须小于除数;

3)       算法主要迭代n次。

该算法的基本运算单元如下图所示:

ae89ec3ec72130be428a7f2473a27e28.png

恢复余数算法是一种整数的除法,在计算商的同时还能获得余数,是一种无误差的除法实现方式。

不恢复余数算法

恢复余数算法中的“恢复”指的是,如果之前的计算中余数出现了负值&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值