首页> 中国专利> 4输入查找表、FPGA逻辑单元和FPGA逻辑块

4输入查找表、FPGA逻辑单元和FPGA逻辑块

摘要

本发明公开了一种LUT4、FPGA逻辑单元和FPGA逻辑块。该4输入查找表LUT4包括:两个3输入查找表LUT3和四个2选1多路复用器,该两个LUT3为C-LUT3和S-LUT3,该四个2选1多路复用器为FMUX,CMUX,SMUX和F4MUX;数据输入端口A0,A1,以及A2(0)经过CMUX选择后的输出分别进入C-LUT3的三个输入端口;数据输入端口A0,A1(0)与A3(1)经过SMUX选择后的输出,以及A2(0)经过CMUX选择后的输出分别进入S-LUT3的三个输入端口;数据输入端口A3(1)与逻辑‘0’经过FMUX选择后的输出进入F4MUX的控制端口,S-LUT3的输出(0)经过F4MUX选择后从该LUT4的输出端口F4输出;FPGA逻辑单元中,Fmux,Smux和Cmux分别为FMUX,SMUX和CMUX的控制位。本发明的LUT4、FPGA逻辑单元和FPGA逻辑块能够提高逻辑密度。

著录项

  • 公开/公告号CN102176673A

    专利类型发明专利

  • 公开/公告日2011-09-07

    原文格式PDF

  • 申请/专利权人 中国科学院半导体研究所;

    申请/专利号CN201110046775.9

  • 发明设计人 韩小炜;陈陵都;

    申请日2011-02-25

  • 分类号H03K19/177(20060101);G11C11/409(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人周国城

  • 地址 100083 北京市海淀区清华东路甲35号

  • 入库时间 2023-12-18 03:13:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-08

    未缴年费专利权终止 IPC(主分类):H03K19/177 授权公告日:20130327 终止日期:20140225 申请日:20110225

    专利权的终止

  • 2013-03-27

    授权

    授权

  • 2011-11-16

    实质审查的生效 IPC(主分类):H03K19/177 申请日:20110225

    实质审查的生效

  • 2011-09-07

    公开

    公开

说明书

技术领域

本发明涉及半导体及微电子技术领域,尤其涉及一种4输入查找表(Look Up Table,简称LUT)LUT4、基于该LUT4的现场可编程门阵列(Field Programmed Gate array,简称FPGA)逻辑单元,和基于上述FPGA逻辑单元的FPGA逻辑块。

背景技术

与专用集成电路(Application Specific Integrated Circuits,简称ASIC)相比,FPGA的研发成本低和开发周期短等特性使它成为实现现代数字电路和系统的一种重要核心技术,其市场占有额也在逐年增加。作为FPGA中用于逻辑实现的基本单元,逻辑单元和由其构成的逻辑块的设计在很大程度上直接影响到FPGA的速度和面积利用率等性能。

现有文献证明:LUT4能够使FPGA芯片面积利用率达到最高。目前学术界和工业界最典型的FPGA逻辑单元是由一个传统的LUT4和一个D型触发器构成的。

现代商用FPGA还包括一些用做特殊用途的嵌入式IP核,比如乘法器模块和存储器模块。Xilinx的Virtex系列和Altera的Cyclone系列就为用户提供了丰富的存储器模块资源。尽管如此,对于一些需要大量存储资源的应用,对于某款FPGA芯片来说,内部的存储器模块资源毕竟是有限的,所以这些存储器模块还是不够用。

还有,对于逻辑资源和小容量存储资源消耗较多的应用,如果用大容量的存储器模块来实现小容量的存储器,将会造成存储器模块剩余存储资源的浪费,所以小容量的分布式RAM就可以满足这样的应用。

因为一个现有4输入的LUT对于实现任意4输入的逻辑不会降低逻辑密度,但对于实现任意3输入或者2输入的逻辑,由于4输入的LUT只有一个输出,所以只能实现一个3输入或者2输入的逻辑,而基于3输入LUT的LUT4需要有2个输出,所以就可以实现2个3输入或者2输入的逻辑,因此现有的4输入的LUT逻辑密度低。在实现本发明的过程中,发明人意识到现有技术存在如下缺陷:现有的LUT4逻辑密度低。

发明内容

(一)要解决的技术问题

针对上述问题,本发明提出了一种基于两个LUT3的LUT4,基于该LUT4的FPGA逻辑单元及基于该FPGA逻辑单元的FPGA逻辑块。该LUT4与现有的LUT4相比,提高了逻辑密度。

(二)技术方案

根据本发明的一个方面,提供了一种4输入查找表LUT4。该LUT4包括:两个3输入查找表LUT3和四个2选1多路复用器,该两个LUT3为C-LUT3和S-LUT3,该四个2选1多路复用器为FMUX,CMUX,SMUX和F4MUX。数据输入端口A0,A1,以及A2(0)经过CMUX选择后的输出分别进入C-LUT3的三个输入端口。数据输入端口A0,A1(0)与A3(1)经过SMUX选择后的输出,以及A2(0)经过CMUX选择后的输出分别进入S-LUT3的三个输入端口。数据输入端口A3(1)与逻辑‘0’经过FMUX选择后的输出进入F4MUX的控制端口,S-LUT3的输出(0)经过F4MUX选择后从该LUT4的输出端口F4输出。FPGA逻辑单元中,Fmux,Smux和Cmux分别为FMUX,SMUX和CMUX的控制位。

优选地,本技术方案LUT4中,A2(0)经过CMUX选择后的输出分别进入C-LUT3的三个输入端口之一为:A2(0)与CI(1)经过CMUX选择后的输出分别进入C-LUT3的三个输入端口之一。A2(0)经过CMUX选择后的输出分别进入S-LUT3的三个输入端口之一为:A2(0)与CI(1)经过CMUX选择后的输出分别进入S-LUT3的三个输入端口之一。S-LUT3的输出(0)经过F4MUX选择后从该LUT4的输出端口F4输出为:C-LUT3的输出CO(1)和S-LUT3的输出(0)经过F4MUX选择后从该LUT4的输出端口F4输出。

优选地,本技术方案LUT4中,根据控制位Fmux,Smux和Cmux的不同组合,配置LUT4的工作模式:当Smux=0,Cmux=0,Fmux=1时,其工作模式为LUT4;或当Smux=0,Cmux=1,Fmux=0时,其工作模式为进位链;或当Smux=0,Cmux=0,Fmux=0时,其工作模式为进位链头;或当Smux=1,Cmux=0,Fmux=0时,其工作模式为乘法器。

根据本发明的另一个方面,提供了一种现场可编程门阵列FPGA逻辑单元。该FPGA逻辑单元包括上文中的LUT4、D型触发器和四个2选1多路复用器BMUX、F5MUX、DMUX0和DMUX1。D型触发器包括:数据输入端口D、数据输出端口XQ、控制输入端口CE和SR、时钟输入端口CK、全局置位复位端口GSR。FPGA逻辑单元的输入端口包括:4输入LUT的数据输入端口A0,A1,A2,A3和数据输入端口B,F5I;FPGA逻辑单元的输出端口包括:4输入LUT的数据输出端口F4和数据输出端口XB、XF、XQ。数据输入端口B(1)和C-LUT3的输出端口CO(0)经过BMUX后输出XB;数据输入端口F5I(1)和LUT4的输出端口F4(0)经过F5MUX后的输出进入DMUX1的1输入端口,F4进入DMUX1的0输入端口,DMUX1的输出为XF;XF(1)和B(0)经过DMUX0选择后输出进入D型触发器的数据输入端口D,D型触发器的输出端口作为FPGA逻辑单元的数据输出端口XQ。Bmux,Dmux1和Dmux0分别为B5MUX,DMUX1和DMUX0的控制位。

优选地,本技术方案FPGA逻辑单元中,CI作为FPGA逻辑单元的专用进位链输入端口;CO作为FPGA逻辑单元的专用进位链输出端口。

优选地,本技术方案FPGA逻辑单元中,Fmux,Smux,Cmux,Bmux,Dmux1和Dmux0均为5管存储单元。

优选地,本技术方案FPGA逻辑单元中,FPGA逻辑单元中,根据控制位Bmux,Dmux1和Dmux0的不同组合,配置FPGA逻辑单元的信号流向:当Bmux=0,F5mux=0,Dmux0=0,Dmux1=0/1时,信号流向为CO驱动XB,B驱动D;或当Bmux=0,F5mux=0,Dmux0=1,Dmux1=0/1时,信号流向为CO驱动XB,LUT4驱动D;或当Bmux=0,F5mux=1,Dmux0=0,Dmux1=0/1时,信号流向为CO驱动XB,B驱动D;或当Bmux=0,F5mux=1,Dmux0=1,Dmux1=0/1时,信号流向为CO驱动XB,LUT4驱动D;或当Bmux=1,F5mux=0,Dmux0=0,Dmux1=0/1时,信号流向为B驱动XB,B驱动D;或当Bmux=1,F5mux=0,Dmux0=1,Dmux1=0/1时,信号流向为B驱动XB,LUT驱动D;或当Bmux=1,F5mux=1,Dmux0=0,Dmux1=0/1时,信号流向为B驱动XB,B驱动D;或当Bmux=1,F5mux=1,Dmux0=1,Dmux1=0/1时,信号流向为B驱动XB,LUT4驱动D。

优选地,本技术方案FPGA逻辑单元中,D触发器包括:核心寄存器和4个2选1多路复用器CKPOLMUX,SRSYNCMUX,SRSELMUX,QTYPEMUX;该D触发器输入包括数据输入D,时钟CK,时钟使能CE,置位/复位SR和全局置位/复位GSR,输出为数据输出Q;SR(0)和逻辑‘0’(1)经过SRSYNCMUX选择后输出,该输出与GSR进行或逻辑,或逻辑的输出经过SRSELMUX输出产生S(0)和R(1),分别为核心寄存器的置位/复位端;CK(1)和~CK(0)经过CKPOLMUX选择进入核心寄存器的CK端,核心寄存器的输入QL(0)和QF(1)经过QTYPEMUX选择输入Q;2选1多路复用器CKPOLMUX,SRSYNCMUX,SRSELMUX,QTYPEMUX的控制位分别为ckpol,srsync,srsel,qtype,根据控制位ckpol,srsync,srsel,qtype的不同组合,D触发器被配置为不同类型的寄存器或锁存器。

优选地,本技术方案FPGA逻辑单元中,D触发器中,根据控制位ckpol,D触发器被配置为正沿触发或负沿触发;和/或根据控制位srsync,D触发器被配置为同步或异步;和/或根据控制位srsel,D触发器被配置为置位或复位;和/或根据控制位qtype,D触发器被配置为寄存器或锁存器。

根据本发明的另一个方面,提供了一种FPGA逻辑块。该逻辑块包括:第一FPGA逻辑单元,第二FPGA逻辑单元,局部互连,以及分布式RAM逻辑,其中第一FPGA逻辑单元和第二FPGA逻辑单元是上文中的FPGA逻辑单元;该FPGA逻辑块的端口包括2个全局输入端口-G<1:0>、12个输入端口-I<11:0>、8个输出端口-O<7:0>,专用进位链输入端口-CI、专用进位链输出端口-CO以及1个全局置位复位端口-SR和1个全局写使能端口-GWE;局部互连包括:逻辑块全局输入端口与逻辑单元时钟端口和控制输入端口之间的连接;逻辑块输入端口与逻辑单元输入端口之间的连接;逻辑单元输出端口与逻辑单元数据输入端口之间的反馈连接;逻辑‘0’和逻辑‘1’和逻辑单元输入端口之间的连接;逻辑块输出端口与逻辑单元输出端口之间的连接。

优选地,本技术方案FPGA逻辑块中,分布式RAM逻辑包括:同步寄存器,写控制模块,写多路复用器,读多路复用器,该分布式RAM与FPGA逻辑块的两个逻辑单元共享数据输入A0[3:0],A1[3:0],B0,B1,SR,CK,共享数据输出XF0和XF1。同步寄存器用来同步写入的数据,地址和写控制信号;写控制模块用来控制写入数据的走向;写多路复用器用来将新的数据写入地址指定的存储单元的位置;读多路复用器为FPGA逻辑块中逻辑单元的4输入LUT。根据控制ramckpol的不同极性,可将分布式RAM配置为时钟正沿或负沿写入数据。控制位S1与写使能信号WE(SR经过寄存后的输出)分别在写控制模块中经过与门WENAND0和WENAND1进行与逻辑,与逻辑的输出均进入写多路复用器控制数据的写入;控制位S2在写控制模块中通过控制传输门S2PASS来控制数据的写入;控制位S3在同步寄存器中控制S3MUX0和S3MUX1来控制写地址的选择,并且在写控制模块中和Din1orA4(B1经过寄存后的输出)通过与门A4NAND进行与逻辑来控制B1为数据输入或者是第5个地址;控制位D在同步寄存器中控制DMUX来控制写地址的选择,并且在写控制模块中控制传输门DPASS来控制数据的写入;控制位ramckpol控制RAMCKPOLMUX;FPGA逻辑块根据控制位(S1,S2,S3,D)极性的不同,具有不同的工作模式。

优选地,本技术方案FPGA逻辑块中,逻辑块全局输入端口与逻辑单元时钟端口和控制输入端口之间的连接包括:全局输入端口G<1>与两个逻辑单元的CK直接相连,全局输入端口G<0>由控制位控制可与SR或CE连接。逻辑块输入端口与逻辑单元输入端口之间的连接包括:数据输入端口I<6>,I<0>,I<9>,I<3>分别与第一FPGA逻辑单元的数据输入端口A0,A1,A2,A3直接连接,I<8>,I<2>,I<11>,I<5>分别与第二FPGA逻辑单元的A0,A1,A2,A3直接连接,I<7>与第一FPGA逻辑单元的B0直接连接,I<1>第二FPGA逻辑单元的B1直接连接,I<10>与CE直接连接,I<4>与SR直接连接。逻辑单元输出端口与逻辑单元数据输入端口之间的反馈连接包括:第一FPGA逻辑单元输出F4与第二FPGA逻辑单元输入F5i直接连接,第二FPGA逻辑单元输出F4与第一FPGA逻辑单元输入F5i直接连接。逻辑‘0’和逻辑‘1’和逻辑单元输入端口之间的连接包括:逻辑‘0’和逻辑‘1’可与第一FPGA逻辑单元输入B0连接,逻辑‘0’和逻辑‘1’可与第二FPGA逻辑单元输入B1连接,逻辑‘0’和逻辑‘1’可与FPGA逻辑块中两个逻辑单元的共同输入CE,SR,CE连接。逻辑块输出端口与逻辑单元输出端口之间的连接包括:输出端口O(0)由第一逻辑单元的输出端口XQ0和XB0,第二逻辑单元的输出端口XF1输出,输出端口O(1)由第一逻辑单元的输出端口XF0,第二逻辑单元的输出端口XQ1和XB1输出,输出端口O(2)由第一逻辑单元的输出端口XQ0,第二逻辑单元的输出端口XF1输出,输出端口O(3)由第一逻辑单元的输出端口XF0和XB0,第二逻辑单元的输出端口XQ1输出,输出端口O(4)由第一逻辑单元的输出端口XQ0,第二逻辑单元的输出端口XF1和XB1输出,输出端口O(5)由第一逻辑单元的输出端口XF0,第二逻辑单元的输出端口XQ1输出,输出端口O(6)由第一逻辑单元的输出端口XQ0,第二逻辑单元的输出端口XF1输出,输出端口O(7)由第一逻辑单元的输出端口XF0,第二逻辑单元的输出端口XQ1输出。

优选地,本技术方案FPGA逻辑块中,S1=0;S2=0;S3=0;D=0时,逻辑块的工作模式为LUT;或S1=1;S2=0;S3=0;D=0时,逻辑块的工作模式为单端口16×1RAM;或S1=1;S2=1;S3=0;D=0时,逻辑块的工作模式为单端口(16×1)×2RAM;或S1=1;S2=0;S3=1;D=0时,逻辑块的工作模式为单端口32×1RAM;或S1=1;S2=0;S3=0;D=1时,逻辑块的工作模式为双端口16×1RAM。

优选地,本技术方案FPGA逻辑块中,当FPGA逻辑块实现快速进位链逻辑时:FPGA逻辑块的进位输入端口CI与第一FPGA逻辑单元的进位输入端口CI直接连接,第一FPGA逻辑单元的进位输出端口CO与第二FPGA逻辑单元的进位输入端口CI直接连接,第二FPGA逻辑单元的进位输出端口CO通过逻辑块的进位输出端口CO输出。

优选地,本技术方案FPGA逻辑块中,FPGA逻辑块的CO端口与相邻FPGA逻辑块的CI端口相连;和/或FPGA逻辑块的CI端口与另一相邻FPGA逻辑块的CO端口相连。

优选地,本技术方案FPGA逻辑块中,当FPGA逻辑块实现移位寄存器链逻辑时,逻辑单元输入端口B直接或被寄存后穿过逻辑块。

(三)有益效果

1、本发明的LUT4不仅可以实现一个4输入的任意布尔逻辑,还可以实现两个3输入的布尔逻辑。该LUT4与现有的LUT4相比,提高了逻辑密度。

2、本发明的FPGA逻辑单元中,根据控制位的不同,该FPGA逻辑单元可被配置为8种工作模式,其中最常用的有4种:LUT4,进位链,进位链头和乘法器。该FPGA逻辑单元最大的优点就是可以提高逻辑密度。

3、本发明的FPGA逻辑块中将LUT作为分布式RAM使用,对于存储资源集中的应用可以弥补存储器模块资源的不足,而且对于小容量存储集中的应用可以提高资源利用率。

附图说明

图1为本发明实施例LUT4的逻辑结构示意图;

图2为本发明实施例FPGA逻辑单元的逻辑结构示意图;

图3为本发明实施例FPGA逻辑单元中用于存储控制位信息的5管存储单元的结构示意图;

图4为本发明实施例FPGA逻辑单元中D触发器的逻辑结构示意图;

图5为本发明实施例FPGA逻辑块端口分布和布局示意图;

图6为本发明实施例FPGA逻辑块局部互连的示意图;

图7为本发明实施例FPGA逻辑块中分布式RAM的逻辑结构图;

图8为本发明实施例FPGA逻辑块实现快速进位链逻辑的连接示意图;

图9为本发明实施例FPGA逻辑块实现寄存器链逻辑的连接示意图;

图10本发明实施例FPGA逻辑块作为单端口32×1RAM的逻辑结构示意图;

图11为本发明实施例FPGA逻辑块作为双端口RAM的逻辑结构示意图。

表1为本发明实施例FPGA逻辑单元常用的四种工作模式;

表2为本发明实施例FPGA逻辑单元的信号流向;

表3为本发明实施例FPGA逻辑单元中D触发器的工作模式;

表4为本发明实施例FPGA逻辑块根据控制位的设置而实现的工作模式;

表5为FPGA逻辑块工作于LUT模式和单端口RAM模式时的信号来源;

表6为FPGA逻辑块工作于LUT模式和双端口RAM模式时的信号来源。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

一、4输入LUT(LUT4)

本实施例首先公开了一种LUT4,图1为本发明实施例LUT4的逻辑结构示意图。如图1所示,该LUT4包括:两个3输入查找表LUT3和四个2选1多路复用器。该两个LUT3为C-LUT3和S-LUT3,该四个2选1多路复用器为FMUX,CMUX,SMUX和F4MUX。数据输入端口A0,A1,以及A2(0)经过CMUX选择后的输出分别进入C-LUT3的三个输入端口A,B,C。数据输入端口A0,A1(0)与A3(1)经过SMUX选择后的输出,以及A2(0)经过CMUX选择后的输出分别进入S-LUT3的三个输入端口A,B,C。数据输入端口A3(1)与逻辑‘0’(0)经过FMUX选择后的输出进入F4MUX的控制端口。C-LUT3的输出CO(1)S-LUT3的输出(0)经过F4MUX选择后从该LUT4的输出端口F4输出。该LUT4中,Fmux,Smux和Cmux分别为所述FMUX,SMUX和CMUX的控制位。为描述方便,与二选一复用器MUX的0端口连接简写为0,与1端口连接简写为1。对于本实施例的LUT4,可以根据用户需要实现4输入的逻辑和3输入的逻辑,具体来讲:

1)当所述Smux=0,Cmux=0,Fmux=0时,其工作模式为实现两个3输入的逻辑,两个3输入逻辑的输入均为A0,A1,A2;或当所述Smux=0,Cmux=0,Fmux=1时,其工作模式为实现1个4输入逻辑,输入为A0,A1,A2,A3;

2)当所述Smux=0,Cmux=1,Fmux=0时,其工作模式为实现两个3输入逻辑,两个3输入逻辑的输入均为A0,A1,CI;

3)当所述Smux=0,Cmux=1,Fmux=1时,其工作模式为实现1个4输入逻辑,输入为A0,A1,A2,A3;

4)当所述Smux=1,Cmux=0,Fmux=0时,其工作模式为其工作模式为实现两个3输入逻辑,第1个3输入逻辑输入为A0,A1,A2;第2个3输入逻辑输入为A0,A3,A2;

5)当所述Smux=1,Cmux=0,Fmux=1时,其工作模式为实现1个4输入逻辑,输入为A0,A1,CI,A3;

6)当所述Smux=1,Cmux=1,Fmux=0时,其工作模式为实现两个3输入的逻辑,第1个3输入逻辑输入为A0,A1,CI;第2个3输入逻辑输入为A0,A3,CI;

7)当所述Smux=1,Cmux=1,Fmux=1时,其工作模式为其工作模式为实现1个4输入逻辑,输入为A0,A1,CI,A3。

进一步的,上述实施例中,所述A2(0)经过CMUX选择后的输出分别进入C-LUT3的三个输入端口之一为:A2(0)与CI(1)经过CMUX选择后的输出分别进入所述C-LUT3的三个输入端口之一;所述A2(0)经过CMUX选择后的输出分别进入S-LUT3的三个输入端口之一为:A2(0)与CI(1)经过CMUX选择后的输出分别进入所述S-LUT3的三个输入端口之一;所述S-LUT3的输出(0)经过F4MUX选择后从该LUT4的输出端口F4输出为:C-LUT3的输出CO(1)和S-LUT3的输出(0)经过F4MUX选择后从该LUT4的输出端口F4输出。

表1本发明实施例LUT4常用的四种工作模式

基于SMUX,CMUX和FMUX的控制位的不同组合方式,此LUT4可以被配置为8种模式。表1给出了本实施例LUT4四种最常用的模式。

模式1:作为一个普通的LUT4来使用,可以实现一个任意四输入的布尔逻辑。例如我们要实现一个4输入与逻辑y=a·b·c·d,LUT4配置层的SRAM存储单元被配置为80(16进制),然后就可以根据输入取得对应的与的结果。

模式2:作为快速进位链。LUT4被配置为一位全加器,和逻辑单元配置层的SRAM存储单元被配置为96E8(16进制),CI端口由其他逻辑单元的CO端口驱动,取代I2进入两个LUT3,求和逻辑和进位逻辑分别由S-LUT3和C-LUT3来完成,输入I3不进入LUT3而是去控制F4MUX使SUM输出,CO端口输出给其他逻辑单元的CI端口。比用传统LUT4实现一位全加器节省了一半面积。

模式3:用于全加逻辑中,两加数最低位相加时,此时没有CI端口输入,故不将CI端口与LUT3相连。

模式4:用于实现乘法逻辑。在这种模式下,两个LUT3可以通过XB和XF同时将I0&I1,I2&I3的结果输出,一个LUT4可以同时得到两个部分积,然后再和一个工作在模式2下的LUT4结合,将部分积累加,得出最终的乘法结果。图3为本发明实施例FPGA逻辑单元中用于存储控制位信息的5管存储单元的结构示意图。

综上所述,本实施例LUT4结合后续的各项设置,可以灵活实现多种模式的功能,大大提高了逻辑密度。但是,本实施例中的LUT4,只能实现组合逻辑,而不能实现时序逻辑。为了实现时序逻辑,需要引入触发器器件,这将是在FPGA逻辑单元中所要解决的问题。

二、FPGA逻辑单元

逻辑单元是FPGA中用于逻辑实现的最小单元。本实施例公开了一种FPGA逻辑单元。图2为本发明实施例FPGA逻辑单元的逻辑结构示意图。如图2所示,该FPGA逻辑单元由一个上述实施例中的LUT4、一个D型触发器和四个负责数据流向选择的2选1多路复用器(BMUX,F5MUX,DMUX0和DMUX1)构成。逻辑单元的端口包括数据输入端口(A0,A1,A2,A3,B,F5I)、控制输入端口(CE,SR)、时钟输入端口(CK)、全局置位复位端口(GSR)、专用进位链输入端口(CI)、专用进位链输出端口(CO)和数据输出端口(F4,XB,XF,XQ)。

其中,该LUT4由四个2选1的多路复用器(FMUX,CMUX,SMUX和F4MUX)和两个3输入的LUT(C-LUT3和S-LUT3)构成。数据输入端口A0,A1以及A2(0)和CI(1)经过CMUX选择后的输出分别进入C-LUT3的三个输入端口A,B,C。数据输入端口A0,A1(0)和A3(1)结过SMUX选择后的输出以及A2(0)和CI(1)经过CMUX选择后的输出分别进入S-LUT3的三个输入端口A,B,C。数据输入A3和逻辑‘0’经过FMUX选择后的输出进入F4MUX的控制端口。C-LUT3的输出CO(1)和S-LUT3的输出(0)经过F4MUX选择后输出为LUT4的输出端口为F4。Fmux,Smux和Cmux分别为FMUX,SMUX和CMUX的控制端口,均为5管存储单元。

其中,数据输入端口B(1)和C-LUT3的输出端口CO(0)经过BMUX后输出XB。数据输入端口F5I(1)和4-LUT的输出端口F4(0)经过F5MUX后的输出进入DMUX1的1输入端口,F4进入DMUX1的0输入端口,DMUX1的输出为XF。XF(1)和B(0)经过DMUX0选择后输出进入DFF数据输入端口D。Bmux,Dmux1和Dmux0分别为B5MUX,DMUX1和DMUX0的控制端口,均为5管存储单元。数据输入端口B为F5MUX的控制端口。

进一步的,在上述实施例中,所述CI作为所述FPGA逻辑单元的专用进位链输入端口;所述CO作为所述FPGA逻辑单元的专用进位链输出端口。在很多逻辑应用中有大量的加法逻辑,这样一个逻辑单元就可以既可以实现本位的求和逻辑,还可以为高位的加法提供进位,因此快速进位链在实际应用中涌出很大。

表2本发明实施例FPGA逻辑单元的信号流向

其中,该D触发器可以被配置为不同类型的寄存器或者锁存器。DFF端口包括数据输入端口D,控制输入端口(CE,SR)、时钟输入端口(CK)、全局置位复位端口(GSR)、数据输出端口(XQ)。

表2列出了旁路输入B和LUT输出根据控制位Bmux,F5mux,Dmux0和Dmux1极性的不同组合的不同信号流向。例如当Bmux=‘1’和Dmux0=‘1’时,XB由B驱动,寄存器输入D由LUT输出驱动。该信号流向将与后续FPGA逻辑块的实现有关,将在后续实施例中详细说明。

表3本发明实施例FPGA逻辑单元中D触发器的工作模式

注意:寄存器元件符号(以F开头)里没有带_1的是正沿触发,带_1的是负沿触发,锁存器元件符号(以L开头)里没有带_1的是高电平触发,带_1的是低电平触发。

图4为本发明实施例FPGA逻辑单元中D触发器的逻辑结构示意图。参照图4,该D触发器包括核心寄存器和4个2选1多路复用器CKPOLMUX,SRSYNCMUX,SRSELMUX,QTYPEMUX,根据它们的控制位ckpol,srsync,srsel,qtype的不同组合,D触发器可以被配置为不同类型的寄存器或锁存器。该D触发器输入包括D(数据输入),CK(时钟),CE(时钟使能),SR(置位/复位)和GSR(全局置位/复位),输出为Q(数据输出)。SR(0)和逻辑‘0’(1)经过SRSYNCMUX选择后输出,此输出与GSR进行或逻辑,或逻辑的输出经过SRSELMUX输出产生S(0)和R(1),分别为核心寄存器的置位/复位端。CK(1)和~CK(0)经过CKPOLMUX选择进入核心寄存器的CK端。核心寄存器的输入QL(0)和QF(1)经过QTYPEMUX选择输入Q。

表3为本发明实施例FPGA逻辑单元中D触发器的工作模式表。如表3所示,根据控制位ckpol,srsync,srsel,qtype的不同组合,D触发器可以被配置为不同类型的寄存器或锁存器。这样就为用户提供了很大的灵活性,用户根据自己的应用来选择寄存器的类型,比如带异步置位的寄存器或者带同步置位的寄存器。

控制位ckpol:根据控制位ckpol极性不同,D触发器可被配置为正沿触发或负沿触发,如FD的ckpol=‘1’,为正沿触发,FD_1的ckpol=‘0’,为负沿触发。逻辑块中两个D触发器共用一个时钟输入,且其极性可分别进行配置。CE信号是高有效的,且逻辑块中两个D触器共用一个时钟使能。如果所配置的D触发器没有用到CE,其默认状态为有效,如FDC的CE默认为高。

控制位srsync:SR信号是高有效的,根据控制位srsync的极性可将其配置为同步或者异步。

控制位srsel:根据控制位srsel可将其配置为置位或者复位,如FDCE的srsync=‘0’且srsel=‘0’,为带异步复位和时钟使能的寄存器。逻辑块中两个D触发器共用SR信号。如果所配置的D触发器没用用到SR信号,其默认态为无效,如FDE的SR默认为低。

控制位qtype:根据控制位qtype的极性可将D触发器配置为寄存器或锁存器,如LD的qtpye=‘0’,为锁存器。

本实施例FPGA逻辑单元最大的优点就是可以提高逻辑密度。并且,经过加入D触发器和另外四个二选一的多路复用器,实现了FPGA逻辑单元的时序逻辑,可以在逻辑块中得到应用。

三、FPGA逻辑块

本实施例公开了一种FPGA逻辑块。该逻辑块包括:两个如上述实施例中描述的FPGA逻辑单元-第一FPGA逻辑单元和第二FPGA逻辑单元、局部互连和分布式RAM逻辑。

图5为本发明实施例FPGA逻辑块端口分布和布局示意图。如图5所示,该FPGA逻辑块的端口包括2个全局输入端口-G<1:0>、12个输入端口-I<11:0>、8个输出端口-O<7:0>,专用进位链输入端口-CI、专用进位链输出端口-CO以及1个全局置位复位端口-SR和1个全局写使能端口-GWE。逻辑块输入输出端口均匀分布在矩形逻辑块四周,逻辑单元的输入输出端口均匀地连接到逻辑块四周同类型的输入输出端口,这些都有利于提高布通率。

本实施例FPGA逻辑块中,局部互连包括:逻辑块全局输入端口与逻辑单元时钟端口和控制输入端口之间的连接;逻辑块输入端口与逻辑单元输入端口之间的连接;逻辑单元输出端口与逻辑单元数据输入端口之间的反馈连接;逻辑‘0’和逻辑‘1’和逻辑单元输入端口之间的连接;逻辑块输出端口与逻辑单元输出端口之间的连接。

图6为本发明实施例FPGA逻辑块局部互连的示意图。

如图6所示,逻辑块全局输入端口与逻辑单元时钟端口和控制输入端口之间的连接包括:全局输入端口G<1>与两个逻辑单元的CK直接相连,全局输入端口G<0>由控制位控制可与SR或CE连接。

如图6所示,逻辑块输入端口与逻辑单元输入端口之间的连接包括:数据输入端口I<6>,I<0>,I<9>,I<3>分别与第一FPGA逻辑单元的数据输入端口A0,A1,A2,A3直接连接,I<8>,I<2>,I<11>,I<5>分别与第二FPGA逻辑单元的A0,A1,A2,A3直接连接,I<7>与第一FPGA逻辑单元的B0直接连接,I<1>与第二FPGA逻辑单元的B1直接连接,I<10>与CE直接连接,I<4>与SR直接连接。

如图6所示,逻辑单元输出端口与逻辑单元数据输入端口之间的反馈连接包括:第一FPGA逻辑单元输出F4与第二FPGA逻辑单元输入F5i直接连接,第二FPGA逻辑单元输出F4与第一FPGA逻辑单元输入F5i直接连接。

如图6所示,逻辑‘0’和逻辑‘1’和逻辑单元输入端口之间的连接包括:逻辑‘0’和逻辑‘1’可与第一FPGA逻辑单元输入B0连接,逻辑‘0’和逻辑‘1’可与第二FPGA逻辑单元输入B1连接,逻辑‘0’和逻辑‘1’可与FPGA逻辑块中两个逻辑单元的共同输入CE,SR,CE连接。

如图6所示,逻辑块输出端口与逻辑单元输出端口之间的连接包括:输出端口O(0)由第一逻辑单元的输出端口XQ0和XB0,第二逻辑单元的输出端口XF1输出,输出端口O(1)由第一逻辑单元的输出端口XF0,第二逻辑单元的输出端口XQ1和XB1输出,输出端口O(2)由第一逻辑单元的输出端口XQ0,第二逻辑单元的输出端口XF1输出,输出端口O(3)由第一逻辑单元的输出端口XF0和XB0,第二逻辑单元的输出端口XQ1输出,输出端口O(4)由第一逻辑单元的输出端口XQ0,第二逻辑单元的输出端口XF1和XB1输出,输出端口O(5)由第一逻辑单元的输出端口XF0,第二逻辑单元的输出端口XQ1输出,输出端口O(6)由第一逻辑单元的输出端口XQ0,第二逻辑单元的输出端口XF1输出,输出端口O(7)由第一逻辑单元的输出端口XF0,第二逻辑单元的输出端口XQ1输出。

图7为本发明实施例FPGA逻辑块中分布式RAM的逻辑结构图。分布式RAM与FPGA逻辑块的两个逻辑单元共享数据输入A0[3:0],A1[3:0],B0,B1,SR,CK,共享数据输出XF0和XF1。该分面式RAM主要包括同步寄存器,写控制模块,写多路复用器,读多路复用器。同步寄存器用来同步写入的数据B0和B1,地址A0[3:0]和A1[3:0]和写控制信号WE。写控制模块用来控制写入数据的走向。写多路复用器用来将新的数据写入地址指定的存储单元的位置。读多路复用器为FPGA逻辑块中逻辑单元的4输入LUT,所以读取时间与LUT的传输延时一致。逻辑块根据控制位(S1,S2,S3,D)极性的不同,具有不同的工作模式,如表4所示,例如当S1=‘0’时逻辑块用做LUT,当S1=‘1’时逻辑块用做分布式RAM。控制位ramckpol=‘0’时,RAM在时钟正沿写入新的数据,ramckpol=‘1’时,RAM在时钟负沿写入新的数据。

图8为本发明实施例FPGA逻辑块实现快速进位链逻辑的连接示意图。如图8所示,每个逻辑单元的CO端口与相邻上侧的逻辑单元的CI端口直接相连,FPGA芯片顶端逻辑块中第二逻辑单元的CO端口与相邻右侧底端逻辑单元的CI端口直接相连,就可以形成快速进位链逻辑。

图9为本发明实施例FPGA逻辑块实现寄存器链逻辑的连接示意图。当Bmux=‘1’时旁路信号B直接由XB穿过逻辑块。当Dmux0=‘0’时,旁路信号B进入寄存器通过XQ输出,如果XQ由B进入配置相同的相邻逻辑块,就形成了寄存器链。其用途相当广泛。表4本实施例FPGA逻辑块根据控制位的设置而实现的工作模式

表4为本发明实施例FPGA逻辑块根据控制位的设置而实现的工作模式。其可被配置为单端口RAM和双端口RAM。一个逻辑块可被配置为一个16×1,(16×1)×2,32×1的单端口RAM或者一个16×1的双端口RAM。单端口RAM具用一个同步写端口和一个异步读端口。双端口RAM具有一个同步写端口和两个异步读端口,任何读写操作都可同时或者独立进行。利用其他逻辑块的寄存器分布式RAM的同步读也是可以实现的。

受控于全局写使能信号(GWE)和局部写使能信号(WE),分布式RAM的写操作是时钟沿触发的,可被配置为正沿触发或者负沿触发。为了保证初始化后RAM内容不受破坏,在FPGA芯片的配置过程GWE是无效的。配置结束后GWE被释放。当GWE和WE同时有效时,在时钟沿新的内容被写进地址所选择的存储单元。分布式RAM的读取时间等于LUT的逻辑传输延时。在FPGA的配置过程中分布式RAM内容被初始化。FGPA芯片一上电,所有分布式RAM存储单元被清零,然后被写入用户自定义初始值。如果用户没有定义,默认初始值为零。

单端口RAM有三种工作模式:16×1,(16×1)×2,32×1。16×1模式包括一个16位的RAM存储单元阵列,其包括一个具有4位地址的译码器,一个数据输入和一个数据输出。(16×1)×2模式包括两个16位的RAM存储单元阵列。每个阵列包括一个具有4位地址的译码器,一个数据输入和一个数据输出,且这两个阵列的读取操作是独立的。32×1模式包括一个32位的RAM存储单元阵列,其包括一个具有5位地址的译码器,一个数据输入和一个数据输出。

表5为FPGA逻辑块工作于LUT模式和单端口RAM模式时的信号来源。图10本发明实施例FPGA逻辑块作为单端口32×1RAM的逻辑结构示意图。图表5和图10所示,在这个模式下,LC0的旁路输入B0作为数据输入,FPGA逻辑块中第二逻辑单元LC1的旁路输入B1作为第五个地址位,SR信号作为WE信号使用。

表5FPGA逻辑块工作于LUT模式和单端口RAM模式时的信号来源

 RAM信号  功能  LUT模式信号 DIN0和DIN1  数据输入  B0和B1 A[3:0]  地址  A0[3:0]或A1[3:0] A4(仅供32×1使用)  地址  B1 WE  写使能  SR WCLK  时钟  CK SPO  单端口输出  XF0或XF1

双端口16×1RAM包括两个16位RAM存储单元阵列。每个端口包括一个4位地址译码器。一个端口具有一个数据输入和一个数据输出,另一个端口包括由另一组地址指定的数据输出。

表6FPGA逻辑块工作于LUT模式和双端口RAM模式时的信号来源

表6为FPGA逻辑块工作于LUT模式和双端口RAM模式时的信号来源。图11为本发明实施例FPGA逻辑块作为双端口RAM的逻辑结构示意图。如表6和图11所示,在这种模式下,A0[3:0]是第一个端口的读写地址和第二个端口的写地址,A1[3:0]是第二个端口的专用读地址。基于双端口RAM的同时读写能力,其数据处理速度比单端口RAM快一倍。

分布式RAM的应用必须根据时序要求和资源利用率来定。16×1的RAM可以级联起来形成在深度和宽度上更大的RAM存储阵列。由于形成大容量的RAM所用到的逻辑块比较分散,就会导致地址线具有大的扇出和较长的读写时间。解决这一问题的一个方法是利用流水线设计,数据和地址输出被寄存输出,其可通过减少地址线的扇出来提高工作频率。在对分布式RAM进行逻辑映射时,控制位S1,S2,S3,D来配置控制电路用来传输数据和地址。比如,旁路信号B1在单端口(16×1)×2模式下作为数据输入,而在单端口32×1模式下作为第5个地址位。写多路选择器用来输送数据到指定地址。如图11所示,为了维持5管存储单元的写能力,写使能NMOS晶体管M1的尺寸必须和5管存储单元的N型传输管M2的尺寸一致。读多路复用器是和LUT模式共享的,所以分布式RAM的读取时间和LUT的逻辑延时是一致的。

本发明的FPGA逻辑块中,将LUT作为分布式RAM使用对于存储资源集中的应用可以弥补存储器模块资源的不足,而且对于小容量存储集中的应用可以提高资源利用率。分布式RAM最大的优点是可以缩短存储和其驱动逻辑之间的延时,这主要是因为逻辑块既可以用做逻辑资源也可以用做存储资源。由于分布式双端口RAM具有异步读的能力,所以其两倍的数据处理速度可以节省一个时钟周期。总之,用LUT作为分布式RAM,在面积代价很小的情况下换取了FGPA较大的性能收获。

四:多个逻辑块连接的应用

本实施例给出了多个逻辑块互相连接,实现各功能的范例。下文以三个具体应用为例进行说明。

1)当所述FPGA逻辑块实现快速进位链逻辑时:所述FPGA逻辑块的进位输入端口CI与第一FPGA逻辑单元的进位输入端口CI直接连接,第一FPGA逻辑单元的进位输出端口CO与第二FPGA逻辑单元的进位输入端口CI直接连接,第二FPGA逻辑单元的进位输出端口CO通过逻辑块的进位输出端口CO输出;

2)当多个逻辑块组合应用时,所述FPGA逻辑块的CO端口与相邻上边的FPGA逻辑块的CI端口相连;某列逻辑块顶端的PGA逻辑块的CO端口与其右边相邻列底端的FPGA逻辑块的CI端口相连;

3)当所述FPGA逻辑块实现移位寄存器链逻辑时,逻辑单元输入端口B直接或被寄存后穿过逻辑块输出,此输出可通布线通道进入右侧逻辑块中逻辑单元的输入端口B。

由上述实施例可以看出:通过上述方法,可以实现多个逻辑块的连接,从而实现复杂的逻辑功能。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号