CN109828744A - 一种基于fpga的可配置浮点向量乘法ip核 - Google Patents

一种基于fpga的可配置浮点向量乘法ip核 Download PDF

Info

Publication number
CN109828744A
CN109828744A CN201910088644.3A CN201910088644A CN109828744A CN 109828744 A CN109828744 A CN 109828744A CN 201910088644 A CN201910088644 A CN 201910088644A CN 109828744 A CN109828744 A CN 109828744A
Authority
CN
China
Prior art keywords
multiplication
adder
data
array
vector
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.)
Granted
Application number
CN201910088644.3A
Other languages
English (en)
Other versions
CN109828744B (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.)
Northeast Normal University
Original Assignee
Northeast Normal 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 Northeast Normal University filed Critical Northeast Normal University
Priority to CN201910088644.3A priority Critical patent/CN109828744B/zh
Publication of CN109828744A publication Critical patent/CN109828744A/zh
Application granted granted Critical
Publication of CN109828744B publication Critical patent/CN109828744B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Advance Control (AREA)

Abstract

本发明涉及一种基于FPGA的可配置浮点向量乘法IP核,包括:运算控制器、乘法阵列模块和加法阵列模块;运算控制器用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互;乘法阵列模块用于实现浮点向量元素乘法运算,加法阵列模块用于实现向量中各元素相乘后累加;该IP核的运算并行度与运算精度可配置,具有高度的灵活性与通用性,有效地提高了FPGA硬件资源利用率;集成运算控制器,解决了基于FPGA的计算加速系统设计周期长的问题;也充分发挥了FPGA并行运行与硬件可重构的优势,能有效地实现FPGA并行计算加速;尤其在时下热门的神经网络计算对精度要求不高但计算密度巨大的情况下,根据需求合理配置运算器能有效提高资源利用率与运算效率。

Description

一种基于FPGA的可配置浮点向量乘法IP核
技术领域
本发明涉及边缘计算,并行计算加速技术领域,特别涉及一种基于FPGA的可配置浮点向量乘法IP核。
背景技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA作为目前主要异构计算平台之一,具有硬件可重构、并行运行和低功耗的优点,适用于嵌入式平台计算加速。
以向量乘法为例,两个n维列向量A=[a0,a1,…,an]T与B=[b0,b1,…,bn]T,其向量乘法运算可表示为典型的向量乘法运算应用广泛,如人工神经网络中的净输入运算:
A=WTX;W=[b,w0,w1,…,wn]T,X=[1,x0,x1,…,xn]T#(1)
数字信号处理中的信号卷积运算:
图像处理中的图像卷积运算:
其中n与m为图像卷积核的长度与宽度。
同时,更复杂矩阵乘法运算可由一定次数的向量乘法运算实现。
目前针对FPGA设计的浮点向量乘法运算IP核存在调度复杂,运算精度固定,运算器数量不可配置等问题,导致基于FPGA的计算加速系统设计周期长,硬件资源浪费,能效比低,无法实现高计算复杂度算法对计算速度的要求。
且传统基于FPGA设计的浮点向量乘法运算加速器多采用IEEE754标准单精度(FP32)或双精度(FP64)浮点格式运算,无法根据计算需求定制运算精度,没有发挥FPGA硬件可重构的优势。
发明内容
本发明的目的在于提供了一种基于FPGA的可配置浮点向量乘法IP核,用于加速FPGA异构计算中的浮点向量乘法运算,通过可配置的方式有效地提高FPGA资源利用率与能效比。
本发明实施例提供一种基于FPGA的可配置浮点向量乘法IP核,包括:运算控制器、乘法阵列模块和加法阵列模块;
所述运算控制器,用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互;
所述乘法阵列模块,用于从所述运算控制器获得乘法阵列时钟,及从输入数据总线获得待运算的向量数据,完成浮点乘法运算,并输出乘法阵列输出向量;
所述加法阵列模块,用于从所述运算控制器获得加法阵列时钟和运算调度信号;并将所述乘法阵列输出向量与自身缓存数据进行累加,输出计算结果。
进一步地,所述运算控制器,包括指令接口部件、时钟管理部件、RAM控制部件、状态反馈部件与运算调度部件;
所述指令接口部件,用于为上层控制器调用向量乘法IP核提供控制接口,简化并行运算资源的调度;
所述时钟管理部件,用于控制运算阵列时钟的启停,降低空闲时系统的功耗;
所述RAM控制部件,用于产生地址信号,主动获取外部RAM数据,简化并行数据调度;
所述状态反馈部件,用于输出状态字,将所述IP核的运行状态与错误信息反馈给所述上层控制器;
所述运算调度部件,用于输出运算调度信号,调整各时刻的并行数据流向,维持运算有序进行。
进一步地,所述乘法阵列模块,包括多个可配置运算精度的流水线浮点乘法器;
所述浮点乘法器,采用第一、第二和第三级流水线设计,适用于可配置浮点格式计算;
第一级流水线对两个输入浮点数的符号、指数与尾数进行异或、定点加法与定点乘法运算,定点加法计算得到的指数和同时包含两个指数的偏置;
第二级流水线中判断指数上溢或下溢并减去一个指数偏置,同时对尾数乘积舍入处理,保留高Mn+2位;
第三级流水线中判断尾数是否产生进位,并对指数与尾数进行相应的规格化调整。
进一步地,所述加法阵列模块,包括多个可配置运算精度的流水线浮点加法器、一个D触发器与两个个数据选择器;
所述D触发器与两个数据选择器分别由所述运算控制器通过所述运算调度信号DFF_EN、M_DVAL、A_MUX控制。
进一步地,所述浮点加法器,采用第一、第二和第三级流水线设计;
第一级流水线对去符号的F1与F2的值进行比较,取较大数的指数Ea作为下一级流水线运算的指数,并对较小数的尾数Mb右移Ea-Eb位,保证尾数在同一指数下运算;
第二级流水线中判断两数的符号,若符号相同,则取尾数为Ma+Mb;相反则取尾数为Ma-Mb
第三级流水线通过优先编码器查找尾数前导零的个数,并对指数与尾数进行相应的规格化调整。
进一步地,所述两个数据选择器分别为第一数据选择器和第二数据选择器;
所述第一数据选择器为所述加法阵列模块的输入端数据选择器,用于选择有效的乘法阵列输出向量;
当所述乘法阵列输出向量有效时,所述M_DVAL被所述运算控制器置高,所述加法器读取所述乘法阵列输出向量进行累加;反之被置低,所述加法器读入常数0;
所述D触发器用于缓存输出级加法器流水线运算结果,当所述DFF_EN被置高时,所述D触发器在时钟信号上升沿将输入数据缓存;
所述第二数据选择器为与所述输出级加法器相连的数据选择器,用于选择输入累加数据来源;
当所述A_MUX被置高时,选择输入为前一级加法器的输出,阵列中加法器的输入为乘法阵列输出向量与加法结果的并置,通过输出级加法器构建的流水线反馈回路实现任意数量乘积的累加运算;
当所述A_MUX被置低时,选择输入为所述D触发器缓存的数据,实现加法器内部流水线缓存数据累加。
本发明的优点在于,与现有技术相比,本发明提出的一种基于FPGA的可配置浮点向量乘法IP核,包括:用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互的运算控制器;用于实现浮点向量元素乘法运算的乘法阵列模块,用于实现向量中各元素相乘后累加的加法阵列模块;该IP核的运算并行度与运算精度可配置,具有高度的灵活性与通用性,有效地提高了FPGA硬件资源利用率;集成运算控制器,解决了基于FPGA的计算加速系统设计周期长的问题;也充分发挥了FPGA并行运行与硬件可重构的优势,能有效地实现FPGA并行计算加速;尤其在时下热门的神经网络计算对精度要求不高但计算密度巨大的情况下,根据需求合理配置运算器能有效提高资源利用率与运算效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明中提供的一种基于FPGA的可配置浮点向量乘法IP核的框图。
图2为本发明中提供的配置浮点运算器数量N=6时的运算阵列信号传输框图。
图3为本发明中提供的可配置浮点乘法器流水线信号传输框图。
图4为本发明中提供的可配置浮点加法器流水线信号传输框图。
图5为本发明中提供的状态控制时序图。
图6为本发明中提供的乘加状态数据流时序图。
图7为本发明中提供的累加状态数据流时序图。
附图中,1-运算控制器、2-为乘法阵列、3-为加法阵列、4-指令接口部件、5-时钟管理部件、6-RAM控制部件、7-状态反馈部件、8-运算调度部件、9-乘法阵列时钟、10-加法阵列时钟、11-运算调度信号、12-输入向量A、13-输入向量B、14-乘法阵列输出向量、15-指令信号、16-输入时钟、17-输入数据总线、18-输出RAM控制信号、19-状态字、20-输出计算结果。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1所示,本发明实施例提供一种基于FPGA的可配置浮点向量乘法IP核,包括:运算控制器1、乘法阵列模块2和加法阵列模块3;
其中,运算控制器1,用于接收指令信号15和获得输入时钟16,并输出RAM控制信号18和状态字19,实现运算调度与指令交互;
乘法阵列模块2,用于从运算控制器1获得乘法阵列时钟9,及从输入数据总线17获得待运算的向量数据,比如输入向量A12和输入向量B13,完成浮点乘法运算,并输出乘法阵列输出向量14;
加法阵列模块3,用于从运算控制器1获得加法阵列时钟10和运算调度信号11;并将乘法阵列输出向量14与自身缓存数据进行累加,输出计算结果20。
本实施例提供的基于FPGA的可配置浮点向量乘法IP核,包括:用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互的运算控制器;用于实现浮点向量元素乘法运算的乘法阵列模块,用于实现向量中各元素相乘后累加的加法阵列模块;该IP核的运算并行度与运算精度可配置,具有高度的灵活性与通用性,有效地提高了FPGA硬件资源利用率;集成运算控制器,解决了基于FPGA的计算加速系统设计周期长的问题;也充分发挥了FPGA并行运行与硬件可重构的优势,能有效地实现FPGA并行计算加速;尤其在时下热门的神经网络计算对精度要求不高但计算密度巨大的情况下,根据需求合理配置运算器能有效提高资源利用率与运算效率。
下面对基于FPGA的可配置浮点向量乘法IP核的构成模块进行详细说明。
(1)运算控制器1,实现运算调度与指令交互,包括:指令接口部件4、时钟管理部件5、RAM控制部件6、状态反馈部件7与运算调度部件8。
指令接口部件4为上层控制器调用向量乘法IP核提供控制接口,简化并行运算资源的调度;时钟管理部件5控制运算阵列时钟的启停,可以有效降低空闲时系统的功耗;RAM控制部件6可以产生地址信号,主动获取外部RAM数据,简化并行数据调度;状态反馈部件7可以输出状态字,将IP核的运行状态与错误信息反馈给上层控制器;运算调度部件8输出运算调度信号,调整各时刻的并行数据流向,维持运算有序进行。
(2)乘法阵列模块2,参照图2所示,包括多个可配置运算精度的流水线浮点乘法器,各乘法器间不构成反馈回路,阵列每个时钟可完成多次浮点乘法运算。
(3)加法阵列模块3,参照图2所示,包括多个可配置运算精度的流水线浮点加法器、一个D触发器(DFF)与两个数据选择器(MUX)。
D触发器与两个数据选择器分别由运算控制器1通过运算调度信号DFF_EN、M_DVAL、A_MUX控制。
其中,第一数据选择器为加法阵列输入端数据选择器,用于选择有效的乘法结果,当乘法结果有效时,M_DVAL被运算控制器置高,加法器读入乘法结果进行累加,反之被置低,加法器读入常数0。
D触发器用于缓存输出级(图2中右侧)加法器流水线运算结果,当DFF_EN被置高时,D触发器在时钟信号上升沿缓存输入数据。
其中,第二数据选择器为与输出级加法器相连的数据选择器,用于选择输入累加数据来源,当A_MUX被置高时,选择输入为前一级加法器的输出,此时阵列中加法器的输入为乘法结果与加法结果的并置,通过输出级加法器构建的流水线反馈回路可实现任意数量乘积的累加运算;置低时,选择输入为D触发器缓存的数据,可实现加法器内部流水线缓存数据累加。
设计在IEEE754标准浮点基础上,为实现运算精度可配置,扩展了适用于FPGA运算的可配置浮点格式,其指数E的位数与尾数M的位数可根据需求任意更改,扩展后浮点数格式如表1所示。
表1扩展浮点数格式
根据扩展的浮点格式设计的乘法器与加法器各级流水线运算流程参照图3-4所示。
(4)浮点乘法器,采用三级流水线设计,各级流水线分工明确,适用于可配置浮点格式计算设计,图3-4中比如下标以x=(1,2)表示,那么Sx,Ex与Mx分别为输入浮点数F1、F2的符号、指数与高位添1的尾数。
第一级流水线对两个输入浮点数的符号、指数与尾数进行异或、定点加法与定点乘法运算,定点加法计算得到的指数和同时包含两个指数的偏置,该两个指数的偏置相同,因此在第二级流水线中判断指数上溢或下溢并减去一个指数偏置(因为每个浮点数的指数部分都带有一个偏置,所以在浮点乘的过程中,在两个指数求和后需要减去一个指数偏置),同时对尾数乘积舍入处理,保留高Mn+2位;在第三级流水线中判断尾数是否产生进位,并对指数与尾数进行相应的规格化调整。
(5)浮点加法器,采用三级流水线设计,第一级流水线对去符号的F1与F2的值进行比较,取较大数的指数Ea作为下一级流水线运算的指数,并对较小数的尾数Mb右移Ea-Eb位,保证尾数在同一指数下运算;第二级流水线中判断两数的符号,若符号相同,则取尾数为Ma+Mb,相反则取尾数为Ma-Mb;第三级流水线通过优先编码器查找尾数前导零的个数,并对指数与尾数进行相应的规格化调整。
浮点向量乘法IP核的运算时序由运算控制器控制,其运算时序图参照图5、6、7所示。根据图5时序,系统运行可分为空闲(S0)、乘加(S1)与累加(S2)三个状态。
图5-7中信号指令分别表示如下:
CLK:输入时钟信号;
MAC_START:由上层控制器发起的运算起始信号;
MAC_RDY:IP核空闲状态位,高电平表示空闲;
M_EN:乘法阵列时钟使能位,高电平使能时钟;
M_DVAL:乘法阵列数据有效标志位,高电平表示数据有效;
A_EN:加法阵列时钟使能信号,高电平使能时钟;
A_CLR:加法阵列流水线缓存清除信号;
ADDR:运算控制器请求外部RAM的地址总线;
A:外部RAM输出向量A数据总线,由向量A中各元素的可配置浮点格式数据并置而成;
B:外部RAM输出向量B数据总线,由向量B中各元素的可配置浮点格式数据并置而成;
MO:乘法阵列输出向量数据总线,由乘法阵列中各运算器输出数据并置而成;
A_MUX:加法阵列数据选择器选择信号,高电平选择输入为前一级加法器的输出,低电平选择输入为D触发器缓存的数据;
AO:加法阵列输出向量数据,由加法阵列中各运算器输出数据并置而成;
DFF_EN:D触发器使能信号,高电平时,D触发器在时钟信号上升沿缓存输入端数据;
MAC:浮点向量乘法运算结果输出数据总线。
空闲状态下,运算阵列时钟停止,系统处于低功耗模式。当运算控制器检测到MAC_START指令位上升沿后启动运算,乘法阵列与加法阵列时钟控制信号M_EN、A_EN置高,运算阵列时钟使能;加法阵列缓存清除信号A_CLR置高一个时钟,加法阵列复位;状态位MAC_RDY置低,系统进入乘加状态。
乘加状态下,乘法阵列与加法阵列并行工作,期间乘法阵列完成所有向量元素的读取、运算与输出,加法阵列完成所有乘法结果的读入与部分累加运算。图6中,ADDR为运算控制器输出的RAM地址信号,A与B为输入向量,MO与AO分别为乘法阵列与加法阵列输出向量。乘法阵列读入向量元素后延迟三个时钟输出乘法结果,加法阵列在M_DVAL为高电平时读入乘法结果进行累加运算。
设配置运算器数量为N,运算的浮点向量长度为D,则系统每个时钟可读取并计算N对元素,共需要读取(表示向上取整,下同)次数据,若N无法被D整除时,计算时在超出向量长度部分填充数值0。k+5个时钟后,乘法运算结束,乘法阵列时钟停止,系统进入累加状态。
累加状态下,加法阵列将各加法器流水线中缓存的数据累加并通过MAC输出结果,时序如图7所示。根据图2中加法阵列的结构与加法器三级流水线延迟时间可知,个时钟后,所有累加数据将流入加法阵列输出级加法器的三级流水线中,再在运算控制器调度下,通过加法阵列D触发器与数据选择器在11个时钟内完成2次串行加运算并输出累加结果。运算完成后,MAC_RDY信号置高,系统进入空闲状态。
综上,当配置运算器组数量为N时,完成长度为D的浮点向量乘法运算共需时钟数
比如:使用ALTERA公司发布的Cyclone IV系列EP4CE115F29C7型号FPGA作为测试平台。EP4CE115F29C7型号FPGA拥有114KLEs(Logic Elements,下同),约4Mb的嵌入式RAM,532个EMEs(Embedded Multiplier 9-bit Elements,下同)。设计采用Verilog HDL语言编写,经过QUARTUS 17.1软件编译、仿真、综合实现。
以配置运算浮点格式为FP32(Mn=23,En=8)、FP16(Mn=10,En=5)和FP14(Mn=8,En=5)为例进行对比,设计中浮点运算器的资源占用与运行频率对比如表2所示。
表2浮点运算器资源占用与运行频率对比
随着运算精度的改变,乘法器与加法器的资源占用与运行时钟相应改变,当运算精度降低时,运算器资源占用减少,运行时钟频率得到一定的提高。
设计对不同配置浮点格式的长度为1000的向量
A=[0.999,0.998,…,0]T
B=[0.001,0.002,…,1]T
进行向量乘法运算误差对比,结果如表3所示。
表3浮点运算器运算精度对比
设计的向量乘法单元在配置不同数量运算器时不同向量长度乘法运算时间仿真对比如表4所示。
表4向量乘法运算时间
当运算向量长度D较小时,由于运算控制器控制时钟与并行累加延迟,提出的向量乘法单元运算速度较串行流水线乘累加器运算速度略慢;随着运算向量长度D增大,提出的向量乘法单元运算消耗的时钟数比串行流水线乘累加逐渐减少,运算时间T接近于即一个时钟完成N次乘累加运算。其运算速度相当于串行流水线计算的N倍,通过运算器并行化有效地减少了运算时间,提高了运算速度。
设计在配置不同格式与并行运算器数量下的资源占用、运行频率与吞吐率实测数据如表5所示。
表5并行运算性能与吞吐率测试
当运算器数量相同时,配置运算精度较低时,其运行频率会有一定的提高,吞吐率相应增加;当配置运算精度相同时,吞吐率与配置并行运算器数量成比例关系。在测试使用的FPGA平台上,当配置为FP32N=10时,IP核资源占用约为12%,吞吐率可达到3GFLOPS,相当于运行在1.5GHz频率下的串行全流水乘累加器;当配置为FP14N=10时,其资源占用约为5%,吞吐率可达到4.5GFLOPS,其数据吞吐率相当于运行在2.25GHz频率下的串行全流水乘累加器。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (6)

1.一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,包括:运算控制器、乘法阵列模块和加法阵列模块;
所述运算控制器,用于接收指令信号和获得输入时钟,并输出RAM控制信号和状态字,实现运算调度与指令交互;
所述乘法阵列模块,用于从所述运算控制器获得乘法阵列时钟,及从输入数据总线获得待运算的向量数据,完成浮点乘法运算,并输出乘法阵列输出向量;
所述加法阵列模块,用于从所述运算控制器获得加法阵列时钟和运算调度信号;并将所述乘法阵列输出向量与自身缓存数据进行累加,输出计算结果。
2.根据权利要求1所述的一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,所述运算控制器,包括指令接口部件、时钟管理部件、RAM控制部件、状态反馈部件与运算调度部件;
所述指令接口部件,用于为上层控制器调用向量乘法IP核提供控制接口,简化并行运算资源的调度;
所述时钟管理部件,用于控制运算阵列时钟的启停,降低空闲时系统的功耗;
所述RAM控制部件,用于产生地址信号,主动获取外部RAM数据,简化并行数据调度;
所述状态反馈部件,用于输出状态字,将所述IP核的运行状态与错误信息反馈给所述上层控制器;
所述运算调度部件,用于输出运算调度信号,调整各时刻的并行数据流向,维持运算有序进行。
3.根据权利要求1所述的一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,所述乘法阵列模块,包括多个可配置运算精度的流水线浮点乘法器;
所述浮点乘法器,采用第一、第二和第三级流水线设计,适用于可配置浮点格式计算;
第一级流水线对两个输入浮点数的符号、指数与尾数进行异或、定点加法与定点乘法运算,定点加法计算得到的指数和同时包含两个指数的偏置;
第二级流水线中判断指数上溢或下溢并减去一个指数偏置,同时对尾数乘积舍入处理,保留高Mn+2位;
第三级流水线中判断尾数是否产生进位,并对指数与尾数进行相应的规格化调整。
4.根据权利要求1所述的一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,所述加法阵列模块,包括多个可配置运算精度的流水线浮点加法器、一个D触发器与两个个数据选择器;
所述D触发器与两个数据选择器分别由所述运算控制器通过所述运算调度信号DFF_EN、M_DVAL、A_MUX控制。
5.根据权利要求4所述的一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,所述浮点加法器,采用第一、第二和第三级流水线设计;
第一级流水线对去符号的F1与F2的值进行比较,取较大数的指数Ea作为下一级流水线运算的指数,并对较小数的尾数Mb右移Ea-Eb位,保证尾数在同一指数下运算;
第二级流水线中判断两数的符号,若符号相同,则取尾数为Ma+Mb;相反则取尾数为Ma-Mb
第三级流水线通过优先编码器查找尾数前导零的个数,并对指数与尾数进行相应的规格化调整。
6.根据权利要求4所述的一种基于FPGA的可配置浮点向量乘法IP核,其特征在于,所述两个数据选择器分别为第一数据选择器和第二数据选择器;
所述第一数据选择器为所述加法阵列模块的输入端数据选择器,用于选择有效的乘法阵列输出向量;
当所述乘法阵列输出向量有效时,所述M_DVAL被所述运算控制器置高,所述加法器读取所述乘法阵列输出向量进行累加;反之被置低,所述加法器读入常数0;
所述D触发器用于缓存输出级加法器流水线运算结果,当所述DFF_EN被置高时,所述D触发器在时钟信号上升沿将输入数据缓存;
所述第二数据选择器为与所述输出级加法器相连的数据选择器,用于选择输入累加数据来源;
当所述A_MUX被置高时,选择输入为前一级加法器的输出,阵列中加法器的输入为乘法阵列输出向量与加法结果的并置,通过输出级加法器构建的流水线反馈回路实现任意数量乘积的累加运算;
当所述A_MUX被置低时,选择输入为所述D触发器缓存的数据,实现加法器内部流水线缓存数据累加。
CN201910088644.3A 2019-01-18 2019-01-18 一种基于fpga的可配置浮点向量乘法ip核 Expired - Fee Related CN109828744B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910088644.3A CN109828744B (zh) 2019-01-18 2019-01-18 一种基于fpga的可配置浮点向量乘法ip核

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910088644.3A CN109828744B (zh) 2019-01-18 2019-01-18 一种基于fpga的可配置浮点向量乘法ip核

Publications (2)

Publication Number Publication Date
CN109828744A true CN109828744A (zh) 2019-05-31
CN109828744B CN109828744B (zh) 2020-09-08

Family

ID=66862983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910088644.3A Expired - Fee Related CN109828744B (zh) 2019-01-18 2019-01-18 一种基于fpga的可配置浮点向量乘法ip核

Country Status (1)

Country Link
CN (1) CN109828744B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442323A (zh) * 2019-08-09 2019-11-12 复旦大学 进行浮点数或定点数乘加运算的架构和方法
CN110489077A (zh) * 2019-07-23 2019-11-22 福州瑞芯微电子股份有限公司 一种神经网络加速器的浮点乘法运算电路和方法
CN110598271A (zh) * 2019-08-22 2019-12-20 中国电子科技集团公司第二十九研究所 一种基于fpga实现4辅助天线slc功能的系统及方法
CN110705117A (zh) * 2019-10-12 2020-01-17 北京航空航天大学 一种数字孪生系统复杂任务可配置高效求解方法和系统
CN111429944A (zh) * 2020-04-17 2020-07-17 北京百瑞互联技术有限公司 一种编解码器开发测试优化方法及系统
CN111596887A (zh) * 2020-05-22 2020-08-28 天津国科医工科技发展有限公司 一种基于可重构计算结构的内积计算方法
CN111753962A (zh) * 2020-06-24 2020-10-09 国汽(北京)智能网联汽车研究院有限公司 一种加法器、乘法器、卷积层结构、处理器及加速器
CN111814972A (zh) * 2020-07-08 2020-10-23 上海雪湖科技有限公司 一种基于fpga的神经网络卷积运算加速方法
CN111984224A (zh) * 2020-08-24 2020-11-24 中国海洋大学 用于auv运动控制器的浮点数乘加ip核及控制方法
CN112734020A (zh) * 2020-12-28 2021-04-30 中国电子科技集团公司第十五研究所 卷积神经网络的卷积乘累加硬件加速装置、系统以及方法
CN112783473A (zh) * 2021-01-20 2021-05-11 北京工业大学 一种使用单个DSP单元并行计算6个4Bit和3Bit整形数据乘法运算方法
CN113138748A (zh) * 2021-04-09 2021-07-20 广东工业大学 一种基于FPGA的支持8bit和16bit数据的可配置的CNN乘法累加器
CN113157637A (zh) * 2021-04-27 2021-07-23 电子科技大学 一种基于fpga的大容量可重构的fft运算ip核
CN113778940A (zh) * 2021-09-06 2021-12-10 电子科技大学 基于fpga的高精度可重构相位调整ip核
CN116383584A (zh) * 2022-11-17 2023-07-04 兰州大学 基于分数阶系统的模型计算方法、系统及存储介质
CN116881090A (zh) * 2023-09-06 2023-10-13 北京壁仞科技开发有限公司 计算装置以及控制计算装置中的计算核的能耗的方法
CN117348839A (zh) * 2023-12-06 2024-01-05 西北工业大学 一种多精度低开销加法器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060262880A1 (en) * 2005-05-18 2006-11-23 Ntt Docomo, Inc. Power series predistorter and control method thereof
CN101299233A (zh) * 2008-04-08 2008-11-05 西安交通大学 基于fpga实现的运动目标识别与跟踪装置及方法
US7454323B1 (en) * 2003-08-22 2008-11-18 Altera Corporation Method for creation of secure simulation models
CN103067706A (zh) * 2012-12-20 2013-04-24 西安电子科技大学 基于fpga的ip核
CN104572011A (zh) * 2014-12-22 2015-04-29 上海交通大学 基于fpga的通用矩阵定点乘法器及其计算方法
CN108710505A (zh) * 2018-05-18 2018-10-26 南京大学 一种基于fpga的可扩展稀疏矩阵向量乘处理器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454323B1 (en) * 2003-08-22 2008-11-18 Altera Corporation Method for creation of secure simulation models
US20060262880A1 (en) * 2005-05-18 2006-11-23 Ntt Docomo, Inc. Power series predistorter and control method thereof
CN101299233A (zh) * 2008-04-08 2008-11-05 西安交通大学 基于fpga实现的运动目标识别与跟踪装置及方法
CN103067706A (zh) * 2012-12-20 2013-04-24 西安电子科技大学 基于fpga的ip核
CN104572011A (zh) * 2014-12-22 2015-04-29 上海交通大学 基于fpga的通用矩阵定点乘法器及其计算方法
CN108710505A (zh) * 2018-05-18 2018-10-26 南京大学 一种基于fpga的可扩展稀疏矩阵向量乘处理器

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ZBIGNIEW HAJDUK: "Reconfigurable FPGA implementation of neural networks", 《NEUROCOMPUTING》 *
乔瑞秀等: "并行可配置浮点矩阵乘法IP核设计", 《网络新媒体技术》 *
宋翠方等: "基于FPGA数字系统设计的面积优化方法研究", 《东北师范大学报》 *
金席 等: "浮点乘累加处理单元的FPGA实现", 《计算机与数字工程》 *

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489077B (zh) * 2019-07-23 2021-12-31 瑞芯微电子股份有限公司 一种神经网络加速器的浮点乘法运算电路和方法
CN110489077A (zh) * 2019-07-23 2019-11-22 福州瑞芯微电子股份有限公司 一种神经网络加速器的浮点乘法运算电路和方法
CN110442323A (zh) * 2019-08-09 2019-11-12 复旦大学 进行浮点数或定点数乘加运算的架构和方法
CN110442323B (zh) * 2019-08-09 2023-06-23 复旦大学 进行浮点数或定点数乘加运算的装置和方法
CN110598271A (zh) * 2019-08-22 2019-12-20 中国电子科技集团公司第二十九研究所 一种基于fpga实现4辅助天线slc功能的系统及方法
CN110705117A (zh) * 2019-10-12 2020-01-17 北京航空航天大学 一种数字孪生系统复杂任务可配置高效求解方法和系统
CN111429944A (zh) * 2020-04-17 2020-07-17 北京百瑞互联技术有限公司 一种编解码器开发测试优化方法及系统
CN111596887A (zh) * 2020-05-22 2020-08-28 天津国科医工科技发展有限公司 一种基于可重构计算结构的内积计算方法
CN111753962A (zh) * 2020-06-24 2020-10-09 国汽(北京)智能网联汽车研究院有限公司 一种加法器、乘法器、卷积层结构、处理器及加速器
CN111753962B (zh) * 2020-06-24 2023-07-11 国汽(北京)智能网联汽车研究院有限公司 一种加法器、乘法器、卷积层结构、处理器及加速器
CN111814972A (zh) * 2020-07-08 2020-10-23 上海雪湖科技有限公司 一种基于fpga的神经网络卷积运算加速方法
CN111814972B (zh) * 2020-07-08 2024-02-02 上海雪湖科技有限公司 一种基于fpga的神经网络卷积运算加速方法
CN111984224A (zh) * 2020-08-24 2020-11-24 中国海洋大学 用于auv运动控制器的浮点数乘加ip核及控制方法
CN111984224B (zh) * 2020-08-24 2024-04-23 中国海洋大学 用于auv运动控制器的浮点数乘加ip核及控制方法
CN112734020A (zh) * 2020-12-28 2021-04-30 中国电子科技集团公司第十五研究所 卷积神经网络的卷积乘累加硬件加速装置、系统以及方法
CN112783473A (zh) * 2021-01-20 2021-05-11 北京工业大学 一种使用单个DSP单元并行计算6个4Bit和3Bit整形数据乘法运算方法
CN112783473B (zh) * 2021-01-20 2024-02-02 北京工业大学 一种使用单个dsp单元并行计算整形数据乘法运算方法
CN113138748A (zh) * 2021-04-09 2021-07-20 广东工业大学 一种基于FPGA的支持8bit和16bit数据的可配置的CNN乘法累加器
CN113138748B (zh) * 2021-04-09 2023-08-29 广东工业大学 一种基于FPGA的支持8bit和16bit数据的可配置的CNN乘法累加器
CN113157637B (zh) * 2021-04-27 2023-03-07 电子科技大学 一种基于fpga的大容量可重构的fft运算ip核
CN113157637A (zh) * 2021-04-27 2021-07-23 电子科技大学 一种基于fpga的大容量可重构的fft运算ip核
CN113778940B (zh) * 2021-09-06 2023-03-07 电子科技大学 基于fpga的高精度可重构相位调整ip核
CN113778940A (zh) * 2021-09-06 2021-12-10 电子科技大学 基于fpga的高精度可重构相位调整ip核
CN116383584A (zh) * 2022-11-17 2023-07-04 兰州大学 基于分数阶系统的模型计算方法、系统及存储介质
CN116383584B (zh) * 2022-11-17 2023-11-21 兰州大学 基于分数阶系统的模型计算方法、系统及存储介质
CN116881090A (zh) * 2023-09-06 2023-10-13 北京壁仞科技开发有限公司 计算装置以及控制计算装置中的计算核的能耗的方法
CN116881090B (zh) * 2023-09-06 2024-01-26 北京壁仞科技开发有限公司 计算装置以及控制计算装置中的计算核的能耗的方法
CN117348839A (zh) * 2023-12-06 2024-01-05 西北工业大学 一种多精度低开销加法器
CN117348839B (zh) * 2023-12-06 2024-02-13 西北工业大学 一种多精度低开销加法器

Also Published As

Publication number Publication date
CN109828744B (zh) 2020-09-08

Similar Documents

Publication Publication Date Title
CN109828744A (zh) 一种基于fpga的可配置浮点向量乘法ip核
CN110378468B (zh) 一种基于结构化剪枝和低比特量化的神经网络加速器
CN108564168B (zh) 一种对支持多精度卷积神经网络处理器的设计方法
CN106897046B (zh) 一种定点乘累加器
CN110516801A (zh) 一种高吞吐率的动态可重构卷积神经网络加速器架构
CN104572011A (zh) 基于fpga的通用矩阵定点乘法器及其计算方法
CN103678257A (zh) 基于fpga的正定矩阵浮点求逆器及其求逆方法
CN107305485A (zh) 一种用于执行多个浮点数相加的装置及方法
CN107544942A (zh) 一种快速傅里叶变换的vlsi设计方法
Nottbeck et al. Implementation of high-performance, sub-microsecond deep neural networks on FPGAs for trigger applications
CN106951394A (zh) 一种可重构定浮点通用fft处理器
CN109343823A (zh) 基于异步控制的浮点数加法器和浮点数的相加方法
CN109325590A (zh) 用于实现计算精度可变的神经网络处理器的装置
CN109815438A (zh) 基于混合基运算的高效能浮点fft硬件加速器设计方法
CN111047034A (zh) 一种基于乘加器单元的现场可编程神经网络阵列
CN110349245A (zh) 高精度纹理过滤
CN110187866A (zh) 一种基于双曲cordic的对数乘法计算系统及方法
CN109284085A (zh) 一种基于fpga的高速模乘和模幂运算方法及模型
He et al. An LSTM acceleration engine for FPGAs based on caffe framework
CN111275180B (zh) 一种降低深度神经网络数据迁移及功耗的卷积运算结构
CN102253924B (zh) 开方运算的硬件实现方法以及开方运算器
CN202281998U (zh) 一种标量浮点运算加速器
CN113191494A (zh) 一种基于fpga的高效lstm加速器
Moeller Field programmable gate arrays for radar front-end digital signal processing
Nakasato et al. GRAPE-MPs: Implementation of an SIMD for quadruple/hexuple/octuple-precision arithmetic operation on a structured ASIC and an FPGA

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200908