一种可扩展可配置的逻辑元件和FPGA器件
技术领域
本发明涉及集成电路技术领域,特别是一种可扩展可配置的逻辑元件和FPGA器件。
背景技术
现场可编程门阵列(Field-Programmable Gate Array,FPGA)是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。
FPGA内部有三种逻辑部件构成:可编程的逻辑功能块(configurable logicblocks,CLB),可编程的输入输出单元和可编程的内部互联资源。
其中,多个可编程的CLB规则的排列成一个阵列结构,分布于整个FPGA中。CLB包括逻辑元件(Logic Element,LE)和绕线结构(Xbar),LE通常能够实现多种逻辑功能。LE的可配置性和灵活性等,会直接影响到FPGA的性能。
发明内容
本发明提供了一种可扩展可配置的逻辑元件和FPGA器件,所述逻辑元件支持多种配置模式,能够实现多种逻辑功能,包括输出常量、查找表、寄存器、全加器,以及它们直接的组合逻辑功能等,具有出色的配置灵活性和可扩展性。
第一方面,本发明实施例提供了一种可扩展可配置的逻辑元件,包括:
多个逻辑区,每个逻辑区包括两个逻辑单元;
每个逻辑单元包括七个输入端口、三个输出端口、一个加法进位输入端、一个加法进位输出端、一个六输入二输出的查找表、一个一比特全加器、第一寄存器和第二寄存器;
其中,所述第一寄存器根据配置对所述查找表的第一输出端输出的信号或者所述全加器的进位信号进行存储;
所述第二寄存器根据配置对所述查找表的第二输出端输出的信号或者所述全加器的输出信号进行存储;
当前逻辑单元中的所述加法进位输出端,与所述当前逻辑单元的上一级逻辑单元中的所述加法进位输入端相连接,构成所述逻辑元件中的加法进位链。
优选的,所述逻辑元件还包括:至少四组二选一选通器;
第一组二选一选通器的两个输入端,分别连接第2m个逻辑区和第2m+1个逻辑区中第一逻辑单元的查找表的第二输出端;
第二组二选一选通器的两个输入端,分别连接第2m个逻辑区和第2m+1个逻辑区中第二逻辑单元的查找表的第二输出端;
第三组二选一选通器的两个输入端,分别连接所述第一组二选一选通器中第2n个和第2n+1个二选一选通器的输出端;
第四组二选一选通器的两个输入端,分别连接所述第二组二选一选通器中第2n个和第2n+1个二选一选通器的输出端;
其中,m,n均为自然数。
进一步优选的,当所述六输入二输出的查找表用于实现四选一的逻辑功能时,
通过所述第一组二选一选通器、第二组二选一选通器,分别实现八选一的逻辑功能;
通过所述第三组二选一选通器、第四组二选一选通器,分别实现十六选一的逻辑功能。
进一步优选的,所述三个输出端口分别为:
第一输出端口,与所述第二寄存器的输出端相连接,用于输出所述第二寄存器的输出信号;
第二输出端口,与所述六输入二输出的查找表的第二输出端相连接,用于输出所述查找表的第二输出端输出的信号;
第三输出端口,与一个配置选通器相连接,根据所述配置选通器的配置,选通输出所述第一寄存器的输出信号、所述全加器的进位信号、所述全加器的输出信号、所述查找表的第一输出端输出的信号、所述八选一的逻辑输出信号、所述十六选一的逻辑选通信号或者所述第二寄存器的输出信号中的其中一种。
进一步优选的,所述逻辑元件包括的多个逻辑区具体为四个逻辑区,所述第一组二选一选通器具体为两个二选一选通器,所述第二组二选一选通器具体为两个二选一选通器,所述第三组二选一选通器具体为一个二选一选通器,所述第四组二选一选通器具体为一个二选一选通器。
进一步优选的,所述七个输入端口分别为:
六个数据输入端口,用于向所述六选一选通器输入数据信号;
旁路信号输入端口,用于向所述第三组二选一选通器或者向第四组二选一选通器提供选通信号。
进一步优选的,所述六个数据输入端口中的第六个数据输入端口还用于,向所述一比特全加器输入加数。
优选的,在一个逻辑单元中,所述加法进位输入端与所述一比特全加器的输入端相连接,所述加法进位输出端与所述一比特全加器的输出端相连接。
第二方面,本发明实施例提供了一种FPGA器件,所述FPGA器件包括多个上述第一方面所述的逻辑元件和多个绕线结构;
每个所述绕线结构与一个所述逻辑元件相连接,用于向所述逻辑元件中的寄存器提供时钟信号。
优选的,所述逻辑元件还用于,向所述逻辑元件中的进位链提供最低位的进位信号。
本发明实施例提供的可扩展可配置的逻辑元件,支持多种配置模式,能够实现多种逻辑功能,包括输出常量、查找表、寄存器、全加器,以及它们直接的组合逻辑功能等,具有出色的配置灵活性和可扩展性。应用这种逻辑元件,能够实现对FPGA芯片布局结构和面积的优化。
附图说明
图1为本发明实施例提供的逻辑功能块(CLB)的结构示意图;
图2为本发明实施例提供的逻辑元件中一个逻辑区的结构示意图。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它的实施例,都属于本发明保护的范围。
图1为本发明实施例提供的FPGA中可编程的逻辑功能块(CLB)的结构示意图。如图所示,CLB包括逻辑元件(Logic Element,LE)和绕线结构(Xbar)。其中,绕线结构与LE相连接,用于向LE提供时钟信号,并向LE中的进位链提供最低位的进位信号。
以图1为例,本发明实施例的LE包括:4个逻辑区(Logic Parcel,LP)(LP0-LP3),每个LP中包括两个逻辑单元(Logic cell,LC)。
每个LP包括:七个输入端口(by、f0-f5)、三个输出端口(dx、qx、dy)、一个加法进位输入端、一个加法进位输出端、一个六输入二输出的查找表(LUT)、一个一比特全加器、第一寄存器和第二寄存器。
其中,在图1的LP0中,示出了LP中各个端口与LP内部的查找表、全加器和寄存器等模块之间的连接关系。下面以LP0为例进行具体说明。
在LP0中处于下方的LC中,第一寄存器Q8根据配置对查找表LUT[0]的第一输出端输出的信号x、或者全加器的进位信号、或者旁路输入信号by[0]进行存储;
第二寄存器Q0根据配置对查找表LUT[0]的第二输出端输出的信号xy、或者所述全加器的输出信号、或者旁路输入信号by[0]、或者LUT[1]的第一输出端输出的信号x进行存储。
在该LC中,加法进位输出端接入Xbar提供的最低位的进位信号,加法进位输出端与上一级LC中的加法进位输入端相连接。
此外,在LE中,还包括四组二选一选通器;
第一组二选一选通器包括z2和z6,第二组二选一选通器包括z1和z5;
第三组二选一选通器为z4,两个输入端,分别连接第一组二选一选通器z2和z6的输出端;
第四组二选一选通器为z3,的两个输入端,分别连接第二组二选一选通器z1和z5的输出端。
通过第一组二选一选通器、第二组二选一选通器,可以分别实现八选一的逻辑功能;
通过第三组二选一选通器、第四组二选一选通器,可以分别实现十六选一的逻辑功能。
以上仅是以图1所示LE为例进行的说明,在其他例子中,如果一个LE中包括的LUT更多时,还可以有第五组、第六组…二选一选通器用以实现三十二选一、六十四选一…的逻辑功能。
具体的,再如图1所示,当该LE中的六输入二输出的查找表LUT[0]和LUT[2]用于实现四选一的逻辑功能时,通过z2可以实现八选一的逻辑功能;
当z2、z6分别用于实现八选一逻辑功能时,通过z4还可以实现十六选一的逻辑功能,并通过dy[4]输出结果。
在七个输入端口中,数据输入端口(f0-f5)用于向六选一选通器输入数据信号;旁路信号输入端口,用于向所述第三组二选一选通器或者向第四组二选一选通器提供选通信号。
在一个LC中,LC的加法进位输入端与LC内一比特全加器的输入端相连接,加法进位输出端与一比特全加器的输出端相连接。
第一输出端口(qx),与第二寄存器Q0的输出端相连接,用于输出第二寄存器Q0的输出信号;
第二输出端口(dx),与六输入二输出查找表LUT[0]的第二输出端xy相连接,用于输出查找表LUT[0]的第二输出端输出的信号;
第三输出端口(dy),与一个配置选通器mux0相连接,根据配置选通器mux0的配置,选通输出第一寄存器Q8的输出信号、全加器的进位信号、全加器的输出信号、查找表LUT[0]的第一输出端x输出的信号、或者第二寄存器的输出信号Q8中的其中一种。
在其他的LC中,第三输出端口dy连接的配置选通器,还可以用于配置选通输出八选一的逻辑输出信号(如LP0中上方的LC中)或十六选一的逻辑选通信号(如LP1中上方的LC中)。
为了更清楚的说明本发明LE的结构,本实施例图2还提供的LE中的一个LP的详细示意图,包括两个LC。
在图2所示的例子中,可以看到,LC0中,一位全加器的输入端由两个选通器选通输入信号,其中输入信号a0可以是由by0提供,或者由LUT6的第一输出端x2提供,或者为常量。输入信号b0可以是由f5[0]提供,或者由LUT6的第二输出端xy0提供,或者由LC1的第一输出端x3提供,或者为常量。
当该LC的输入输出被其他逻辑占用,不能用来实现加法逻辑时,在这条进位链上,该LP中,仍可以通过配置常量为0和1,并配置选通器将其输出作为加数,将该LC中的加法器来实现将其进位输入信号C0送到进位输出C1。因此可以在LC的输入输出被其他逻辑占用时,通过这种结构继续保持进位链的连续性,而不会被迫中断。
除上述方式之外,可以将两个常量分别被配置为0和0,用来产生恒定的全加器的进位输出信号为0。或者可以将两个常量分别被配置为1和1,用来产生恒定的全加器的进位输出信号为1。由此可以作为加法进位链的最低位进位输入,使得进位链的起始位置不再受FPGA架构上的限制,而是可以从进位链上的任意一个位置起始。
此外,送入加数a0的选通器的输出具有可选择的取反的逻辑配置,对于大量需要取反相加的运算,可以大大降低逻辑资源使用量,由此实现了对芯片布局结构和面积的优化。
在图2所示的例子中,六输入查找表可以被配置为以下两种模式中的其中一种:六输入查找表模式或者两个五输入查找表模式。当然,六输入查找表还可以被配置为输出常量。
也就是说,一个LC的六输入查找表,可以实现常量输出,以及LUT1、LUT2、LUT3、LUT4、LUT5、LUT6的任意输出的逻辑,或者是LUT1、LUT2、LUT3、LUT4、LUT5中任意两种逻辑的输出。
本发明实施例提供的可扩展可配置的逻辑元件可以实现多种逻辑功能,比如可以通过一个LC实现输出常量、LUT1、LUT2、LUT3、LUT4、LUT5、LUT6、寄存器、一位全加器的任意一种逻辑功能;还可以实现LUT1、LUT2、LUT3、LUT4、LUT5中任意两种逻辑功能,LUT+寄存器的逻辑功能,以及一位全加器+寄存器的逻辑功能。
在LE中,通过LC之间的组合,还可以实现八选一、十六选一、8位全加器等更高阶组合的逻辑功能。
本发明的LE能够支持多种配置模式,具有出色的配置灵活性和可扩展性。将其应用与FPGA中,使得FPGA的逻辑应用更加灵活,并且能够实现对FPGA芯片布局结构和面积的优化。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。