CN113157247B - 一种可重构整型-浮点型乘法器 - Google Patents

一种可重构整型-浮点型乘法器 Download PDF

Info

Publication number
CN113157247B
CN113157247B CN202110444216.7A CN202110444216A CN113157247B CN 113157247 B CN113157247 B CN 113157247B CN 202110444216 A CN202110444216 A CN 202110444216A CN 113157247 B CN113157247 B CN 113157247B
Authority
CN
China
Prior art keywords
selector
output end
input end
floating point
gate
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.)
Active
Application number
CN202110444216.7A
Other languages
English (en)
Other versions
CN113157247A (zh
Inventor
张斌
王凯
桂小琰
张玉龙
张泽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN202110444216.7A priority Critical patent/CN113157247B/zh
Publication of CN113157247A publication Critical patent/CN113157247A/zh
Application granted granted Critical
Publication of CN113157247B publication Critical patent/CN113157247B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

本发明属于数字信号处理领域,公开了一种可重构整型‑浮点型乘法器,包括使能控制模块、整型‑浮点预处理模块、前运算模块、可重构乘法模块和对阶模块;使能控制模块生成第一控制信号和第二控制信号;整型‑浮点预处理模块获取第一浮点型数据和第二浮点型数据,得到第一扩展尾数和第二扩展尾数;前运算模块得到浮点结果的符号位及浮点结果的临时阶码;可重构乘法模块得到整型结果或浮点结果的临时尾数;对阶模块得到浮点结果的尾数和阶码。不仅能实现浮点乘法运算,而且能在不增加额外资源的情况下,实现整型乘法运算,可以充分满足当前人工智能芯片的需求,在面对不同要求时可以灵活选择数据运算模式,具有更好的资源利用率、功能性及通用性。

Description

一种可重构整型-浮点型乘法器
技术领域
本发明属于数字信号处理领域,涉及一种可重构整型-浮点型乘法器。
背景技术
近年来,随着人工智能时代的到来,人们投入到了对智能化产品的研究热潮中,由于卷积神经网络在目标检测、图像处理、语音识别等领域所展现出的巨大优势,卷积神经网络又成为了学术界及工业界的研究热点,其优势在于将局部关系进行连接,得到了权值共享的网络结构。
卷积神经网络训练主要采用CPU和GPU,其权重、偏置等皆为浮点数,随着超大规模集成电路的发展,基于速度和集成的优势,越来越多训练完成后的网络结构选择在FPGA或ASIC平台实现,由于浮点运算对于资源的消耗较大,速度相对定点数较慢,过去人们更倾向于使用定点数实现,但是随之而来的就是精确度降低、所实现网络的可靠性降低等问题。目前,不论是FPGA还是ASIC平台,可供调度的资源相比过去都有了量的提升,浮点运算的资源消耗和运算速率相比过去有了质的提升,因此浮点运算在卷积神经网络的硬件实现上逐渐普遍。目前在不同的应用领域和应用场景中,对数据类型的要求也不同,以数据类型的运算方式分类,基本可分为整型乘法器和浮点型乘法器,整型乘法器消耗资源少,但精度较低,浮点型乘法器消耗资源多,但精度高,它们有着各自的优势和劣势。
但是现有的乘法单元一般都仅支持单一的整型乘法运算或浮点乘法运算,因此现有乘法单元在进行具体的数据处理时,由于数据源的多变性,在精度和消耗资源上不能统筹兼顾。
发明内容
本发明的目的在于克服上述现有技术中,现有乘法单元功能单一,精度和消耗资源不能统筹兼顾的缺点,提供一种可重构整型-浮点型乘法器。
为达到上述目的,本发明采用以下技术方案予以实现:
一种可重构整型-浮点型乘法器,包括使能控制模块、整型-浮点预处理模块、前运算模块、可重构乘法模块和对阶模块;使能控制模块用于接收控制指令,根据控制指令生成第一控制信号和第二控制信号,并输出至整型-浮点预处理模块和可重构乘法模块;整型-浮点预处理模块用于接收第一待处理数据和第二待处理数据,根据第一控制信号将第一待处理数据和第二待处理数据转换为第一浮点型数据和第二浮点型数据,将第一浮点型数据和第二浮点型数据的尾数的最高位前扩展1位1,得到第一扩展尾数和第二扩展尾数并发送至可重构乘法模块;将第一浮点型数据和第二浮点型数据的符号位及阶码均发送至前运算模块;前运算模块用于根据第一浮点型数据和第二浮点型数据的符号位,得到浮点结果的符号位;根据第一浮点型数据和第二浮点型数据的阶码,得到浮点结果的临时阶码并发送至对阶模块;可重构乘法模块用于根据第一控制信号和第二控制信号,将第一扩展尾数和第二扩展尾数进行可重构处理,得到整型结果或浮点结果的临时尾数;将浮点结果的临时尾数发送至对阶模块;对阶模块用于根据浮点结果的临时尾数的最高位,将浮点结果的临时尾数和浮点结果的临时阶码进行规格化处理,得到浮点结果的尾数和阶码。
本发明进一步的改进在于:
所述使能控制模块包括译码器、第一选择器和第二选择器;所述控制指令包括第一指令和第二指令;译码器的输入端用于接收第一指令,第一输出端连接第一选择器的第一输入端,第二输出端连接第二选择器的第一输入端,第一选择器的第二输入端和第二选择器的第二输入端均接低电平,第一选择器的控制端和第二选择器的控制端用于接收第二指令;第一选择器的输出端用于输出第一控制信号至整型-浮点预处理模块和可重构乘法模块,第二选择器的输出端用于输出第二控制信号至整型-浮点预处理模块和可重构乘法模块。
所述整型-浮点预处理模块包括32bit比较器和32bit并行移位寄存器;32bit比较器的输入端用于接收第一待处理数据和第二待处理数据,控制端与使能控制模块连接,输出端与32bit并行移位寄存器的输入端连接;32bit并行移位寄存器的第一输出端和第二输出端与前运算模块连接,32bit并行移位寄存器的第三输出端、第四输出端、第五输出端、第六输出端、第七输出端及第八输出端均与可重构乘法模块连接;其中,32bit并行移位寄存器的第一输出端用于输出第一浮点型数据和第二浮点型数据的符号位;第二输出端用于输出第一浮点型数据和第二浮点型数据的阶码;第三输出端用于输出第一扩展尾数的[7:0]位;第四输出端用于输出第一扩展尾数的[15:8]位;第五输出端用于输出第一扩展尾数的[22:16]位;第六输出端用于输出第二扩展尾数的[7:0]位;第七输出端用于输出第二扩展尾数的[15:8]位;第八输出端用于输出第二扩展尾数的[22:16]位。
所述前运算模块包括第一异或门、第一10bit加法器和第二10bit加法器;第一异或门的输入端与整型-浮点预处理模块连接,用于接收第一浮点型数据和第二浮点型数据的符号位,输出端用于输出浮点结果的符号位;第一10bit加法器的输入端与整型-浮点预处理模块连接,用于接收第一浮点型数据和第二浮点型数据的阶码,输出端与第二10bit加法器的输入端连接,第二10bit加法器的输出端与对阶模块连接,用于输出浮点结果的临时阶码。
所述可重构乘法模块包括第一乘法单元、第二乘法单元、第三乘法单元、第四乘法单元、第五乘法单元、第六乘法单元、第七乘法单元、第八乘法单元、第九乘法单元、第一4-2压缩器、第二4-2压缩器、第一5-2压缩器、第一17bit加法器、第二17bit加法器、第一33bit加法器、第二33bit加法器、48bit加法器、第三选择器、第四选择器以及第五选择器;第一乘法单元、第二乘法单元、第三乘法单元、第四乘法单元、第五乘法单元、第六乘法单元、第七乘法单元、第八乘法单元以及第九乘法单元的输入端均与整型-浮点预处理模块连接,分别用于接收第一扩展尾数的[7:0]位和第二扩展尾数的[7:0]位、第一扩展尾数的[15:8]位和第二扩展尾数的[7:0]位、第一扩展尾数的[7:0]位和第二扩展尾数的[15:8]位、第一扩展尾数的[15:8]位和第二扩展尾数的[15:8]位、第一扩展尾数的[23:16]位和第二扩展尾数的[7:0]位、第一扩展尾数的[23:16]位和第二扩展尾数的[15:8]位、第一扩展尾数的[7:0]位和第二扩展尾数的[23:16]位、第一扩展尾数的[15:8]位和第二扩展尾数的[23:16]位以及第一扩展尾数的[23:16]位和第二扩展尾数的[23:16]位;第一乘法单元的输出端与第一17bit加法器的输入端和第三选择器的第一输入端连接,第一17bit加法器的输出端与第三选择器的第二输入端连接;第四选择器、第二乘法单元和第三乘法单元的输出端均与第一4-2压缩器的输入端连接;第四乘法单元的输出端与第二17bit加法器的输入端和第四选择器的第一输入端连接,第二17bit加法器的输出端与第四选择器的第二输入端连接;第一4-2压缩器的输出端与第一5-2压缩器的输入端和第一33bit加法器的输入端均连接,第一33bit加法器的输出端与第二33bit加法器的输入端和第五选择器的第一输入端均连接,第二33bit加法器的输出端与第五选择器的第二输入端均连接;第六乘法单元、第七乘法单元、第八乘法单元和第九乘法单元的输出端均与第二4-2压缩器的输入端连接,第五乘法单元和第二4-2压缩器的输出端均与第一5-2压缩器的输入端连接,第一5-2压缩器的输出端与48bit加法器的输入端连接,48bit加法器的输出端与对阶模块连接,用于输出浮点结果的临时尾数;第三选择器、第四选择器和第五选择器的控制端均与使能控制模块连接,第三选择器和第四选择器均用于接收第一控制信号,第五选择器用于接收第二控制信号;第三选择器的输出端用于输出第一8bit整型结果,第四选择器的输出端用于输出16bit整型结果,第五选择器输出端用于输出第二8bit整型结果。
所述第一4-2压缩器和第二4-2压缩器均为改进型4-2压缩器,改进型4-2压缩器包括第四异或门、第五异或门、第六异或门、第七异或门、第九选择器和第十选择器;第四异或门的第一输入端与第三选择器的输出端或第六乘法单元的输出端连接,第二输入端与第二乘法单元的输出端或第七乘法单元的输出端连接;第五异或门的第一输入端与第三乘法单元的输出端或第八乘法单元的输出端连接,第二输入端与第四选择器的输出端或第九乘法单元的输出端连接;第九选择器的第一输入端与第三选择器的输出端或第六乘法单元的输出端连接,第二输入端与第三乘法单元的输出端或第八乘法单元的输出端连接,第九选择器的控制端与第四异或门的输出端连接,输出端用于输出第一进位输入;第六异或门的第一输入端和第二输入端分别与第四异或门和第五异或门的输出端均连接,第十选择器的第一输入端与第四选择器的输出端或第九乘法单元的输出端连接,第二输入端用于输入第一进位输入,第十选择器的控制端与第六异或门的输出端连接,第七异或门的第一输入端与第六异或门的输出端连接,第二输入端用于输入第一进位输入;第十选择器的输出端和第七异或门的输出端均与第一5-2压缩器的输入端连接,或者均与第一5-2压缩器的输入端及第一33bit加法器的输入端连接。
所述第一5-2压缩器为改进型5-2压缩器,包括第八异或门、第九异或门、第十异或门、第十一异或门、第十二异或门、第十三异或门、第十一选择器、第十二选择器以及第十三选择器;第八异或门的第一输入端与第一4-2压缩器的第一输出端连接,第二输入端与第一4-2压缩器的第二输出端连接;第九异或门的第一输入端与第二4-2压缩器的第一输出端连接,第二输入端与第二4-2压缩器的第二输出端连接;第十一选择器的第一输入端与第一4-2压缩器的第一输出端连接,第二输入端与第五乘法单元的输出端连接,控制端与第八异或门的输出端连接,输出端与第二进位输入连接;第十二选择器的第一输入端与第二4-2压缩器的第一输出端连接,第二输入端与第八异或门的输出端连接,控制端与第九异或门的输出端连接,输出端与第三进位输入连接;第十异或门的第一输入端与第八异或门的输出端连接,第二输入端与第九异或门的输出端连接;第十一异或门的第一输入端与第五乘法单元的输出端连接,第二输入端与第十异或门的输出端连接;第十二异或门的第一输入端和第二输入端分别用于输入第二进位输入和第三进位输入;第十三选择器的第一输入端用于输入第二进位输入,第二输入端与第十一异或门的输出端连接,控制端与第十二异或门的输出端连接,输出端与48bit加法器的第一输入端连接;第十三异或门的第一输入端与第十一异或门的输出端连接,第二输入端与第十二异或门的输出端连接,输出端与48bit加法器的第二输入端连接。
所述第一乘法单元、第二乘法单元、第三乘法单元、第四乘法单元、第五乘法单元、第六乘法单元、第七乘法单元、第八乘法单元以及第九乘法单元均包括基4-booth编码单元、第二5-2压缩器和第三17bit加法器;基4-booth编码单元的输入端为乘法单元的输入端;第二5-2压缩器的输入端与基-4booth编码单元的输出端连接,第三17bit加法器的输入端连接5-2压缩器的输出端,第三17bit加法器的输出端为乘法单元的输出端。
所述第二5-2压缩器为改进型5-2压缩器。
所述对阶模块包括与门、第六选择器、第七选择器、48bit并行移位寄存器以及第三10bit加法器;与门的输入端与可重构乘法模块连接,用于接收浮点结果的临时尾数的最高位,输出端与第六选择器的控制端和第七选择器的控制端均连接;第三10bit加法器的输入端和第六选择器的第二输入端均与前运算模块连接,且均用于接收浮点结果的临时阶码,输出端与第六选择器的第一输入端连接,第六选择器的输出端用于输出浮点结果的阶码;第七选择器的第一输入端和48bit并行移位寄存器的输入端均与可重构乘法模块连接,且均用于接收浮点结果的临时尾数,第二输入端与48bit并行移位寄存器的输出端连接,输出端用于输出浮点结果的尾数。
与现有技术相比,本发明具有以下有益效果:
综上,本发明可重构整型-浮点型乘法器,通过设置整型-浮点预处理模块和使能控制模块,可以在使能控制模块的控制下,将第一待处理数据和第二待处理数据转换为第一浮点型数据和第二浮点型数据,并且,将浮点型数据的尾数发送至可重构乘法模块,符号位及阶码均发送至前运算模块,进而可以在使能控制模块的控制下,可重构乘法模块实现整型乘法运算得到整型结果,或实现浮点乘法运算得到浮点结果的临时尾数,然后结合前运算模块得到的浮点结果的临时阶码并发送至对阶模块,通过对阶模块实现规格化处理,得到浮点结果的尾数和阶码,最终得到浮点结果。因此,该乘法器不仅能实现浮点乘法运算,而且能在不增加额外资源的情况下,实现整型乘法运算,可以充分满足当前人工智能芯片的需求,在面对不同精度、速度、资源要求时可以灵活选择数据运算模式,因此本发明具有更好的资源利用率、更好的功能性以及更好的通用性。
进一步的,在可重构乘法模块中加入了加法器,使其可以更为灵活地实现整型乘法或整型乘累加运算功能。
进一步的,在乘法单元中,采用了改进型压缩器,可以缩短电路的关键路径,提高***整体的工作频率。
附图说明
图1为本发明的可重构整型-浮点型乘法器结构框图;
图2为本发明的可重构整型-浮点型乘法器具体结构框图;
图3为本发明的整型-浮点预处理模块工作原理示意图;
图4为本发明的加法器工作原理示意图;
图5为本发明的3-2压缩器结构示意图;
图6为本发明的4-2压缩器结构示意图;
图7为本发明的5-2压缩器结构示意图;
图8为本发明的3-2压缩器门级结构示意图;
图9为本发明的改进型4-2压缩器门级结构示意图;
图10为本发明的改进型5-2压缩器门级结构示意图;
图11为本发明的乘法单元结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面结合附图对本发明做进一步详细描述:
参见图1,本发明提供一种可重构整型-浮点型乘法器,可以灵活实现整型乘法或浮点型乘法,具体的,该可重构整型-浮点型乘法器包括使能控制模块、整型-浮点预处理模块、前运算模块、可重构乘法模块和对阶模块。
其中,使能控制模块用于接收控制指令,根据控制指令生成第一控制信号和第二控制信号,并输出至整型-浮点预处理模块和可重构乘法模块。
具体的,参见图2,Decoder表示为译码器,表示MUX为选择器。使能控制模块包括译码器、第一选择器(MUX)和第二选择器;所述控制指令包括第一指令和第二指令;译码器的输入端用于接收第一指令,第一输出端连接第一选择器的第一输入端,第二输出端连接第二选择器的第一输入端,第一选择器的第二输入端和第二选择器的第二输入端均接低电平,第一选择器的控制端和第二选择器的控制端用于接收第二指令;第一选择器的输出端用于输出第一控制信号至整型-浮点预处理模块和可重构乘法模块,第二选择器的输出端用于输出第二控制信号至整型-浮点预处理模块和可重构乘法模块。
本实施例中,控制指令的一种实现方式如下:控制指令信号为ctrl,其位宽为3bit,即ctrl[2:0],其中,ctrl[1:0]为第一指令,最高位即ctrl[2]控制选择浮点操作模式或整型操作模式为第二指令。当ctrl[2]为“1”时,不论ctrl[1:0]为何值,都选择浮点乘法模式,即此时不论ctrl[1:0]为何值,可重构乘法模块都选择16bit乘法模式,以支持其完成浮点运算,当ctrl[2]为“0”时,切换为整型操作模式,当ctrl[1:0]为“00”时,选择16bit整型乘法模式,当ctrl[1:0]为“01”,选择16bit整型乘累加模式,选择16bit整型运算模式时可重构乘法模块的8bit运算全部选择乘法模式,当ctrl[1:0]为“10”时,选择两组8bit整型乘法模式,当ctrl[1:0]为“11”时,选择两组8bit整型乘累加模式,功能如下表1所示。
表1
Figure GDA0003713583210000101
整型-浮点预处理模块用于接收第一待处理数据和第二待处理数据,根据第一控制信号将第一待处理数据和第二待处理数据转换为第一浮点型数据和第二浮点型数据,将第一浮点型数据和第二浮点型数据的尾数的最高位前扩展1位1,得到第一扩展尾数和第二扩展尾数并发送至可重构乘法模块;将第一浮点型数据和第二浮点型数据的符号位及阶码均发送至前运算模块。
具体的,参见图2,所述整型-浮点预处理模块包括32bit比较器和32bit并行移位寄存器;32bit比较器的输入端用于接收第一待处理数据和第二待处理数据,控制端与使能控制模块连接,输出端与32bit并行移位寄存器的输入端连接;32bit并行移位寄存器的第一输出端和第二输出端与前运算模块连接,32bit并行移位寄存器的第三输出端、第四输出端、第五输出端、第六输出端、第七输出端及第八输出端均与可重构乘法模块连接;其中,32bit并行移位寄存器的第一输出端用于输出第一浮点型数据和第二浮点型数据的符号位;第二输出端用于输出第一浮点型数据和第二浮点型数据的阶码;第三输出端用于输出第一扩展尾数的[7:0]位;第四输出端用于输出第一扩展尾数的[15:8]位;第五输出端用于输出第一扩展尾数的[22:16]位;第六输出端用于输出第二扩展尾数的[7:0]位;第七输出端用于输出第二扩展尾数的[15:8]位;第八输出端用于输出第二扩展尾数的[22:16]位。
参见图3,其工作过程如下:为描述简洁,以a表示第一待处理数据,b表示第二待处理数据。如果a、b为16bit、1组8bit或2组8bit的数据,加上符号位为17bit、9bit或18bit,则代表此时为整型数据类型,使能控制模块选择整型操作模式,将a和b分别扩展为32bit,其中a[31]、b[31]都为0,a[30:23]、b[30:23]为“01111111”,此时如果要实现1组有符号16bit运算,那么将其符号位移位,即将其符号位写入a[16]、b[16],数据位写入a[15:0]、b[15:0],其余位补“0”,如果要实现1组有符号8bit运算,那么将其符号位写入a[16]、b[16],数据位写入a[7:0]、b[7:0],其余位补“0”,如果要实现的是2组有符号8bit运算,那么将其符号位写入a[16]、a[17]、b[16]、b[17],数据位写入a[7:0]、a[15:8]、b[7:0]、b[15:8],其余位补“0”,如果a和b为32bit数据,则默认为浮点数据类型,使能控制模块选择浮点操作模式,不对输入数据做任何处理。
前运算模块用于根据第一浮点型数据和第二浮点型数据的符号位,得到浮点结果的符号位;根据第一浮点型数据和第二浮点型数据的阶码,得到浮点结果的临时阶码并发送至对阶模块。
具体的,参见图2,所述前运算模块包括第一异或门、第一10bit加法器和第二10bit加法器;第一异或门(XOR)的输入端与整型-浮点预处理模块连接,用于接收第一浮点型数据和第二浮点型数据的符号位,输出端用于输出浮点结果的符号位;第一10bit加法器的输入端与整型-浮点预处理模块连接,用于接收第一浮点型数据和第二浮点型数据的阶码,输出端与第二10bit加法器的输入端连接,第二10bit加法器的输出端与对阶模块连接,用于输出浮点结果的临时阶码。
其原理如下:将a、b的符号位进行异或即可得到最终运算结果的符号位,在计算a、b阶码和的时候,为了考虑负数情况,此处将a、b阶码高位扩展“00”,即a[30:23]和b[30:23]前补“00”,使8bit阶码扩展为10bit,计算阶码和时还需要减去偏移量,对于本发明来说,这个偏移量为127。
参见图4,加法器采用组内并行组间串行的方式,本实施例中,以32bit加法器为例介绍各bit加法器的结构及原理。
具体的,现以低16bit加法器做原理说明,该16bit加法器使用4bit超前进位加法器构成,即使用了双重快速进位链,对于2个待处理16bit数据a、b,令gi=aibi,pi=ai+bi,其中,i为相应bit位。
每个小组的最高进位以小组gi、pi的表示形式,Ci用如下公式表示:
C3=g3+p3C2=g3+p3g2+p3p2g1+p3p2p1g0+p3p2p1p0Cin
C7=g7+p7C6=g7+p7g6+p7p6g5+p7p6p5g4+p7p6p5p4C3
C11=g11+p11C10=g11+p11g10+p11p10g9+p11p10p9g8+p11p10p9p8C7
C15=g15+p15C14=g15+p15g14+p15p14g13+p15p14p13g12+p15p14p13p12C11
其中,C为进位,in为输入,i为相应bit位进位输出。
令G0=g3+p3g2+p3p2g1+p3p2p1g0,P0=p3p2p1p0,G1、G2、G3、P1、P2、P3同理,则:C3=G0+P0Cin,C7=G1+P1C3,C11=G2+P2C7,C15=G3+P3C11
进一步展开:C3=G0+P0Cin,C7=G1+P1G0+P1P0Cin,C11=G2+P2G1+P2P1G0+P2P1P0Cin,C15=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0Cin
经过上述公式变换可以看出,G0仅与本小组内的gi、pi有关,不依赖于进位Cin。第2小组至第4小组同理,将其进一步展开便得到第二重进位链。
32bit加法器分为两个大组,每个大组包含4个小组,第一大组的高位输出C15、C11、C7、C3同时生成,第二大组的高位输出C31、C27、C23、C19也是同时生成,其中第一大组的C15串行输入到第二大组。对于第一大组的每个小组来说,每个小组都会产生Gi、传递条件Pi和该小组的低位进位,但是不能产生该小组的最高进位,即第4小组产生G3、P3、C14、C13、C12,但不产生C15,第3小组产生G2、P2、C10、C9、C8,但不产生C11,第2小组产生G1、P1、C6、C5、C4,但不产生C7,第1小组产生G0、P0、C2、C1、C0,但不产生C3。第二大组4个小组同理。
可重构乘法模块用于根据第一控制信号和第二控制信号,将第一扩展尾数和第二扩展尾数进行可重构处理,得到整型结果或浮点结果的临时尾数;将浮点结果的临时尾数发送至对阶模块。
具体的,参见图2,所述可重构乘法模块包括第一乘法单元、第二乘法单元、第三乘法单元、第四乘法单元、第五乘法单元、第六乘法单元、第七乘法单元、第八乘法单元、第九乘法单元、第一4-2压缩器、第二4-2压缩器、第一5-2压缩器、第一17bit加法器、第二17bit加法器、第一33bit加法器、第二33bit加法器、48bit加法器、第三选择器、第四选择器以及第五选择器;第一乘法单元、第二乘法单元、第三乘法单元、第四乘法单元、第五乘法单元、第六乘法单元、第七乘法单元、第八乘法单元以及第九乘法单元的输入端均与整型-浮点预处理模块连接,分别用于接收第一扩展尾数的[7:0]位和第二扩展尾数的[7:0]位、第一扩展尾数的[15:8]位和第二扩展尾数的[7:0]位、第一扩展尾数的[7:0]位和第二扩展尾数的[15:8]位、第一扩展尾数的[15:8]位和第二扩展尾数的[15:8]位、第一扩展尾数的[23:16]位和第二扩展尾数的[7:0]位、第一扩展尾数的[23:16]位和第二扩展尾数的[15:8]位、第一扩展尾数的[7:0]位和第二扩展尾数的[23:16]位、第一扩展尾数的[15:8]位和第二扩展尾数的[23:16]位以及第一扩展尾数的[23:16]位和第二扩展尾数的[23:16]位;第一乘法单元的输出端与第一17bit加法器的输入端和第三选择器的第一输入端连接,第一17bit加法器的输出端与第三选择器的第二输入端连接;第四选择器、第二乘法单元和第三乘法单元的输出端均与第一4-2压缩器的输入端连接;第四乘法单元的输出端与第二17bit加法器的输入端和第四选择器的第一输入端连接,第二17bit加法器的输出端与第四选择器的第二输入端连接;第一4-2压缩器的输出端与第一5-2压缩器的输入端和第一33bit加法器的输入端均连接,第一33bit加法器的输出端与第二33bit加法器的输入端和第五选择器的第一输入端均连接,第二33bit加法器的输出端与第五选择器的第二输入端均连接;第六乘法单元、第七乘法单元、第八乘法单元和第九乘法单元的输出端均与第二4-2压缩器的输入端连接,第五乘法单元和第二4-2压缩器的输出端均与第一5-2压缩器的输入端连接,第一5-2压缩器的输出端与48bit加法器的输入端连接,48bit加法器的输出端与对阶模块连接,用于输出浮点结果的临时尾数;第三选择器、第四选择器和第五选择器的控制端均与使能控制模块连接,第三选择器和第四选择器均用于接收第一控制信号,第五选择器用于接收第二控制信号;第三选择器的输出端用于输出第一8bit整型结果,第四选择器的输出端用于输出16bit整型结果,第五选择器输出端用于输出第二8bit整型结果。
参见图5至10,3-2压缩器由2个异或门和1个二输入选择器构成,第二异或门的输入连接第一、第二待压缩数据,第三异或门的输入连接第二异或门的输出和第三待压缩数据,第八选择器的输入连接第一和第三待压缩数据,选择信号连接第二异或门的输出。4-2压缩器由2个3-2压缩器构成,第一3-2压缩器的输入连接第一、第二、第三待压缩数据,第二3-2压缩器的输入连接第四待压缩数据、第一进位输入和第一3-2压缩器的输出。5-2压缩器由3个3-2压缩器构成,第三3-2压缩器的输入连接第一、第二、第三待压缩数据,第四3-2压缩器的输入连接第四待压缩数据、第一进位输入和第三3-2压缩器的输出,第五3-2压缩器的输入连接第五待压缩数据、第二进位输入和第四3-2压缩器的输出。
本实施例中,提供了改进型4-2压缩器和改进型5-2压缩器。在构建上述的可重构乘法模块时,第一4-2压缩器和第二4-2压缩器可以使用现有的4-2压缩器也可以使用改进型4-2压缩器。
优选的,本实施例中,所述第一4-2压缩器和第二4-2压缩器均为改进型4-2压缩器,改进型4-2压缩器均包括第四异或门、第五异或门、第六异或门、第七异或门、第九选择器和第十选择器;第四异或门的第一输入端与第三选择器的输出端或第六乘法单元的输出端连接,第二输入端与第二乘法单元的输出端或第七乘法单元的输出端连接;第五异或门的第一输入端与第三乘法单元的输出端或第八乘法单元的输出端连接,第二输入端与第四选择器的输出端或第九乘法单元的输出端连接;第九选择器的第一输入端与第三选择器的输出端或第六乘法单元的输出端连接,第二输入端与第三乘法单元的输出端或第八乘法单元的输出端连接,第九选择器的控制端与第四异或门的输出端连接,输出端与第一进位输入连接;第六异或门的第一输入端和第二输入端分别与第四异或门和第五异或门的输出端均连接,第十选择器的第一输入端与第四选择器的输出端或第九乘法单元的输出端连接,第二输入端用于输入第一进位输入,第十选择器的控制端与第六异或门的输出端连接,第七异或门的第一输入端与第六异或门的输出端连接,第二输入端用于输入第一进位输入;第十选择器的输出端和第七异或门的输出端均与第一5-2压缩器的输入端连接,或者均与第一5-2压缩器的输入端及第一33bit加法器的输入端连接。
所述第一5-2压缩器为改进型5-2压缩器,包括第八异或门、第九异或门、第十异或门、第十一异或门、第十二异或门、第十三异或门、第十一选择器、第十二选择器以及第十三选择器;第八异或门的第一输入端与第一4-2压缩器的第一输出端连接,第二输入端与第一4-2压缩器的第二输出端连接;第九异或门的第一输入端与第二4-2压缩器的第一输出端连接,第二输入端与第二4-2压缩器的第二输出端连接;第十一选择器的第一输入端与第一4-2压缩器的第一输出端连接,第二输入端与第五乘法单元的输出端连接,控制端与第八异或门的输出端连接,输出端与第二进位输入连接;第十二选择器的第一输入端与第二4-2压缩器的第一输出端连接,第二输入端与第八异或门的输出端连接,控制端与第九异或门的输出端连接,输出端与第三进位输入连接;第十异或门的第一输入端与第八异或门的输出端连接,第二输入端与第九异或门的输出端连接;第十一异或门的第一输入端与第五乘法单元的输出端连接,第二输入端与第十异或门的输出端连接;第十二异或门的第一输入端和第二输入端分别用于输入第二进位输入和第三进位输入;第十三选择器的第一输入端用于输入第二进位输入,第二输入端与第十一异或门的输出端连接,控制端与第十二异或门的输出端连接,输出端与48bit加法器的第一输入端连接;第十三异或门的第一输入端与第十一异或门的输出端连接,第二输入端与第十二异或门的输出端连接,输出端与48bit加法器的第二输入端连接。
改进型压缩器的设计原理如下:
压缩器用于压缩多组数据以缩短电路的关键路径。其中,3-2压缩器采用进位保留形式实现,其本质是全加器(FA),逻辑表达式为:
Figure GDA0003713583210000171
Figure GDA0003713583210000172
其中,X为待压缩数据,Sum为压缩和,Carry为压缩进位。
4-2压缩器结构是将2个3-2压缩器级联起来使用,将第一级压缩器的输出作为第二级压缩器的输入。5-2压缩器结构是将3个3-2压缩器级联起来使用,将第一级压缩器的输出作为第二级的输入,将第二级压缩器的输出作为第三级压缩器的输入。这样便可将3个、4个或5个输入数据压缩为2个输出数据。
为了方便延时计算,这里统一使用二输入的选择器和异或门来对压缩器进行建模,此处将3-2压缩器的逻辑表达式变换为:
Figure GDA0003713583210000173
Figure GDA0003713583210000174
4-2压缩器及5-2压缩器关键路径过长,可能成为限制整体电路工作频率的瓶颈,因此这里改变其电路结构。
对于4-2压缩器,将其逻辑表达式变换为:
Figure GDA0003713583210000181
Figure GDA0003713583210000182
Figure GDA0003713583210000183
其中,out为进位输出。
3-2压缩器关键路径包含2级XOR门延时,4-2压缩器关键路径包含4级XOR门延时,改进型4-2压缩器关键路径仅包含3级XOR门延时,这意味着其关键路径延时缩短了25%。
对于5-2压缩器,将其逻辑表达式变换为:
Figure GDA0003713583210000184
Figure GDA0003713583210000185
Figure GDA0003713583210000186
Figure GDA0003713583210000187
5-2压缩器关键路径包含6级XOR门延时,改进型5-2压缩器将输入全并行化,且Cin2不依赖于Cout1,关键路径仅包含4级XOR门延时,这意味着其关键路径延时缩短了33.3%。
具体的,参见图11,所述第一乘法单元、第二乘法单元、第三乘法单元、第四乘法单元、第五乘法单元、第六乘法单元、第七乘法单元、第八乘法单元以及第九乘法单元均包括基4-booth编码单元、第二5-2压缩器和第三17bit加法器;基4-booth编码单元的输入端为乘法单元的输入端;第二5-2压缩器的输入端与基-4booth编码单元的输出端连接,第三17bit加法器的输入端连接5-2压缩器的输出端,第三17bit加法器的输出端为乘法单元的输出端。
其中,乘法单元实现的是8bit有符号乘法,即被乘数与乘数皆为9bit,最高位为符号位,将9bit被乘数进行原码、2倍原码、补码、2倍补码转换,将9bit乘数进行基-4booth编码,其中需要在最低位添加辅助位“0”,最高位添加辅助位“符号位sign”,每相邻3bit一组进行编码,其中每3bit的最高位需要重复编码,然后根据编码值得到5个部分积,使用一级5-2压缩器将其压缩,最后采用17bit加法器得到最终结果。
优选的,本实施例中,所述第二5-2压缩器为改进型5-2压缩器。
对阶模块用于根据浮点结果的临时尾数的最高位,将浮点结果的临时尾数和浮点结果的临时阶码进行规格化处理,得到浮点结果的尾数和阶码。
具体的,参见图2,所述对阶模块包括与门、第六选择器、第七选择器、48bit并行移位寄存器以及第三10bit加法器;与门的输入端与可重构乘法模块连接,用于接收浮点结果的临时尾数的最高位,输出端与第六选择器的控制端和第七选择器的控制端均连接;第三10bit加法器的输入端和第六选择器的第二输入端均与前运算模块连接,且均用于接收浮点结果的临时阶码,输出端与第六选择器的第一输入端连接,第六选择器的输出端用于输出浮点结果的阶码;第七选择器的第一输入端和48bit并行移位寄存器的输入端均与可重构乘法模块连接,且均用于接收浮点结果的临时尾数,第二输入端与48bit并行移位寄存器的输出端连接,输出端用于输出浮点结果的尾数。
由于24bit尾数相乘的结果最高位可能为“1”,为了完成规格化尾数处理,如果结果的最高位为“1”,那么尾数右移一位,阶码加1,如果最高位不为“1”,不做任何处理。
该可重构整型-浮点型乘法器最终的输出结果由第三选择器的输出、第四选择器的输出、第五选择器的输出、第一异或门的输出、第六选择器的输出、第七选择器的输出共同完成。
综上,本发明可重构整型-浮点型乘法器,采用可重构的思想,通过对输入数据进行位宽判定与移位扩展,将其统一转换为浮点格式,对浮点尾数重构,采用独立乘法单元实现尾数乘法,在不增加额外资源的情况下可以实现整型乘法运算,同时在可重构乘法模块中加入了加法器,使其可以更为灵活地实现整型乘法或整型乘累加运算功能,顶层使能控制模块通过译码器和选择器控制并选择整型或浮点型运算功能,在乘法单元中,采用了改进型压缩器,可以缩短电路的关键路径,提高***整体的工作频率。整体设计可以充分满足当前人工智能芯片的需求,在面对不同精度、速度、资源要求时可以灵活选择数据运算模式,因此本发明具有更好的资源利用率、更好的功能性以及更好的通用性。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

Claims (10)

1.一种可重构整型-浮点型乘法器,其特征在于,包括使能控制模块、整型-浮点预处理模块、前运算模块、可重构乘法模块和对阶模块;
使能控制模块用于接收控制指令,根据控制指令生成第一控制信号和第二控制信号,并输出至整型-浮点预处理模块和可重构乘法模块;
整型-浮点预处理模块用于接收第一待处理数据和第二待处理数据,根据第一控制信号将第一待处理数据和第二待处理数据转换为第一浮点型数据和第二浮点型数据,将第一浮点型数据和第二浮点型数据的尾数的最高位前扩展1位1,得到第一扩展尾数和第二扩展尾数并发送至可重构乘法模块;将第一浮点型数据和第二浮点型数据的符号位及阶码均发送至前运算模块;
前运算模块用于根据第一浮点型数据和第二浮点型数据的符号位,得到浮点结果的符号位;根据第一浮点型数据和第二浮点型数据的阶码,得到浮点结果的临时阶码并发送至对阶模块;
可重构乘法模块用于根据第一控制信号和第二控制信号,将第一扩展尾数和第二扩展尾数进行可重构处理,得到整型结果或浮点结果的临时尾数;将浮点结果的临时尾数发送至对阶模块;
对阶模块用于根据浮点结果的临时尾数的最高位,将浮点结果的临时尾数和浮点结果的临时阶码进行规格化处理,得到浮点结果的尾数和阶码。
2.根据权利要求1所述的可重构整型-浮点型乘法器,其特征在于,所述使能控制模块包括译码器、第一选择器和第二选择器;
所述控制指令包括第一指令和第二指令;译码器的输入端用于接收第一指令,第一输出端连接第一选择器的第一输入端,第二输出端连接第二选择器的第一输入端,第一选择器的第二输入端和第二选择器的第二输入端均接低电平,第一选择器的控制端和第二选择器的控制端用于接收第二指令;第一选择器的输出端用于输出第一控制信号至整型-浮点预处理模块和可重构乘法模块,第二选择器的输出端用于输出第二控制信号至整型-浮点预处理模块和可重构乘法模块。
3.根据权利要求1所述的可重构整型-浮点型乘法器,其特征在于,所述整型-浮点预处理模块包括32bit比较器和32bit并行移位寄存器;
32bit比较器的输入端用于接收第一待处理数据和第二待处理数据,控制端与使能控制模块连接,输出端与32bit并行移位寄存器的输入端连接;32bit并行移位寄存器的第一输出端和第二输出端与前运算模块连接,32bit并行移位寄存器的第三输出端、第四输出端、第五输出端、第六输出端、第七输出端及第八输出端均与可重构乘法模块连接;
其中,32bit并行移位寄存器的第一输出端用于输出第一浮点型数据和第二浮点型数据的符号位;第二输出端用于输出第一浮点型数据和第二浮点型数据的阶码;第三输出端用于输出第一扩展尾数的[7:0]位;第四输出端用于输出第一扩展尾数的[15:8]位;第五输出端用于输出第一扩展尾数的[22:16]位;第六输出端用于输出第二扩展尾数的[7:0]位;第七输出端用于输出第二扩展尾数的[15:8]位;第八输出端用于输出第二扩展尾数的[22:16]位。
4.根据权利要求1所述的可重构整型-浮点型乘法器,其特征在于,所述前运算模块包括第一异或门、第一10bit加法器和第二10bit加法器;
第一异或门的输入端与整型-浮点预处理模块连接,用于接收第一浮点型数据和第二浮点型数据的符号位,输出端用于输出浮点结果的符号位;
第一10bit加法器的输入端与整型-浮点预处理模块连接,用于接收第一浮点型数据和第二浮点型数据的阶码,输出端与第二10bit加法器的输入端连接,第二10bit加法器的输出端与对阶模块连接,用于输出浮点结果的临时阶码。
5.根据权利要求1所述的可重构整型-浮点型乘法器,其特征在于,所述可重构乘法模块包括第一乘法单元、第二乘法单元、第三乘法单元、第四乘法单元、第五乘法单元、第六乘法单元、第七乘法单元、第八乘法单元、第九乘法单元、第一4-2压缩器、第二4-2压缩器、第一5-2压缩器、第一17bit加法器、第二17bit加法器、第一33bit加法器、第二33bit加法器、48bit加法器、第三选择器、第四选择器以及第五选择器;
第一乘法单元、第二乘法单元、第三乘法单元、第四乘法单元、第五乘法单元、第六乘法单元、第七乘法单元、第八乘法单元以及第九乘法单元的输入端均与整型-浮点预处理模块连接,分别用于接收第一扩展尾数的[7:0]位和第二扩展尾数的[7:0]位、第一扩展尾数的[15:8]位和第二扩展尾数的[7:0]位、第一扩展尾数的[7:0]位和第二扩展尾数的[15:8]位、第一扩展尾数的[15:8]位和第二扩展尾数的[15:8]位、第一扩展尾数的[23:16]位和第二扩展尾数的[7:0]位、第一扩展尾数的[23:16]位和第二扩展尾数的[15:8]位、第一扩展尾数的[7:0]位和第二扩展尾数的[23:16]位、第一扩展尾数的[15:8]位和第二扩展尾数的[23:16]位以及第一扩展尾数的[23:16]位和第二扩展尾数的[23:16]位;
第一乘法单元的输出端与第一17bit加法器的输入端和第三选择器的第一输入端连接,第一17bit加法器的输出端与第三选择器的第二输入端连接;第四选择器、第二乘法单元和第三乘法单元的输出端均与第一4-2压缩器的输入端连接;第四乘法单元的输出端与第二17bit加法器的输入端和第四选择器的第一输入端连接,第二17bit加法器的输出端与第四选择器的第二输入端连接;第一4-2压缩器的输出端与第一5-2压缩器的输入端和第一33bit加法器的输入端均连接,第一33bit加法器的输出端与第二33bit加法器的输入端和第五选择器的第一输入端均连接,第二33bit加法器的输出端与第五选择器的第二输入端均连接;第六乘法单元、第七乘法单元、第八乘法单元和第九乘法单元的输出端均与第二4-2压缩器的输入端连接,第五乘法单元和第二4-2压缩器的输出端均与第一5-2压缩器的输入端连接,第一5-2压缩器的输出端与48bit加法器的输入端连接,48bit加法器的输出端与对阶模块连接,用于输出浮点结果的临时尾数;
第三选择器、第四选择器和第五选择器的控制端均与使能控制模块连接,第三选择器和第四选择器均用于接收第一控制信号,第五选择器用于接收第二控制信号;第三选择器的输出端用于输出第一8bit整型结果,第四选择器的输出端用于输出16bit整型结果,第五选择器输出端用于输出第二8bit整型结果。
6.根据权利要求5所述的可重构整型-浮点型乘法器,其特征在于,所述第一4-2压缩器和第二4-2压缩器均为改进型4-2压缩器,改进型4-2压缩器包括第四异或门、第五异或门、第六异或门、第七异或门、第九选择器和第十选择器;
第四异或门的第一输入端与第三选择器的输出端或第六乘法单元的输出端连接,第二输入端与第二乘法单元的输出端或第七乘法单元的输出端连接;第五异或门的第一输入端与第三乘法单元的输出端或第八乘法单元的输出端连接,第二输入端与第四选择器的输出端或第九乘法单元的输出端连接;第九选择器的第一输入端与第三选择器的输出端或第六乘法单元的输出端连接,第二输入端与第三乘法单元的输出端或第八乘法单元的输出端连接,第九选择器的控制端与第四异或门的输出端连接,输出端用于输出第一进位输入;第六异或门的第一输入端和第二输入端分别与第四异或门和第五异或门的输出端均连接,第十选择器的第一输入端与第四选择器的输出端或第九乘法单元的输出端连接,第二输入端用于输入第一进位输入,第十选择器的控制端与第六异或门的输出端连接,第七异或门的第一输入端与第六异或门的输出端连接,第二输入端用于输入第一进位输入;第十选择器的输出端和第七异或门的输出端均与第一5-2压缩器的输入端连接,或者均与第一5-2压缩器的输入端及第一33bit加法器的输入端连接。
7.根据权利要求5所述的可重构整型-浮点型乘法器,其特征在于,所述第一5-2压缩器为改进型5-2压缩器,包括第八异或门、第九异或门、第十异或门、第十一异或门、第十二异或门、第十三异或门、第十一选择器、第十二选择器以及第十三选择器;
第八异或门的第一输入端与第一4-2压缩器的第一输出端连接,第二输入端与第一4-2压缩器的第二输出端连接;第九异或门的第一输入端与第二4-2压缩器的第一输出端连接,第二输入端与第二4-2压缩器的第二输出端连接;第十一选择器的第一输入端与第一4-2压缩器的第一输出端连接,第二输入端与第五乘法单元的输出端连接,控制端与第八异或门的输出端连接,输出端与第二进位输入连接;第十二选择器的第一输入端与第二4-2压缩器的第一输出端连接,第二输入端与第八异或门的输出端连接,控制端与第九异或门的输出端连接,输出端与第三进位输入连接;第十异或门的第一输入端与第八异或门的输出端连接,第二输入端与第九异或门的输出端连接;第十一异或门的第一输入端与第五乘法单元的输出端连接,第二输入端与第十异或门的输出端连接;第十二异或门的第一输入端和第二输入端分别用于输入第二进位输入和第三进位输入;第十三选择器的第一输入端用于输入第二进位输入,第二输入端与第十一异或门的输出端连接,控制端与第十二异或门的输出端连接,输出端与48bit加法器的第一输入端连接;第十三异或门的第一输入端与第十一异或门的输出端连接,第二输入端与第十二异或门的输出端连接,输出端与48bit加法器的第二输入端连接。
8.根据权利要求5所述的可重构整型-浮点型乘法器,其特征在于,所述第一乘法单元、第二乘法单元、第三乘法单元、第四乘法单元、第五乘法单元、第六乘法单元、第七乘法单元、第八乘法单元以及第九乘法单元均包括基4-booth编码单元、第二5-2压缩器和第三17bit加法器;
基4-booth编码单元的输入端为乘法单元的输入端;第二5-2压缩器的输入端与基-4booth编码单元的输出端连接,第三17bit加法器的输入端连接5-2压缩器的输出端,第三17bit加法器的输出端为乘法单元的输出端。
9.根据权利要求8所述的可重构整型-浮点型乘法器,其特征在于,所述第二5-2压缩器为改进型5-2压缩器。
10.根据权利要求1所述的可重构整型-浮点型乘法器,其特征在于,所述对阶模块包括与门、第六选择器、第七选择器、48bit并行移位寄存器以及第三10bit加法器;与门的输入端与可重构乘法模块连接,用于接收浮点结果的临时尾数的最高位,输出端与第六选择器的控制端和第七选择器的控制端均连接;第三10bit加法器的输入端和第六选择器的第二输入端均与前运算模块连接,且均用于接收浮点结果的临时阶码,输出端与第六选择器的第一输入端连接,第六选择器的输出端用于输出浮点结果的阶码;第七选择器的第一输入端和48bit并行移位寄存器的输入端均与可重构乘法模块连接,且均用于接收浮点结果的临时尾数,第二输入端与48bit并行移位寄存器的输出端连接,输出端用于输出浮点结果的尾数。
CN202110444216.7A 2021-04-23 2021-04-23 一种可重构整型-浮点型乘法器 Active CN113157247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110444216.7A CN113157247B (zh) 2021-04-23 2021-04-23 一种可重构整型-浮点型乘法器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110444216.7A CN113157247B (zh) 2021-04-23 2021-04-23 一种可重构整型-浮点型乘法器

Publications (2)

Publication Number Publication Date
CN113157247A CN113157247A (zh) 2021-07-23
CN113157247B true CN113157247B (zh) 2022-10-25

Family

ID=76870015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110444216.7A Active CN113157247B (zh) 2021-04-23 2021-04-23 一种可重构整型-浮点型乘法器

Country Status (1)

Country Link
CN (1) CN113157247B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116090513A (zh) * 2021-11-03 2023-05-09 深圳市中兴微电子技术有限公司 矩阵乘法的运算方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN108287681A (zh) * 2018-02-14 2018-07-17 中国科学院电子学研究所 一种单精度浮点融合点乘运算单元
CN110688086A (zh) * 2019-09-06 2020-01-14 西安交通大学 一种可重构的整型-浮点加法器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710228B2 (en) * 2014-12-29 2017-07-18 Imagination Technologies Limited Unified multiply unit
CN105335127A (zh) * 2015-10-29 2016-02-17 中国人民解放军国防科学技术大学 Gpdsp中支持浮点除法的标量运算单元结构
CN109284827A (zh) * 2017-07-19 2019-01-29 阿里巴巴集团控股有限公司 神经网络计算方法、设备、处理器及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN108287681A (zh) * 2018-02-14 2018-07-17 中国科学院电子学研究所 一种单精度浮点融合点乘运算单元
CN110688086A (zh) * 2019-09-06 2020-01-14 西安交通大学 一种可重构的整型-浮点加法器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Implementation of 32-Bit Complex Floating Point Multiplier Using Vedic Multiplier, Array Multiplier and Combined integer and floating point Multiplier;R.Rathod et al.;《2020 IEEE International Conference for Innovation in Technology》;20210101;全文 *
Minimally Biased Multipliers for Approximate Integer and Floating-Point Multiplication;H.Saadat et al.;《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;20181016;第37卷(第11期);全文 *
基于FPGA的可配置浮点向量乘法单元设计实现;黄兆伟 等;《计算机应用研究》;20200930;第37卷(第9期);全文 *

Also Published As

Publication number Publication date
CN113157247A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
CN107977191B (zh) 一种低功耗并行乘法器
US20210349692A1 (en) Multiplier and multiplication method
CN111832719A (zh) 一种定点量化的卷积神经网络加速器计算电路
JP4290202B2 (ja) ブース乗算の装置および方法
CN108255777B (zh) 用于fpga的嵌入式浮点型dsp硬核结构
CN109753268B (zh) 多粒度并行运算乘法器
CN109144473B (zh) 一种基于冗余odds数的十进制3:2压缩器结构
CN109325590B (zh) 用于实现计算精度可变的神经网络处理器的装置
CN113157247B (zh) 一种可重构整型-浮点型乘法器
Zhang et al. Parallel hybrid stochastic-binary-based neural network accelerators
CN102184086A (zh) 一种Booth编码器及乘法器
CN112764712B (zh) 一种高性能近似Booth乘法器及计算方法
CN103955585B (zh) 一种适用于低功耗容错电路的fir滤波器结构
CN110825346A (zh) 一种低逻辑复杂度的无符号近似乘法器
US7840628B2 (en) Combining circuitry
Daud et al. Hybrid modified booth encoded algorithm-carry save adder fast multiplier
Ping-hua et al. High-speed parallel 32× 32-b multiplier using a radix-16 Booth encoder
CN110705196B (zh) 一种基于随机计算的无误差加法器
Kumar et al. Complex multiplier: implementation using efficient algorithms for signal processing application
CN114237550A (zh) 一种基于Wallace树的多输入移位求和累加器
CN209496362U (zh) 三输入n位二进制加法器
CN111897513A (zh) 一种基于反向极性技术的乘法器及其代码生成方法
CN113268219A (zh) 一种带二进制补码转换的加法器电路
Bokade et al. CLA based 32-bit signed pipelined multiplier
CN113128141A (zh) 一种基于无误差随机计算的中值滤波***

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
GR01 Patent grant
GR01 Patent grant