CN111752529A - 支持高效乘累加运算的可编程逻辑单元结构 - Google Patents

支持高效乘累加运算的可编程逻辑单元结构 Download PDF

Info

Publication number
CN111752529A
CN111752529A CN202010611874.6A CN202010611874A CN111752529A CN 111752529 A CN111752529 A CN 111752529A CN 202010611874 A CN202010611874 A CN 202010611874A CN 111752529 A CN111752529 A CN 111752529A
Authority
CN
China
Prior art keywords
input
output
data
port
ports
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
CN202010611874.6A
Other languages
English (en)
Other versions
CN111752529B (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.)
CETC 58 Research Institute
Wuxi Zhongwei Yixin Co Ltd
Original Assignee
CETC 58 Research Institute
Wuxi Zhongwei Yixin Co Ltd
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 CETC 58 Research Institute, Wuxi Zhongwei Yixin Co Ltd filed Critical CETC 58 Research Institute
Priority to CN202010611874.6A priority Critical patent/CN111752529B/zh
Publication of CN111752529A publication Critical patent/CN111752529A/zh
Application granted granted Critical
Publication of CN111752529B publication Critical patent/CN111752529B/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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)

Abstract

本发明公开了一种支持高效乘累加运算的可编程逻辑单元结构,涉及可编程逻辑技术领域,该可编程逻辑单元结构内部通过硬IP实现一个专用乘法器,通过增加专用的乘法器可以有效提高可编程逻辑单元结构的乘法运算能力,专用乘法器与基本逻辑单元共用数据输入端口和数据输出端口,通过第一两输入选择器进行数据选择,从而无需增加数据输入输出端口,因此可以在不增加FPGA的互连压力的基础上,提高可编程逻辑单元结构的乘累加运算效率,从而提高整个FPGA的窄位宽乘累加运算能力。

Description

支持高效乘累加运算的可编程逻辑单元结构
技术领域
本发明涉及可编程逻辑技术领域,尤其是一种支持高效乘累加运算的可编程逻辑单元结构。
背景技术
现场可编程门阵列,也成为了FPGA,是一种支持硬件编程的集成电路芯片,可以通过相应的软件开发工具经过代码输入、逻辑综合、映射、布局布线和位流生成,快速地将设计编程下载到FPGA中,节省工程成本和研发时间。同时FPGA作为一种可编程逻辑器件,其支持多次重复编程,只需要重新下载编程即可完成电路的修改,具有开发周期短、成本低、风险小、灵活性大等优点,因此被广泛应用于通信、大数据处理、人工智能以及航空航天等领域,同时也广泛应用于集成电路的原型验证,缩短产品开发时间。
当前主流的可编程逻辑器件内部主要包括可编程逻辑单元(CLB)、数字信号处理(DSP)、存储单元(BRAM)以及一些高速接口、时钟模块和其他IP核。可编程逻辑单元是可编程逻辑器件中最基本也是最核心的单元,是可编程逻辑器件中最主要的模块,它在可编程逻辑器件中按阵列分布,随着器件应用规模的增大,可编程逻辑单元的规模也达到千万门级。因此可编程逻辑单元的设计水平是整个可编程逻辑器件的关键,它的性能决定着整个芯片的性能,比如功能、运算能力、可编程灵活性、布通率、面积、速度以及功耗等。
随着人工智能的快速发展,深度学习成为当前的热门研究领域,FPGA由于其可编程性,广泛应用于人工智能领域。研究发现在深度神经网络中使用低精度运算可以有效提高整个运算效率,且对精度影响较小,在深度学习等应用领域,乘累加运算是使用较多的运算模式,因此如何充分利用FPGA内部的可编程逻辑资源以提高其窄位宽乘累加运算能力具有重要的现实意义。
发明内容
本发明人针对上述问题及技术需求,提出了一种支持高效乘累加运算的可编程逻辑单元结构,本发明的技术方案如下:
一种支持高效乘累加运算的可编程逻辑单元结构,该可编程逻辑单元结构包括:K个基本逻辑单元、专用乘法器以及第一两输入选择器,每个基本逻辑单元包括若干个数据输入端口和若干个数据输出端口,每个基本逻辑单元内部包括查找表、寄存器、多路选择器和加法进位链;专用乘法器基于FPGA内部的硬IP实现;
专用乘法器包括两个数据输入端口和一个数据输出端口,第一两输入选择器包括两个数据输入端口和一个数据输出端口,专用乘法器的每个数据输入端口分别与若干个基本逻辑单元共用数据输入端口,专用乘法器的数据输出端口连接第一两输入选择器的一个数据输入端口,K1个基本逻辑单元的数据输出端口均连接至第一两输入选择器的另一个数据输入端口;
各个基本逻辑单元的数据输入端口均通过本地互连接入FPGA逻辑中,第一两输入选择器的数据输出端口以及其余的K-K1个基本逻辑单元的数据输出端口均通过本地互连接入FPGA逻辑中。
其进一步的技术方案为,基本逻辑单元内部的每两个查找表实现操作数传递并利用对应的加法器产生一位加法输出,各位加法输出通过基本逻辑单元的数据输出端口输出;且基本逻辑单元内部的各个加法器的进位输入输出端依次相连形成加法进位链。
其进一步的技术方案为,可编程逻辑单元结构中各个基本逻辑单元内的加法进位链通过进位输入输出端依次相连形成级联结构,则可编程逻辑单元结构还包括进位输入端口和进位输出端口,进位输入端口连接在加法进位链级联结构的输入端,进位输出端口连接在加法进位链级联结构的输出端。
其进一步的技术方案为,每个可编程逻辑单元结构通过进位输入端口和进位输出端口与其他可编程逻辑单元结构中的加法进位链级联结构级联。
其进一步的技术方案为,在每个基本逻辑单元内部,每个加法器产生一位加法输出,每位加法输出分别输入到一个寄存器的输入端以及一个第二两输入端选择器的一个输入端,寄存器的输出端连接第二两输入选择器的另一个输入端,第二两输入选择器的输出端连接到基本逻辑单元的数据输出端口;每位加法输出通过所在回路的寄存器和第二两输入选择器直接输出或者寄存输出。
其进一步的技术方案为,每个基本逻辑单元包括8个数据输入端口和4个数据输出端口,专用乘法器为4位乘法器且包括两个4位数据输入端口和一个8位数据输出端口,第一两输入选择器包括两个8位数据输入端口和一个8位数据输出端口,专用乘法器的一个数据输入端口与第一基本逻辑单元共用数据输入端口、另一个数据输入端口与第二基本逻辑单元共用数据输入端口,第一基本逻辑单元和第二基本逻辑单元的数据输出端口均连接到第一两输入选择器的一个数据输入端口。
其进一步的技术方案为,可编程逻辑单元结构包括8个基本逻辑单元,可编程逻辑单元结构共包括64个数据输入端口和32个数据输出端口,整个可编程逻辑单元结构的数据输入端口的数量与8个基本逻辑单元的数据输入端口的总数相等,整个可编程逻辑单元结构的数据输出端口的数量与8个基本逻辑单元的数据输出端口的总数相等。
其进一步的技术方案为,每个基本逻辑单元内部包括4个加法器、8个三输入查找表以及14个两输入选择器,基本逻辑单元的8个数据输入端口输入8个输入信号;8个三输入查找表共用基本逻辑单元的两个数据输入端口,8个三输入查找表实现三输入LUT函数,8个三输入查找表结合4个两输入选择器实现四输入LUT函数,8个三输入查找表结合7个两输入选择器实现五输入LUT函数,8个三输入查找表结合8个两输入选择器实现一个六输入LUT函数或实现两个非独立的五输入LUT函数,剩余的6个两输入选择器用于选择每个三输入查找表的输入信号,4个加法器实现四位加法运算产生四位加法输出分别通过4个数据输出端口输出。
其进一步的技术方案为,根据权利要求8的可编程逻辑单元结构,其特征在于,基本逻辑单元包括8个数据输入端口分别为A、B、C、D、E、F、G、H,包括4个加法器分别为第一加法器、第二加法器、第三加法器和第四加法器,包括8个三输入查找表分别为第一查找表、第二查找表、第三查找表、第四查找表、第五查找表、第六查找表、第七查找表和第八查找表;8个三输入查找表结合4个两输入选择器MUX15、MUX16、MUX17、MUX18实现四输入LUT函数,在四输入LUT函数结构基础上结合3个两输入选择器MUX19、MUX20和MUX21实现五输入LUT函数,在五输入LUT函数结构基础上结合1个两输入选择器MUX22实现一个六输入LUT函数或者两个非独立的五输入LUT函数;第一查找表的输出端和第二查找表的输出端分别连接到第一加法器的两个输入端、还分别连接到MUX15的两个输入端;第三查找表的输出端和第四查找表的输出端分别连接到第二加法器的两个输入端、还分别连接到MUX16的两个输入端;
数据输入端口H同时作为MUX15和MUX16的控制端,MUX15的输出端和MUX16的输出端分别连接MUX19的两个输入端,还分别连接MUX20的两个输入端;
第五查找表的输出端和第六查找表的输出端分别连接到第三加法器的两个输入端,还分别连接到MUX17的两个输入端;第七查找表的输出端和第八查找表的输出端分别连接到第四加法器的两个输入端,还分别连接到MUX18的两个输入端;
数据输入端口D同时作为MUX17和MUX18的控制端,MUX17的输出端和MUX18的输出端分别连接MUX21的两个输入端;
数据输入端口E同时作为MUX20和MUX21的控制端,MUX20的输出端和MUX21的输出端分别连接MUX22的两个输入端;数据输入端口F同时作为MUX19和MUX22的控制端。
其进一步的技术方案为,基本逻辑单元内部包括四个数据输出端口分别为O1、O2、O3和O4,包括4个两输入选择器分别为MUX29、MUX30、MUX31和MUX32;第一加法器的输出端和MUX19的输出端分别连接MUX29的两个输入端,第二加法器的输出端和MUX22的输出端分别连接MUX30的两个输入端,第三加法器的输出端和MUX21的输出端分别连接MUX31的两个输入端,第四加法器的输出端和BLE的数据输入端口A分别连接MUX32的两个输入端;
MUX29的输出端连接至数据输出端口O1,MUX30的输出端连接至数据输出端口O2,MUX31的输出端连接至数据输出端口O3,MUX32的输出端连接至数据输出端口O4。
其进一步的技术方案为,MUX29、MUX30、MUX31和MUX32中每个两输入选择器的输出端分别输入到一个寄存器的输入端以及一个第二两输入端选择器的一个输入端,寄存器的输出端连接第二两输入选择器的另一个输入端,第二两输入选择器的输出端连接到基本逻辑单元的数据输出端口。
其进一步的技术方案为,基本逻辑单元内部包括6个用于选择每个三输入查找表的输入信号的两输入选择器分别为MUX23、MUX24、MUX25、MUX26、MUX27和MUX28,8个三输入查找表的第一个输入端均相连并连接到MUX25的输出端,MUX25的两个输入端分别连接数据输入端口B和数据输出端口O1;
8个三输入查找表的第二个输入端均相连并连接到MUX26的输出端,MUX26的两个输入端分别连接数据输入端口A和数据输出端口O4;
第一查找表的第三个输入端连接MUX23的输出端,MUX23的两个输入端分别连接数据输入端口G和数据输入端口H;
第二查找表的第三个输入端以及第三查找表的第三个输入端均连接数据输入端口G;
第四查找表的第三个输入端连接MUX24的输出端,MUX24的两个输入端分别连接数据输入端口G和数据输入端口F;
第五查找表的第三个输入端连接MUX27的输出端,MUX27的两个输入端分别连接数据输入端口C和数据输入端口E;
第六查找表的第三个输入端以及第七查找表的第三个输入端均连接数据输入端口C;
第八查找表的第三个输入端连接MUX28的输出端,MUX28的两个输入端分别连接数据输入端口C和数据输入端口D。
本发明的有益技术效果是:
本申请公开了一种支持高效乘累加运算的可编程逻辑单元结构,该可编程逻辑单元结构内部包含一个专用乘法器,通过增加专用的乘法器可以有效提高可编程逻辑单元结构的乘法运算能力,从而提高可编程逻辑单元结构的乘累加运算效率,专用乘法器与基本逻辑单元共用数据输入端口和数据输出端口,通过第一两输入选择器进行数据选择,从而无需增加数据输入输出端口,可以保证不增加FPGA的互连压力。
另外,本申请针对BLE进行结构优化,使其支持多位加法运算且加法运算之间有专用的进位链连接,相邻BLE的进位链可以级联,相邻的可编程逻辑单元结构的进位链也可以级联,从而可以实现更高位宽的加法运算,在增加较少逻辑面积的情况下可以大大提高窄位宽乘累加运算效率,从而提高整个FPGA的窄位宽乘累加运算能力。
附图说明
图1是本申请公开的可编程逻辑单元结构的结构示意图。
图2是可编程逻辑单元结构内部每个BLE的结构示意图。
图3是BLE之间以及可编程逻辑单元结构之间的加法进位链级联示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本申请公开了一种支持高效乘累加运算的可编程逻辑单元结构,该可编程逻辑单元结构包括:K个基本逻辑单元(BLE)、专用乘法器1以及第一两输入选择器第一两输入选择器2,每个BLE包括若干个数据输入端口和若干个数据输出端口,每个BLE内部包括查找表、寄存器、多路选择器和加法进位链并用于实现多位加法运算。专用乘法器1基于FPGA内部的硬IP实现,专用乘法器1包括两个数据输入端口和一个数据输出端口,第一两输入选择器2包括两个数据输入端口和一个数据输出端口,专用乘法器1的每个数据输入端口分别与若干个BLE共用数据输入端口,专用乘法器1的数据输出端口连接第一两输入选择器2的一个数据输入端口,K1个BLE的数据输出端口均连接至第一两输入选择器2的另一个数据输入端口,第一两输入选择器2实现数据选择功能从而可以选择输出BLE的数据或输出专用乘法器1的数据。各个BLE的数据输入端口均通过本地互连接入FPGA逻辑中,第一两输入选择器2的数据输出端口以及其余的K-K1个BLE的数据输出端口均通过本地互连接入FPGA逻辑中。通过增加专用乘法器1,可以有效提高可编程逻辑单元结构的乘法运算能力。
本申请给出了一种常用结构,如图1所示,可编程逻辑单元结构包括8个基本逻辑单元分别为BLE1~BLE8。每个BLE包括8个数据输入端口和4个数据输出端口,专用乘法器1为4位乘法器且包括两个4位数据输入端口和一个8位数据输出端口,第一两输入选择器2包括两个8位数据输入端口和一个8位数据输出端口。专用乘法器1的一个数据输入端口与第一基本逻辑单元BLE1共用数据输入端口、另一个数据输入端口与第二基本逻辑单元BLE2共用数据输入端口,第一基本逻辑单元BLE1和第二基本逻辑单元BLE2的数据输出端口均连接到第一两输入选择器2的一个数据输入端口。第一基本逻辑单元BLE1和第二基本逻辑单元BLE2实际可以是其中的任意两个基本逻辑单元。8个BLE的数据输入端口均通过本地互连接入FPGA逻辑中,第一两输入选择器2的数据输出端口以及其余的6个BLE的数据输出端口均通过本地互连接入FPGA逻辑中,因此整个可编程逻辑单元结构共包括64个数据输入端口和32个数据输出端口,由此可见,在增加了专用乘法器1和第一两输入选择器2扩充了可编程逻辑单元结构的功能后,整个可编程逻辑单元结构的数据输入端口和数据输出端口与原先8个BLE的数据输入端口和数据输出端口的总数相等,无需增加数据输入输出端口,从而不会增加FPGA的互连压力。
需要说明的是,专用乘法器1与BLE共用数据输入端口时,若干个BLE的数据输入端口的总位数满足专用乘法器1的数据输入端口的位数要求,比如在本申请中,由于专用乘法器1为4位乘法器、每个数据输入端口占用4位,而每个BLE具有8个数据输入端口,因此一个BLE的8位数据输入端口可以满足专用乘法器1的4位输入要求,所以专用乘法器1的每个4位数据输入端口只需与一个BLE的8位数据输入端口共用即可。但假设专用乘法器1为16位乘法器、每个数据输入端口占用16位,则需要两个BLE共16位数据输入端口才能满足专用乘法器1的输入位数需要,此时专用乘法器1的每个16位数据输入端口只需与两个BLE的8位数据输入端口共用。
同样的,连接到第一两输入选择器2的同一个数据输入端口的BLE的数量也是由专用乘法器1的数据输出端口的位数决定的,比如在本申请中,由于专用乘法器1为4位乘法器、数据输出端口占用8位,而每个BLE具有4个数据输出端口,所以两个BLE共8位数据输出端口占用的总位数与专用乘法器1的数据输出端口占用总位数相同,所以将2个BLE接到第一两输入选择器2的同一个数据输入端口。但假设专用乘法器1的数据输出端口占用更多位数,则可能将更多个BLE同时接到第一两输入选择器2的同一个数据输入端口。
另外,在图1所示的举例中,BLE1和BLE2与专用乘法器1共用数据输入端口,同时BLE1和BLE2接入第一两输入选择器2,但实际上,与专用乘法器1共用数据输入端口的BLE的数量与接入第一两输入选择器2的数量可以相同也可以不同。
同时本申请对每个BLE的内部结构进行了优化,每个BLE内部包括若干个查找表和加法器,每两个查找表实现操作数传递并利用对应的加法器产生一位加法输出,各位加法输出通过BLE的数据输出端口输出。另外,如图2所示,每位加法输出分别输入到一个寄存器的输入端以及一个第二两输入端选择器的一个输入端,寄存器的输出端连接第二两输入选择器的另一个输入端,第二两输入选择器的输出端连接到BLE的数据输出端口。第二两输入选择器可以选择将加法输出直接输出到BLE的数据输出端口,或者,选择将加法输出先经过寄存器寄存后输出到BLE的数据输出端口,这样就可以实现高效的乘累加运算。
在本申请提供的典型结构中,每个BLE包括8个数据输入端口A、B、C、D、E、F、G、H以及4个数据输出端口分别为O1、O2、O3和O4,BLE内部包括4个加法器3、4、5、6实现4位加法,则BLE内部共包括4个寄存器7、8、9、10以及4个第二两输入端选择器MUX11(图中以标号11表示)、MUX12(图中以标号12表示)、MUX13(图中以标号13表示)、MUX14(图中以标号14表示),加法器3经过回路上的寄存器7和MUX11连接到数据输出端口O1,加法器4经过回路上的寄存器8和MUX12连接到数据输出端口O2,加法器5经过回路上的寄存器9和MUX13连接到数据输出端口O3,加法器6经过回路上的寄存器10和MUX14连接到数据输出端口O4。
另外在每个BLE内,各个加法器的进位输入输出端依次相连形成加法进位链,如图2所示,加法器3、4、5、6的进位输入输出端依次相连,则BLE还包括位于内部加法进位链的进位输入端的进位输入端口Cin以及位于内部加法进位链的进位输出端的进位输出端口Cout。则如图3所示,每个BLE通过Cin与相邻的上一级BLE的Cout相连、通过Cout与相邻的下一级BLE的Cin相连,由此可编程逻辑单元结构中各个BLE内的加法进位链通过进位输入输出端依次相连形成级联结构。则对于整个可编程逻辑单元结构来说,其还包括位于内部的加法进位链级联结构的输入端的进位输入端口Cin和位于内部的加法进位链级联结构的输入端的进位输出端口Cout,每个可编程逻辑单元结构通过Cin与相邻的上一级可编程逻辑单元结构的Cout相连、通过Cout与相邻的下一级可编程逻辑单元结构的Cin相连,由此可编程逻辑单元结构之间的加法进位链通过进位输入输出端依次相连形成级联结构,从而实现更高位宽的加法运算,如图3示出了两个可编程逻辑单元结构之间的级联结构示意图。
在本申请提供的典型结构中,每个BLE内部的特征及具体结构为:
除了内部包括4个加法器3、4、5、6以及8个数据输入端口A、B、C、D、E、F、G、H以及4个数据输出端口O1、O2、O3和O4以及进位输入端口Cin和进位输出端口Cout之外,每个BLE内部包括8个三输入查找表分别为第一查找表(第一3-LUT)、第二查找表(第二3-LUT)、第三查找表(第三3-LUT)、第四查找表(第四3-LUT)、第五查找表(第五3-LUT)、第六查找表(第六3-LUT)、第七查找表(第七3-LUT)和第八查找表(第八3-LUT),以及还包括14个两输入选择器MUX15~MUX28,图上仅以15~28进行标号,也即图中的标号15表示MUX15,标号16表示MUX16……标号28表示MUX28,依次类推。
8个三输入查找表共用基本逻辑单元的两个数据输入端口A和B,8个三输入查找表实现三输入LUT函数,8个三输入查找表结合4个两输入选择器MUX15、MUX16、MUX17、MUX18实现四输入LUT函数,在此基础上再结合3个两输入选择器MUX19、MUX20和MUX21实现五输入LUT函数,在此基础上再结合1个两输入选择器MUX22实现一个六输入LUT函数或实现两个非独立的五输入LUT函数。剩余的6个两输入选择器MUX23、MUX24、MUX25、MUX26、MUX27和MUX28用于选择每个三输入查找表的输入信号。4个加法器实现四位加法运算产生四位加法输出分别通过4个数据输出端口输出。则BLE内部实际还包括4个两输入选择器MUX29、MUX30、MUX31和MUX32,同样的,图中仅以29~32依次表示,MUX29~MUX32连接在加法器输出端和对应的寄存器之间,用于进行输出数据选择。可编程逻辑单元结构可通过内部的多个BLE实现更高输入的LUT函数。
则在本申请的具体实例中,每个BLE内部的具体结构为:
第一查找表的输出端和第二查找表的输出端分别连接到第一加法器3的两个输入端,还分别连接到MUX15的两个输入端。第三查找表的输出端和第四查找表的输出端分别连接到第二加法器4的两个输入端,还分别连接到MUX16的两个输入端。BLE的数据输入端口H同时作为MUX15和MUX16的控制端。MUX15的输出端和MUX16的输出端分别连接MUX19的两个输入端,还分别连接MUX20的两个输入端。第五查找表的输出端和第六查找表的输出端分别连接到第三加法器5的两个输入端,还分别连接到MUX17的两个输入端。第七查找表的输出端和第八查找表的输出端分别连接到第四加法器6的两个输入端,还分别连接到MUX18的两个输入端。BLE的数据输入端口D同时作为MUX17和MUX18的控制端,MUX17的输出端和MUX18的输出端分别连接MUX21的两个输入端。BLE的数据输入端口E同时作为MUX20和MUX21的控制端,MUX20的输出端和MUX21的输出端分别连接MUX22的两个输入端。BLE的数据输入端口F同时作为MUX19和MUX22的控制端。
第一加法器3的输出端和MUX19的输出端分别连接MUX29的两个输入端,第二加法器4的输出端和MUX22的输出端分别连接MUX30的两个输入端,第三加法器5的输出端和MUX21的输出端分别连接MUX31的两个输入端,第四加法器6的输出端和BLE的数据输入端口A分别连接MUX32的两个输入端。第一加法器3、第二加法器4、第三加法器5和第四加法器6的进位输入输出端依次相连形成加法进位链并连接BLE的Cin和Cout
MUX29的输出端连接寄存器7的输入端,MUX29的输出端和寄存器7的输出端分别连接MUX11的两个输入端,MUX11的输出端连接BLE的数据输出端口O1。MUX30的输出端连接寄存器8的输入端,MUX30的输出端和寄存器8的输出端分别连接MUX12的两个输入端,MUX12的输出端连接BLE的数据输出端口O2。MUX31的输出端连接寄存器9的输入端,MUX31的输出端和寄存器9的输出端分别连接MUX13的两个输入端,MUX13的输出端连接BLE的数据输出端口O3。MUX32的输出端连接寄存器10的输入端,MUX32的输出端和寄存器10的输出端分别连接MUX14的两个输入端,MUX14的输出端连接BLE的数据输出端口O4。
8个三输入查找表的第一个输入端均相连并连接到MUX25的输出端,MUX25的两个输入端分别连接BLE的数据输入端口B和数据输出端口O1。8个三输入查找表的第二个输入端均相连并连接到MUX26的输出端,MUX26的两个输入端分别连接BLE的数据输入端口A和数据输出端口O4。第一查找表的第三个输入端连接MUX23的输出端,MUX23的两个输入端分别连接BLE的数据输入端口G和H。第二查找表的第三个输入端以及第三查找表的第三个输入端均连接BLE的数据输入端口G。第四查找表的第三个输入端连接MUX24的输出端,MUX24的两个输入端分别连接BLE的数据输入端口G和F。第五查找表的第三个输入端连接MUX27的输出端,MUX27的两个输入端分别连接BLE的数据输入端口C和E。第六查找表的第三个输入端以及第七查找表的第三个输入端均连接BLE的数据输入端口C。第八查找表的第三个输入端连接MUX28的输出端,MUX28的两个输入端分别连接BLE的数据输入端口C和D。
以上所述的仅是本申请的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。

Claims (12)

1.一种支持高效乘累加运算的可编程逻辑单元结构,其特征在于,所述可编程逻辑单元结构包括:K个基本逻辑单元、专用乘法器以及第一两输入选择器,每个所述基本逻辑单元包括若干个数据输入端口和若干个数据输出端口,每个所述基本逻辑单元内部包括查找表、寄存器、多路选择器和加法进位链;所述专用乘法器基于FPGA内部的硬IP实现;
所述专用乘法器包括两个数据输入端口和一个数据输出端口,所述第一两输入选择器包括两个数据输入端口和一个数据输出端口,所述专用乘法器的每个数据输入端口分别与若干个基本逻辑单元共用数据输入端口,所述专用乘法器的数据输出端口连接所述第一两输入选择器的一个数据输入端口,K1个基本逻辑单元的数据输出端口均连接至所述第一两输入选择器的另一个数据输入端口;
各个所述基本逻辑单元的数据输入端口均通过本地互连接入FPGA逻辑中,所述第一两输入选择器的数据输出端口以及其余的K-K1个基本逻辑单元的数据输出端口均通过本地互连接入FPGA逻辑中。
2.根据权利要求1所述的可编程逻辑单元结构,其特征在于,所述基本逻辑单元内部的每两个查找表实现操作数传递并利用对应的加法器产生一位加法输出,各位加法输出通过所述基本逻辑单元的数据输出端口输出;且所述基本逻辑单元内部的各个加法器的进位输入输出端依次相连形成所述加法进位链。
3.根据权利要求2所述的可编程逻辑单元结构,其特征在于,所述可编程逻辑单元结构中各个基本逻辑单元内的加法进位链通过进位输入输出端依次相连形成级联结构,则所述可编程逻辑单元结构还包括进位输入端口和进位输出端口,所述进位输入端口连接在加法进位链级联结构的输入端,所述进位输出端口连接在加法进位链级联结构的输出端。
4.根据权利要求3所述的可编程逻辑单元结构,其特征在于,每个所述可编程逻辑单元结构通过所述进位输入端口和进位输出端口与其他可编程逻辑单元结构中的加法进位链级联结构级联。
5.根据权利要求1所述的可编程逻辑单元结构,其特征在于,在每个所述基本逻辑单元内部,每个加法器产生一位加法输出,每位加法输出分别输入到一个寄存器的输入端以及一个第二两输入端选择器的一个输入端,所述寄存器的输出端连接所述第二两输入选择器的另一个输入端,所述第二两输入选择器的输出端连接到所述基本逻辑单元的数据输出端口;每位加法输出通过所在回路的寄存器和第二两输入选择器直接输出或者寄存输出。
6.根据权利要求1所述的可编程逻辑单元结构,其特征在于,每个所述基本逻辑单元包括8个数据输入端口和4个数据输出端口,所述专用乘法器为4位乘法器且包括两个4位数据输入端口和一个8位数据输出端口,所述第一两输入选择器包括两个8位数据输入端口和一个8位数据输出端口,所述专用乘法器的一个数据输入端口与第一基本逻辑单元共用数据输入端口、另一个数据输入端口与第二基本逻辑单元共用数据输入端口,所述第一基本逻辑单元和所述第二基本逻辑单元的数据输出端口均连接到所述第一两输入选择器的一个数据输入端口。
7.根据权利要求6所述的可编程逻辑单元结构,其特征在于,所述可编程逻辑单元结构包括8个所述基本逻辑单元,所述可编程逻辑单元结构共包括64个数据输入端口和32个数据输出端口,整个所述可编程逻辑单元结构的数据输入端口的数量与8个所述基本逻辑单元的数据输入端口的总数相等,整个所述可编程逻辑单元结构的数据输出端口的数量与8个所述基本逻辑单元的数据输出端口的总数相等。
8.根据权利要求6所述的可编程逻辑单元结构,其特征在于,每个所述基本逻辑单元内部包括4个加法器、8个三输入查找表以及14个两输入选择器,所述基本逻辑单元的8个数据输入端口输入8个输入信号;所述8个三输入查找表共用所述基本逻辑单元的两个数据输入端口,所述8个三输入查找表实现三输入LUT函数,所述8个三输入查找表结合4个两输入选择器实现四输入LUT函数,所述8个三输入查找表结合7个两输入选择器实现五输入LUT函数,所述8个三输入查找表结合8个两输入选择器实现一个六输入LUT函数或实现两个非独立的五输入LUT函数,剩余的6个两输入选择器用于选择每个三输入查找表的输入信号,所述4个加法器实现四位加法运算产生四位加法输出分别通过所述4个数据输出端口输出。
9.根据权利要求8所述的可编程逻辑单元结构,其特征在于,所述基本逻辑单元包括8个数据输入端口分别为A、B、C、D、E、F、G、H,包括4个加法器分别为第一加法器、第二加法器、第三加法器和第四加法器,包括8个三输入查找表分别为第一查找表、第二查找表、第三查找表、第四查找表、第五查找表、第六查找表、第七查找表和第八查找表;所述8个三输入查找表结合4个两输入选择器MUX15、MUX16、MUX17、MUX18实现四输入LUT函数,在四输入LUT函数结构基础上结合3个两输入选择器MUX19、MUX20和MUX21实现五输入LUT函数,在五输入LUT函数结构基础上结合1个两输入选择器MUX22实现一个六输入LUT函数或者两个非独立的五输入LUT函数;所述第一查找表的输出端和所述第二查找表的输出端分别连接到所述第一加法器的两个输入端、还分别连接到MUX15的两个输入端;所述第三查找表的输出端和所述第四查找表的输出端分别连接到所述第二加法器的两个输入端、还分别连接到MUX16的两个输入端;
数据输入端口H同时作为MUX15和MUX16的控制端,MUX15的输出端和MUX16的输出端分别连接MUX19的两个输入端,还分别连接MUX20的两个输入端;
所述第五查找表的输出端和所述第六查找表的输出端分别连接到所述第三加法器的两个输入端,还分别连接到MUX17的两个输入端;所述第七查找表的输出端和所述第八查找表的输出端分别连接到所述第四加法器的两个输入端,还分别连接到MUX18的两个输入端;
数据输入端口D同时作为MUX17和MUX18的控制端,MUX17的输出端和MUX18的输出端分别连接MUX21的两个输入端;
数据输入端口E同时作为MUX20和MUX21的控制端,MUX20的输出端和MUX21的输出端分别连接MUX22的两个输入端;数据输入端口F同时作为MUX19和MUX22的控制端。
10.根据权利要求9所述的可编程逻辑单元结构,其特征在于,所述基本逻辑单元内部包括四个数据输出端口分别为O1、O2、O3和O4,包括4个两输入选择器分别为MUX29、MUX30、MUX31和MUX32;所述第一加法器的输出端和MUX19的输出端分别连接MUX29的两个输入端,所述第二加法器的输出端和MUX22的输出端分别连接MUX30的两个输入端,所述第三加法器的输出端和MUX21的输出端分别连接MUX31的两个输入端,所述第四加法器的输出端和BLE的数据输入端口A分别连接MUX32的两个输入端;
MUX29的输出端连接至数据输出端口O1,MUX30的输出端连接至数据输出端口O2,MUX31的输出端连接至数据输出端口O3,MUX32的输出端连接至数据输出端口O4。
11.根据权利要求10所述的可编程逻辑单元结构,其特征在于,MUX29、MUX30、MUX31和MUX32中每个两输入选择器的输出端分别输入到一个寄存器的输入端以及一个第二两输入端选择器的一个输入端,所述寄存器的输出端连接所述第二两输入选择器的另一个输入端,所述第二两输入选择器的输出端连接到所述基本逻辑单元的数据输出端口。
12.根据权利要求10所述的可编程逻辑单元结构,其特征在于,所述基本逻辑单元内部包括6个用于选择每个三输入查找表的输入信号的两输入选择器分别为MUX23、MUX24、MUX25、MUX26、MUX27和MUX28,8个三输入查找表的第一个输入端均相连并连接到MUX25的输出端,MUX25的两个输入端分别连接数据输入端口B和数据输出端口O1;
8个三输入查找表的第二个输入端均相连并连接到MUX26的输出端,MUX26的两个输入端分别连接数据输入端口A和数据输出端口O4;
所述第一查找表的第三个输入端连接MUX23的输出端,MUX23的两个输入端分别连接数据输入端口G和数据输入端口H;
所述第二查找表的第三个输入端以及所述第三查找表的第三个输入端均连接数据输入端口G;
所述第四查找表的第三个输入端连接MUX24的输出端,MUX24的两个输入端分别连接数据输入端口G和数据输入端口F;
所述第五查找表的第三个输入端连接MUX27的输出端,MUX27的两个输入端分别连接数据输入端口C和数据输入端口E;
所述第六查找表的第三个输入端以及所述第七查找表的第三个输入端均连接数据输入端口C;
所述第八查找表的第三个输入端连接MUX28的输出端,MUX28的两个输入端分别连接数据输入端口C和数据输入端口D。
CN202010611874.6A 2020-06-30 2020-06-30 支持高效乘累加运算的可编程逻辑单元结构 Active CN111752529B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010611874.6A CN111752529B (zh) 2020-06-30 2020-06-30 支持高效乘累加运算的可编程逻辑单元结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010611874.6A CN111752529B (zh) 2020-06-30 2020-06-30 支持高效乘累加运算的可编程逻辑单元结构

Publications (2)

Publication Number Publication Date
CN111752529A true CN111752529A (zh) 2020-10-09
CN111752529B CN111752529B (zh) 2021-12-07

Family

ID=72676583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010611874.6A Active CN111752529B (zh) 2020-06-30 2020-06-30 支持高效乘累加运算的可编程逻辑单元结构

Country Status (1)

Country Link
CN (1) CN111752529B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380799A (zh) * 2020-11-03 2021-02-19 上海安路信息科技有限公司 基于siou的微总线型dsp电路架构
CN114333281A (zh) * 2022-01-05 2022-04-12 北京广利核系统工程有限公司 一种模拟控制信号的信号传递链路
CN112380799B (zh) * 2020-11-03 2024-05-31 上海安路信息科技股份有限公司 基于siou的微总线型dsp电路架构

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0333599A1 (fr) * 1988-03-17 1989-09-20 Thomson-Csf Multiplieur-additionneur paramétrable dans les corps de Galois, et son utilisation dans un processeur de traitement de signal numérique
CN101082860A (zh) * 2007-07-03 2007-12-05 浙江大学 一种乘累加装置
US8645450B1 (en) * 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
CN104461449A (zh) * 2014-11-14 2015-03-25 中国科学院数据与通信保护研究教育中心 基于向量指令的大整数乘法实现方法及装置
CN106708467A (zh) * 2016-12-09 2017-05-24 深圳市紫光同创电子有限公司 一种宽位累加器电路及其设计方法、可编程逻辑器件
CN106788331A (zh) * 2016-11-21 2017-05-31 深圳市紫光同创电子有限公司 一种有限长冲激响应滤波电路及可编程逻辑器件
CN109919321A (zh) * 2019-02-01 2019-06-21 京微齐力(北京)科技有限公司 单元具有本地累加功能的人工智能模块及系统芯片
CN109947395A (zh) * 2018-02-26 2019-06-28 上海安路信息科技有限公司 可编程逻辑单元结构及芯片

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0333599A1 (fr) * 1988-03-17 1989-09-20 Thomson-Csf Multiplieur-additionneur paramétrable dans les corps de Galois, et son utilisation dans un processeur de traitement de signal numérique
US8645450B1 (en) * 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
CN101082860A (zh) * 2007-07-03 2007-12-05 浙江大学 一种乘累加装置
CN104461449A (zh) * 2014-11-14 2015-03-25 中国科学院数据与通信保护研究教育中心 基于向量指令的大整数乘法实现方法及装置
CN106788331A (zh) * 2016-11-21 2017-05-31 深圳市紫光同创电子有限公司 一种有限长冲激响应滤波电路及可编程逻辑器件
CN106708467A (zh) * 2016-12-09 2017-05-24 深圳市紫光同创电子有限公司 一种宽位累加器电路及其设计方法、可编程逻辑器件
CN109947395A (zh) * 2018-02-26 2019-06-28 上海安路信息科技有限公司 可编程逻辑单元结构及芯片
CN109919321A (zh) * 2019-02-01 2019-06-21 京微齐力(北京)科技有限公司 单元具有本地累加功能的人工智能模块及系统芯片

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MÁRIO VÉSTIAS .ETC: "Parallel dot-products for deep learning on FPGA", 《2017 27TH INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE LOGIC AND APPLICATIONS (FPL)》 *
洪琪等: "可重构浮点混合/连续乘-加器的设计与实现", 《计算机工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380799A (zh) * 2020-11-03 2021-02-19 上海安路信息科技有限公司 基于siou的微总线型dsp电路架构
CN112380799B (zh) * 2020-11-03 2024-05-31 上海安路信息科技股份有限公司 基于siou的微总线型dsp电路架构
CN114333281A (zh) * 2022-01-05 2022-04-12 北京广利核系统工程有限公司 一种模拟控制信号的信号传递链路

Also Published As

Publication number Publication date
CN111752529B (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
JP3613396B2 (ja) 機能ブロック
KR100280861B1 (ko) 프로그램 가능한 논리 네트워크
US7372297B1 (en) Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7765382B2 (en) Propagating reconfiguration command over asynchronous self-synchronous global and inter-cluster local buses coupling wrappers of clusters of processing module matrix
CN103762974B (zh) 多功能可配置的六输入查找表结构
CN107885485B (zh) 一种基于超前进位实现快速加法的可编程逻辑单元结构
CN111258538B (zh) 一种基于fpga的大位宽高性能加法器电路
CN105187050A (zh) 一种可配置的五输入查找表电路
CN111047034B (zh) 一种基于乘加器单元的现场可编程神经网络阵列
CN111752529B (zh) 支持高效乘累加运算的可编程逻辑单元结构
US8463836B1 (en) Performing mathematical and logical operations in multiple sub-cycles
US20080204072A1 (en) Programmable Logic Device
KR20180116117A (ko) 프로그래밍가능 게이트 어레이에 대한 로직 블록 아키텍처
WO2016090599A1 (zh) 一种可扩展可配置的逻辑元件和fpga器件
JP3887622B2 (ja) データ処理装置
CN111752528B (zh) 一种支持高效乘法运算的基本逻辑单元
CN114519320A (zh) 一种查找表电路及其配置方法
Dayall et al. Multiplexer-Based Design of Adders for Low Power VLSI Applications
CN117034827B (zh) 一种用于eFPGA的多路选择器、互连开关及外围接口电路
CN116931873B (zh) 两字节乘法电路及其任意位宽为2次幂的乘法电路与芯片
KR100321314B1 (ko) 실시간 재구성 가능한 데이터 패스 로직을 가지는 필드 프로그래머블 게이트어레이
US20240118870A1 (en) Digital Signal Processing Circuitry with Multiple Precisions and Dataflows
Warrier et al. Reconfigurable DSP block design for dynamically reconfigurable architecture
CN112668268A (zh) 一种高灵活性Flash型FPGA可编程逻辑单元结构
Jordan A configurable decoder for pin-limited applications

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