没有合适的资源?快使用搜索试试~ 我知道了~
首页基于Verilog计算可调的整数除法器的设计
基于Verilog计算可调的整数除法器的设计
452 浏览量
更新于2023-05-25
评论
收藏 180KB PDF 举报
0 引 言 除法器是电子技术领域的基础模块,在电子电路设计中得到广泛应用。目前,实现除法器的方法有硬件实现和软件实现两种方法。硬件实现的方法主要是以硬件的消耗为代价,从而有实现速度快的特点。用硬件的方法来实现除法器的研究很多,如利用微处理器实现快速乘除法运算,FPGA实现二进制除法运算,模拟除法器等;而通过软件实现的除法器算法,可以大大提高器件的工作频率和设计的灵活性,可以从总体上提高设计性能,而设计高效实用的算法是除法器的关键,故除法器的算法研究成为现今热点。 目前,软件方面主要是通过减法算法来实现除法运算,把被除数作为被减数,除数作为减数,作减法,直到被减数小于减数为止,记录能
资源详情
资源评论
资源推荐

基于基于Verilog计算可调的整数除法器的设计计算可调的整数除法器的设计
0 引 言 除法器是电子技术领域的基础模块,在电子电路设计中得到广泛应用。目前,实现除法器的方法有
硬件实现和软件实现两种方法。硬件实现的方法主要是以硬件的消耗为代价,从而有实现速度快的特点。用硬
件的方法来实现除法器的研究很多,如利用微处理器实现快速乘除法运算,FPGA实现二进制除法运算,模拟除
法器等;而通过软件实现的除法器算法,可以大大提高器件的工作频率和设计的灵活性,可以从总体上提高设
计性能,而设计高效实用的算法是除法器的关键,故除法器的算法研究成为现今热点。 目前,软件方面主
要是通过减法算法来实现除法运算,把被除数作为被减数,除数作为减数,作减法,直到被减数小于减数为
止,记录能
0 引 言
除法器是电子技术领域的基础模块,在电子电路设计中得到广泛应用。目前,实现除法器的方法有硬件实现和软件实现两
种方法。硬件实现的方法主要是以硬件的消耗为代价,从而有实现速度快的特点。用硬件的方法来实现除法器的研究很多,如
利用微处理器实现快速乘除法运算,FPGA实现二进制除法运算,模拟除法器等;而通过软件实现的除法器算法,可以大大提
高器件的工作频率和设计的灵活性,可以从总体上提高设计性能,而设计高效实用的算法是除法器的关键,故除法器的算法研
究成为现今热点。
目前,软件方面主要是通过减法算法来实现除法运算,把被除数作为被减数,除数作为减数,作减法,直到被减数小于减
数为止,记录能够相减的次数即得到商的整数部分。将所得的余数乘以10作为被减数,除数作为减数,作减法,差重新置入
被减数,反复相减,直到被减数小于减数为止,记录能够相减的次数即得到商的十分位数值。依此继续下去,可得到商的百分
位数值,千分位数值,……,要到哪一位,就依次做到哪一位。此方法的缺点是速度慢,而且一位的精度不高,为了克服以上
的缺点,这里设计一种算法在软件上改进了除法器运算的准确性和处理速度。
1 设计方法
对于任意给定的两个整数fenzi和fenmu,设fenzi为被除数,fenmu为除数。为了得到两个数相除的十进制结果,本设计主
要通过下面的算法来实现,假如要保留小数点后面的n位有效数字,首先把fenzi乘以10的n次方,赋值给寄存器变量dataO;
接着把fenmu分别乘以10的(n+m),(n+m一1),(n+m一2),…,1,O次方分别赋值给(n+m+1)个不同的变量
data(n+m+1),data(n+m),…,datal,其中m是fenzi和fenmu的位数之差(当fenzi的位数多于fenmu时,m为正,否则为负);
先求出商的位的值,如果dataO大于data(n+m+1),则计数器自动加1,再把dataO和data(n+m+1)的差值赋给data0,再相减
直到data0的值小于data(n+m+1),此时计数器的计数值就是位的值;依此用同样的方法继续下去,就可得到各个位上的值。
对一位进行四舍五入处理,当相减后的dataO<datal时,再通过比较dataO*2是否大于datal,如果大于datal,则一位计数器的
值加1,否则不变,把得到的整体值除以10的n次方,也就是小数点往左移动n位。传统除法算法由于采用多次相减的过程来实
现,相减的过程耗费了大量时钟脉冲,而且对运算结果的一位没有进行处理;而本设计是通过采用位扩展使除数和被除数位数
相同,进而对每一位进行分开处理,减少了做减法运算的次数,从而提高运算速度;同时采用四舍五入的方法对运算结果进行
处理,提高准确性。上面算法是一种顺序方式,用Verilog硬件描述语言很容易实现,图1为流程图,其中假定fenzi为3位的整
数,fenmu为2位的整数,除法运算到百分位。


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0