CN102647181A - 一种具有改进的逻辑单元的集成电路 - Google Patents
一种具有改进的逻辑单元的集成电路 Download PDFInfo
- Publication number
- CN102647181A CN102647181A CN2012101334104A CN201210133410A CN102647181A CN 102647181 A CN102647181 A CN 102647181A CN 2012101334104 A CN2012101334104 A CN 2012101334104A CN 201210133410 A CN201210133410 A CN 201210133410A CN 102647181 A CN102647181 A CN 102647181A
- Authority
- CN
- China
- Prior art keywords
- output
- input
- mux
- lut
- logical block
- 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
Links
Images
Abstract
本发明提供了具有改进的逻辑单元的集成电路。在一个实施方案中,提供了一种具有多个逻辑单元(LC)的集成电路,每个LC都包括:查找表,其具有LUT输出端;和第一多路选择器;其中,第一多路选择器输入端被连接到LC的第一输入端,第二多路选择器输入端被连接到LUT输出端,多路选择器输出端被连接到LC的第一输出端,并且多路选择器选择端被连接到LC的第二输入端,以便选择传递在第一和第二多路选择器输入端出现的信号中的哪一个,通过把一个LC的第一输入端链式耦合到另一个LC的第一输出端,形成了一个WLUT链。
Description
本申请是国际申请日为2008年1月30日,国家申请号为200880000082.2的题为“一种具有改进的逻辑单元的集成电路”的中国专利申请的分案申请。
技术领域
本发明涉及一种集成电路,尤其涉及现场可编程逻辑门阵列(FieldProgrammable Gate Array,简称FPGA)逻辑单元。
背景技术
FPGA是一种由FPGA用户来指定其功能的集成电路。FPGA通常包括大量的逻辑单元。
图1示出了一种基本FPGA逻辑单元(logic cell,下称LC),其包括查找表(look-up table,即LUT)102和D触发器(DFF)108。4输入LUT 102被示出具有一组配置存储单元,共16个,其可以被配置或编程以用于计算任何4输入的组合逻辑功能。请注意,这类编程电路的细节与本发明的类型无关,所以未在图1中示出。LUT 102的输出不仅仅直接连接到LC的输出,而且还送入D触发器108的D输入端,D触发器108的Q输出可用作另一个LC输出。触发器108还可以有时钟使能(enable)端、置位(set)端和/或复位(reset)端,这些也没有在图中示出。在该逻辑单元内,可以提供多路选择器(multiplexer,即MUX)及其它逻辑以便允许将触发器的Q输出端连接到LUT的某些输入端。另外,逻辑单元的输出信号可以经由一些通用的互连网络路由到逻辑单元的输入端,以便构建任何给定的数字逻辑电路。
这个基本逻辑单元在逻辑上是完整的。然而,需要有一种对于面积和时序更有效率和/或布局更友好的逻辑单元及其集成电路。
发明内容
因此,本发明的目的是提供一种新的LC,其可以被互连并编程来实现功能,并且面积和时间更有效率和/或布局更友好。
根据第一方面,本发明提供了一种具有多个逻辑单元的集成电路,所述多个逻辑单元中的每一个都包括:
第一输入端、第二输入端、多个第三输入端、和第一输出端;
具有多个LUT输入端的查找表,多个LUT输入端分别连接到所述逻辑单元的所述多个第三输入端;以及,LUT输出端;
第一多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、选择端和多路选择器输出端;其中,第一多路选择器的第一多路选择器输入端被连接到第一输入端,第一多路选择器的第二多路选择器输入端被连接到LUT输出端,第一多路选择器的多路选择器输出端被连接到第一输出端,而选择端被连接到第二输入端并且可用于选择在第一多路选择器输入端和第二多路选择器输入端处出现的哪个信号通过第一多路选择器;
其中,通过把多个逻辑单元中的一个的第一输入端链式耦合到多个逻辑单元中的另一个的第一输出端而形成一个WLUT(Wide LUT)链。
根据第二方面,本发明提供了一种具有至少一个第一逻辑单元和一个第二逻辑单元的集成电路,
第一逻辑单元包括:具有LUT输出端的LUT,具有第一电路输入端和第二电路输入端的电路,以及第一输入端;其中,LUT的LUT输出端被连接到第一电路输入端,而第一输入端被连接到第二电路输入端;
第二逻辑单元包括:具有LUT输出端的LUT,和第一输出端,第一输出端被连接到LUT输出端;
第二逻辑单元的第一输出端被连接到第一逻辑单元的第一输入端,由此形成了一个伙伴逻辑。
根据第三方面,提供了一种具有多个逻辑单元的集成电路。所述多个逻辑单元中的每一个都包括:
第一输入端、第二输入端、第三输入端、多个第四输入端、第一输出端和第二输出端;
LUT,具有多个分别连接到多个第四输入端的LUT输入端;以及LUT输出端;
第一多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第一多路选择器的第一多路选择器输入端被连接到第一输入端,第一多路选择器的第二多路选择器输入端被连接到第三输入端,并且多路选择器选择端可以被编程让第一多路选择器传递在第一多路选择器的第一多路选择器输入端和第二多路选择器输入端出现的两个信号中的任意一个;
第二多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第二多路选择器的第一多路选择器输入端被连接到第一多路选择器的多路选择器输出端,第二多路选择器的第二多路选择器输入端被连接到LUT输出端,第二多路选择器的多路选择器选择端被连接到第二输入端,并且第二多路选择器的多路选择器输出端被连接到第一输出端;
电路,其具有第一电路输入端、第二电路输入端和电路输出端;其中,第一电路输入端被连接到LUT输出端,第二电路输入端被连接到第三输入端;
第三多路选择器,其具有第一多路选择器输入端、第二多路选择器输入端、第三多路选择器输入端、多路选择器选择端和多路选择器输出端;其中,第三多路选择器的第一多路选择器输入端被连接到LUT输出端,第三多路选择器的第二多路选择器输入端被连接到第二多路选择器的多路选择器输出端,第三多路选择器的第三多路选择器输入端被连接到所述电路的电路输出端,并且多路选择器选择端可以被编程以传递在第三多路选择器的第一、第二和第三多路选择器输入端处出现的任意一个信号。
本发明的上述及其他目的、特征和优点将通过参考附图说明的下述详细说明变得明显,其中,同样的附图标记表示相同的或类似的元件。
附图说明
图1示意了包括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的混合布局模式。
具体实施方式
请注意,在下面即将讨论的附图中,每个LC都会有或多或少的类似元件,并且图中各处功能基本相同的元件用类似的编号予以标记,每个标号的最后一个数字都是相同的。
图2示意了根据本发明的第一实施方案的逻辑单元。如图2所示,逻辑单元200包括4输入端的LUT 202、第一多路选择器204、第二多路选择器206和D触发器208。逻辑单元包括四个输入端:ta0、ta1、ta2和ta3,它们也是LUT 210的输入端。该逻辑单元还包括两个输入端,即tsel和wlutin,以及三个输出端,即wlutout、regout和combout。
LUT 202有一个输出端。LUT 202可以执行四变量的任何功能。
第一多路选择器204有两个数据输入端,即输入端0和输入端1;输出端;以及选择端。多路选择器204的输入端0被连接到LUT 202的输出端;输入端1被连接到输入端wlutin;选择端被连接到输入端tsel,并且可用来选择输出多路选择器204的两个输入中的哪一个。多路选择器204的输出端被连接到输出端wlutout。
第二多路选择器206有两个数据输入端,即输入端0和输入端1;输出端;以及选择端。第二多路选择器206的输入端1被连接到第一多路选择器204的输出端,其输入端0被连接到LUT 202的输出端。选择端由静态配置比特(configuration bit)驱动。第二多路选择器206的输出端被连接到触发器208的D输入端和输出端combout。
在操作中,多路选择器206的选择端可以被适当地配置用于将LUT 202的输出信号传递通过第二多路选择器206,然后经由触发器208在输出端regout和直接在输出端combout输出。
根据本发明,第一多路选择器204被用来选择来自输入端wlutin的信号与来自LUT 202输出端的信号,然后选择信号将在输出端wlutout输出。信号tsel可用来选择第一多路选择器204将输出两个信号中的哪一个。如果适当地配置多路选择器206的选择端,则选择信号也可以在combout端或经由D触发器208在端regout处输出。
总之,由LUT 202输出的信号可以经由第一多路选择器204在输出端wlutout输出,经由多路选择器206和触发器208在输出端regout输出,或者经由多路选择器206在输出端combout输出。
类似地,LC 200可以在输入端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链可以通过链式连接这类LC 300的输入端wlutin和输出端wlutout来形成。
另外,LC 300可以起普通LC的作用。通过在输入端tsel选择信号,LUT302的输出可以直接送入D触发器308的D输入端和输出端combout。
图4示意了由图2中所示的逻辑单元形成的WLUT链。如图4中所示,有3个LC,即LC 410、LC 420和LC 430。LC 410、LC 420和LC 430中每个都有与图2中的LC 200相同的结构。因此,为了简化起见省略了其详细的结构描述。请注意,在此附图中和在下文中将论述的一些附图中,LUT的配置存储单元(configuration memory cell)只不过是为简化起见而没有示出。
LC 410的输出端wlutout被连接到LC 420的输入端wlutin,而LC 420的输出端wlutout被连接到LC 430的输入端wlutin。
LC 410的输入端wlutin处的输入信号可能是邻近LC的LUT输出。在LC410中,它与LUT 412的输出由多路选择器414选择,并且选择信号经由与LUT 412的输出端wlutout输出;然后在LC 420中,来自LC 410的输出端wlutout的信号与LUT 422的输出信号由多路选择器424选择,并且选择信号在LC420的输出端wlutout输出;然后在LC 430中,来自LC 420的输出端wlutout的信号与LUT 432的输出信号在多路选择器434处被选择,并且选择信号在LC 420的输出端wlutout输出。
由此形成了一个WLUT链,其由从LC 410的wlutin到LC 430的wlutout的粗黑线指出。
请注意,LUT链中的每个LC都可以选择传递它自己的LUT输出或链条中的上游LC的LUT输出。例如,通过适当地在三个LC各自的选择端tsel选择信号,LC 410的LUT 412的输出信号可以沿链条传递到LC 410、LC 420和LC 430的wlutout端。而且,通过适当地编程多路选择器416、426和436各自的选择端,LC 410的LUT 412的输出信号可以通过三个LC中的任意一个在它们各自的combout或regout输出端处输出。
图4中所示的WLUT链可用来执行诸如LUT5和总线多路选择器之类的复杂逻辑功能。与类似的传统逻辑电路相比较,WLUT链的方法使用较少的逻辑单元来执行一些普通的逻辑功能。此外,由于用通用互连耦合起来的LUT已经替换为用更快的专用WLUT链耦合的多路选择器,性能也得到了增强。
图5示意了由图4的WLUT链形成的5输入LUT。如图5中所示,这个LUT5由两个LC,LC 510和LC 520形成。LC 510和LC 520具有与图2中的LC200相同的结构。
LUT5具有五个输入端,din0、din1、din2、din3和din4。来自din[3:0]的信号在LC 510和LC 520各自的输入端ta0、ta1、ta2和ta3被送入LUT 512和LUT 522。通过将LC 510的tsel端选择为逻辑0,LUT 512的输出信号被选择成在LC 510的wlutout端输出并且与LUT 522的输出信号通过LC 520的多路选择器524选择。来自din4的信号经由LC 520的输入端tsel被送入LC 520的多路选择器524的选择端,然后决定选择LUT 512的输出还是LUT 522的输出。通过适当地编程LUT 512、LUT 522和多路选择器526的选择端,图5的逻辑电路可以只用两个逻辑单元来执行LUT5,其延迟稍微大于LUT 4。这与从3个LUT 4中建立LUT5的传统方法相比更有利,后者不仅具有二级LUT延迟还存在较慢的普通互连延迟。
图6示意了由图4的WLUT链形成的总线多路选择器。如图6中所示,存在三个基本逻辑块(Basic Logic Block下称BLB),BLB 1、BLB 2和BLB 3。BLB 1包括LC 1-1,2-1,...,和M-1;BLB 2包括LC 1-2,2-2,...,和M-2;BLB 3包括LC 1-3,2-3,...,和M-3。每个LC都具有与图2中的LC 200相同的结构。
第一排中的三个LC,LC 1-1、LC 1-2和LC 1-3,组成一个WLUT链,其中,LC 1-1的LUT 6112的输出和LC 1-2的LUT 6122的输出通过LC 1-2中的多路选择器6124选择,然后与LUT 6132的输出通过多路选择器6134加以选择。
对应地,第i行中的LC i-1、LC i-2和LC i-3组成一个WLUT链,其中分别地,i=2,...,M。
请注意,BLB 1中的LC 1-1、2-1,...,和M-1为它们各自的多路选择器6j14共享相同的选择信号tsel0;BLB 2中的LC 1-2,2-2,...,M-2为它们各自的多路选择器6j24共享同一选择信号tsel1;并且BLB 3中的LC1-3,2-3,...,M-3为它们各自的多路选择器6j34共享相同的选择信号tsel2;其中j=1,...,M。通过选择信号tsel0和tsel1,BLB 1中的LC(从而该LUT)可以将它们的输出送入BLB 2或BLB 3中对应LC的输出端。因此,BLB1中的LC嵌入了M位宽2选1的多路选择器(M-bit wide 2-to-1multiplexer)。
类似地,BLB 2中的LC(LUT)可以将它们的输出送入BLB 2或BLB3中对应的输出端,嵌入了M位宽的2选1多路选择器。BLB 3中的LC(LUT)可以将它们的输出送入它们自己的输出端,嵌入了M位宽2选1多路选择器。BLB 1、2和3中的这些LC合并成M位宽的3选1总线多路选择器。
请注意,选择信号tsel0、tsel1和tsel2的不同组合可能导致在链路最右边的wlutout端的不同的链式输出。可以这样定义,信号tsel0、tsel1和tsel2等于′0′表示它们将所驱动的LC的LUT输出送到链路上,而信号等于′1′表示它们将相邻上游LC的LUT输出送到链路上。
在三个信号当中只有一个信号等于′0′的情况下,即{0,1,1},{1,0,1},{1,1,0},由信号′0′驱动的LC的LUT输出将传送到链路的输出。
在三个信号当中至少两个信号等于′0′那些情况下,即{0,0,0},{{0,0,1},{0,1,0},{1,0,0},属于由信号′0′驱动的最右边LC的LUT输出将被传递到链路的输出。因此,可以由这类大的总线多路选择器产生一个优先权。在一个示例中,具有最高优先权的逻辑功能优选地被放置在总线多路选择器的最右侧,而优先权最低的逻辑功能可以安排在左侧。
尽管已经在图中示出了M位宽的3选1总线多路选择器,然而它可以扩展为一个由MxN的LUT和MxN的多路选择器形成的M位宽的N选1总线多路选择器。当然,tsel信号的编号应该增加到N。
在M位宽的N选1总线多路选择器中,每个LC对于它们各自的LUT可能具有不同的输入信号,或者与一部分或全部的其他LC共享相同的输入信号组。
在一个情形中,每个BLB中的LUT共享同一个宽的输入信号组,但是执行诸如ADD和SUB之类的不同算法操作。通过对总线选择信号做出选择,可以选择输出不同的算法操作结果。
在另一个情形中,每个BLB中的LUT可以具有不同的输入信号并且输出不同的地址信号。通过选择总线选择信号,在对应的输出端可以出现不同的地址。
在一个实施方案中,进位链(carry chain)可以被添加到至少一部分LC的LUT以便在总线多路选择器中执行特定算法。
因为省去了LUT群,所以具有上述总线多路选择器的集成电路占用的面积较少。此外,因为采用了固定连接,所以总线多路选择器的延迟较短。以最左边的LUT为例,它经过3个多路选择器到达总线多路选择器最右边的输出端。
请注意,图6中LC的wlutin端被连接到各个相邻的LC的wlutout端。LC的其他输入和输出端将经由相同BLB或者各个BLB之间的开关盒(switchbox)而连接。图7示意了在基本逻辑块中的逻辑单元之间的互连示例。在BLB内,LC-0,LC-1,...,LC-14和LC-15具有各自的输入端ta0、ta1、ta2、ta3;以及输出端regout和combout。LC-0的输入端ta0-ta3和输出端regout和combout被连接到BLB的开关盒,LC-0可以从该开关盒被路由到相同BLB内的其他LC,或者经由BLB的输入端umi和输出端umo被路由到外部的LC。类似地,LC-1,...,LC-14和LC-15中的每一个都可以被路由到相同BLB内的其他LC,或者通过开关盒被路由到外部的LC。尽管在图7中未示出,输入端tsel也会被连接到开关盒,以便被路由到相同的BLB或外部BLB内的其他LC。
请注意,尽管图4-6中的集成电路被示出包括图2中所示的逻辑单元,但是它们也可以由图3中所示的逻辑单元形成。
图8示意了根据本发明的第三实施方案的逻辑单元。如图所示,LC 800具有4输入的LUT 802、或非门803、多路选择器806和D触发器808。LC 800包括四个输入端:ta0、ta1、ta2和ta3,它们也是LUT 802的输入端。LC包括两个输出端,即regout和combout。此外,LC还包括另一个输入端lutin和另一个输出端lutout。
除了这4个输入端ta0、ta1、ta2和ta3之外,LUT 802还有一个输出端,其被连接到输出端lutout。或非门803有两个数据输入端和一个输出端。多路选择器803的其中一个输入端被连接到LUT 802的输出端,而其他输入端被连接到输入端lutin。
多路选择器806有两个数据输入端,即输入端0和输入端1;输出端;和选择端。多路选择器806的输入端0被连接到或非门803的输出端,输入端1直接连接到LUT 802的输出端。选择端由静态配置比特驱动。第二多路选择器806的输出端被连接到触发器808的D输入端和输出端combout。
在操作中,多路选择器806的选择端可以被编程来选择多路选择器806的输入端1处的信号作为多路选择器806的输出,该信号是LUT 802的输出。然后,该信号将被传递到输出端combout或者经由触发器808传递到输出端regout。
在另一种途径中,LC600的输入端lutin的输入可能是来自邻近LC的LUT的输出信号。然后,该信号与LUT 802的输出信号进行或非操作,结果信号在输入端0被输入多路选择器806。通过配置选择端,或非信号可以直接在输出端combout输出,或者经由触发器808在输出端regout输出。
凭此,形成了一个伙伴逻辑(buddy logic),其中,或非门对LUT 802的输出和来自另一个LC的(一个或多个)LUT的输出执行或非操作。
图9示意了根据本发明的第四实施方案的逻辑单元。这个实施方案不同于图8之处在于或非门803被替换为多路选择器905,其选择端连接到LC的输入端tsel。
在操作中,在多路选择器906的输入端1出现的LUT 902的输出信号可以由多路选择器906进行选择,并且在输出端combout输出或者经由触发器908在输出端regout输出。
在另一种途径中,可能是来自邻近LC的LUT的输出信号在输入端lutin被输入LC 900。然后,该信号与LUT 902的输出在多路选择器905中加以选择。通过选择信号tsel,多路选择器905选择LUT 902的输出或者来自邻近LC的输出,以便输出给多路选择器906的输入端0。在多路选择器906中,如果适当地对其选择端进行编程,则来自多路选择器905的选择信号可以直接在输出端combout输出,或者经由触发器908在输出端regout输出。由此形成了一个伙伴逻辑,其中,多路选择器对LUT 902的输出和来自物理上邻近的LC中的另一个LUT的输出执行选择操作。
应当理解,替代于如上所述的NOR和多路选择器,也可以采用诸如AND、NAND、OR和XOR门之类的其他电路来形成伙伴逻辑。
而且,可以用多于2个的LUT来替代成对的LUT形成伙伴逻辑。例如,第一LUT、第二LUT和第三LUT的输出可以分别连接到诸如多路选择器、与门、与非门、或门、或非门和异或门之类的电路的输入端以形成伙伴逻辑。
伙伴逻辑可以被采用来执行某些逻辑操作。因为需要的单元数量较少,所以产生的集成电路占用的面积也较少。另外,由于速度较慢的LUT被替换为快得多的逻辑电路,所以性能也将得到增强。而且,与一个长链路相比较,伙伴逻辑只使用一个专用的LC到LC的链接,与上下最接近的LC耦合,从而使得两个伙伴LC的布局非常灵活。
图10示意了由图8所示的逻辑单元形成的伙伴逻辑。如同所示,存在三个LC,LC 1010、LC 1020和LC 1030。每个LC都具有与图8中的LC相同的结构。LC 1030的输出端lutout被连接到LC 1020的输入端lutin,而LC 1020的输出端lutout被连接到LC 1010的输入端lutin。
在操作中,LUT 1032的输出信号在LC 1030的输出端lutout被送入LC1020。在LC 1020中,或非门1023对LUT 1032的输出和来自LUT 1022的输出执行或非操作。通过配置多路选择器1026的选择信号,可以选择或非信号在输出端combout输出或者经由D触发器1028在输出端regout输出。
类似地,LUT 1022的输出和来自LUT 1012的输出通过或非门1013进行或非操作,并且可以被选择在LC 1010的输出端combout或者经由D触发器1018在输出端regout输出。
从而,伙伴逻辑可以被用来有效地执行许多普通的逻辑功能,比如解码器和编码器。
请注意,在图10中,多路选择器1016得出的或非信号只能在LC 1010中输出。即,LUT 1012和LUT 1022的输出只能进行或非操作并且在LC 1010中输出。图11和图12示意了不同的伙伴逻辑。
如图11中所示,存在三个LC,LC 1110、LC 1120和LC 1130,它们不同于图8的LC 810之处在于它们有两对lutout和lutin端和一个三输入多路选择器,而不是两输入多路选择器。两对lutout和lutin端被重新标记为ulutout和ulutin、dlutout和dlutin,因为上面的ulutout和ulutin端将被连接到上邻LC,而下面的dlutout和dlutin端将被连接到下邻的LC。
在LC 1110中,ulutout端被连接到LUT 1112的输出端,而dlutin端被连接到或非门1113的两个输入端中的一个。ulutin和dlutout端分别被连接到多路选择器1116的输入端2和或非门1113的输出端。
LC 1120和LC 1130具有与LC 1110相同的结构。
LC 1110的dlutin和dlutout端分别被连接到LC 1120的ulutout和ulutin端;LC 1120的dlutin和dlutout端分别被连接到LC 1130的ulutout和ulutin端。
因此,LC 1110的或非门1113对LUT 1112的输出和LUT 1122的输出执行或非操作,并且把或非信号传递到多路选择器1116的输入端0和多路选择器1126的输入端2上,因此,或非信号可以经由LC 1110和LC 1120输出。类似地,由LUT 1122的输出和LUT 1132的输出形成的或非信号可以经由LC 1120和LC 1130输出。
图12示意了一个不同的方法。在这种情况下,LC 1210、LC 1220和LC1230类似于LC 1110、1120和1130的情况。不同之处在于LC 1210、LC 1220和LC 1230中的每一个都具有一个三输入或非门和两输入多路选择器,而不是两输入或非门和三输入多路选择器。
在LC 1210中,输入端ulutin被连接到或非门1213的三个输入端中的一个,而LUT 1212的输出端被连接到dlutout端。
LC 1220和LC 1230具有与LC 1210相同的结构。
LC 1210的dlutin和dlutout端分别被连接到LC 1220的ulutout和ulutin端;LC 1220的dlutin和dlutout端分别被连接到LC 1230的ulutout和ulutin端。
在操作中,LC 1220的或非门1223接收LUT 1212的输出、LUT 1222的输出和LUT 1232的输出并且对它们进行或非操作。多路选择器1226可以选择或非信号以经由LC 1220的输出端combout或regout传递并输出。请注意,这个伙伴逻辑具有三个输入端,而不是如图10和图11中所示地具有两个输入端。
图13示意了由若干伙伴逻辑形成的32位解码器。如图13中所示,在一个BLB中存在9个LC,LC 1310、1320,...,和1390。LC 1310-1380中的每一个都与图8中的LC相同,并且在链路中互相连接以形成伙伴逻辑。例如,在LC 1310中,LC 1310中的LUT 1312的输出和LC 1320中的LUT 1322的输出通过或非门1313进行或非操作,并且或非信号在多路选择器1316的输入端0处输入。
类似地,在LC 1330中,LC 1330中的LUT 1332的输出和LC 1340中的LUT 1342的输出通过或非门1333进行或非操作,并且或非信号在多路选择器1336的输入端0处输入;在LC 1350中,LC 1350中的LUT 1352的输出和LC 1360中的LUT 1362的输出通过或非门1353进行或非操作,并且或非信号在多路选择器1356的输入端0处输入;在LC 1370中,LC 1370中的LUT1372的输出和LC 1380中的LUT 1382的输出通过或非门1373进行或非操作,并且或非信号被输入多路选择器1376的输入端0。多路选择器1316、1336、1356和1376的输出端经由各自LC的combout端分别被连接到LC 1390的LUT 1392的输入端ta3、ta2、ta1、ta0,LC 1390可以具有与LC 1310-1380相同的结构。在LC 1390中,LUT 1392的输出可以被选择由多路选择器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、ta1、ta2、ta3被输入LC 1310-1380。当32位输入信号等于特定数值时,32:1的解码器将在dout端或combout端输出′1′;否则其输出为0。
因为省去了一些LUT,所以上述的解码器运行更快并且占用面积更少。实际上,因为不可能只用具有LUT 4的一级LC来执行,所以它实现了两级LC的理论最小深度。而且,尽管该伙伴逻辑已经示出彼此连接,然而每一对伙伴LC都可以被安置在BLB内的任何地方。因此,这样形成的解码器由于LC之间的互换性而具有灵活的布局。
图14示意了用来在基本逻辑块内形成32位解码器的LC的布局模式。在图14中,用来形成图13中所示的32位解码器的4个LC对和单个LC分别被置于BLB的第一到第二、第六到第七、第九到第十、第十三到第十四、和第十六的LC位置。应当理解,由于伙伴逻辑的灵活布局要求,这些LC对和单个的LC可以任意地置于BLB中。将32位解码器置于BLB内的布局方法可达数千种。
图15示意了怎样用具有2选1的多路选择器的伙伴逻辑从两个LC建立LUT5。如图15中所示,LC 1510和LC 1520具有与图9中的LC 900相同的结构。
该LUT5具有五个输入端,din0、din1、din2、din3和din4。来自din[3:0]的信号在LC 1510和LC 1520各自的输入端ta0、ta1、ta2和ta3被送入LUT1512和LUT 1522;而din4被连接到LC 1510的输入端tsel。LC 1510的输入端lutin被连接到LC 1520的输出端lutout。多路选择器1516的选择端被编程将多路选择器1515的输出信号传递通过。
在操作中,多路选择器1515的功能是选择LUT 1512的输出与LUT 1522的输出。通过适当地对LUT 1512和LUT 1522进行编程,图15的逻辑电路可以只用两个逻辑单元来实现LUT5,其延迟稍大于LUT 4。它与从3个LUT 4中建立LUT5的传统方法进行比较更为有利,后者不仅具有二级LUT延迟还存在较慢的一般互连延迟。
图16示意了根据本发明的第五实施方案的逻辑单元。
图16中所示的LC 1600不同于图2中的LC 200之处在于,它还包括或非门1603,其具有两个输入端和一个输出端;输入端lutin和输出端lutout;而多路选择器1606有三个输入端,即输入端0、1和2,而不是两个输入端。或非门1603的其中一个输入端被连接到LUT 1602的输出端,而另一个输入端被连接到LC 1600的输入端lutin。或非门1603的输出端被连接到多路选择器1606的输入端2。多路选择器1606的输入端0被连接到LUT 1602的输出端,而多路选择器1606的输入端1被连接到多路选择器1604的输出端。
如上所述,具有多路选择器1604的多个LC可以组成一个WLUT链,而具有或非门1603的两个LC 1600可以组成一个伙伴逻辑。因此,可以通过多个LC 1600形成一种伙伴逻辑和WLUT链的组合。
图17示意了根据本发明的第六实施方案的逻辑单元。图17中的LC1700不同于图16的LC 1600之处主要在于它用多路选择器1707和多路选择器1704替换了多路选择器1604。此外,LC 1700被示出具有非门1701。
多路选择器1707有两个输入端,输入端0和输入端1;输出端;以及选择端。多路选择器1707的输入端0被连接到LC的输入端lutin,它们可以从另一个下方的LC的LUT接收输出信号。多路选择器1707的输入端1被连接到LC的输入端wlutin,它可以从左边的另一个LC的LUT接收输出。多路选择器1707选择两个输入信号,而选择端决定选择并传递两个输入信号中的哪一个信号。
多路选择器1704也有两个输入端,输入端0和输入端1;输出端;和选择端。多路选择器1704的输入端1被连接到多路选择器1707的输出端;多路选择器1704的输入端0被连接到LUT 1702的输出端;输入端tsel被连接到多路选择器1704的选择端,并且决定将选择并传递两个输入中的哪一个。多路选择器1704的输出端被连接到多路选择器1706的输入端1。
在操作中,多路选择器1707可以经由输入端wlutin接收左边的另一个LC的LUT的输出,并且将其传递至多路选择器1704,多路选择器1704也接收LUT 1702的输出。多路选择器1704可以选择它们中的一个并且将其传递到LC的输出端wlutout。因此,具有多路选择器1707和多路选择器1704的多个LC 1700可以组成一个WLUT链。
此外,多路选择器1707可以在其输入端0处接收另一个下方的LC的LUT的输出,并且将其传递到多路选择器1704,多路选择器1704也接收LUT1702的输出。因此,具有多路选择器1707和多路选择器1704的两个LC可以组成一个伙伴逻辑。
而且,具有或非门1703的两个LC组成另一个伙伴逻辑。
非门1701具有其连接到或非门1703的输出端的输入端,及其连接到多路选择器1706的输入3的输出端。所属领域技术人员将认识到,LC 1700可以通过这种布置执行四种算法,或非、或、与非、与。
图18示意了用来在基本逻辑块内形成32位解码器和WLUT链的伙伴LC的混合布局模式。如图18中所示,存在3个BLB,每一个都有16个LC。有垂直线图案的LC被用来形成WLUT链,而具有网格图案的LC被用来形成32位解码器。由于伙伴逻辑是在短′链路′中形成的,所以伙伴逻辑可以灵活地置于未被WLUT链占用的LC当中。因此,将实现灵活性很大的集成电路。
根据本发明形成的LC和集成电路不被限制于FPGA电路,而是可适合于嵌入了FPGA的任何集成电路,比如CSoC和PSoC。而且,那样形成的LC和集成电路可以与不同的互连网络相互连接。
虽然已经结合本发明的优选实施方案进行了描述,但是对于所属领域技术人员来说很明显,在不脱离本发明的前提下可以做出不同的改变和修改。
例如,尽管如上所述的LUT已经被示出有4个输入端,然而它们可以具有任何其他数量的输入端。另外,D触发器可以被替换为任何另一种触发器。
因此,其目的是在所附权利要求中覆盖所有这类属于本发明真实精神和范围的改变和修改,本发明的真实精神和范围由所附权利要求的界限来定义。
Claims (10)
1.一种集成电路,具有至少一个第一逻辑单元和一个第二逻辑单元,
第一逻辑单元(800,900)包括:具有LUT输出端的LUT(802,902),具有第一电路输入端和第二电路输入端的电路(803,905),和第一输入端(lutin);其中,LUT的LUT输出端被连接到第一电路输入端,而且第一输入端被连接到第二电路输入端;
第二逻辑单元(800,900)包括:LUT(802,902),其具有LUT输出端和第一输出端(lutout),第一输出端被连接到LUT输出端;
第二逻辑单元的第一输出端被连接到第一逻辑单元的第一输入端,由此形成了一个伙伴逻辑。
2.根据权利要求1的集成电路,其中,第一逻辑单元(1120)具有第一输出端(dlutout),其被连接到第一逻辑单元的电路(1123)的电路输出端;第二逻辑单元(1130)具有第一输入端(ulutin),其被连接到第一逻辑单元的第一输出端以便将第一逻辑单元的电路输出送入第二逻辑单元。
3.根据权利要求1的集成电路,其中,所述集成电路包括第三逻辑单元(1210),所述第三逻辑单元包括第一输出端(dlutout)和具有LUT输出端的LUT;在第三逻辑单元内,所述LUT输出端被连接到第一输出端;第一逻辑单元(1220)具有第二输入端(ulutin),电路具有第三电路输入端,其被连接到第一逻辑单元的第二输入端;第一逻辑单元的第二输入端被连接到第三逻辑单元的第一输出端。
4.根据权利要求1的集成电路,其中,集成电路包括FPGA。
5.根据权利要求1的集成电路,其中,所述电路从包括与门、与非门、或门、或非门和异或门的群中选择。
6.根据权利要求5的集成电路,其中,第一逻辑单元包括非门,其输入端被连接到电路的输出端。
7.根据权利要求1的集成电路,其中,所述电路包括一个或多个多路选择器。
8.根据权利要求7的集成电路,其中,所述第一逻辑单元具有第二输入端和多个第三输入端,它们分别被连接到第一逻辑单元的LUT的输入端;所述第二逻辑单元具有多个第一输入端,它们分别被连接到第二逻辑单元的LUT的输入端;第一逻辑单元的多个第三输入端和多个第一输入端分别互相耦合;所述一个或多个多路选择器具有选择端,其被连接到第一逻辑单元的第二输入端;由此形成了一个宽的LUT。
9.根据权利要求1的集成电路,其中,第一逻辑单元包括多路选择器(803),多路选择器(803)具有第一多路选择器输入端、第二多路选择器输入端、多路选择器选择端和多路选择器输出端;多路选择器的第一多路选择器输入端被连接到电路的电路输出端,多路选择器的第二多路选择器输入端被连接到LUT的输出端,第二多路选择器的输出端被耦合到第一逻辑单元的第二输出端(regout,combout);其中,多路选择器选择端由配置存储单元驱动,配置存储单元可以被编程来让第二多路选择器传递在其第一或第二多路选择器输入端处的信号。
10.根据权利要求9的集成电路,其中,第一逻辑单元包括具有触发器输入端和触发器输出端的触发器,在第一逻辑单元内,通过把触发器的触发器输入端连接到电路的输出端并且把触发器的触发器输出端连接到第二输出端,实现了逻辑单元的第二输出端与第一电路的电路输出端的所述耦合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210133410.4A CN102647181B (zh) | 2008-01-30 | 2008-01-30 | 一种具有改进的逻辑单元的集成电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210133410.4A CN102647181B (zh) | 2008-01-30 | 2008-01-30 | 一种具有改进的逻辑单元的集成电路 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008800000822A Division CN101682329B (zh) | 2008-01-30 | 2008-01-30 | 一种具有改进的逻辑单元的集成电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102647181A true CN102647181A (zh) | 2012-08-22 |
CN102647181B CN102647181B (zh) | 2014-12-10 |
Family
ID=46659794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210133410.4A Expired - Fee Related CN102647181B (zh) | 2008-01-30 | 2008-01-30 | 一种具有改进的逻辑单元的集成电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102647181B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105610428A (zh) * | 2015-12-24 | 2016-05-25 | 中国科学院电子学研究所 | 一种基于与或非结构的可编程逻辑单元 |
CN105610427A (zh) * | 2015-12-24 | 2016-05-25 | 中国科学院电子学研究所 | 一种基于与或非结构的可编程逻辑单元 |
CN105610429A (zh) * | 2015-12-24 | 2016-05-25 | 中国科学院电子学研究所 | 一种基于与或非结构的可编程逻辑单元 |
CN109298322A (zh) * | 2018-09-27 | 2019-02-01 | 西安微电子技术研究所 | 一种动态变链长扫描结构及其方法和边界扫描单元 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100549712C (zh) * | 2007-02-14 | 2009-10-14 | 北京时代民芯科技有限公司 | 五次配置完成fpga可配置逻辑块的测试方法 |
-
2008
- 2008-01-30 CN CN201210133410.4A patent/CN102647181B/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105610428A (zh) * | 2015-12-24 | 2016-05-25 | 中国科学院电子学研究所 | 一种基于与或非结构的可编程逻辑单元 |
CN105610427A (zh) * | 2015-12-24 | 2016-05-25 | 中国科学院电子学研究所 | 一种基于与或非结构的可编程逻辑单元 |
CN105610429A (zh) * | 2015-12-24 | 2016-05-25 | 中国科学院电子学研究所 | 一种基于与或非结构的可编程逻辑单元 |
CN105610429B (zh) * | 2015-12-24 | 2018-09-11 | 中国科学院电子学研究所 | 一种基于与或非结构的可编程逻辑单元 |
CN105610427B (zh) * | 2015-12-24 | 2018-09-11 | 中国科学院电子学研究所 | 一种基于与或非结构的可编程逻辑单元 |
CN105610428B (zh) * | 2015-12-24 | 2018-09-11 | 中国科学院电子学研究所 | 一种基于与或非结构的可编程逻辑单元 |
CN109298322A (zh) * | 2018-09-27 | 2019-02-01 | 西安微电子技术研究所 | 一种动态变链长扫描结构及其方法和边界扫描单元 |
Also Published As
Publication number | Publication date |
---|---|
CN102647181B (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101682329B (zh) | 一种具有改进的逻辑单元的集成电路 | |
KR100246903B1 (ko) | 프로그램가능 논리셀과 그 배열 | |
US5689195A (en) | Programmable logic array integrated circuit devices | |
US7944236B2 (en) | High-bandwidth interconnect network for an integrated circuit | |
US10003553B2 (en) | Optimization of multi-stage hierarchical networks for practical routing applications | |
CN103762974B (zh) | 多功能可配置的六输入查找表结构 | |
CN102647181B (zh) | 一种具有改进的逻辑单元的集成电路 | |
US7193436B2 (en) | Fast processing path using field programmable gate array logic units | |
CN101681255A (zh) | 通用数字块互连与通道布线 | |
US20150229589A1 (en) | Asynchronous pipelined interconnect architecture with fanout support | |
CN103259524A (zh) | 一种采用快速级连结构的集成电路 | |
US7719311B1 (en) | Integrated circuit with improved logic cells | |
EP1968193B1 (en) | Utilization of unused IO block for core logic functions | |
CN105471422B (zh) | 集成辅助逻辑运算单元的可编程逻辑模块 | |
US5869982A (en) | Programmable I/O cell with data conversion capability | |
CN100590976C (zh) | 可配置逻辑模块结构 | |
CN101627541B (zh) | 可配置电路以及配置方法 | |
WO2011100139A1 (en) | Implementation of switches in a communication network | |
CN100464413C (zh) | 实现芯片管脚功能互换的电路及芯片 | |
CN116069721A (zh) | 一种可编程逻辑单元结构 | |
US20020061015A1 (en) | Matrix switch circuit | |
GB2333874A (en) | Programmable logic array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141210 Termination date: 20170130 |