一种具有改进的逻辑单元的集成电路的制作方法

文档序号:7510121阅读:400来源:国知局

专利名称::一种具有改进的逻辑单元的集成电路的制作方法
技术领域
:本发明涉及ー种集成电路,尤其涉及现场可编程逻辑门阵列(FieldProgrammableGateArray,简称FPGA)逻辑单兀。
背景技术
:FPGA是ー种由FPGA用户来指定其功能的集成电路。FPGA通常包括大量的逻辑单JLio图I示出了ー种基本FPGA逻辑单元(logiccell,下称LC),其包括查找表(look-uptable,即LUT)102和D触发器(DFF)108。4输入LUT102被示出具有ー组配置存储单元,共16个,其可以被配置或编程以用于计算任何4输入的组合逻辑功能。请注意,这类编程电路的细节与本发明的类型无关,所以未在图I中示出。LUT102的输出不仅仅直接连接到LC的输出,而且还送入D触发器108的D输入端,D触发器108的Q输出可用作另ー个LC输出。触发器108还可以有时钟使能(enable)端、置位(set)端和/或复位(reset)端,这些也没有在图中示出。在该逻辑単元内,可以提供多路选择器(multiplexer,即MUX)及其它逻辑以便允许将触发器的Q输出端连接到LUT的某些输入端。另外,逻辑单元的输出信号可以经由ー些通用的互连网络路由到逻辑单元的输入端,以便构建任何给定的数字逻辑电路。这个基本逻辑单元在逻辑上是完整的。然而,需要有一种对于面积和时序更有效率和/或布局更友好的逻辑单元及其集成电路。
发明内容因此,本发明的目的是提供一种新的LC,其可以被互连并编程来实现功能,并且面积和时间更有效率和/或布局更友好。根据第一方面,本发明提供了ー种具有多个逻辑単元的集成电路,所述多个逻辑单元中的姆ー个都包括第一输入端、第二输入端、多个第三输入端、和第一输出端;具有多个LUT输入端的查找表,多个LUT输入端分别连接到所述逻辑単元的所述多个第三输入端;以及,LUT输出端;第一多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、选择端和多路选择器输出端;其中,第一多路选择器的第一多路选择器输入端被连接到第一输入端,第一多路选择器的第二多路选择器输入端被连接到LUT输出端,第一多路选择器的多路选择器输出端被连接到第一输出端,而选择端被连接到第二输入端并且可用于选择在第一多路选择器输入端和第二多路选择器输入端处出现的哪个信号通过第一多路选择器;其中,通过把多个逻辑単元中的ー个的第一输入端链式耦合到多个逻辑単元中的另ー个的第一输出端而形成ー个WLUT(WideLUT)链。根据第二方面,本发明提供了ー种具有至少ー个第一逻辑单元和ー个第二逻辑单元的集成电路,第一逻辑单兀包括具有LUT输出端的LUT,具有第一电路输入端和第二电路输入端的电路,以及第一输入端;其中,LUT的LUT输出端被连接到第一电路输入端,而第一输入端被连接到第二电路输入端;第二逻辑单元包括具有LUT输出端的LUT,和第一输出端,第一输出端被连接到LUT输出端;第二逻辑单元的第一输出端被连接到第一逻辑单元的第一输入端,由此形成了一个伙伴逻辑。根据第三方面,提供了ー种具有多个逻辑単元的集成电路。所述多个逻辑单元中的姆ー个都包括第一输入端、第二输入端、第三输入端、多个第四输入端、第一输出端和第二输出端;LUT,具有多个分别连接到多个第四输入端的LUT输入端;以及LUT输出端;第一多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第一多路选择器的第一多路选择器输入端被连接到第一输入端,第一多路选择器的第二多路选择器输入端被连接到第三输入端,并且多路选择器选择端可以被编程让第一多路选择器传递在第一多路选择器的第一多路选择器输入端和第二多路选择器输入端出现的两个信号中的任意一个;第二多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第二多路选择器的第一多路选择器输入端被连接到第一多路选择器的多路选择器输出端,第二多路选择器的第二多路选择器输入端被连接到LUT输出端,第二多路选择器的多路选择器选择端被连接到第二输入端,并且第二多路选择器的多路选择器输出端被连接到第一输出端;电路,其具有第一电路输入端、第二电路输入端和电路输出端;其中,第一电路输入端被连接到LUT输出端,第二电路输入端被连接到第三输入端;第三多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、第三多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第三多路选择器的第一多路选择器输入端被连接到LUT输出端,第三多路选择器的第二多路选择器输入端被连接到第二多路选择器的多路选择器输出端,第三多路选择器的第三多路选择器输入端被连接到所述电路的电路输出端,并且多路选择器选择端可以被编程以传递在第三多路选择器的第一、第二和第三多路选择器输入端处出现的任意ー个信号。本发明的上述及其他目的、特征和优点将通过參考的下述详细说明变得明显,其中,同样的附图标记表示相同的或类似的元件。图I示意了包括LUT和D触发器的基本逻辑单元;图2示意了根据本发明的第一实施方案的逻辑单元;图3示意了根据本发明的第二实施方案的逻辑单元;图4示意了由图2中所示的若干逻辑单元形成的WLUT链;图5示意了由图4的WLUT链形成的5输入LUT(LUT5);图6示意了由图4的WLUT链形成的总线多路选择器;图7示意了基本逻辑块中的逻辑单元之间的互连示例;图8示意了根据本发明的第三实施方案的逻辑单元;图9示意了根据本发明的第四实施方案的逻辑单元;图10示意了由图8中所示的若干逻辑单元形成的伙伴逻辑;图11示意了由图8中所示的若干逻辑单元形成的另ー种伙伴逻辑;图12示意了由图8中所示的若干逻辑单元形成的又ー个伙伴逻辑;图13示意了用图10中所示的伙伴逻辑形成的32位解码器;图14示意了在基本逻辑块内用来形成32位解码器的LC布局;图15示意了怎样用具有2选I多路选择器的伙伴逻辑从两个LC构建ー个LUT5;图16示意了根据本发明的第五实施方案的逻辑单元;图17示意了根据本发明的第六实施方案的逻辑单元;以及图18示意了用来在基本逻辑块内形成32位解码器和WLUT链的伙伴LC的混合布局模式。具体实施例方式请注意,在下面即将讨论的附图中,每个LC都会有或多或少的类似元件,并且图中各处功能基本相同的元件用类似的编号予以标记,每个标号的最后ー个数字都是相同的。图2示意了根据本发明的第一实施方案的逻辑单元。如图2所示,逻辑单元200包括4输入端的LUT202、第一多路选择器204、第二多路选择器206和D触发器208。逻辑单元包括四个输入端ta0、tal、ta2和ta3,它们也是LUT210的输入端。该逻辑单元还包括两个输入端,即tsel和wlutin,以及三个输出端,即wlutout、regout和combout。LUT202有ー个输出端。LUT202可以执行四变量的任何功能。第一多路选择器204有两个数据输入端,即输入端0和输入端I;输出端;以及选择端。多路选择器204的输入端0被连接到LUT202的输出端;输入端I被连接到输入端wlutin;选择端被连接到输入端tsel,并且可用来选择输出多路选择器204的两个输入中的哪ー个。多路选择器204的输出端被连接到输出端wlutout。第二多路选择器206有两个数据输入端,即输入端0和输入端I;输出端;以及选择端。第二多路选择器206的输入端I被连接到第一多路选择器204的输出端,其输入端0被连接到LUT202的输出端。选择端由静态配置比特(configurationbit)驱动。第二多路选择器206的输出端被连接到触发器208的D输入端和输出端combout。在操作中,多路选择器206的选择端可以被适当地配置用于将LUT202的输出信号传递通过第二多路选择器206,然后经由触发器208在输出端regout和直接在输出端combout输出。根据本发明,第一多路选择器204被用来选择来自输入端wlutin的信号与来自LUT202输出端的信号,然后选择信号将在输出端wlutout输出。信号tsel可用来选择第一多路选择器204将输出两个信号中的哪ー个。如果适当地配置多路选择器206的选择端,则选择信号也可以在combout端或经由D触发器208在端regout处输出。总之,由LUT202输出的信号可以经由第一多路选择器204在输出端wlutout输出,经由多路选择器206和触发器208在输出端regout输出,或者经由多路选择器206在输出端combout输出。类似地,LC200可以在输入端wlutin从邻近LC的LUT接收信号,在第一多路选择器204选择该信号,然后在输出端wlutout、regout或combout输出。因此,通过把ー个LC的输入端wlutin链式连接到另ー个LC的输出端wlutout,就可以由多个这类LC形成WLUT链。术语'WLUT'指的是比独立LUT有更多输入的宽LUT。图3示意了根据本发明的第二实施方案的逻辑单元。图3不同于图2之处在于它只有ー个对应于图2中的多路选择器204的多路选择器304,而省略了多路选择器206。多路选择器304的功能是选择来自输入端tsel与LUT304的输出端的信号。因此,WLUT链可以通过链式连接这类LC300的输入端wlutin和输出端wlutout来形成。另外,LC300可以起普通LC的作用。通过在输入端tsel选择信号,LUT302的输出可以直接送入D触发器308的D输入端和输出端combout。图4示意了由图2中所示的逻辑单元形成的WLUT链。如图4中所示,有3个LC,即LC410,LC420和LC430。LC410,LC420和LC430中每个都有与图2中的LC200相同的结构。因此,为了简化起见省略了其详细的结构描述。请注意,在此附图中和在下文中将论述的一些附图中,LUT的配置存储单元(configurationmemorycell)只不过是为简化起见而没有示出。LC410的输出端wlutout被连接到LC420的输入端wlutin,而LC420的输出端wlutout被连接到LC430的输入端wlutin。LC410的输入端wlutin处的输入信号可能是邻近LC的LUT输出。在LC410中,它与LUT412的输出由多路选择器414选择,并且选择信号经由与LUT412的输出端wlutout输出;然后在LC420中,来自LC410的输出端wlutout的信号与LUT422的输出信号由多路选择器424选择,并且选择信号在LC420的输出端wlutout输出;然后在LC430中,来自LC420的输出端wlutout的信号与LUT432的输出信号在多路选择器434处被选择,并且选择信号在LC420的输出端wlutout输出。由此形成了ー个WLUT链,其由从LC410的wlutin到LC430的wlutout的粗黑线指出。请注意,LUT链中的每个LC都可以选择传递它自己的LUT输出或链条中的上游LC的LUT输出。例如,通过适当地在三个LC各自的选择端tsel选择信号,LC410的LUT412的输出信号可以沿链条传递到LC410,LC420和LC430的wlutout端。而且,通过适当地编程多路选择器416、426和436各自的选择端,LC410的LUT412的输出信号可以通过三个LC中的任意ー个在它们各自的combout或regout输出端处输出。图4中所示的WLUT链可用来执行诸如LUT5和总线多路选择器之类的复杂逻辑功能。与类似的传统逻辑电路相比较,WLUT链的方法使用较少的逻辑单元来执行ー些普通的逻辑功能。此外,由于用通用互连耦合起来的LUT已经替换为用更快的专用WLUT链耦合的多路选择器,性能也得到了增强。图5示意了由图4的WLUT链形成的5输入LUT。如图5中所示,这个LUT5由两个LC,LC510和LC520形成。LC510和LC520具有与图2中的LC200相同的结构。1^5具有五个输入端,也110、(11111、(11112、(11113和(11114。来自din[30]的信号在LC510和LC520各自的输入端ta0、tal、ta2和ta3被送入LUT512和LUT522。通过将LC510的tsel端选择为逻辑0,LUT512的输出信号被选择成在LC510的wlutout端输出并且与LUT522的输出信号通过LC520的多路选择器524选择。来自din4的信号经由LC520的输入端tsel被送入LC520的多路选择器524的选择端,然后决定选择LUT512的输出还是LUT522的输出。通过适当地编程LUT512,LUT522和多路选择器526的选择端,图5的逻辑电路可以只用两个逻辑单元来执行LUT5,其延迟稍微大于LUT4。这与从3个LUT4中建立LUT5的传统方法相比更有利,后者不仅具有ニ级LUT延迟还存在较慢的普通互连延迟。图6示意了由图4的WLUT链形成的总线多路选择器。如图6中所示,存在三个基本逻辑块(BasicLogicBlock下称BLB),BLBI、BLB2和BLB3。BLBI包括LC1-1,2-1,…,和M-I;BLB2包括LCト2,2-2,…,和M_2;BLB3包括LCト3,2-3,…,和M-3。每个LC都具有与图2中的LC200相同的结构。第一排中的三个LC,LCI-ULCト2和LC1_3,组成ー个WLUT链,其中,LCトI的LUT6112的输出和LC1-2的LUT6122的输出通过LC1-2中的多路选择器6124选择,然后与LUT6132的输出通过多路选择器6134加以选择。对应地,第i行中的LCi-1、LCi-2和LCi_3组成ー个WLUT链,其中分别地,i—2j...jMo请注意,BLBI中的LC1_1、2_1,...,和M_1为它们各自的多路选择器6jl4共享相同的选择信号tselO;BLB2中的LC1-2,2-2,...,M-2为它们各自的多路选择器6j24共享同一选择信号tsell;并且BLB3中的LC1_3,2_3,...,M_3为它们各自的多路选择器6j34共享相同的选择信号tsel2;其中j=1,,M。通过选择信号tselO和tselI,BLBI中的LC(从而该LUT)可以将它们的输出送入BLB2或BLB3中对应LC的输出端。因此,BLBl中的LC嵌入了M位宽2选I的多路选择器(M_bitwide2-to-lmultiplexer)。类似地,BLB2中的LC(LUT)可以将它们的输出送入BLB2或BLB3中对应的输出端,嵌入了M位宽的2选I多路选择器。BLB3中的LC(LUT)可以将它们的输出送入它们自己的输出端,嵌入了M位宽2选I多路选择器。BLB1、2和3中的这些LC合并成M位宽的3选I总线多路选择器。请注意,选择信号tselO、tsell和tsel2的不同组合可能导致在链路最右边的wlutout端的不同的链式输出。可以这样定义,信号tsel0、tsell和tsel2等于'0'表示它们将所驱动的LC的LUT输出送到链路上,而信号等干'I'表示它们将相邻上游LC的LUT输出送到链路上。在三个信号当中只有ー个信号等干'0'的情况下,即{0,1,1},{1,0,1},{1,1,0},由信号,0,驱动的LC的LUT输出将传送到链路的输出。在三个信号当中至少两个信号等干'0'那些情况下,S卩{0,0,0},{{0,0,1},{0,1,0},{1,0,0},属于由信号'0'驱动的最右边LC的LUT输出将被传递到链路的输出。因此,可以由这类大的总线多路选择器产生ー个优先权。在一个示例中,具有最高优先权的逻辑功能优选地被放置在总线多路选择器的最右侧,而优先权最低的逻辑功能可以安排在左侦れ尽管已经在图中示出了M位宽的3选I总线多路选择器,然而它可以扩展为ー个由MxN的LUT和MxN的多路选择器形成的M位宽的N选I总线多路选择器。当然,tsel信号的编号应该增加到N。在M位宽的N选I总线多路选择器中,每个LC对于它们各自的LUT可能具有不同的输入信号,或者与一部分或全部的其他LC共享相同的输入信号组。在一个情形中,每个BLB中的LUT共享同一个宽的输入信号组,但是执行诸如ADD和SUB之类的不同算法操作。通过对总线选择信号做出选择,可以选择输出不同的算法操作結果。在另ー个情形中,每个BLB中的LUT可以具有不同的输入信号并且输出不同的地址信号。通过选择总线选择信号,在对应的输出端可以出现不同的地址。在一个实施方案中,进位链(carrychain)可以被添加到至少一部分LC的LUT以便在总线多路选择器中执行特定算法。因为省去了LUT群,所以具有上述总线多路选择器的集成电路占用的面积较少。此外,因为采用了固定连接,所以总线多路选择器的延迟较短。以最左边的LUT为例,它经过3个多路选择器到达总线多路选择器最右边的输出端。请注意,图6中LC的wlutin端被连接到各个相邻的LC的wlutout端。LC的其他输入和输出端将经由相同BLB或者各个BLB之间的开关盒(switchbox)而连接。图7示意了在基本逻辑块中的逻辑单元之间的互连示例。在BLB内,LC-O,LC-I,,LC-14和LC-15具有各自的输入端ta0、tal、ta2、ta3;以及输出端regout和combout。LC-O的输入端ta0-ta3和输出端regout和combout被连接到BLB的开关盒,LC-0可以从该开关盒被路由到相同BLB内的其他LC,或者经由BLB的输入端umi和输出端umo被路由到外部的LC。类似地,LC-I,...,LC-14和LC-15中的每ー个都可以被路由到相同BLB内的其他LC,或者通过开关盒被路由到外部的LC。尽管在图7中未示出,输入端tsel也会被连接到开关盒,以便被路由到相同的BLB或外部BLB内的其他LC。请注意,尽管图4-6中的集成电路被示出包括图2中所示的逻辑单元,但是它们也可以由图3中所示的逻辑单元形成。图8示意了根据本发明的第三实施方案的逻辑单元。如图所示,LC800具有4输入的LUT802、或非门803、多路选择器806和D触发器808。LC800包括四个输入端taO、tal、ta2和ta3,它们也是LUT802的输入端。LC包括两个输出端,即regout和combout。此外,LC还包括另ー个输入端Iutin和另ー个输出端lutout。除了这4个输入端ta0、tal、ta2和ta3之外,LUT802还有ー个输出端,其被连接到输出端lutout。或非门803有两个数据输入端和ー个输出端。多路选择器803的其中一个输入端被连接到LUT802的输出端,而其他输入端被连接到输入端lutin。多路选择器806有两个数据输入端,即输入端0和输入端I;输出端;和选择端。多路选择器806的输入端0被连接到或非门803的输出端,输入端I直接连接到LUT802的输出端。选择端由静态配置比特驱动。第二多路选择器806的输出端被连接到触发器808的D输入端和输出端combout。在操作中,多路选择器806的选择端可以被编程来选择多路选择器806的输入端I处的信号作为多路选择器806的输出,该信号是LUT802的输出。然后,该信号将被传递到输出端combout或者经由触发器808传递到输出端regout。在另ー种途径中,LC600的输入端Iutin的输入可能是来自邻近LC的LUT的输出信号。然后,该信号与LUT802的输出信号进行或非操作,结果信号在输入端0被输入多路选择器806。通过配置选择端,或非信号可以直接在输出端combout输出,或者经由触发器808在输出端regout输出。凭此,形成了ー个伙伴逻辑(buddylogic),其中,或非门对LUT802的输出和来自另ー个LC的(ー个或多个)LUT的输出执行或非操作。图9示意了根据本发明的第四实施方案的逻辑单元。这个实施方案不同于图8之处在于或非门803被替换为多路选择器905,其选择端连接到LC的输入端tsel。在操作中,在多路选择器906的输入端I出现的LUT902的输出信号可以由多路选择器906进行选择,并且在输出端combout输出或者经由触发器908在输出端regout输出。在另ー种途径中,可能是来自邻近LC的LUT的输出信号在输入端Iutin被输入LC900。然后,该信号与LUT902的输出在多路选择器905中加以选择。通过选择信号tsel,多路选择器905选择LUT902的输出或者来自邻近LC的输出,以便输出给多路选择器906的输入端O。在多路选择器906中,如果适当地对其选择端进行编程,则来自多路选择器905的选择信号可以直接在输出端combout输出,或者经由触发器908在输出端regout输出。由此形成了ー个伙伴逻辑,其中,多路选择器对LUT902的输出和来自物理上邻近的LC中的另ー个LUT的输出执行选择操作。应当理解,替代于如上所述的NOR和多路选择器,也可以采用诸如AND、NAND、OR和XOR门之类的其他电路来形成伙伴逻辑。而且,可以用多于2个的LUT来替代成对的LUT形成伙伴逻辑。例如,第一LUT、第ニLUT和第三LUT的输出可以分别连接到诸如多路选择器、与门、与非门、或门、或非门和异或门之类的电路的输入端以形成伙伴逻辑。伙伴逻辑可以被采用来执行某些逻辑操作。因为需要的単元数量较少,所以产生的集成电路占用的面积也较少。另外,由于速度较慢的LUT被替换为快得多的逻辑电路,所以性能也将得到增强。而且,与ー个长链路相比较,伙伴逻辑只使用一个专用的LC到LC的链接,与上下最接近的LC耦合,从而使得两个伙伴LC的布局非常灵活。图10示意了由图8所示的逻辑单元形成的伙伴逻辑。如同所示,存在三个LC,LC1010,LC1020和LC1030。每个LC都具有与图8中的LC相同的结构。LC1030的输出端lutout被连接到LC1020的输入端lutin,而LC1020的输出端lutout被连接到LC1010的输入端lutin。在操作中,LUT1032的输出信号在LC1030的输出端lutout被送入LC1020。在LC1020中,或非门1023对LUT1032的输出和来自LUT1022的输出执行或非操作。通过配置多路选择器1026的选择信号,可以选择或非信号在输出端combout输出或者经由D触发器1028在输出端regout输出。类似地,LUT1022的输出和来自LUT1012的输出通过或非门1013进行或非操作,并且可以被选择在LC1010的输出端combout或者经由D触发器1018在输出端regout输出。从而,伙伴逻辑可以被用来有效地执行许多普通的逻辑功能,比如解码器和编码器。请注意,在图10中,多路选择器1016得出的或非信号只能在LC1010中输出。即,LUT1012和LUT1022的输出只能进行或非操作并且在LC1010中输出。图11和图12示意了不同的伙伴逻辑。如图11中所示,存在三个LC,LC1110,LC1120和LC1130,它们不同于图8的LC810之处在于它们有两对lutout和Iutin端和一个三输入多路选择器,而不是两输入多路选择器。两对lutout和Iutin端被重新标记为ulutout和ulutin、dlutout和dlutin,因为上面的ulutout和ulutin端将被连接到上邻LC,而下面的dlutout和dlutin端将被连接到下邻的LC。在LC1110中,ulutout端被连接到LUT1112的输出端,而dlutin端被连接到或非门1113的两个输入端中的ー个。ulutin和dlutout端分别被连接到多路选择器1116的输入端2和或非门1113的输出端。LC1120和LC1130具有与LC1110相同的结构。LC1110的dlutin和dlutout端分别被连接到LC1120的ulutout和ulutin端;LC1120的dlutin和dlutout端分别被连接到LC1130的ulutout和ulutin端。因此,LC1110的或非门1113对LUT1112的输出和LUT1122的输出执行或非操作,并且把或非信号传递到多路选择器1116的输入端0和多路选择器1126的输入端2上,因此,或非信号可以经由LC1110和LC1120输出。类似地,由LUT1122的输出和LUT1132的输出形成的或非信号可以经由LC1120和LC1130输出。图12示意了ー个不同的方法。在这种情况下,LC1210,LC1220和LC1230类似于LC1110、1120和1130的情况。不同之处在于LC1210,LC1220和LC1230中的每ー个都具有一个三输入或非门和两输入多路选择器,而不是两输入或非门和三输入多路选择器。在LC1210中,输入端ulutin被连接到或非门1213的三个输入端中的ー个,而LUT1212的输出端被连接到dlutout端。LC1220和LC1230具有与LC1210相同的结构。LC1210的dlutin和dlutout端分别被连接到LC1220的ulutout和ulutin端;LC1220的dlutin和dlutout端分别被连接到LC1230的ulutout和ulutin端。在操作中,LC1220的或非门1223接收LUT1212的输出、LUT1222的输出和LUT1232的输出并且对它们进行或非操作。多路选择器1226可以选择或非信号以经由LC1220的输出端combout或regout传递并输出。请注意,这个伙伴逻辑具有三个输入端,而不是如图10和图11中所示地具有两个输入端。图13示意了由若干伙伴逻辑形成的32位解码器。如图13中所示,在ー个BLB中存在9个LC,LC1310、1320,,和1390。LC1310-1380中的每ー个都与图8中的LC相同,并且在链路中互相连接以形成伙伴逻辑。例如,在LC1310中,LC1310中的LUT1312的输出和LC1320中的LUT1322的输出通过或非门1313进行或非操作,并且或非信号在多路选择器1316的输入端0处输入。类似地,在LC1330中,LC1330中的LUT1332的输出和LC1340中的LUT1342的输出通过或非门1333进行或非操作,并且或非信号在多路选择器1336的输入端0处输入;在LC1350中,LC1350中的LUT1352的输出和LC1360中的LUT1362的输出通过或非门1353进行或非操作,并且或非信号在多路选择器1356的输入端0处输入;在LC1370中,LC1370中的LUT1372的输出和LC1380中的LUT1382的输出通过或非门1373进行或非操作,并且或非信号被输入多路选择器1376的输入端O。多路选择器1316、1336、1356和1376的输出端经由各自LC的combout端分别被连接到LC1390的LUT1392的输入端ta3、ta2、tal、taO,LC1390可以具有与LC1310-1380相同的结构。在LC1390中,LUT1392的输出可以被选择由多路选择器1396输出。通过适当地配置多路选择器1316、1336、1356、1376和1396的选择端,从而可以实现ー个32位解码器。在操作中,32位输入信号被输入解码器。这个信号被分成子信号群,din[3:0],din[7:4]、din[11:8]、din[15:12]、din[19:16]、din[23:20]、din[27:24]、din[31:28],它们分别经由输入端ta0、tal、ta2、ta3被输入LC1310-1380。当32位输入信号等于特定数值时,32:1的解码器将在dout端或combout端输出'I';否则其输出为O。因为省去了ー些LUT,所以上述的解码器运行更快并且占用面积更少。实际上,因为不可能只用具有LUT4的ー级LC来执行,所以它实现了两级LC的理论最小深度。而且,尽管该伙伴逻辑已经示出彼此连接,然而每一对伙伴LC都可以被安置在BLB内的任何地方。因此,这样形成的解码器由于LC之间的互換性而具有灵活的布局。图14示意了用来在基本逻辑块内形成32位解码器的LC的布局模式。在图14中,用来形成图13中所示的32位解码器的4个LC对和单个LC分别被置于BLB的第一到第二、第六到第七、第九到第十、第十三到第十四、和第十六的LC位置。应当理解,由于伙伴逻辑的灵活布局要求,这些LC对和单个的LC可以任意地置于BLB中。将32位解码器置于BLB内的布局方法可达数千种。图15示意了怎样用具有2选I的多路选择器的伙伴逻辑从两个LC建立LUT5。如图15中所示,LC1510和LC1520具有与图9中的LC900相同的结构。该し爪5具有五个输入端,(11110、(11111、(11112、(11113和(11114。来自din[3:0]的信号在LC1510和LC1520各自的输入端ta0、tal、ta2和ta3被送入LUT1512和LUT1522;而din4被连接到LC1510的输入端tsel。LC1510的输入端Iutin被连接到LC1520的输出端lutout。多路选择器1516的选择端被编程将多路选择器1515的输出信号传递通过。在操作中,多路选择器1515的功能是选择LUT1512的输出与LUT1522的输出。通过适当地对LUT1512和LUT1522进行编程,图15的逻辑电路可以只用两个逻辑单元来实现LUT5,其延迟稍大于LUT4。它与从3个LUT4中建立LUT5的传统方法进行比较更为有利,后者不仅具有ニ级LUT延迟还存在较慢的一般互连延迟。图16示意了根据本发明的第五实施方案的逻辑单元。图16中所示的LC1600不同于图2中的LC200之处在于,它还包括或非门1603,其具有两个输入端和ー个输出端;输入端Iutin和输出端lutout;而多路选择器1606有三个输入端,即输入端0、1和2,而不是两个输入端。或非门1603的其中一个输入端被连接到LUT1602的输出端,而另ー个输入端被连接到LC1600的输入端lutin。或非门1603的输出端被连接到多路选择器1606的输入端2。多路选择器1606的输入端0被连接到LUT1602的输出端,而多路选择器1606的输入端I被连接到多路选择器1604的输出端。如上所述,具有多路选择器1604的多个LC可以组成ー个WLUT链,而具有或非门1603的两个LC1600可以组成一个伙伴逻辑。因此,可以通过多个LC1600形成一种伙伴逻辑和WLUT链的组合。图17示意了根据本发明的第六实施方案的逻辑单元。图17中的LC1700不同于图16的LC1600之处主要在于它用多路选择器1707和多路选择器1704替换了多路选择器1604。此外,LC1700被示出具有非门1701。多路选择器1707有两个输入端,输入端0和输入端I;输出端;以及选择端。多路选择器1707的输入端0被连接到LC的输入端lutin,它们可以从另ー个下方的LC的LUT接收输出信号。多路选择器1707的输入端I被连接到LC的输入端wlutin,它可以从左边的另ー个LC的LUT接收输出。多路选择器1707选择两个输入信号,而选择端决定选择并传递两个输入信号中的哪ー个信号。多路选择器1704也有两个输入端,输入端0和输入端I;输出端;和选择端。多路选择器1704的输入端I被连接到多路选择器1707的输出端;多路选择器1704的输入端0被连接到LUT1702的输出端;输入端tsel被连接到多路选择器1704的选择端,并且决定将选择并传递两个输入中的哪ー个。多路选择器1704的输出端被连接到多路选择器1706的输入端I。在操作中,多路选择器1707可以经由输入端wlutin接收左边的另ー个LC的LUT的输出,并且将其传递至多路选择器1704,多路选择器1704也接收LUT1702的输出。多路选择器1704可以选择它们中的ー个并且将其传递到LC的输出端wlutout。因此,具有多路选择器1707和多路选择器1704的多个LC1700可以组成ー个WLUT链。此外,多路选择器1707可以在其输入端0处接收另ー个下方的LC的LUT的输出,并且将其传递到多路选择器1704,多路选择器1704也接收LUT1702的输出。因此,具有多路选择器1707和多路选择器1704的两个LC可以组成一个伙伴逻辑。而且,具有或非门1703的两个LC组成另一个伙伴逻辑。非门1701具有其连接到或非门1703的输出端的输入端,及其连接到多路选择器1706的输入3的输出端。所属领域技术人员将认识到,LC1700可以通过这种布置执行四种算法,或非、或、与非、与。图18示意了用来在基本逻辑块内形成32位解码器和WLUT链的伙伴LC的混合布局模式。如图18中所示,存在3个BLB,每ー个都有16个LC。有垂直线图案的LC被用来形成WLUT链,而具有网格图案的LC被用来形成32位解码器。由于伙伴逻辑是在短'链路'中形成的,所以伙伴逻辑可以灵活地置于未被WLUT链占用的LC当中。因此,将实现灵活性很大的集成电路。根据本发明形成的LC和集成电路不被限制于FPGA电路,而是可适合于嵌入了FPGA的任何集成电路,比如CSoC和PSoC。而且,那样形成的LC和集成电路可以与不同的互连网络相互连接。虽然已经结合本发明的优选实施方案进行了描述,但是对于所属领域技术人员来说很明显,在不脱离本发明的前提下可以做出不同的改变和修改。例如,尽管如上所述的LUT已经被示出有4个输入端,然而它们可以具有任何其他数量的输入端。另外,D触发器可以被替换为任何另ー种触发器。因此,其目的是在所附权利要求中覆盖所有这类属于本发明真实精神和范围的改变和修改,本发明的真实精神和范围由所附权利要求的界限来定义。权利要求1.ー种集成电路,具有至少ー个第一逻辑单元和ー个第二逻辑单元,第一逻辑单元(800,900)包括具有LUT输出端的LUT(802,902),具有第一电路输入端和第二电路输入端的电路(803,905),和第一输入端(Iutin);其中,LUT的LUT输出端被连接到第一电路输入端,而且第一输入端被连接到第二电路输入端;第二逻辑单元(800,900)包括LUT(802,902),其具有LUT输出端和第一输出端(Iutout),第一输出端被连接到LUT输出端;第二逻辑单元的第一输出端被连接到第一逻辑单元的第一输入端,由此形成了ー个伙伴逻辑。2.根据权利要求I的集成电路,其中,第一逻辑单元(1120)具有第一输出端(dlutout),其被连接到第一逻辑单元的电路(1123)的电路输出端;第二逻辑单元(1130)具有第一输入端(ulutin),其被连接到第一逻辑单元的第一输出端以便将第一逻辑单元的电路输出送入第二逻辑单元。3.根据权利要求I的集成电路,其中,所述集成电路包括第三逻辑单元(1210),所述第三逻辑单元包括第一输出端(dlutout)和具有LUT输出端的LUT;在第三逻辑单元内,所述LUT输出端被连接到第一输出端;第一逻辑单元(1220)具有第二输入端(ulutin),电路具有第三电路输入端,其被连接到第一逻辑单元的第二输入端;第一逻辑单元的第二输入端被连接到第三逻辑单元的第一输出端。4.根据权利要求I的集成电路,其中,集成电路包括FPGA。5.根据权利要求I的集成电路,其中,所述电路从包括与门、与非门、或门、或非门和异或门的群中选择。6.根据权利要求5的集成电路,其中,第一逻辑单元包括非门,其输入端被连接到电路的输出端。7.根据权利要求I的集成电路,其中,所述电路包括ー个或多个多路选择器。8.根据权利要求7的集成电路,其中,所述第一逻辑单元具有第二输入端和多个第三输入端,它们分别被连接到第一逻辑单元的LUT的输入端;所述第二逻辑单元具有多个第ー输入端,它们分别被连接到第二逻辑单元的LUT的输入端;第一逻辑单元的多个第三输入端和多个第一输入端分别互相耦合;所述ー个或多个多路选择器具有选择端,其被连接到第一逻辑单元的第二输入端;由此形成了一个宽的LUT。9.根据权利要求I的集成电路,其中,第一逻辑单元包括多路选择器(803),多路选择器(803)具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;多路选择器的第一多路选择器输入端被连接到电路的电路输出端,多路选择器的第二多路选择器输入端被连接到LUT的输出端,第二多路选择器的输出端被耦合到第一逻辑单元的第二输出端(regout,combout);其中,多路选择器选择端由配置存储单元驱动,配置存储单元可以被编程来让第二多路选择器传递在其第一或第二多路选择器输入端处的信号。10.根据权利要求9的集成电路,其中,第一逻辑单元包括具有触发器输入端和触发器输出端的触发器,在第一逻辑单元内,通过把触发器的触发器输入端连接到电路的输出端并且把触发器的触发器输出端连接到第二输出端,实现了逻辑单元的第二输出端与第一电路的电路输出端的所述耦合。全文摘要本发明提供了具有改进的逻辑单元的集成电路。在一个实施方案中,提供了一种具有多个逻辑单元(LC)的集成电路,每个LC都包括查找表,其具有LUT输出端;和第一多路选择器;其中,第一多路选择器输入端被连接到LC的第一输入端,第二多路选择器输入端被连接到LUT输出端,多路选择器输出端被连接到LC的第一输出端,并且多路选择器选择端被连接到LC的第二输入端,以便选择传递在第一和第二多路选择器输入端出现的信号中的哪一个,通过把一个LC的第一输入端链式耦合到另一个LC的第一输出端,形成了一个WLUT链。文档编号H03K19/177GK102647181SQ201210133410公开日2012年8月22日申请日期2008年1月30日优先权日2008年1月30日发明者周文,李枫峰申请人:雅格罗技(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1