CN113791753A - 一种基于fpga的支持快速除法的可编程dsp - Google Patents
一种基于fpga的支持快速除法的可编程dsp Download PDFInfo
- Publication number
- CN113791753A CN113791753A CN202111080085.5A CN202111080085A CN113791753A CN 113791753 A CN113791753 A CN 113791753A CN 202111080085 A CN202111080085 A CN 202111080085A CN 113791753 A CN113791753 A CN 113791753A
- Authority
- CN
- China
- Prior art keywords
- module
- fpga
- divisor
- dsp
- dividend
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
Abstract
本发明涉及一种基于FPGA的支持快速除法的可编程DSP,属于可编程芯片技术领域。该DSP包括数据预处理模块、循环运算模块、进位保留加法器模块、补码模块和异常判断模块;实现包括计算单一循环4bit商值结果、计算当前循环的商与除数的积、计算部分余数值。本发明以较为低耗的方式,实现了FPGA的运算功能拓展,在现有DSP的基础上进行较小的改动,实现了FPGA除法运算功能的扩展,使得FPGA能够胜任不同需求。
Description
技术领域
本发明涉及一种基于FPGA的支持快速除法的可编程DSP,属于可编程芯片技术领域。
背景技术
FPGA是一种硬件可重构的体系结构,具有开发周期短、应用场景丰富、高度定制化等优势,在通用计算领域以及各种终端产品中被广泛使用,尤其在数字信号处理、深度学习、高速接口等运算复杂、数据量巨大的方向上,具有很大优势。近年来,数学计算方向上的应用,如金融数据分析、神经网络训练、高清图像处理、5G通讯等,对FPGA的要求越来越高,各种复杂的运算方式和算法,从软件迁移到FPGA硬件加速器上,当前FPGA支持的运算类型和计算效率,已经逐渐无法满足这些要求。目前主流FPGA DSP单元支持多种基本运算处理,而随着当前运算复杂度的提升,除法运算(浮点运算、复数运算)的比例也逐渐提高,当前FPGA芯片只能支持调用由LUT组织形成的除法器IP,无法满足高速数据处理的要求,且逻辑复杂度高、资源消耗巨大。亟需一种能够在FPGA上实现的高性能除法器。
发明内容
本发明要解决的技术问题是:如何基于FPGA实现高性能除法器。
为了解决上述技术问题,本发明提出的技术方案是:一种基于FPGA的支持快速除法的可编程DSP,所述DSP包括数据预处理模块、循环运算模块、进位保留加法器模块、补码模块和异常判断模块;
所述数据预处理模块,用于计算除数A和被除数B的绝对值,计算除数A和被除数B的前导零位数,异或计算除数A和被除数B的符号位;
所述异常判断模块,用于判断是否开始进行除数A与被除数B的除法计算;
所述循环运算模块,用于完成除数A的绝对值与被除数B的绝对值的除法运算;
所述补码模块,在所述循环运算模块的循环次数计满后对其输出结果进行符号位补码;
所述循环运算模块采用所述FPGA的CLB逻辑单元中的LUT查找表、Booth4位乘法器和3-2压缩的进位加法器进行包括计算单一循环4bit商值结果、计算当前循环的商与除数的积、计算部分余数值。
上述技术方案的改进是:所述DSP留有级联运算用接口。
本发明的有益效果是:本发明以较为低耗的方式,实现了FPGA的运算功能拓展,在现有DSP的基础上进行较小的改动,实现了FPGA除法运算功能的扩展,使得FPGA能够胜任不同需求。
附图说明
图1是本发明实施例一的一种基于FPGA的支持快速除法的可编程DSP的逻辑图。
图2是本发明实施例一的一种基于FPGA的支持快速除法的可编程DSP的除法运算流程图。
图3是本发明实施例一的一种基于FPGA的支持快速除法的可编程DSP的编码电路图。
图4是本发明实施例一的一种基于FPGA的支持快速除法的可编程DSP的两级级联图。
图5是本发明实施例一的一种基于FPGA的支持快速除法的可编程DSP的六级级联图。
图6是本发明实施例一的一种基于FPGA的支持快速除法的可编程DSP中的Booth-4乘法器电路图。
具体实施方式
实施例一
一种基于FPGA的支持快速除法的可编程DSP,其中包括数据预处理模块、循环运算模块、进位保留加法器模块、补码模块和异常判断模块;
数据预处理模块,用于计算除数A和被除数B的绝对值,计算除数A和被除数B的前导零位数,异或计算除数A和被除数B的符号位;
异常判断模块,用于判断是否开始进行除数A与被除数B的除法计算;
循环运算模块,用于完成除数A的绝对值与被除数B的绝对值的除法运算;
补码模块,在循环运算模块的循环次数计满后对其输出结果进行符号位补码;
循环运算模块采用FPGA的CLB逻辑单元中的LUT查找表、Booth4位乘法器和3-2压缩的进位加法器进行包括计算单一循环4bit商值结果、计算当前循环的商与除数的积、计算部分余数值。
其具体结构如图1所示,可以看到相较于主流的DSP,本实施例中的DSP仅在此基础上增加了MUX选择逻辑、除法控制逻辑,关键处理单元皆复用了DSP中已有逻辑功能,以较小的改动使其能够支持快速除法运算。具体可以参照图3进行对照。
本实施例的DSP具体运行流程如图2所示,包括移位预处理,商选择,部分余数计算(华莱士加法树),余数修正。结合运算流程来看,乘法和除法都包含华莱士树(CSA TREE),可复用该部分。商选择逻辑则如前所述采用查表实现,即使用FPGA构成中的CLB逻辑单元中的LUT查找表。图2具体流程如下,
1、计算除数A和被除数B的绝对值,计算除数和被除数的前导零位数,将第一次部分余数计算左移位数传递给后级;
2、异或计算除数和被除数符号位,得到除法运算结果的符号位;
3、进行除零异常判断,得到异常标志位;
4、判断除数和被除数的前导零位数差值判断是否开始除法循环计算;当差值为正数,左移除数,准备开始进行除法循环,计算商和部分余数;
5、前导零位数差值为负数,计算结果为小数,结束本次计算,返回结果;
6、采用查表法,计算单一循环4bit商值结果;同时,将商传递给华莱士加法树;
7、计算部分余数值,将当前除法循环中的部分余数值与除数和商的积进行减法运算,运算采用3-2压缩的进位保留加法器(即CSA TREE),计算结果即为下一次循环的部分余数值;
8、当循环次数记满,完成除法运算,得到商值;根据符号位计算商值的补码。
采用本实施例的基数为16的SRT算法整数除法器,实现25bit有符号除法运算,每次迭代运算可以得到4位商值。如果采用单独DSP单元完成除法,需要多个时钟周期完成运算;如果采用DSP级联形式,可以将Latency成倍缩短,达到快速运算的目的。商值和部分余数值选择非冗余形式数字集,商取值范围为0-15;部分余数值是在全商值范围内进行计算,每次迭代后的最大非负值为下一次迭代的部分余数。
如图3所示,DSP留有多条可旁路配置通路。以便于形成级联方式的除法器,缩短运算周期。以图4、5为例,分别为双级级联和六级级联。
对于实现25bit有符号除法运算,单独运用本实施例中的DSP需要花费6周期得到结果;而采用如图4、5的方式,双DSP级联实现除法运算,第一级DSP输入被除数B,两级DSP均输入除数A,将两级DSP的Sum_io和Co_io接口串联,只保留第二级的加法树后的寄存器;此时每级DSP均可生成4bit商结果,此时,只需要3 周期即可完成除法运算。
六级DSP级联,将各级Sum_io和Co_io接口依次串联起来,旁路加法树后的寄存器,此时,各级分别输出4bit最终的商结果,在1 周期内就可以完成整个除法运算。图4、5未标出上述接口,参照图3对应位置。
此外,本实施例为了满足较小改动的需求,采用的是具有乘法功能的芯片,但若芯片本身不具备该功能,可采用如图6所示电路实现Booth4位乘法器的功能。并不局限于上述实施例所述的具体技术方案,除上述实施例外,本发明还可以有其他实施方式。对于本领域的技术人员来说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等形成的技术方案,均应包含在本发明的保护范围之内。
Claims (2)
1.一种基于FPGA的支持快速除法的可编程DSP,其特征在于:所述DSP包括数据预处理模块、循环运算模块、进位保留加法器模块、补码模块和异常判断模块;
所述数据预处理模块,用于计算除数A和被除数B的绝对值,计算除数A和被除数B的前导零位数,异或计算除数A和被除数B的符号位;
所述异常判断模块,用于判断是否开始进行除数A与被除数B的除法计算;
所述循环运算模块,用于完成除数A的绝对值与被除数B的绝对值的除法运算;
所述补码模块,在所述循环运算模块的循环次数计满后对其输出结果进行符号位补码;
所述循环运算模块采用所述FPGA的CLB逻辑单元中的LUT查找表、Booth4位乘法器和3-2压缩的进位加法器进行包括计算单一循环4bit商值结果、计算当前循环的商与除数的积、计算部分余数值。
2.如权利要求1所述的基于FPGA的支持快速除法的可编程DSP,其特征在于:所述 DSP留有若干可旁路配置通路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111080085.5A CN113791753A (zh) | 2021-09-15 | 2021-09-15 | 一种基于fpga的支持快速除法的可编程dsp |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111080085.5A CN113791753A (zh) | 2021-09-15 | 2021-09-15 | 一种基于fpga的支持快速除法的可编程dsp |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113791753A true CN113791753A (zh) | 2021-12-14 |
Family
ID=78878422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111080085.5A Pending CN113791753A (zh) | 2021-09-15 | 2021-09-15 | 一种基于fpga的支持快速除法的可编程dsp |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113791753A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028013A (zh) * | 2023-02-20 | 2023-04-28 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3344261A (en) * | 1965-09-28 | 1967-09-26 | Division by preselected divisor | |
CN101692201A (zh) * | 2009-10-14 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种定点除法器及其运算处理方法 |
CN103678257A (zh) * | 2013-12-20 | 2014-03-26 | 上海交通大学 | 基于fpga的正定矩阵浮点求逆器及其求逆方法 |
CN104699450A (zh) * | 2015-03-18 | 2015-06-10 | 浪潮集团有限公司 | 一种基于进位保留加法器的基数-16定点除法器 |
CN110069237A (zh) * | 2019-04-19 | 2019-07-30 | 哈尔滨理工大学 | 一种基于查找表的基-8除法器信号处理方法 |
-
2021
- 2021-09-15 CN CN202111080085.5A patent/CN113791753A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3344261A (en) * | 1965-09-28 | 1967-09-26 | Division by preselected divisor | |
CN101692201A (zh) * | 2009-10-14 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种定点除法器及其运算处理方法 |
CN103678257A (zh) * | 2013-12-20 | 2014-03-26 | 上海交通大学 | 基于fpga的正定矩阵浮点求逆器及其求逆方法 |
CN104699450A (zh) * | 2015-03-18 | 2015-06-10 | 浪潮集团有限公司 | 一种基于进位保留加法器的基数-16定点除法器 |
CN110069237A (zh) * | 2019-04-19 | 2019-07-30 | 哈尔滨理工大学 | 一种基于查找表的基-8除法器信号处理方法 |
Non-Patent Citations (3)
Title |
---|
J. HOPF等: "A parameterizable HandelC divider generator for FPGAs with embedded hardware multipliers", 《PROCEEDINGS. 2004 IEEE INTERNATIONAL CONFERENCE ON FIELD- PROGRAMMABLE TECHNOLOGY (IEEE CAT. NO.04EX921)》 * |
彭嘉鸣: "Penryn的魅力", 《个人电脑》 * |
苑佳红等: "基于SRT-16算法的单精度浮点除法器的设计与实现", 《第十九届计算机工程与工艺年会暨第五届微处理器技术论坛论文集》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028013A (zh) * | 2023-02-20 | 2023-04-28 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
CN116028013B (zh) * | 2023-02-20 | 2023-07-04 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210349692A1 (en) | Multiplier and multiplication method | |
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
Juang et al. | A lower error and ROM-free logarithmic converter for digital signal processing applications | |
CN109146067B (zh) | 一种基于FPGA的Policy卷积神经网络加速器 | |
Tung et al. | A high-performance multiply-accumulate unit by integrating additions and accumulations into partial product reduction process | |
CN108255777B (zh) | 用于fpga的嵌入式浮点型dsp硬核结构 | |
US5023827A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
WO2022133686A1 (zh) | 有/无符号乘累加装置及方法 | |
Jaberipur et al. | Efficient realisation of arithmetic algorithms with weighted collection of posibits and negabits | |
Hsiao et al. | A memory-efficient and high-speed sine/cosine generator based on parallel CORDIC rotations | |
CN107133012B (zh) | 一种高速自定义浮点复数除法器 | |
CN113791753A (zh) | 一种基于fpga的支持快速除法的可编程dsp | |
Kaivani et al. | Improving the speed of decimal division | |
JP2006172035A (ja) | 除算・開平演算器 | |
CN111984226A (zh) | 一种基于双曲cordic的立方根求解装置及求解方法 | |
US20230086090A1 (en) | Methods and Apparatus for Quotient Digit Recoding in a High-Performance Arithmetic Unit | |
Daud et al. | Hybrid modified booth encoded algorithm-carry save adder fast multiplier | |
CN110825346A (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN114201140B (zh) | 指数函数处理单元、方法和神经网络芯片 | |
Sutter et al. | Comparative study of SRT-dividers in FPGA | |
CN113672196A (zh) | 一种基于单数字信号处理单元的双乘法计算装置和方法 | |
CN110506255B (zh) | 节能型可变功率加法器及其使用方法 | |
CN113515259B (zh) | 一种适用于浮点格式的复数的近似取模实现电路及方法 | |
Sworna et al. | High-speed and area-efficient LUT-based BCD multiplier design | |
Chang et al. | Fixed-point computing element design for transcendental functions and primary operations in speech processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211214 |
|
RJ01 | Rejection of invention patent application after publication |