当前位置:   article > 正文

FPGA实现除法器(verilog)_fpga除法器

fpga除法器

前言

Verilog语法中有“/”和“%”运算符,分别表示除法运算和取余运算,但是FPGA实现除法器时,是否可以直接使用这两个运算符呢?答案是否定的。
FGPA的综合工具中,对Verilog的除法指令进行编译时,有以下几种情况:
1、如果被除数和除数均为固定数,编译中,借助计算机的除法运算能力,直接将除法运算结果赋给变量;
2、如果除数是2的幂次方,编译中,直接通过运算截取被除数相应的位数赋给变量;
3、如果被除数、除数是任意变化的数,多数综合工具不能综合出令人满意的结果,有些甚至不能给予综合,即使可以综合,也会消耗比较多的资源。
对于第3中情况,往往需要使用相应的算法来实现除法,实现方法有两类,即基于减法的运算和基于乘法的运算;

一、基于减法的除法器实现

对于任意位宽的除法运算,商的位宽一定不会大于被除数的位宽,余数的位宽一定不会大于除数的位宽。

a、算法原理

假设4bit的两数相除 a/b,商和余数最多只有4位 (假设1101/0010也就是13除以2得6余1)

我们先自己做二进制除法,则首先看a的MSB,若比除数小则看前两位,大则减除数,然后看余数,以此类推直到最后看到LSB;而上述算法道理一样,a左移进前四位目的就在于从a本身的MSB开始看起,移4次则是看到LSB为止,期间若比除数大,则减去除数,注意减完以后正是此时所剩的余数。而商呢则加到了这个数的末尾,因为只要比除数大,商就是1,而商0则是直接左移了,因为会自动补0。这里比较巧因为商可以随此时的a继续左移,然后新的商会继续加到末尾。经过比对会发现移4位后左右两边分别就是余数和商。
在这里插入图片描述

b、组合逻辑实现

下面这段代码是基于减法运算,以组合逻辑的方式实现的除法器,首先将被除数(位宽DIVISOR_WIDTH)和除数(位宽DIVIDEND_WIDTH)均扩展到(DIVISOR_WIDTH+DIVIDEND_WIDTH)位,其中将被除数高位补0后赋给tempa,除数左移DIVISOR_WIDTH位,低位补0,赋给tempb,在每个周期开始时,先将tempa左移一位,末尾补0,然后与除数(dividend)比较,是否大于除数,是则tempa减去tempb将且加上1,否则继续往下执行。上面的移位、比较和减法要执行DIVISOR_WIDTH次,执行结束后tempa的高DIVIDEND_WIDTH位即为余数,低DIVISOR_WIDTH位即为商。具体代码实现如下:

module Divider#(
	 parameter	DIVISOR_WIDTH		= 32
	,parameter	DIVIDEND_WIDTH		= 32
)(
	 input	wire	[DIVISOR_WIDTH-1:0]		divisor
	,input	wire	[DIVIDEND_WIDTH-1:0]	dividend
	//------------------------------------------------//
	,output	reg		[DIVISOR_WIDTH-1:0]		quotient	
	,output	reg		[DIVIDEND_WIDTH-1:0]	remainders
);
//==============================================================================================
//======								define signal									========
//==============================================================================================
(* keep = "TRUE" *) reg	[DIVISOR_WIDTH+DIVIDEND_WIDTH-1:0]		tempa	;	
(* keep = "TRUE" *) reg	[DIVISOR_WIDTH+DIVIDEND_WIDTH-1:0]		tempb	;	
	integer	i;
//=========================================================================
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/522305
推荐阅读
相关标签
  

闽ICP备14008679号