一种快速除法器的制作方法

文档序号:6652944阅读:448来源:国知局
专利名称:一种快速除法器的制作方法
技术领域
本实用新型涉及一种除法器,具体地说,是涉及一种可应用在数字图像处理、数字信号处理、通讯等领域的集成电路算法程序中的快速除法器。
背景技术
在数字信号处理、通讯,和图像处理过程中,经常会用到除法运算。在实现除法运算的大多数程序中,由于相对应的处理器没有除法运算单元,使得编译器需要调用事先设计好的算法库才能实现。其缺点是执行时间长,在实时系统等特定的场合下不宜有效运行。在集成电路和可编程逻辑器件的算法设计中,现有芯片中并没有实现除法功能的芯片,在硬件描述语言中也没有可综合的除法语句,EDA提供商Synopsys和Cadence等公司没有提供相应的设计库。Xinlix等可编程逻辑器件设计厂商提供了除法器IP,但是不宜于移植,且具有资源消耗过大,运算时间太长等缺点。
中国专利申请号为95107302提供了一种无需硬件的二位元除法运算方法与装置,该方法与装置采用二进制的位移及加法的技巧以减化除法的运算过程,但它是以微处理器为运算平台,由指令实现的除法运算;中国专利申请号为89106625采用了二级运算构成的冗余码与地区性混合使用的冗余码加法单元组成除法阵列,并采用二选一的选择器构成将冗余码的商直接转换成二进制形式的阵列转换电路,其电路结构较复杂;美国专利5485414公开的电路中包括有乘法运算单元,电路结构也较复杂。这些专利的共同缺点是结构复杂,使用元器件较多,且运算速度慢,无法满足在数字电路中的一些特定应用。
实用新型内容本实用新型的目的在于提供一种除法器,其在集成电路(以及与之相关的可编程逻辑器件)的算法程序中被采用,以处理数学运算中的除法操作。其结构简单,使用的元器件少,且运算速度快。
为达到上述目的,本实用新型提供的除法器,其包含依次电路连接的规格化单元,第一级乘法器单元,第二级乘法器单元,商截位单元;且规格化单元和第二级乘法器单元之间还连接一查表单元;规格化单元还有一输出连接商截位单元的输入;规格化单元根据输入的有效信号标明的被除数(X)和除数(Y),输出使能信号和该乘法器的被乘数和乘数至第一级乘法器单元;输出移位参考信号至商截位单元;并输出查表地址至查表单元相应的查表地址;规格化单元的具体设计需要对被除数和除数分别进行,方法是当输入的操作有效时,被除数和除数将分别向左移位直至最高位为1,并记下最终的结果(x,y)和所移位的位数(Ex,Ey)。然后对将x、y、Ex以及Ey进行下一步的运算x作为输入到第一级乘法器单元的被乘数输出;取y的高6位,减去剩余的低位数据,作为输入到第一级乘法器单元的乘数输出;取y的高6位作为输入到查表单元相应的查表地址;输入到截位单元的移位参考信号则是Ex和Ey之差;为了支持流水线作业,上述操作在一个时钟周期内完成,即根据当前输入的有效信号,该单元输出的使能信号相应的延迟一个时钟周期,得到输入到第一级乘法器单元的使能信号。
第一级乘法器单元根据规格化单元的输出的使能信号,对规格化单元输出的被乘数和乘数进行乘法运算,然后将结果输入到第二级乘法器单元;此外,还向第二级乘法器单元发出使能信号;为了支持流水线作业,上述操作在一个时钟周期内完成,因此输入到第二级乘法器单元的使能信号,在输入有效信号有效后的下一时钟输出,以使能第二级乘法器单元。
由于绝大多数的处理器中均集成了乘法单元,所以算法程序中使用乘法运算无需调用库函数,可以直接进行运算;在集成电路(以及与之相关的可编程逻辑器件)设计中,EDA提供商,也都提供了可方便实用、可移植的IP可使用。所以乘法器单元的设计不属于本设计之列。
查表单元根据规格化单元输出查表单元相应的查表地址,将事先存放在其中的数据取出,输出到第二级乘法器单元,已完成第三级运算。
查表单元中存放的是运算过程中需要的一个表,其格式为32个12比特的数据组成,其数据由预先运算得出。由于该表共384个位单元,所以根据实际需要可将之作成ROM或者有纯组合逻辑电路实现。
表中的数据是根据优化后的Taylor级数展开对除数的倒数取一个近似值,表输出的结果是作为一个12比特的纯小数计算。
上述操作在一个时钟周期内完成,要求查表单元采用寄存器方式输出。
第二级乘法器单元根据第一级乘法器单元发出使能信号,将由第一级乘法器单元输出的数据作为被乘数,查表得出的数据作为乘数,进行运算得出最终的输出。
为了支持流水线作业,上述操作在一个时钟周期内完成,因此输入到商截位单元的使能信号,在输入有效信号有效后的下一时钟输出,以使能截位单元。
第二级乘法器单元的设计和第一级乘法器单元的设计基本一致。
商截位单元根据规格化单元输出的移位参考信号,将第二级乘法器单元的输出进行格式化,得到商的整数部分和小数部分。
商截位单元的设计完全是根据输入的移位参考信号判断得出。由于商截位单元的复杂度较低,所以在实际应用中,可以和其他逻辑电路混合使用,从而使该除法器可以在3个时钟周期内完成运算。
上述操作在一个时钟周期内完成,因此输出的商有效信号,在输入有效信号后的下一时钟输出。为了进行流水线作业,根据当前输入的有效信号该单元输出的商有效信号相应的延迟一个时钟周期。
以上可以看出,利用本实用新型进行算法运算,从原始数据输入到输出至少需4个时钟周期。
利用本实用新型后,设被除数为M比特的操作数,除数为N比特的操作数,商为K比特。由于受查表数据对结果精确度的影响,这里的K建议最大为10比特,这样商的值域绝对值区间为[0,256.75],最后1位是误差位,即商的总位宽为10比特,误差为最后一个单元位。当商大于1时整数位最多取8比特,误差为1/4;当商小于1时小数位可以取到小数点后10比特,误差为1/1024;以此类推。
本实用新型不需要进行传统的循环移位运算,使得运算过程更加容易控制,流程更加简洁。
本实用新型的运算耗时少,单个除法运算最快可以在4个时钟周期内完成。
另外,本实用新型还支持流水线操作,当被除数和除数随着时钟连续输入,则可以由内部机制形成流水线执行方式,即假定有H组数据需要连续地进行除法运算,则数据的平均运算时间为(H+3)/H个时钟。其支持浮点数,即输入的被除数和除数可以是浮点数。只要是正数,数据格式不受限制。可以判断当除数为0时,输出的商为可行的最大值。由于整个除法器是完全可控的,因此,具体的输出结果还可以根据实际需要作出相应的调整。


图1是本实用新型的电路方框示意图;图2是本实用新型的单个数据输入(寄存器在时钟上升沿触发)时序图;图3是本实用新型连续数据输入,形成的流水线形式(寄存器在时钟上升沿触发)的时序图。
具体实施方式
以下根据图1到图3,说明本实用新型的一较佳实施方式。
如图1所示,为本实用新型的电路方框示意图;本实用新型提供的除法器,其包含依次电路连接的规格化单元1,第一级乘法器单元2,第二级乘法器单元3,商截位单元4;且规格化单元1和第二级乘法器单元3之间还连接一查表单元5;规格化单元1还有一输出连接商截位单元4的输入;
规格化单元1根据输入的有效信号标明的被除数(X)和除数(Y),输出使能信号和该乘法器的被乘数和乘数至第一级乘法器单元2;并输出移位参考信号至商截位单元4;并输出查表地址至查表单元5相应的查表地址;规格化单元1的具体设计需要对被除数和除数分别进行,方法是当输入的操作有效时,被除数和除数将分别向左移位直至最高位为1,并记下最终的结果(x,y)和所移位的位数(Ex,Ey)。然后对将x、y、Ex以及Ey进行下一步的运算x作为输入到第一级乘法器单元2的被乘数输出;取y的高6位,减去剩余的低位数据,作为输入到第一级乘法器单元2的乘数输出;取y的高6位作为输入到查表单元5相应的查表地址;输入到截位单元4的移位参考信号则是Ex和Ey之差;为了支持流水线作业,上述操作在一个时钟周期内完成,即根据当前输入的有效信号,该单元输出的使能信号相应的延迟一个时钟周期,得到输入到第一级乘法器单元2的使能信号。
第一级乘法器单元2根据规格化单元1的输出的使能信号,对规格化单元1输出的被乘数和乘数进行乘法运算,取其结果的最高的20位输出,输入到第二级乘法器单元3;此外,还向第二级乘法器单元3发出使能信号;为了支持流水线作业,上述操作在一个时钟周期内完成,因此输入到第二级乘法器单元3的使能信号,在输入有效信号有效后的下一时钟输出,以使能第二级乘法器单元3。
由于绝大多数的处理器中均集成了乘法单元,所以算法程序中使用乘法运算无需调用库函数,可以直接进行运算;在集成电路(以及与之相关的可编程逻辑器件)设计中,EDA提供商,也都提供了可方便实用、可移植的IP可使用。所以乘法器单元的设计不属于本设计之列。
查表单元5根据规格化单元1输出查表单元相应的查表地址,将事先存放在其中的数据取出,输出到第二级乘法器单元3,已完成第三级运算。
查表单元5中存放的是运算过程中需要的一个表,其格式为32个12比特的数据组成,其数据运算得出。由于该表共384个位单元,所以根据实际需要可将之作成ROM或者有纯组合逻辑电路实现。
表中的数据是根据优化后的Taylor级数展开对除数的倒数取一个近似值,表输出的结果是作为一个12比特的纯小数计算。
上述操作在一个时钟周期内完成,要求查表单元5采用寄存器方式输出。
第二级乘法器单元3根据第一级乘法器单元2发出使能信号,将由第一级乘法器单元3输出的数据作为被乘数,查表得出的数据作为乘数,进行运算得出最终的输出。
为了支持流水线作业,上述操作在一个时钟周期内完成,因此输入到商截位单元4的使能信号,在输入有效信号有效后的下一时钟输出,以使能截位单元4。
第二级乘法器单元3的设计和第一级乘法器单元2的设计基本一致。
商截位单元4的功能是根据规格化单元1输出的移位参考信号,将第二级乘法器单元3的输出进行格式化,得到商的整数部分和小数部分。
商截位单元4的设计完全是根据输入的移位参考信号判断得出。由于商截位单元4的复杂度较低,所以在实际应用中,可以和其他逻辑电路混合使用,从而使该除法器可以在3个时钟周期内完成运算。
上述操作在一个时钟周期内完成,因此输出的商有效信号,在输入有效信号后的下一时钟输出。为了进行流水线作业,根据当前输入的有效信号该单元输出的商有效信号相应的延迟一个时钟周期。
以上可以看出,利用本实用新型进行算法运算,从原始数据输入到输出至少需4个时钟周期。
如图2所示,是本实用新型的单个数据输入(寄存器在时钟上升沿触发)时序图,包括时钟信号、数据有效信号(当前输入的被除数、除数有效)、第一级乘法使能(第一级乘法阶段)、第二级乘法使能(第二级乘法阶段)、商截取使能(商截取阶段)、被除数(X)、除数(Y)、商(Q)以及商有效信号(当前输出的商有效)等。当数据有效信号为高,表明当前输入的被除数(X)、除数(Y)有效,系统依次进入规格化、第一级乘法和查表、第二级乘法和商截取等4个阶段,从而完成除法运算,输出“商”(Q),仅耗时4个时钟周期。Xilinx提供的IP在完成一次32位数据除以16位数据,需要26个时钟周期,与其相比该设计具有节省大量时间的优点。
如图3所示,是本实用新型连续数据输入,形成的流水线形式(寄存器在时钟上升沿触发)的时序图。其信号和图2相同。但是当连续N个有效数据输入(如被除数X1和X2、除数Y1和Y2)时,即形成流水线形式,对应的“商”(Q1和Q2)在相应输入的4个时钟周期后连续输出,平均每个运算耗时(N+3)/N个时钟周期,与非流水线形式的运算相比,效率更高,速度更快。
以下,以被除数最大为20比特,除数最大为10比特的实施例,进一步说明本实用新型。
根据本实用新型,在FPGA上实现一个20位除10位的除法器,并进行仿真。在本实施例中被除数X为9.EF45(十六进制),即1001.1110 1111 01000101(二进制),除数Y为1F.38(十六进制),即1 1111.0011 1000(二进制)。所得商Q为0.514(十六进制),即0.0101 0001 01(二进制)。而在计算机中直接计算X/Y,对商取12位,则商为0.517(十六进制),即0.0101 0001 0111。在本实施例中本实用新型所得的结果在前10位与计算机所得结果相同。
在另一实施例中取X为E916,Y取EA,则由本实用新型的除法器所得的商为FE.C,而由计算机直接计算所得的结果为FF.0,误差为1/4,即商的最后1位。
从以上可以看出,本实用新型的除法器,结构简单,所用的元器件少,且计算精确,计算速度快。
权利要求1.一种除法器,其特征在于,包含依次电路连接的规格化单元,第一级乘法器单元,第二级乘法器单元,商截位单元;且规格化单元和第二级乘法器单元之间还连接一查表单元;规格化单元还有一输出连接商截位单元的输入。
专利摘要本实用新型涉及一种除法器,其包含依次电路连接的规格化单元,第一级乘法器单元,第二级乘法器单元,商截位单元;且规格化单元和第二级乘法器单元之间还连接一查表单元;规格化单元还有一输出连接商截位单元的输入;其在集成电路(以及与之相关的可编程逻辑器件)的算法程序中被采用,以处理数学运算中的除法操作。其结构简单,使用的元器件少,且运算速度快。
文档编号G06F7/72GK2847379SQ20052004500
公开日2006年12月13日 申请日期2005年9月14日 优先权日2005年9月14日
发明者陈柏钦, 侯钢, 王国中, 朱正超 申请人:上海广电(集团)有限公司中央研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1