一种应用于FPGA的低功耗可变精度嵌入式DSP硬核结构的制作方法

文档序号:37803079发布日期:2024-04-30 17:13阅读:6来源:国知局
一种应用于FPGA的低功耗可变精度嵌入式DSP硬核结构的制作方法

本发明属于数字集成电路,尤其涉及一种应用于fpga的低功耗可变精度嵌入式dsp硬核结构。


背景技术:

1、fpga器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够实现特定的逻辑功能或者数字计算任务。fpga的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式ram,布线资源,内嵌专用硬核,具有布线资源丰富以及可重复编程的优点。凭借自身灵活、开发周期短、成本低廉的优势,一问世便受到工程师们的青睐。

2、近年来,随着人工智能、大数据等领域的兴起,fpga 的应用范围被进一步扩展。通过对fpga中嵌入硬核电路来实现特定的任务,而嵌入式dsp是fpga中专门用于实现数字信号处理功能的硬件资源,同时也用于加速各种计算任务。而随着应用场景的不断丰富,浮点数据不断被应用在很多的场景中,原先依靠定点dsp和逻辑资源进行运算的模式会消耗大量的片上资源,且运算性能难以高效的实现。所以为了不占用片上资源,开发者设计了一种嵌入式的浮点dsp ip核内嵌在fpga芯片内用于加速特定的运算和算法。嵌入式dsp是fpga中专门用于实现数字信号处理功能的硬件资源,并且也作为fpga中主要提供算力的单元,承担着浮点数和定点数的密集运算任务,用于加速各种计算任务。随着fpga面向的应用范围不断扩大,浮点数运算、定点数运算、矢量运算、标量运算、混合精度运算等等不断需要集成在嵌入式dsp硬核结构中。由于浮点数运算算法存在极大的复杂性以及不同运算类型对硬件结构的需求不同,所以嵌入式dsp的面积开销与时间开销会变大。而由于fpga内部资源的限制,因此现有技术中对fpga进行设计开发时,会尽可能的降低嵌入式dsp的开销。

3、目前对于fpga内部的硬核结构改进思路是,使不同运算共享一致的硬件结构,通过最小化成本实现多样化运算类型。现有技术中,主流的嵌入式dsp设计通过不同的运算模式和灵活的级联端口实现了运算之间的切换灵活性。然而,目前商用嵌入式dsp不支持多种精度浮点数运算的灵活切换,并且其内部乘法器和加法器结构存在成本过高且不支持双精度浮点数运算。在某些高精度计算场景中,需要支持双精度浮点数运算,而按照主流的多精度浮点数乘法器设计方法会消耗大量资源。因此,急需一种能够降低成本、提高灵活性且支持低功耗、以及多种精度运算的嵌入式dsp硬核结构作为fpga内部的算术运算单元。


技术实现思路

1、本发明提供一种应用于fpga的低功耗可变精度嵌入式dsp硬核结构,在兼顾开销与灵活性特点的同时,能够实现低精度浮点运算和低精度定点数的矢量点积标量乘积运算。同时输入端具有可选择的通路,选择性关闭不使用的通路。本发明具有低功耗以及支持多种精度运算的优点。

2、本发明的其他目的和优点可以从本发明所揭露的技术特征中得到进一步的了解。

3、一种应用于fpga的低功耗可变精度嵌入式dsp硬核结构,包括累加通路以及乘加通路;所述累加通路包括累加通路输入寄存器以及可变精度浮点加法器单元;所述乘加通路包括乘加通路输入寄存器、一阶乘加结构以及单精度浮点加法器单元;

4、所述乘加通路输入寄存器以及所述累加通路输入寄存器包括寄存器多路选择器以及寄存器;

5、所述乘加通路输入寄存器用于实现数据寄存的选择以及数据移位输入;

6、所述累加通路输入寄存器用于实现数据寄存的选择;

7、预处理单元,设置在乘加通路内,包括系数选择单元以及预加器,所述系数选择单元预存内部系数;所述预处理单元接收所述乘加通路输入寄存器数据,并根据计算需求对输入数进行预先加法。本发明的有益效果在于,在内部设置两路通路,其中乘加通路内的一阶乘加结构可以实现三种精度数据的独立乘法运算及两路低精度数据乘加运算,其中一阶乘加结构、乘加运算通路内的单精度浮点加法器单元以及累加通路内的可变精度浮点加法器单元相互配合运算,整体dsp结构进行选择执行三种精度的独立乘法、乘加、乘累加及混合精度运算等。同时,乘加通路内的乘加通路寄存器配合预处理单元可以实现数据的预处理,以实现复杂的运算。本装置在减少装置面积开销的基础上,能够实现多种精度的运算,具有兼顾开销与灵活性的优点。

8、所述乘加通路输入寄存器以及所述累加通路输入寄存器内的寄存器连接至寄存器多路选择器的输入口,构成一个寄存器单元。

9、所述乘加通路内的一阶乘加结构与单精度浮点加法器单元之间设置有一级流水线寄存器;

10、所述乘加通路内的单精度浮点加法器单元与所述累加通路内的可变精度浮点加法器单元之间设置有二级流水线寄存器。

11、所述累加通路输入寄存器、一级流水线寄存器、二级流水线寄存器、输出寄存器均包括一个寄存器单元。

12、所述乘加通路输入寄存器设置有四个并行的输入端,四个所述的并行的输入端串联;每个输入端都具有两个输入口,每个输入口都包括一个寄存器单元;

13、所述的输入端的每个输入口都设置有输入口多路选择器;

14、位于dsp阵列中的起始dsp的输入口多路选择器选择从起始dsp的乘加通路输入寄存器输入口输入的初始数据进行传输,以实现移位寄存传输功能;

15、经过级联的非起始dsp的输入口多路选择器选择上一个dsp的乘加通路输入寄存器输出的数据进行传输,以实现移位寄存传输功能。

16、单精度浮点数分割后分在两个输入端进行输入,所述的两个输入端输入的数据分别进行移位传输,并在乘加通路输入寄存器移位输出端口上拼接成一个完整的单精度浮点数,实现单精度浮点数的移位寄存传输功能。

17、所述预处理单元用于多种精度的定点数预加法功能。

18、所述预处理单元内至少设置两个18比特预加法功能单元;

19、两个所述的18比特预加法功能单元通过中间的级联通道实现27比特的加法功能。

20、所述系数选择单元至少预存8个系数,所述系数选择单元选择的系数从预处理单元输出端口进行输出。

21、所述乘加通路输入寄存器包括直接输出端口以及预处理输出端口;

22、需要进行预处理单元操作的数据,从乘加通路输入寄存器输入后,从预处理输入端口输入数据至预处理单元,经预处理单元处理后从与预处理单元输出端口输出;

23、不需要进行预处理单元操作的数据,从乘加通路输入寄存器输入后,从直接输出端口输出至一阶乘加结构进行乘加运算。

24、所述一阶乘加结构输入端包括两个一阶乘加结构多路选择器,所述预处理单元输出端口输出的数据以及所述直接输出端口输出的数据进入至一阶乘加结构多路选择器进行选择,以实现数据是否需要预处理的选择。

25、所述累加通路输入寄存器、乘加通路输入寄存器、一级流水线寄存器以及二级流水线寄存器内设置有寄存器时钟门控电路,所述寄存器时钟门控电路选择关断未使用的通路。

26、所述时钟门控电路的时钟门控程序通过eda综合工具自动插入生成。

27、所述一级流水线寄存器与乘加通路内的一阶乘加结构之间设置有多路选择器组,所述多路选择器组输出端还连接至二级流水线寄存器;

28、所述多路选择器组依据运算精度,选择寄存在一级流水线寄存器内的乘法运算结果、乘加运算结果进入累加通路可变精度浮点加法器单元或者乘加通路单精度浮点加法器单元进行运算。

29、所述累加通路以及乘加通路内的加法器单元包括输入寄存器,数据处理模块,符号位处理单元,阶码对齐单元,尾数移位单元,lza编码模块,纠错模块,alu单元,移位模块;

30、所述数据处理模块将输入寄存器中储存的浮点数分割成符号位、指数位及尾数位;

31、所述符号位处理一方面用于得到运算结果的符号位值,一方面用于加法通路中判断运算类型,输出的符号用于alu单元的运算操作;

32、所述阶码对齐单元至少包括两方面运算,分别为阶码大小比较,输出标志信号,以及计算阶差;

33、所述尾数移位单元至少包括三方面运算,首先对尾数根据阶差值进行移位操作,然后再比较尾数大小,以及根据尾数大小及阶码大小比较结果共同判断浮点数大小,所述浮点数大小的判断结果用于alu单元数据输入判断;

34、所述lza编码模块提前编码输入的数据用于计算前导数据中“0”的个数;

35、所述纠错模块输出一位纠错信号至移位模块,用于数据移位时的前导零预测算法的纠错;

36、所述移位模块为桶形移位器。

37、与现有技术相比,本发明的有益效果主要包括:1、本发明设置了四个寄存器,包括加法通路输入端寄存器、乘加通路输入端寄存器、一级流水线寄存器、二级流水线寄存器,四个寄存器内部具有可进行选择是否存入数据的寄存器单元,通过寄存器来控制流水线的级数,使得使用时更加灵活。

38、2、本发明的乘加通路内的乘加通路寄存器配合预处理单元可以实现数据的预处理,以实现复杂的运算。

39、3、本发明设置累加通路以及乘加通路,其中乘加通路内的乘加结构可以实现乘加运算,配合上乘加通路的单精度浮点加法器单元以及累加通路内的可变精度浮点加法器单元,可进行选择执行三种精度数据的乘法、乘加、乘累加等运算,使得本发明装置运算更加灵活。同时单精度浮点加法器单元以及可变精度浮点加法器单元可以实现一组双精度浮点数的加法运算以及两组单精度浮点数的加法运算。

40、为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举优选实施例,并配合附图,作详细说明如下。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1