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

文档序号:7515255阅读:301来源:国知局

专利名称::一种具有改进的逻辑单元的集成电路的制作方法
技术领域
:本发明涉及一种集成电路,尤其涉及现场可编程逻辑门阵列(FieldProgrammableGateArray,简称FPGA)逻辑单元。
背景技术
:FPGA是一种由FPGA用户来指定其功能的集成电路。FPGA通常包括大量的逻辑单元。图l示出了一种基本FPGA逻辑单元(logiccell,下称LC),其包括查找表(look-uptable,艮PUJT)102和D触发器(DFF)108。4输入UJT102被示出具有一组配置存储单元,共16个,其可以被配置或编程以用于计算任何4输入的组合逻辑功能。请注意,这类编程电路的细节与本发明的类型无关,所以未在图l中示出。LUT102的输出不仅仅直接连接到LC的输出,而且还送入D触发器108的D输入端,D触发器108的Q输出可用作另一个LC输出。触发器108还可以有时钟使能(enable)端、置位(set)端和/或复位(reset)端,这些也没有在图中示出。在该逻辑单元内,可以提供多路选择器(multiplexer,即MUX)及其它逻辑以便允许将触发器的Q输出端连接到LUT的某些输入端。另外,逻辑单元的输出信号可以经由一些通用的互连网络路由到逻辑单元的输入端,以便构建任何给定的数字逻辑电路。这个基本逻辑单元在逻辑上是完整的。然而,需要有一种对于面积和时序更有效率和/或布局更友好的逻辑单元及其集成电路。
发明内容因此,本发明的目的是提供一种新的LC,其可以被互连并编程来实现功能,并且面积和时间更有效率和/或布局更友好。根据第一方面,本发明提供了一种具有多个逻辑单元的集成电路,所述多个逻辑单元中的每一个都包括第一输入端、第二输入端、多个第三输入端、和第一输出端;具有多个LUT输入端的查找表,多个LUT输入端分别连接到所述逻辑单元的所述多个第三输入端;以及,LUT输出端;第一多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、选择端和多路选择器输出端;其中,第一多路选择器的第一多路选择器输入端被连接到第一输入端,第一多路选择器的第二多路选择器输入端被连接到LUT输出端,第一多路选择器的多路选择器输出端被连接到第一输出端,而选择端被连接到第二输入端并且可用于选4奪在第一多路选择器输入端和第二多路选择器输入端处出现的哪个信号通过第一多路选择器;其中,通过把多个逻辑单元中的一个的第一输入端链式耦合到多个逻辑单元中的另一个的第一输出端而形成一个WLUT(WideLUT)li。根据第二方面,本发明提供了一种具有至少一个第一逻辑单元和一个第二逻辑单元的集成电路,第一逻辑单元包括具有LUT输出端的LUT,具有第一电路输入端和第二电路输入端的电路,以及第一输入端;其中,LUT的LUT输出端被连接到第一电路输入端,而第一输入端被连接到第二电路输入端;第二逻辑单元包括具有LUT输出端的LUT,和第一输出端,第一输出端被连接到LUT输出端;第二逻辑单元的第一输出端被连接到第一逻辑单元的第一输入端,由此形成了一个伙伴逻辑。根据第三方面,提供了一种具有多个逻辑单元的集成电路。所述多个逻辑单元中的每一个都包括第一输入端、第二输入端、第三输入端、多个第四输入端、第一输出端和第二输出端;LUT,具有多个分别连接到多个第四输入端的LUT输入端;以及LUT输出端;第一多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第一多路选择器的第一多路选择器输入端被连接到第一输入端,第一多路选择器的第二多路选择器输入端被连接到第三输入端,并且多路选择器选择端可以9被编程让第一多路选择器传递在第一多路选择器的第一多路选择器输入端和第二多路选择器输入端出现的两个信号中的任意一个;第二多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第二多路选择器的第一多路选择器输入端被连接到第一多路选择器的多路选择器输出端,第二多路选择器的第二多路选择器输入端被连接到LUT输出端,第二多路选择器的多路选择器选择端被连接到第二输入端,并且第二多路选择器的多路选择器输出端被连接到第一输出端;电路,其具有第一电路输入端、第二电路输入端和电路输出端;其中,第一电路输入端被连接到LUT输出端,第二电路输入端被连接到第三输入端;第三多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、第三多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第三多路选择器的第一多路选择器输入端被连接到LUT输出端,第三多路选择器的第二多路选择器输入端被连接到第二多路选择器的多路选择器输出端,第三多路选择器的第三多路选择器输入端被连接到所述电路的电路输出端,并且多路选择器选择端可以被编程以传递在第三多路选择器的第一、第二和第三多路选择器输入端处出现的任意一个信号。本发明的上述及其他目的、特征和优点将通过参考的下述详细说明变得明显,其中,同样的附图标记表示相同的或类似的元件。图l示意了包括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选1多路选择器的伙伴逻辑从两个LC构建一个LUT5;图16示意了根据本发明的第五实施方案的逻辑单元;图17示意了根据本发明的第六实施方案的逻辑单元;以及图18示意了用来在基本逻辑块内形成32位解码器和WLUT链的伙伴LC的混合布局4莫式。具体实施例方式请注意,在下面即将讨论的附图中,每个LC都会有或多或少的类似元件,并且图中各处功能基本相同的元件用类似的编号予以标记,每个标号的最后一个数字都是相同的。图2示意了根据本发明的第一实施方案的逻辑单元。如图2所示,逻辑单元200包括4输入端的LUT202、第一多路选择器204、第二多路选择器206和D触发器208。逻辑单元包括四个输入端to(7、to/、to2和to3,它们也是LUT210的输入端。该逻辑单元还包括两个输入端,即"e/和w/wfiw,以及三个專命出端,即w/wtowf、regow^口cow6owf。LUT202有一个输出端。LUT202可以执行四变量的任何功能。第一多路选择器204有两个数据输入端,即输入端0和输入端1;输出端;以及选择端。多路选择器204的输入端0被连接到LUT202的输出端;输入端l被连接到输入端w/w"";选择端被连接到输入端&e/,并且可用来选择输出多路选择器204的两个输入中的哪一个。多路选择器204的输出端被连4妄到输出端w/wtowf。第二多路选捧器206有两个数据输入端,即输入端0和输入端1;输出端;以及选择端。第二多路选择器206的输入端1净皮连接到第一多^各选择器204的输出端,其输入端0被连接到LUT202的输出端。选择端由静态配置比特(configurationbit)驱动。第二多路选4奪器206的输出端#皮连接到触发器208的D输入端和输出端com6ow/。在操作中,多路选择器206的选择端可以被适当地配置用于将LUT202的输出信号传递通过第二多路选择器206,然后经由触发器208在输出端"gowf和直4妄在!叙出端com6ow^lr出。根据本发明,第一多路选择器204被用来选4奪来自输入端WwH"的信号与来自LUT202输出端的信号,然后选择信号将在输出端w/wtoW输出。信号&e/可用来选择第一多路选择器204将输出两个信号中的哪一个。如果适当地配置多路选择器206的选择端,则选择信号也可以在com6owf端或经由D触发器208在端"goW处输出。总之,由LUT202输出的信号可以经由第一多路选择器204在输出端w/wto^输出,经由多路选择器206和触发器208在输出端"go^输出,或者经由多路选择器206在输出端com6o^输出。类似地,LC200可以在输入端w/w""从邻近LC的LUT接收信号,在第一多路选择器204选择该信号,然后在输出端w/wtoW、^gc^或ccw6ow/输出。因此,通过把一个LC的输入端w/w"w链式连接到另一个LC的输出端就可以由多个这类LC形成WLUT链。术语'WLUT'指的是比独立LUT有更多输入的宽LUT。图3示意了根据本发明的第二实施方案的逻辑单元。图3不同于图2之处在于它只有一个对应于图2中的多路选择器204的多路选择器304,而省略了多路选择器206。多路选择器304的功能是选择来自输入端"e/与LUT304的输出端的信号。因此,WLUT链可以通过链式连接这类LC300的输入端w/z^'"和输出端w/wtoW来形成。另外,LC300可以起普通LC的作用。通过在输入端&e/选择信号,LUT302的输出可以直接送入D触发器308的D输入端和输出端cow6owf。图4示意了由图2中所示的逻辑单元形成的WLUT链。如图4中所示,有3个LC,即LC410、LC420和LC430。LC410、LC420和LC430中每个都有与图2中的LC200相同的结构。因此,为了简化起见省略了其详细的结构描述。请注意,在此附图中和在下文中将论述的一些附图中,LUT的酉己置存4诸单元(configurationmemorycell)只不过是为简4b起见而没有示出。LC410的输出端w/Wow/被连接到LC420的输入端w/W/",而LC420的输出端w/wtowd皮连^妄到LC430的l餘入端w/w""。LC410的输入端w/W/w处的输入信号可能是邻近LC的LUT输出。在LC410中,它与LUT412的输出由多路选择器414选择,并且选择信号经由与LUT412的输出端w/w/oW输出;然后在LC420中,来自LC410的输出端w/w/o"/的信号与LUT422的输出信号由多路选择器424选择,并且选择信号在LC420的输出端w/wtowf输出;然后在LC430中,来自LC420的输出端Ww/owf的信号与LUT432的输出信号在多路选择器434处被选择,并且选择信号在LC420的输出端w/w/o^输出。由此形成了一个WLUT链,其由从LC410的w/wr&到LC430的w/wtoW的粗黑线指出。请注意,LUT链中的每个LC都可以选择传递它自己的LUT输出或链条中的上游LC的LUT输出。例如,通过适当地在三个LC各自的选择端^e/选择信号,LC410的LUT412的输出信号可以沿链条传递到LC410、LC420和LC430的w/wtoW端。而且,通过适当地编程多^各选择器416、426和436各自的选择端,LC410的LUT412的输出信号可以通过三个LC中的任意一个在它们各自的cow6oW或w/输出端处输出。图4中所示的WLUT链可用来执行诸如LUT5和总线多路选择器之类的复杂逻辑功能。与类似的传统逻辑电路相比较,WLUT链的方法使用较少的逻辑单元来执行一些普通的逻辑功能。此外,由于用通用互连耦合起来的LUT已经替换为用更快的专用WLUT链耦合的多路选择器,性能也得到了增强。图5示意了由图4的WLUT链形成的5输入LUT。如图5中所示,这个LUT5由两个LC,LC510和LC520形成。LC510和LC520具有与图2中的LC200相同的结构。LUT5具有五个输入端,A."0、d/"7、d/"2、A."3和A"4。来自din[3:O]的信号在LC510和LC520各自的输入端to0、to入M2和/fl3被送入LUT512和LUT522。通过将LC510的fee/端选择为逻辑0,LUT512的输出信LC520的多路选择器524选择。来自din4的信号经由LC520的输入端&e/被送入LC520的多路选择器524的选择端,然后决定选择LUT512的输出还是LUT522的输出。通过适当地编程LUT512、LUT522和多路选择器526的选择端,图5的逻辑电路可以只用两个逻辑单元来执行LUT5,其延迟稍微大于LUT4。这与从3个LUT4中建立LUT5的传统方法相比更有利,后者不仅具有二级LUT延迟还存在较慢的普通互连延迟。图6示意了由图4的WLUT链形成的总线多路选择器。如图6中所示,存在三个基本逻辑块(BasicLogicBlock下称BLB),BLB1、BLB2和BLB3。BLB1包括LCl-l,2-l,…,和M画l;BLB2包括LC1-2,2-2,,..,和M-2;BLB3包括LC1-3,2-3,…,和M-3。每个LC都具有与图2中的LC200相同的结构。第一排中的三个LC,LC1-1、LCl-2和LCl-3,组成一个WLUT链,其中,LCl-l的LUT6112的输出和LCl-2的LUT6122的输出通过LC1-2中的多路选择器6124选择,然后与LUT6132的输出通过多路选择器6134力口以选捧。对应地,第i行中的LCi-l、LCi-2和LCi-3组成一个WLUT链,其中分别;也,i=2,...,M。请注意,BLB1中的LC1-1、2-l,…,和M-l为它们各自的多路选择器6jl4共享相同的选择信号"e/0;BLB2中的LCl-2,2匿2,…,M-2为它们各自的多路选择器6j24共享同一选择信号"e〃;并且BLB3中的LC1-3,2-3,…,M-3为它们各自的多路选择器6j34共享相同的选择信号"e/2;其中j=l,...,M。通过选4奪信号和"e〃,BLB1中的LC(乂人而该LUT)可以将它们的输出送入BLB2或BLB3中对应LC的输出端。因此,BLB1中的LC嵌入了M位宽2选1的多if各选择器(M-bitwide2-to-1multiplexer)。类似地,BLB2中的LC(LUT)可以将它们的输出送入BLB2或BLB3中对应的输出端,嵌入了M位宽的2选1多路选择器。BLB3中14的LC(LUT)可以将它们的输出送入它们自己的输出端,嵌入了M位宽2选1多路选择器。BLB1、2和3中的这些LC合并成M位宽的3选1总线多路选择器。请注意,选择信号"eW、/"〃和的不同组合可能导致在链路最右边的WwtoW端的不同的链式输出。可以这样定义,信号&e/0、&e〃和"e/2等于'0'表示它们将所驱动的LC的LUT输出送到链路上,而信号等于'1'表示它们将相邻上游LC的LUT输出送到链路上。在三个信号当中只有一个信号等于'O'的情况下,即{0,1,1},{1,0,1},{1,1,0},由信号'O'驱动的LC的LUT输出将传送到链路的输出。在三个信号当中至少两个信号等于'O'那些情况下,即{0,0,0},{{0,0,1},{0,1,0},{1,0,0},属于由信号'O'驱动的最右边LC的LUT输出将被传递到链路的输出。因此,可以由这类大的总线多路选择器产生一个优先权。在一个示例中,具有最高优先权的逻辑功能优选地被放置在总线多路选择器的最右侧,而优先权最低的逻辑功能可以安排在左侧。尽管已经在图中示出了M位宽的3选1总线多路选择器,然而它可以扩展为一个由MxN的LUT和MxN的多路选择器形成的M位宽的N选1总线多路选择器。当然,"e/信号的编号应该增加到N。在M位宽的N选1总线多路选择器中,每个LC对于它们各自的LUT可能具有不同的输入信号,或者与一部分或全部的其他LC共享相同的输入信号组。在一个情形中,每个BLB中的LUT共享同一个宽的输入信号组,但是执行诸如ADD和SUB之类的不同算法操作。通过对总线选择信号做出选择,可以选择输出不同的算法操作结果。在另一个情形中,每个BLB中的LUT可以具有不同的输入信号并且输出不同的地址信号。通过选择总线选择信号,在对应的输出端可以出现不同的地址。在一个实施方案中,进位《连(carrychain)可以^皮添加到至少一部分LC的LUT以便在总线多路选择器中执行特定算法。因为省去了LUT群,所以具有上述总线多路选才奪器的集成电路占用的面积较少。此外,因为采用了固定连接,所以总线多路选择器的延迟较短。以最左边的LUT为例,它经过3个多路选择器到达总线多路选才奪器最右边的输出端。请注意,图6中LC的w/w"w端被连接到各个相邻的LC的w/wtowf端。LC的其他输入和输出端将经由相同BLB或者各个BLB之间的开关盒(switchbox)而连接。图7示意了在基本逻辑块中的逻辑单元之间的互连示例。在BLB内,LC-0,LC-1,…,LC-14和LC-15具有各自的输入端ta0、tal、ta2、ta3;以及输出端^goW和co附6owf。LC-0的输入端taO-ta3和專lr出端regow/和cow6oW被连接到BLB的开关盒,LC-0可以从该开关盒祐:路由到相同BLB内的其他LC,或者经由BLB的输入端wm'和输出端wmo被路由到外部的LC。类似地,LC-1,…,LC-14和LC-15中的每一个都可以被路由到相同BLB内的其他LC,或者通过开关盒被路由到外部的LC。尽管在图7中未示出,输入端&e/也会被连接到开关盒,以便被路由到相同的BLB或夕卜部BLB内的其他LC。请注意,尽管图4-6中的集成电路被示出包括图2中所示的逻辑单元,但是它们也可以由图3中所示的逻辑单元形成。图8示意了根据本发明的第三实施方案的逻辑单元。如图所示,LC800具有4输入的LUT802、或非门803、多路选择器806和D触发器808。LC800包括四个输入端ta0、tal、ta2和ta3,它们也是LUT802的输入端。LC包括两个输出端,即"gowf和com6m^。此外,LC还包括另一个專命入端/w^和另一个專俞出端/wtowf。除了这4个输入端ta0、tal、ta2和ta3之外,LUT802还有一个输出端,其被连接到输出端/wfowf。或非门803有两个数据输入端和一个输出端。多路选择器803的其中一个输入端被连接到LUT802的输出端,而其他输入端被连接到输入端/wdw。多路选择器806有两个数据输入端,即输入端0和输入端1;输出端;和选择端。多路选择器806的输入端0被连接到或非门803的输出端,输入端1直接连接到LUT802的输出端。选择端由静态配置比特驱动。第二多路选择器806的输出端被连接到触发器808的D输入端和输出端在操作中,多路选择器806的选择端可以被编程来选择多路选择器806的输入端1处的信号作为多路选择器806的输出,该信号是LUT802的输出。然后,该信号将被传递到输出端com^w/或者经由触发器8084专递到输出端regowf。在另一种途径中,LC600的输入端/w""的输入可能是来自邻近LC的LUT的输出信号。然后,该信号与LUT802的输出信号进行或非搡作,结果信号在输入端0被输入多路选择器806。通过配置选择端,或非信号可以直接在输出端comZwwf输出,或者经由触发器808在输出端regowf專俞出。凭此,形成了一个伙伴逻辑(buddylogic),其中,或非门对LUT802的输出和来自另一个LC的(一个或多个)LUT的输出执行或非操作。图9示意了根据本发明的第四实施方案的逻辑单元。这个实施方案不同于图8之处在于或非门803被替换为多路选择器905,其选择端连接到LC的输入端&e/。在操作中,在多路选择器卯6的输入端1出现的LUT902的输出信号可以由多路选择器906进行选择,并且在输出端cow6o^输出或者经由触发器卯8在输出端regow/输出。在另一种途径中,可能是来自邻近LC的LUT的输出信号在输入端/w""被输入LC900。然后,该信号与LUT902的输出在多路选择器905中加以选择。通过选择信号&e/,多路选择器905选择LUT902的输出或者来自邻近LC的输出,以便输出给多路选择器906的输入端0。在多路选择器906中,如果适当地对其选择端进行编程,则来自多路选^^器905的选择信号可以直接在输出端com6oW输出,或者经由触发器908在输出端Mgow/输出。由此形成了一个伙伴逻辑,其中,多路选择器对LUT902的输出和来自物理上邻近的LC中的另一个LUT的输出执行选择操作。应当理解,替代于如上所述的NOR和多路选择器,也可以釆用诸如AND、NAND、OR和XOR门之类的其他电路来形成伙伴逻辑。而且,可以用多于2个的LUT来替代成对的LUT形成伙伴逻辑。例如,第一LUT、第二LUT和第三LUT的输出可以分别连接到诸如多路选择器、与门、与非门、或门、或非门和异或门之类的电路的输入端以形成伙4半逻辑。伙伴逻辑可以被采用来执行某些逻辑操作。因为需要的单元数量專交少,所以产生的集成电路占用的面积也较少。另夕卜,由于速度较慢的LUT被替换为快得多的逻辑电路,所以性能也将得到增强。而且,与一个长链路相比较,伙伴逻辑只使用一个专用的LC到LC的链接,与上下最才妾近的LC耦合,从而使得两个伙伴LC的布局非常灵活。图10示意了由图8所示的逻辑单元形成的伙伴逻辑。如同所示,存在三个LC,LC1010、LC1020和LC1030。每个LC都具有与图8中的LC相同的结构。LC1030的输出端/w/owf被连接到LC1020的输入端/w"",而LC1020的输出端/WoW被连接到LC1010的输入端/w"w。在操作中,LUT1032的输出信号在LC1030的输出端/WoW被送入LC1020。在LC1020中,或非门1023对LUT1032的输出和来自LUT1022的输出执行或非操作。通过配置多路选择器1026的选择信号,可以选择或出。^、类似地,LUT1022的输出和来自LUT1012的输出通过或非门1013触发器1018在输出端"goW输出。从而,伙伴逻辑可以被用来有效地执行许多普通的逻辑功能,比如解码器和编码器。请注意,在图10中,多路选择器1016得出的或非信号只能在LC1010中输出。即,LUT1012和LUT1022的输出只能进4亍或非才喿作并且在LCIOIO中输出。图11和图12示意了不同的伙伴逻辑。如图ll中所示,存在三个LC,LClllO、LC1120和LC1130,它们不同于图8的LC810之处在于它们有两对/wtoW和/w""端和一个三输入多路选择器,而不是两输入多路选择器。两对/wto^和/w"w端被重新标记为w/wtowf和M/w"'w、d/wfowf和d/i^/w,因为上面的u/w/ow/和u/w^z端将4皮连4妄到上邻LC,而下面的d/wto^和d/w""端将被连接到下邻的LC。在LC1110中,w/wfo^端被连接到LUT1112的输出端,而d/w""端被连接到或非门1113的两个输入端中的一个。M/M"w和cZ/wtoz^端分别被连才妄LC1120和LC1130具有与LC1110相同的结构。LC1110的(i/w""和d/i/toW端分别4皮连接到LC1120的w/wfowt和w/w〃"端;LC1120的d/w""和d/wtowf端分别^C连接到LC1130的w/wtowf和w/w""端。因此,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中,输入端w/w""被连接到或非门1213的三个输入端中的一个,而LUT1212的输出端被连接到d/wtoW端。LC1220和LC1230具有与LC1210相同的结构。LC1210的d/w""和d/wtow端分别被连接到LC1220的w/wtoi^和w/W/w端;LC1220的^/w""和(i/wtoi^端分别一皮连接到LC1230的w/wtowf和w/z/"'w端。在操作中,LC1220的或非门1223接收LUT1212的输出、LUT1222的输出和LUT1232的输出并且对它们进行或非操作。多路选择器1226可以选择或非信号以经由LC1220的输出端cow6owf或W传递并输出。请注意,这个伙伴逻辑具有三个输入端,而不是如图10和图11中所示地具有两个输入端。图13示意了由若干伙伴逻辑形成的32位解码器。如图13中所示,在一个BLB中存在9个LC,LC1310、1320,...,和1390。LC1310-1380中的每一个都与图8中的LC相同,并且在链路中互相连接以形成Y火伴逻辑。例如,在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行或非操作,并且或非信号被输入多路选择器1376的输入端0。多路选择器1316、1336、1356和1376的输出端经由各自LC的comZ)oW端分别4皮连接到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],它们分别经由输入端taO、tal、ta2、ta3被输入LC1310-1380。当32位输入信号等于特定数值时,32:1的解码器将在do^端或cow6oW端输出T;否则其输出为O。因为省去了一些LUT,所以上述的解码器运行更快并且占用面积更少。实际上,因为不可能只用具有LUT4的一级LC来执行,所以它实现了两级LC的理论最小深度。而且,尽管该伙伴逻辑已经示出彼此连接,然而每一对伙伴LC都可以被安置在BLB内的任何地方。因此,这样形成图14示意了用来在基本逻辑块内形成32位解码器的LC的布局才莫式。在图14中,用来形成图13中所示的32位解码器的4个LC对和单个LC分别被置于BLB的第一到第二、第六到第七、第九到第十、第十三到第十四、和第十六的LC位置。应当理解,由于伙伴逻辑的灵活布局要求,这些LC对和单个的LC可以任意地置于BLB中。将32位解码器置于BLB内的布局方法可达数千种。图15示意了怎样用具有2选1的多路选择器的伙伴逻辑从两个LC建立LUT5。如图15中所示,LC1510和LC1520具有与图9中的LC900相同的结构。该LUT5具有五个输入端,din0、dinl、din2、din3和din4。来自din[3:0]的信号在LC1510和LC1520各自的输入端ta0、tal、ta2和ta3被送入LUT1512和LUT1522;而din4被连接到LC1510的输入端&e/。LC1510的输入端/w"w被连接到LC1520的输出端/wtowf。多路选择器1516的选择端被编程将多路选择器1515的输出信号传递通过。在操作中,多路选择器1515的功能是选择LUT1512的输出与LUT1522的输出。通过适当地对LUT1512和LUT1522进行编程,图15的逻辑电路可以只用两个逻辑单元来实现LUT5,其延迟稍大于LUT4。它与乂人3个LUT4中建立LUT5的传统方法进行比较更为有利,后者不仅具有二级LUT延迟还存在较慢的一般互连延迟。图16示意了根据本发明的第五实施方案的逻辑单元。图16中所示的LC1600不同于图2中的LC200之处在于,它还包括或非门1603,其具有两个输入端和一个输出端;输入端/w"w和输出端/w""r,而多路选择器1606有三个输入端,即输入端0、1和2,而不是两个lt入端。或非门1603的其中一个输入端被连接到LUT1602的输出端,而另一个输入端^皮连接到LC1600的输入端/w"w。或非门1603的输出端^皮连才姿到多路选择器1606的输入端2。多路选择器1606的输入端0被连接到LUT1602的输出端,而多路选择器1606的输入端l被连4妄到多^各选择器1604的输出端。如上所述,具有多路选择器1604的多个LC可以组成一个WLUT链,而具有或非门1603的两个LC1600可以组成一个伙伴逻辑。因此,可以通过多个LC1600形成一种伙伴逻辑和WLUT链的组合。图17示意了根据本发明的第六实施方案的逻辑单元。图17中的LC1700不同于图16的LC1600之处主要在于它用多路选择器1707和多路选择器1704替换了多路选择器1604。此外,LC1700被示出具有非门1701。多路选择器1707有两个输入端,输入端0和输入端1;输出端;以及选择端。多路选择器1707的输入端0被连接到LC的输入端/w"",它们可以从另一个下方的LC的LUT接收输出信号。多路选择器1707的输入端1被连接到LC的输入端w/w"w,它可以从左边的另一个LC的LUT接收输出。多路选择器1707选择两个输入信号,而选择端决定选4奪并传递两个输入信号中的哪一个信号。多路选择器1704也有两个输入端,输入端0和输入端1;输出端;和选择端。多路选择器1704的输入端l被连接到多路选择器1707的输出端;多路选择器1704的输入端0被连接到LUT1702的输出端;输入端&e"皮连接到多路选4奪器1704的选择端,并且决定将选4奪并传递两个输入中的明卩一个。多路选择器1704的输出端被连接到多路选择器1706的输入端1。在操作中,多路选择器1707可以经由输入端w/w"w接收左边的另一个LC的LUT的输出,并且将其传递至多路选择器1704,多路选择器1704也接收LUT1702的输出。多路选择器1704可以选择它们中的一个并且将其传递到LC的输出端w/wtoW。因此,具有多路选择器1707和多路选择器1704的多个LC1700可以组成一个WLUT链。此外,多路选4奪器1707可以在其输入端0处接收另一个下方的LC的LUT的输出,并且将其传递到多路选择器1704,多路选择器1704也接收LUT1702的输出。因此,具有多路选择器1707和多路选择器1704的两个LC可以组成一个伙伴逻辑。而且,具有或非门1703的两个LC组成另一个^f火伴逻辑。非门1701具有其连接到或非门1703的输出端的输入端,及其连"l妻到多路选择器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.一种具有多个逻辑单元的集成电路,所述多个逻辑单元的每一个包括第一输入端(wlutin),第二输入端(tsel),多个第三输入端(ta0,ta1,ta2,ta3),和第一输出端(wlutout);查找表(LUT)(202,302),其具有多个分别连接到逻辑单元的所述多个第三输入端的LUT输入端;以及,LUT输出端;第一多路选择器(MUX)(204,304),具有第一多路选择器输入端、第二多路选择器输入端、选择端和多路选择器输出端;其中,第一多路选择器的第一多路选择器输入端被连接到第一输入端,第一多路选择器的第二多路选择器输入端被连接到LUT输出端,第一多路选择器的多路选择器输出端被连接到第一输出端(wlutout),而且选择端被连接到第二输入端并可用于选择在第一多路选择器输入端和第二多路选择器输入端处出现的信号中的哪一个传递通过第一多路选择器;其中,通过将多个逻辑单元中的一个的第一输入端(wlutin)链式耦合到多个逻辑单元中另一个的第一输出端(wlutout),一个WLUT链被形成。2.根据权利要求1的集成电路,其中,集成电路包括FPGA。3.根据权利要求1的集成电路,其中,所述多个逻辑单元中的每一个都包括第二多路选择器(206),第二多路选择器(206)具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;在逻辑单元中的每一个内,第二多路选择器的第一多路选择器输入端被连接到第一多路选择器的多路选择器输出端,而第二多路选择器的第二多路选择器输入端被连接到LUT的输出端,第二多路选择器的输出端被耦合到逻辑单元的第二输出端(com^W或regoW);其中,多路选择器选择端由配置存储单元驱动,配置存储单元可以被编程来让第二多路选择器传递在其第一或第二多路选择器输入端处的信号。4.根据权利要求3的集成电路,其中,所述多个逻辑单元中的每一个都包括触发器,触发器具有触发器输入端和触发器输出端,在相同的逻辑单元内,通过把触发器的触发器输入端连接到第二多路选择器的输出端并且把触发器的触发器输出端连接到第二输出端,实现了逻辑单元的第二输出端与第二多路选择器的输出端的所述耦合。5.根据权利要求1的集成电路,其中,所述多个逻辑单元中的每一个都包括第三输出端,第三输出端被耦合到相同逻辑单元的第一多路选择器的多路选择器输出端。6.根据权利要求5的集成电路,其中,所述多个逻辑单元中的每一个都包括触发器,触发器具有触发器输入端和触发器输出端,在相同的逻辑单元内,通过把触发器的触发器输入端连接到第一多路选择器的输出端并且把触发器的触发器输出端连接到第三输出端,实现了逻辑单元的第三输出端与第一多路选择器的输出端的所述耦合。7.根据权利要求1的集成电路,其中,所述多个逻辑单元包括第一逻辑单元(510)和第二逻辑单元(520);其中,第一逻辑单元的所述多个第三输入端和第二逻辑单元的所述多个第三输入端被互连以共享相同的输入信号;在第一逻辑单元中,第二输入端被用来选择第一逻辑单元的LUT的输出以传递;通过对第一逻辑单元和第二逻辑单元的LUT,第二逻辑单元的所述多个第三输入端和第二输入端进行编程,形成了一个宽的LUT。8.根据权利要求1的集成电路,其中,所述集成电路至少包括第一组逻辑单元和第二组逻辑单元,多个第一和第二逻辑单元分别被连接成WLUT链,第一组逻辑单元中的每一个逻辑单元的第二输入端都被连接到第二组逻辑单元的对应逻辑单元的第二输入端,由此形成了一个总线多路选择器。9.根据权利要求1的集成电路,其中,所述多个逻辑单元中的每一个都包括进位链输入端和进位链输出端,并且通过把所述多个逻辑单元中的一个的进位链输入端链式耦合到所述多个逻辑单元中另一个的进位链输出端,形成了一个进位链。10.根据权利要求1的集成电路,其中,所述第一多路选择器由两个多路选择器(1707,1704)或更多的多路选择器形成。11.根据权利要求l的集成电路,其中,所述多个逻辑单元中的每一个都包括第四输入端(/w,zV)、第四输出端(/WowO以及具有第一电路输入端和第二电路输入端的电路(1603),LUT输出端被连接到电路的第一电路输入端,而电路的第二电路输入端被连接到第四输入端;其中,把所述多个逻辑单元中的一个的第四输入端耦合到所述多个逻辑单元中另一个的第四输出端,形成了一个伙伴逻辑(buddylogic)。12.根据权利要求11的集成电路,其中,所述电路从包括或非门、与门、与非门、或门以及异或门的群中选择。13.根据权利要求11的集成电路,其中,所述电路包括一个或多个多路选择器。14.一种集成电路,具有至少一个第一逻辑单元和一个第二逻辑单元,第一逻辑单元(800,900)包括具有LUT输出端的LUT(802,902),具有第一电路输入端和第二电路输入端的电路(803,卯5),和第一输入端(/m"");其中,LUT的LUT输出端被连接到第一电路输入端,而且第一输入端被连接到第二电路输入端;第二逻辑单元(800,900)包括LUT(802,902),其具有LUT输出端和第一输出端(/^owf),第一输出端被连接到LUT输出端;第二逻辑单元的第一输出端被连接到第一逻辑单元的第一输入端,由此形成了一个伙伴逻辑。15.根据权利要求14的集成电路,其中,第一逻辑单元(1120)具有第一输出端(d/Wow",其被连接到第一逻辑单元的电路(1123)的电路输出端;第二逻辑单元(1130)具有第一输入端(w/w""),其被连接到第一逻辑单元的第一输出端以便将第一逻辑单元的电路输出送入第二逻辑单元。16.根据权利要求14的集成电路,其中,所述集成电路包括第三逻辑单元(1210),所述第三逻辑单元包括第一输出端(d/w&w/)和具有LUT输出端的LUT;在第三逻辑单元内,所述LUT输出端被连接到第一输出端;第一逻辑单元(1220)具有第二输入端(w/w""),电路具有第三电路输入端,其被连接到第一逻辑单元的第二输入端;第一逻辑单元的第二输入端被连接到第三逻辑单元的第一输出端。17.根据权利要求14的集成电路,其中,集成电路包括FPGA。18.根据权利要求14的集成电路,其中,所述电路从包括与门、与非门、或门、或非门和异或门的群中选择。19.根据权利要求18的集成电路,其中,第一逻辑单元包括非门,其输入端被连接到电路的输出端。20.根据权利要求14的集成电路,其中,所述电路包括一个或多个多路选择器。21.根据权利要求20的集成电路,其中,所述第一逻辑单元具有第二输入端和多个第三输入端,它们分别被连接到第一逻辑单元的LUT的输入端;所述第二逻辑单元具有多个第一输入端,它们分别被连接到第二逻辑单元的LUT的输入端;第一逻辑单元的多个第三输入端和多个第一输入端分别互相耦合;所述一个或多个多路选择器具有选择端,其被连接到第一逻辑单元的第二输入端;由此形成了一个宽的LUT。22.根据权利要求14的集成电路,其中,第一逻辑单元包括多路选择器(803),多路选择器(803)具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;多路选择器的第一多路选择器输入端被连接到电路的电路输出端,多路选择器的第二多路选择器输入端被连接到LUT的输出端,第二多路选择器的输出端被耦合到第一逻辑单元的第二输出端("goW,comkw/);其中,多路选择器选择端由配置存储单元驱动,配置存储单元可以被编程来让第二多路选择器传递在其第一或第二多路选择器输入端处的信号。23.根据权利要求22的集成电路,其中,第一逻辑单元包括具有触发器输入端和触发器输出端的触发器,在第一逻辑单元内,通过把触发器的触发器输入端连接到电路的输出端并且把触发器的触发器输出端连接到第二输出端,实现了逻辑单元的第二输出端与第一电路的电路输出端的所述耦合。24.—种具有多个逻辑单元的集成电路,所述多个逻辑单元的每一个都包括第一输入端(w/w"'")、第二输入端U"/)、第三输入端(/w"")、多个第四输入端(ta0、tal、ta2、ta3)、第一输出端(w/wtoW)和第二输出端(/w她f);LUT(1702),具有多个LUT输入端,它们分别连接到多个第四输入端;以及,LUT输出端;第一多路选择器(1707),具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第一多路选择器的第一多路选择器输入端被连接到第一输入端,第一多路选择器的第二多路选择器输入端被连接到第三输入端,并且多路选择器选择端可以被编程让第一多路选择器传递在第一多路选择器的第一多路选择器输入端和第二多路选择器输入端处出现的两个信号中的任意一个,第二多路选择器(1704),具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第二多路选择器的第一多路选择器输入端被连接到第一多路选择器的多路选择器输出端,第二多路选择器的第二多路选择器输入端被连接到LUT输出端,第二多路选择器的多路选择器选择端被连接到第二输入端,并且第二多路选择器的多路选择器输出端被连接到第一输出端(w/wtowO;电路(1703),具有第一电路输入端、第二电路输入端和电路输出端;其中,第一电路输入端被连接到LUT输出端,第二电路输入端被连接到第三输入端;第三多路选择器(1706),其具有第一多路选择器输入端、第二多路选择器输入端、第三多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第三多路选择器的第一多路选择器输入端被连接到LUT输出端,第三多路选择器的第二多路选择器输入端被连接到第二多路选择器的多路选择器输出端,第三多路选择器的第三多路选择器输入端被连接到电路的电路输出端,并且多路选择器选择端可以被编程来传递在第三多路选择器的第一、第二和第三多路选择器输入端处出现的任意一个信号。25.根据权利要求24的集成电路,其中,当多个逻辑单元中每一个的第一多路选择器的选择端都被编程来传递在同一第一多路选择器的第一多路选择器输入端处的信号时,通过把多个逻辑单元中的一个的第一输入端(w/w"")按链路耦合到多个逻辑单元中另一个的第一输出端形成WLUT链。26.根据权利要求24的集成电路,其中,通过把多个逻辑单元中第一个的第三输入端耦合到多个逻辑单元中第二个的第二输出端,在第一逻辑单元和第二逻辑单元之间形成了一个伙伴逻辑。27.根据权利要求24的集成电路,其中,当第一多路选择器的选择端被编程来传递在第一多路选择器的第二输入端处的信号时,通过把多个逻辑单元中第三个的第三输入端耦合到多个逻辑单元中第四个的第二输出端,在第一逻辑单元和第二逻辑单元之间形成了一个伙伴逻辑。28.根据权利要求24的集成电路,其中,所述电路从包括与门、与非门、或门、或非门和异或门的群中选择。29.根据权利要求28的集成电路,其中,所述第三多路选择器具有第四多路选择器输入端;所述多个逻辑单元中每一个都包括非门,其输入端被连接到电路的输出端,并且其输出端被连接到第四多路选择器的第四多路选择器输入端。30.根据权利要求24的集成电路,其中,所述电路包括一个或多个多路选择器。全文摘要本发明提供了具有改进的逻辑单元的集成电路。在一个实施方案中,提供了一种具有多个逻辑单元(LC)(200)的集成电路,每个LC(200)都包括查找表(202),其具有LUT输出端;和第一多路选择器(204);其中,第一多路选择器输入端被连接到LC(200)的第一输入端(wluin),第二多路选择器输入端被连接到LUT输出端,多路选择器输出端被连接到LC(200)的第一输出端(wlutout),并且多路选择器选择端被连接到LC(200)的第二输入端(tsel),以便选择传递在第一和第二多路选择器输入端出现的信号中的哪一个,通过把一个LC的第一输入端链式耦合到另一个LC的第一输出端,形成了一个WLUT链。文档编号H03K19/173GK101682329SQ200880000082公开日2010年3月24日申请日期2008年1月30日优先权日2008年1月30日发明者文周,李枫峰申请人:雅格罗技(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1