龙空技术网

基于FPGA的快速逻辑除法器设计

newpowerleader 107

前言:

当前你们对“辗转相除法公式编辑器怎么打”可能比较看重,朋友们都需要知道一些“辗转相除法公式编辑器怎么打”的相关资讯。那么小编也在网摘上收集了一些有关“辗转相除法公式编辑器怎么打””的相关资讯,希望兄弟们能喜欢,咱们快快来学习一下吧!

引言

利用FPGA硬件门电路进行通信、自动控制、图形处理、航空航天等应用数据处理、控制经常需要用到数学运算。常规数学运算+,-直接调用符号,所有的FPGA厂家的编译器、综合器都支持+,-符号的直接调用。编译的效率和时钟延迟都可以满足相关设计需求。但是对于乘法和除法运算,不用厂家编译器和综合器支持程度不一样。比如intel的FPGA芯片,使用芯片编译软件quartus,内部也支持符号调用,如乘法* ,除法/, 由于乘法*,除法/符号需要编译器识别,然后调用内部ip core实现,结果导致FPGA实现硬件电路资源成倍增加、数据处理延时增加,更有意外不可控的风险存在。例如符号位处理不同带来结果不同等。

可能有人想,用软件编程,比如C语言实现除法,不就是斜杠/就可以实现除法了,%就可实现求余运算了,很简单的吧,不用这么复杂。但是利用FPGA芯片的门电路来实现乘法、除法运算是一个设计中底层应用,需要利用门电路特性来经过一系列复杂的步骤来实现除法运算,可以这么说,用FPGA实现除法运算是比较麻烦的。

利用FPGA门电路硬件来实现除法运算,就需要了解计算机存储结构,二进制的除法和平常使用的十进制除法是一样的,都是通过辗转相除的原理。

十进制除法原理

十进制乘除法原理利用十进制加减法规则进行,即十进制数的运算遵循:加法时:“逢十进一”;减法时:“借一当十。辗转相除来源于辗转相除法,也称欧几里得算法,是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。即使a/b 求商和余数,通过对a进行循环的减b的倍数,然后判断余数与b的关系,即使辗转相除。同理二进制相乘也可以利用这个原则进行。

二进制辗转相除原理

利用FPGA逻辑电路实现两个任意数据的除法最朴素的办法就是参照十进制的辗转相除的原则进行,利用二级制特殊移位机制实现乘除快速运算。二进制运算中,数据左移1位,相当于数据*2;数据右移1位,相当于数据/2;根据上述思想,二进制辗转相除的流程图示如下:

流程图1

流程图2

标签: #辗转相除法公式编辑器怎么打