用于可编程逻辑电路的结构和互连方案的制作方法

文档序号:7531972阅读:306来源:国知局
专利名称:用于可编程逻辑电路的结构和互连方案的制作方法
本申请是转让给本发明受让人的、申请日为1993年8月3日、申请号为NO.08/101,197的专利申请的后续申请(CIP)。
本发明涉及到可编程逻辑电路领域,特别是,本发明涉及到一种与可编程逻辑电路相关的结构和互连方案。
当刚刚开始引入集成电路(IC)时,其价格极为昂贵,且其性能亦极为有限。半导体技术的迅速发展使得在增加IC芯片性能的同时,极大地减少了其成本。但是,用于设计、布局和制造专用的、用户定制的IC的处理仍需要相当大的花费,对于那些只须制造少量用户所设计的IC的场合特别是如此。另外,周转时间(即从最初设计到最终产品所需的时间)通常是相当长的,特别是,对于复杂电路设计来讲更是如此。对于电子和计算机产品而言,从开始设计到商品化,其要求是非常严格的。另外,对于用户设计的IC而言,有效改变其最初设计是非常困难的。它需要花费很多的时间、人力和物力来进行任意一个所需的改变。
从克服与用户IC相关的缺点的角度来看,在很多场合下,现场可编程门阵列(FPGA)提供了很吸引人的解决办法。简言之,所述的FPGA是一种标准的、高密度的、流行的IC,它可以由用户进行编程以获得所需之结构。电路设计者首先规定所需的逻辑功能,然后对FPGA进行编程,以对输入信号进行处理。借此,以一种快速和有效的方式对所述的FPGA进行设计、鉴定和修改。在逻辑密度要求和产量的基础上,根据成本和到商品化所需时间,FPGA是一个优良的替代品。
一个典型的FPGA通常由环绕可配置逻辑块的一个内矩阵的多个I/O块的一个外环组成。驻留于一个FPGA四周的所述I/O部件是用户可编程的,从而,使得每一块可以被单独编程,以作为一个输入端或输出端和也能够被作为三态部件。每个逻辑块通常包括一个可编程组合逻辑和多个存储寄存器。所述组合逻辑被用于根据它的输入变化执行布尔函数。所述寄存器通常是由一个逻辑块输入直接进行加载的,或是由一个组合逻辑进行加载的。
互连资源占据着由多个逻辑块形成的一个矩阵的行和列之间的通道以及所述逻辑块和所述I/O块之间的通道。这些互连资源提供了一个灵活性以控制在所述芯片上两个指定点之间的互连。通常,金属线的网络在所述逻辑块的行和列中水平和垂直地走向。多个可编程开关把所述多个逻辑块和I/O块的输入和输出连接到这些金属线上。在行和列交点处的交点开关和转换开关被用于将信号从一条线转换到另一条线上。通常,多条很长的线被用于贯穿所述芯片的整个长度和/或宽度。
所述多个I/O块、多个逻辑块的功能和它们的相应互连都可以被编程。通常,这些功能是由存储在芯片上一个存储器内的配置程序加以控制的。所述配置程序是在加电时根据一个命令或作为初始化的一部分由一个微处理器进行编程从一个外部存储器自动加载的。
在60年代,Minnick对FPGA的概念做了一个概括,他在下述文献中描述了作为可配置器件的单元和单元阵列的概念“单元线性输入逻辑,最后的报告”,SRI Proiect 4122 Contract AF 19(628)-498,Stanford Research Institute,Menlo Park,California,AFCRL 64-6DDC NO AD 433802(February 1964),作者Minnick,R.C和Short,R.A;“Cobweb单元阵列”,Proceedings AFIPS Fall JointComputer Coference,Vol 27。Partlpp 327-341(1965),作者Minnick R.C.;“单元逻辑,最后的报告”,SRI Project 5087 Contract AF 19(628)-4233,Stanfort Research Institute,Menlo Park,California AFCRL 66-613,(April 1966),作者Minnick,R.C等和“微单元研究的报告”,Journal of the Association for Computing Machinery,Vol.14,No2,pp.203-241(April 1967),作者Minnick,R.C。除了以启动器件间的相互连接的基于存储器(例如,基于RAM的基于熔丝的或基于抗熔丝的)的方式以外,Minnick还讨论了在相邻单元之间的直接连接和使用总线作为另一种路径的技术。Spandorfer(Stanford Research InstituteMenlo Park,Calif.,)在Constract AF 19(628)2907,AFCRL 64-66,DDCNo.AD433802(November 1965)发表的文章“在一个集成电路的阵列上逻辑功能的合成”讨论了使用补偿MOS双向门作为在两个可以通过存储器装置和相邻单元互连被进行编程的互连线之间进行转换的装置。Wahlstrom,S.E在Electronics,Vol 40 No.25,11,Pp.90-95(December 1967)发表的文章“可编程逻辑阵列-极其廉价”中讨论了以具有在相邻单元之间进行直接连接和数据总线网络的相同单元的两维阵列的基于RAM的可再配置逻辑阵列。
Shoup,(Carnegie-Mellon University,Pittsburgh.PA(March 1970))的博士论文“可编程单元逻辑阵列”中讨论了可编程单元逻辑阵列、重申了很多与Minnick相同的概念和专业术语,并概括地重述了Wahlstrom的阵列。根据Shoup的观点,相邻连接的概念从简单的2-输入、1-输出的最邻近连接扩展到了8-邻近的2路连接。Shoup还进一步讨论了使用总线作为互连结构的一部分去改善一个阵列的功率和灵活性。对于常规的邻近连接来讲,可以使用总线在特别长的距离上或在不方便的方向下传送信号。这在从阵列外部向其内部单元传送输入和输出的过程中是特别有用的。
美国专利NO 4,020,469讨论了一种可以进行编程、测试和自修理的可编程逻辑阵列。美国专利NO 4,870,302引入了一种不使用邻近直接互连的粗粒(coarsegrain)结构,其中所有的编程连接是通过在一通道结构中使用三组不同的总线而完成的。所述粗粒单元(称之为可配置逻辑块或CLB)包括所述CLB内部基于RAM的以逻辑表查询组合逻辑和触发器,在这种场合下,用户所规定的逻辑必须被映射到在所述CLB内部可以得到的功能上去。美国专利NO 4,935,734引入了一种在每个单元内部被规定为“与非”(NAND)、“或非”(NOR)或类似简单的逻辑功能的简单的逻辑功能单元。互连方案利用了直接邻近和定向总线连接。美国专利NO 4,700,187和4,918,440规定了一个更加复杂的逻辑功能单元,其中,可以得到“异或”和“与”功能和寄存器位(比特),并可以在所述单元之内进行选择。较佳的连接方案是通过直接邻近连接。使用双向总线进行连接也被包括在内。
当前的FPGA还有一些缺点。这些问题是由于使用了在制造厂家提供的芯片上给定了大量晶体管的低级电路所引起的。电路的使用受到三种因素的影响。第一种是在所述晶体管或细粒单元级用户很容易使用的基本逻辑元件的功能和灵活性。第二种是简易性,就是要利用所述第一种逻辑元件在电路区域受到最小浪费的情况下形成有意义的宏逻辑功能。最后一个因素就是这些宏逻辑功能的互连以便有效的执行芯片级的设计。上述的所述细粒单元结构利用基本逻辑元件向设计者提供了容易使用的和灵活的逻辑功能。
但是,对于紧凑和复杂的宏功能和芯片级路径而言,把来自一个单元输出的大量信号连接到其他单元输入所需的互连资源可能被很快地用尽,并且,就所使用的硅面积来讲,增加这些资源可能是非常昂贵的。其结果是,在细粒结构设计中,由于不可访问性,大部分单元或是被保留未被使用,或是所述单元被用做互连导线而不是用做逻辑。除了较低的逻辑应用以外,这极大的增加了路径延迟,或者,必须大量的增加路径资源,从而导致电路尺寸的极大地增加。与扩展路径总线相耦合的所述粗粒结构允许对把一个CLB的信号输出连接到其它多个CLB的输入进行有效的改进。在所述CLB互连级中,利用率是很高的。但是,困难在于划分和映射复杂的逻辑功能以便将其装入所述的CLB。如果所述CLB内部的部分逻辑被保留未被使用,那么,所述CLB内部的利用率(每单元面积使用的门的有效数量)可能很低。
使用现有技术FPGA的另一个问题是由于通常每个逻辑块都被提供有固定数量的输入端和固定数量的输出端这样一个事实而引起的。如果出于偶然,使得一个特定逻辑块的所有输出端都被占用了,那么,这个逻辑块的其余部分也就变得没用了。
因此,在现有技术的FPGA中就需要一种新的结构,这种结构在使小片尺寸最小化的同时,可以最大限度的使用一个FPGA。这种新的结构应当可以在最低逻辑元件级根据用户提出的功能和灵活性提供灵活性,在用户很容易利用基本逻辑块形成复杂逻辑功能的宏级提供每个单元面积的高密度,并最终在芯片级提供具有用于信号连接宏和基本逻辑元件的分级且均匀分布的路径网络的互连能力的高百分比。另外,新的结构还应当能够向用户提供具有一定数量可选择和可编程的用于单个逻辑块的输入和输出端的灵活性,和提供一个可以调节FPGA尺寸范围的可变规模结构。
本发明涉及到用于可编程逻辑电路,诸如现场可编程门阵列(FPGA)的逻辑结构和连接方案。这些可编程逻辑电路包括一定数量的、在输入信号上执行数字函数的单元。根据用户的特别设计,某些单元被编程互连到一个用以实现所需逻辑功能的特定结构上。
在当前的较佳实施例中,4个逻辑单元(2个输入、1个输出的逻辑门和1个D触发器)形成了一个逻辑群(即一个2×2单元阵列),和4组群形成了一个逻辑块(即一个4×4单元阵列)。在每个群内,具有一组被称之为内连矩阵(I-矩阵)的5个内连线,每一个与4个门的每一个的输出和可连接到其它单元的输入的D触发器相连。在每个逻辑块内,每个群内的I-矩阵可以通过一个传递门(passgate)扩展到一个相邻的群,以形成所述逻辑块内的连接(从而扩展互连范围)。在每个逻辑块内部,具有被称之为块连接器(BC)的相关访问线组。所述块连接器提供对那些相同逻辑块各个单元的访问及其间的可连接性。换言之,一个逻辑块的多个单元中每一个单元的每一个输入和输出端都可以被连接到与那个逻辑块相应的一组块连接器上。适当地使用I-矩阵和相同逻辑块内的块连接器,一组信号可以被进行内部连接而不必使用该逻辑块以外的任何资源。一定数量的可编程开关被用于控制所述块连接器中的哪一些将被一起连接到所述逻辑块内多个单元的一组输入端和/或输出端上,以用于对当前逻辑块外部的信号进行外部访问连接。换言之,一个将被进行当前逻辑块以外的外部连接的逻辑块内的输入和/或输出端子被通过当前逻辑块内的块连接器进行访问或连接。
为了在各逻辑块之间传送信号,均匀分布的多级结构(MLA)路径网络被用于提供在各个块连接器之间的可连接性。利用可编程开关去控制第一级MLA路径网络线中的哪一些将被连接到一起。一些附加的可编程开关被用于控制所述块连接器中的哪一些将被连接到规定的第一级MLA路径线上。例如,多个开关可以被编程,以允许属于一个逻辑块的源单元被连接到属于不同逻辑块的目标单元。这是通过根据所述的距离,把所述源单元经过一个或多个块连接器连接到第一级MLA、其它级MLA、并向下通过递降级MLA级返回到所述第一级MLA、最后通过目标单元的块连接器而实现的。借此,块连接器和第一级MLA路径网络提供了一个8×8单元阵列的可互连性,称为一个块群。
在本发明中,可以利用MLA路径网络附加级执行较大单元阵列的互连。例如,可以利用第二级MAL路径网络线实现被称为块区段的16×16单元阵列的互连,以提供各第一级MLA路径线之间的互连性,借此,以进行不同块群之间的连接。每级MLA具有相应数量的开关,用于提供那一级路径网络的可编程互连。附加开关转换网络被用于提供各级MLA之间的可连接性。
在一个实施例中,多个开关被用于提供两个不同组块连接器之间的可连接性。而且,可以包括开关以提供在一个MLA特定级的不同组MLA路径线之间的可连接性。这增加了传送的灵活性。
在本发明中,所有的MLA路径网络线都是双向的。所述的开关包括可编程双向传递门。对于增加数量的级,可能需要多个驱动器,以提供用于驱动所述路径线、传递门和相关负载等的必须的转换。在一个实施例中,所述开关被用于提供各组块连接器之间的可编程的可连接性。可以利用多个附加开关去提供在第一级MLA各组之间的可编程的可连接性。对于较高级的MLA可以重复这个方案。
本发明借助于举例加以说明,但不受这些例子的限制。在附图中,相同的标号表示类似的元件。其中

图1的方框图示出了可以实践本发明的现场可编程门阵列逻辑;图2A示出了个别单元的一个例子;图2B示出了个别单元的另一个例子;图3A示出了一个逻辑群;图3B示出了一个逻辑群的I-矩阵内部连接向一个邻近逻辑群的扩展;图4A示出了一个具有垂直块连接器的逻辑群的例子;图4B示出了一个具有水平块连接器的逻辑群的例子;图5A示出了一个到与一个逻辑块和级1MLA转向点(turnpoint)相关的级1MLA转换网络的8个块连接器;图5B示出了一个级1MLA转向点;图5C示出了一个转换网络;图6示出了用于一个块群的路径网络;图7A示出了一个块区段的方框图;图7B示出了级1到级2的MLA路径转换网络;图8A示出了一个区段群;图8B示出了级2到级3的MLA路径转换网络;图9示出了一个用于在逻辑块和所述MLA级之间提供可连接性的分级的多级路径网络的实施例;图10示出了另一个用于在逻辑块和所述MLA级之间提供可连接性的分级的多级路径网络的实施例;图11的方框图示出了所述分级路径网络的一个实施例,其中,两组块连接器对多个相同的MLA线进行访问;图12的方框图示出了部分多级路径网络,该网络包含多个到具有MLA插头的MLA-3级的块连接器以用于较高级的路径网络;图13示出了一个MLA-1转向网络;图14示出了一个MLA-2转向网络;图15示出了一个MLA-3转向网络;图16示出了一个用于MLA-4层的路径网络以及得以使所述MLA-4线被访问的一个机构的实施例;图17示出了三个不同开关的实施例;图18示出了一个用于MLA-5层的路径网络以及得以使所述MLA-5线被访问的一个机构的实施例。
下面,描述用于可编程逻辑电路的结构和互连方案。在下面的描述中,为了解释的目的,作出了一些诸如组合逻辑、单元结构、单元数量等的详细规定,以便提供对本发明的完整理解。但是,对于本专业技术领域以内的技术人员来讲很明显,没有这些详细规定照样可以实施本发明。在其它的一些例子中,以方框图的形式示出了一些极为公知的结构和器件,以避免不必要地使本发明变得难以理解。还应当注意,本发明与一些包括(但不限于)静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、熔丝,抗熔丝,可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、FLASH、和铁电工艺在内的各种工艺有关。
参看图1,标号100表示可以实现本发明的一个现场可编程门阵列逻辑的方框图。I/O逻辑方框102、103、111和112提供在所述FPGA的外部插件端子和内部用户逻辑之间直接的或通过所述I/O到核心的接口104、105、113和114的多个接口。四个接口方框104、105、113和114提供核心106和I/O逻辑102、103、111和112之间的去耦合。核心106包括通过I-矩阵101内连和通过MLA路径网络108互连的一定数量的群107。
控制/编程逻辑109被用于控制对位线和字线进行编程的所有的位(比特)。对于抗熔丝或熔丝技术来讲,施加高电压/电流以烧熔或连接一个熔丝。对于EEPROM、FLASH或铁电技术,在编程周期之前有一个擦除周期,编程周期用于对存储器位(比特)的逻辑状态进行编程。为使失真最小化,使用了单独的时钟/复位逻辑,以在组的基础上提供时钟和复位线。
在当前的较佳实施例中,所述群107中的每一个都包含有被称之为一个逻辑群的4个单元的2×2分级结构。图2A和2B示出了各单元200和250的例子。单元200根据两个输入信号(A和B)执行多种逻辑功能,并提供一个输出信号X。在当前的较佳实施例中,单元200包括一个XOR门201、一个两输入NAND门202和一个两输入NOR门203。但是应当注意,在其它实施例中,单元200还可以包括各种其它类型的门和/或它们的组合。单元250包括与D触发器260相耦合的单元200。单元200的输出X可以被编程,以通过激活开关218直接连接到D触发器门204的数据输入端D。所述数据输入端D可以被访问,以作为组合单元250的第三输入。
两个输入信号A和B中的每一个和D触发器的D输入可以根据开关206-211的状态被反向或不反向。激活开关206、208和210使得信号A、B和D被驱动器212-214以非反向形式驱动到门201-204。激活开关207、209和211使输入信号A、B和D在传送给门201-204之前被反相器215-217反相。这六个开关可以可以根据用户的编程被单独的接通和关断。
注意,XOR门201、NAND门202和NOR门203也可以通过把输出信号传送给下一级被用于执行XNOR、AND和OR,借此,如上所述地使信号被反相。
三个开关219-221被分别耦合到三个门201-203的输出端。这三个开关再次被用户编程。借此,用户能够规定门201-203输出端的哪一个输出将被作为单元200的输出X传送给驱动器224。
前述开关206-211、218-221由一个双向编程控制的传递门组成。根据控制信号的状态,这些开关或被导通(即在信号线上传送信号)或被截止(即不在信号线上传送信号)。在下面部分中描述的开关类似地由编程控制的传递门组成。
现在参看图3A,该图示出了一个逻辑群107。在当前的较佳实施例中,所述逻辑群107包括4个单元301-304、一个D触发器305、25个开关306-330和5根内连线331-335。内连线331-335和开关306-330形成了所述的I-矩阵。该I-矩阵提供了4个单元301-304中每一个的输出X以及D触发器305的输出X到其它3个单元和D触发器中每一个的至少一个输入端的互连性。例如,单元303的输出X可以通过启动开关306和307连接到单元302的输入端A。同样的,单元301的输出X可以通过启动开关306和310连接到单元303的输入端B。单元301的输出X可以通过启动开关306和308连接到单元304的输入端A。单元301的输出X可以通过启动开关306和309连接到D触发器305的输入端D。
类似的,来自单元302的输出X可以通过启动开关311和312连接到单元301的输入A。来自单元302的输出X可以通过启动开关311和315连接到单元303的输入端A。来自单元302的输出X可以通过启动开关311和313连接到单元304的输入端B。单元302的输出X可以通过启动开关311和314连接到D触发器305的输入端D。
类似的,来自单元303的输出X可以通过启动开关326和327连接到单元301的输入端B。来自单元303的输出X可以通过启动开关326和328连接到单元302的输入端A。来自单元303的输出X可以通过启动开关326和329连接到单元304的输入端B。单元303的输出X可以通过启动开关326和330连接到D触发器单元305的输入端D。
就单元304而言,来自单元304的输出X通过启动开关316和317连接到单元301的输入端B。来自单元304的输出X可以通过启动开关316和318连接到单元302的输入端B。来自单元304的输出X可以通过启动开关316和319连接到单元303的输入端A。来自单元304的输出X如图2A所示可以通过启动开关218连接到D触发器单元305的输入端D。
就单元305而言,它的输出可以通过启动开关320和321连接到单元301的A输入端;通过启动开关320和322连接到单元302的B输入端;通过启动开关320和325连接到单元303的B输入端;通过启动开关320和323连接到单元304的A输入端;和通过启动开关320和324连接到单元305自身的D输入端。
可以看到,单元301-304和D触发器305的每一个输出都可以被连接到所述群内部它的相邻单元和/或触发器中每一个的输入端上。
在本发明当前的较佳实施例中,每一个逻辑群都可以通过从每个逻辑块内部的相邻群扩展I-矩阵的传递门开关连接到每个逻辑块内部的所有的其它逻辑群上。图3B示出了逻辑群107的单元301-304和D触发器305的I-矩阵内连线331-335经过传递门开关336-355向同一个逻辑块内的相邻逻辑群107的扩展。
在本发明当前的较佳实施例中,每个逻辑块都可以被连接到所述FPGA的所有其它逻辑块上。这是通过实现一个具有多层互连的结构而实现的。重要的一点是要注意,这个多层路径结构是一个概念分级,而不是一个工艺或技术分级,因此,利用目前的硅处理技术是很容易实现的。互连的最底层被称之为“块连接器”。一组块连接器提供相关逻辑块(该块由4个逻辑群或16个单元组成)内部信号的访问和互连。借此,通过使用扩展的I矩阵和/或块连接器可以将同一个逻辑块内不同组的逻辑群连接到那个组内的其它逻辑群的任意一个上。再次将可编程双向传递门用做开关以向用户提供灵活性。
连接的下一级被称之为“多级结构(MLA)的级1”路径网络。MLA路径网络的级1提供多组块连接器之间的互连。可编程传递门开关被用于向用户提供选择哪一组块连接器将被连接的能力。然后,来自一个逻辑块组的第一逻辑块可以被连接到属于同一组的第二逻辑块上。适当的开关被启动,以把所述的第一逻辑块的块连接器连接到MLA路径网络级1的路径线上。MLA路径网络的级1的适当开关被启动,以提供到第二逻辑块的块连接器到MLA路径网络的级1的路径线的连接。适当的开关被启动,以连接被连接到所述第一和第二逻辑块的块连接器上的MLA路径网络级1的路径线。另外,用户还具有附加的灵活性,以对任意给定逻辑块内部的各个开关进行编程,从而,执行任意逻辑块多个单元中每一个之间的所希望的内连。
连接的下一级被称之为“多级结构(MLA)的级2”路径网络。MLA级2提供到各MLA级1的互连以执行部件群的访问和连接。用户对双向传递门开关再一次进行编程,以执行所希望的连接。通过实现MLA路径网络的级2,可以在较大量的逻辑块之间实现可编程的互连。
可以实现MLA路径网络的附加级,以提供用于逻辑块、部件群和块区段等的增加的个数和组的可编程的互连。基本上,本发明采用三维途径实现路径。信号在逻辑块的内连之间进行传送。然后,可以通过块连接器对这些信号进行访问并根据所述块连接器的编程连接进行传送。如果需要,信号可以被“升高”到MLA的级1,经过MLA路径网络的级1进行传送,“下降(de-elevated)”到适当的块连接器,然后传送给目标逻辑块。
如果需要MLA路径网络的级2,某些信号将第二次从级1MLA路径网络线升高到或直接升高到MLA路径网络的级2,以传送到不同组的级2MLA路径网络线,和从级2MLA路径网络线“下降”到级1MLA路径网络线。在此基础上,所述信号被第二次“下降”,以将信号从MLA的级1传送给目标逻辑块的适当的块连接器。另外,可以直接实现所述的“升高”而不必经过MLA路径网络的级1。根据FPGA的尺寸和密度,在一个必须的基础上,对级3,4,5等的MLA执行这个同样的方法。使用上面所讨论的方法可以实现个别的级nMLA以实现具有给定单元阵列计数的FPGA。
图4A示出了在一个逻辑块内一个逻辑群和相关垂直块连接器的例子。在当前的较佳实施例中,一个逻辑群内的每一个单元的输入都可以从两个垂直块连接器所获得,并且,一个逻辑群内所述单元的每个输出都可以为两个垂直块连接器所获得。例如,单元301的输入A可以通过开关467、462分别为垂直块连接器451(BC-V11)和453(BC-V21)所获得。单元301的输入B通过开关466、468分别为垂直块连接器452(BC-V12)和454(BC-V22)所获得,单元301的输出X通过开关460、459分别为垂直块连接器455(BC-V31)和458(BC-V42)所获得。单元302的输入A通过开关463、464分别为垂直块连接器453(BC-V21)和455(BC-V31)所获得,单元302的输入B通过开关469、470分别为垂直块连接器454(BC-V22)和456(BC-V32)所获得,单元302的输出通过开关461、465分别传送给垂直块连接器452(BC-V12)和457(BC-V41)。单元303的输入A通过开关485、476分别为垂直块连接器451(BC-V11)和453(BC-V21)所获得,单元303的输入B通过开关480、476分别为垂直块连接器452(BC-V12)和454(BC-V22)所获得,单元303的输出X通过开关472、471分别传送给垂直块连接器455(BC-V31)和458(BC-V24)。单元304的输入A通过开关477、478分别为垂直块连接器453(BC-V21)和455(BC-V31)所获得,单元304的输入B通过开关482、484分别为垂直块连接器454(BC-V22)和456(BC-V32)所获得,单元304的输出X通过开关475、474分别被传送给垂直块连接器452(BC-V12)和457(BC-V41)。D触发器单元305的输入通过开关473、479分别为垂直块连接器454(BC-V22)和455(BC-V31)所获得,单元305的输出X通过开关483、486分别传送给垂直块连接器452(BC-V12)和457(BC-V41)。
图4B利用类似的方式示出了与图4A所示水平块连接器和逻辑群集器相应的可能连接。单元301的输入A通过开关409、413分别为水平块连接器402(BC-H12)和404(BC-H22)所获得,单元301的输入B通过开关415、416分别为水平块连接器401(BC-H11)和403(BC-H21)所获得,单元301的输出X通过开关421、428分别传送给水平块连接器405(BC-H31)和408(BC-H42)。单元302的输入A通过开关411、414分别为水平块连接器402(BC-H12)和404(BC-H22)所获得,单元302的输入B通过开关433、417分别为水平块连接器401(BC-H11)和403(BC-H21)所获得,单元302的输出X通过开关418、424分别传送给水平块连接器405(BC-H31)和408(BC-H42)。单元303的输入A通过开关419、426分别为水平块连接器404(BC-H22)和406(BC-H32)所获得,单元303的输入B通过开关420、425分别为水平块连接器403(BC-H21)和405(BC-H31)所获得,单元303的输出X通过开关410、427分别传送给水平块连接器402(BC-H12)和407(BC-H41)。单元304的输入A通过开关422、430分别为水平块连接器404(BC-H22)和406(BC-H32)所获得,单元304的输入B通过开关423、429分别为水平块连接器403(BC-H21)和405(BC-H31)所获得,单元304的输出X通过开关412、434分别传送给水平块连接器402(BC-H12)和407(BC-H41)。D触发器单元305的输入通过开关436、431分别为水平块连接器403(BC-H21)和406(BC-H32)所获得,单元305的输出X通过开关432、435分别传送给水平块连接器401(BC-H11)和408(BC-H42)。
图4A和4B示出了在当前的较佳实施例中对一个逻辑块内左上角(NW)的逻辑群所采用的垂直和水平块连接器的访问方法。对于垂直块连接器,左下角(SW)的群具有与NW群相同的访问方法。对于垂直块连接器,除了垂直块连接器的访问顺序被移动以外,右上角(NE)群的访问方法与NW群的访问方法相类似。垂直块连接器451-458可以看成是被链锁在一起以作为一个柱体(451、452、…、458)。任何移动,例如移动4个,都将形成一个新的顺序(455、456、457、458、451、452、453、454))。如果在如图4A所示的NW群中,不是利用单元301以对垂直块连接器451和453进行访问开始的,那么,NE群中的单元301可以为VBC 455和457所访问。被“移动的数量”为4。右下角(SE)群到所述VBC的访问方法与NE群的方法相同。
类似的,对NW群的水平块连接器的访问方法与对NE群的访问方法相同,并且,SW群的同于SE群的,同时,和对NW群的访问相比较,对SW群集器的水平块连接器的访问被移动了4个。
在当前的较佳实施例中,每个逻辑块(即4个群,或一个4×4单元阵列)使用16个块连接器。附加的级1 MLA路径网络允许用于一个块群(一个8×8单元阵列)的互连。增加级2 MLA路径网络增加了到块区段(16×16单元阵列)的互连性。MLA路径网络的附加级使块区段的数量增加3倍,同时,在所述MLA路径网络中每个线的长度(或扩展)增加1倍。在级2MLA中路径线的数量增加1倍;由于块区段的数量增加了3倍,所以,在每个单元面积基础上,在分级的下一级内路径线的数量实际上减少了二分之一。
图5A示出了具有相关16个块连接器的一个逻辑块和与该逻辑块相关的级1MLA路径网络。所述16个块连接器501-516用加重线表示,而16个级1MLA路径网络线517-732用较浅的线表示。注意,块连接器的长度或跨度结束于所述逻辑块之内,而级1MLA路径网络线的长度扩展到相邻的多个逻辑块(所述块连接器长度的两倍)。
块连接器和级1MLA路径网络线被细分成水平和垂直组垂直块连接器501-508、水平块连接器509-516、垂直级1MLA路径网络线517-524、和水平级1MLA路径网络线525-532。
在当前的较佳实施例中,共有24个级1MLA转向点,用于所述逻辑块内的16个级1MLA路径网络线。在图5A中,这24个转向点用空心点541-564表示。
一个MLA转向点是一个可编程的双向传递门,用于提供一水平MLA路径网络线和一垂直MLA路径网络线之间的互连。例如,启动级1MLA转向点541使得水平级1MLA路径网络线526和垂直级1MLA路径网络线520被彼此连接到一起。图5B示出了级1MLA转向点541。开关583控制所述级1MLA路径网络线526是否被连接到级1MLA路径网络线520上。如果开关被启动,那么,级1MLA路径网络线526被连接到级1MLA路径网络线520上。否则,线526将不被连接到线520上。用户可以对开关583进行编程。所述多个转向点被设置成成对的组,用于通过启动所述开关首先把两个或多个块连接器经过所述的块连接器连接到级1MLA交换网络和然后连接所选择的级1MLA路径线以提供转换访问。所述级1MLA线被用于连接这些块连接器,所述块连接器位于同一个块群内的各个逻辑块之内。
参看图5A,该图示出了用于每一个逻辑块的、到级1MLA交换网络533-540的8个块连接器。该交换网络进行工作以在用户编程时将某些块连接器连接到级1MLA线上。图5C详细地示出了所述的交换网络537。到级1MLA传送交换网络的块连接器具有8个驱动器575-582。这8个驱动器被用于提供用于所述块连接器501、502以及级1MLA线517、518的双向驱动。例如,启动开关565使得块连接器501上的信号可以被驱动器575从级1MLA线517驱动。启动开关566使得在级1MLA线517上的信号可以被驱动器576从块连接器501驱动。启动开关567使得块连接器501上的信号可以被驱动器577从级1MLA线518驱动。启动开关568使得级1MLA线518上的信号可以被驱动器578从块连接器501驱动。
类似的,启动开关569使得块连接器502上的信号可以被驱动器579从级1MLA线517驱动。启动开关570使得级1MLA线上的信号可以被驱动器580从块连接器502驱动。启动开关571使得在块连接器502上的信号可以被驱动器581从级1MLA线驱动。启动开关572使得在级1MLA线518上的信号可以被驱动器582从块连接器502驱动。开关573被用于控制一个信号是否要从一个块连接器501传送给属于相邻逻辑块的相邻块连接器584。
同样,开关574被用于控制一个信号是否要从一个块连接器502传送给属于相邻逻辑块的相邻块连接器585。
图6示出了一个用于块群的路径网络。所述的块群基本上包括可以由级1MLA交换网络533-540进行互连的4个逻辑块。可以看到,这里具有32个级1MLA路径网络线。
图7A示出了一个块区段的方框图。所述块区段包括4个块群701-704。如上所述,利用块连接器和级1MLA路径网络线进行块群的互连。另外,所述块区段还包括64个级2传送网络线和64个级2到级1的交换网络,用于提供级1MLA路径网络和级2MLA路径网络之间的互连性。所述的级1到级2MLA路径交换网络在图7中用矩形表示。另外,还具有48个与所述块区段内的4个逻辑块中的每一个相关的级2MLA转向点。因此还具有与所述的块区段相关的192个级2MLA转向点。
图7B示出了一个级1到级2MLA路径交换网络705的实例。可以看到,开关710被用于控制一个信号是否将在级1MLA线709和级2MLA线708之间通过。开关711被用于控制一个信号是否将在级1MLA线709和级2MLA线707之间通过。开关712被用于控制一个信号是否将在级1MLA线706和级2MLA线708之间通过。开关713被用于控制一个信号是否将在级1MLA线706和级2MLA线707之间通过。开关714被用于控制一个信号是将从一个级1MLA线709传送给属于相邻块群的相邻级1MLA线716。同样,开关715被用于控制一个信号是否将从一个级1MLA线706传送给属于相邻块群的相邻级1MLA线715。
图8A示出了一个区段群。该区段群包括具有它们相关块连接器的4个块区段801-804、级1和级2MLA路径网络线和交换网络。另外,还具有128个级3MLA路径网络线,用于提供属于同一区段群800内不同块区段801-804的级2MLA线之间的互连性。还具用于块区段801-804中的每一个并与级3MLA线相关的96个级3MLA转向点(即对于所述区段群来讲具有384个级3MLA转向点)。另外,还具有与4个块区段801-804中的每一个相关的32个级2到级3MLA路径交换网络。因此,具有总数为128的级3MLA路径交换网络,用于提供各个级2和级3MLA线之间的可编程互连。
图8B示出了一个级2到级3MLA路径交换网络805的例子。可以看到,启动开关810使得级2MLA线808上的信号被连接到级3MLA线806上。不启动开关810将禁止从级3MLA线806连接到级2MLA线808。启动开关811使得级2MLA线808上的信号被连接到级3MLA线807上,不启动开关811将禁止从级3MLA线807连接到级2MLA线808。类似的,启动开关812使得级2MLA线809上的信号被连接到级3MLA线806上,不启动开关812将禁止从级3MLA线806连接到级2MLA线809上。启动开关813使得级2MLA线809上的信号被连接到级3MLA线807上,不启动开关813将禁止从级3MLA线807连接到级2MLA线809上。
在本发明中,通过增加附加逻辑区段群可以实现较大和较强的FPGA,所述的附加逻辑区段群通过具有相应MLA转向点和交换网络的MLA路径网络的附加级进行连接。
在本发明的一个实施例中,5个I-矩阵线(331-335)中的每一个都可以被扩展,以提供属于两个不同群的两个相邻I-矩阵线之间的可连接性。图3B中的传递门开关336-340、341-345、346-350和351-355是4个不同组I-矩阵线扩展的例子。这对于不必经过块连接器而在两个相邻群之间传送信号的能力进一步提供了灵活性。
类似的,块连接器可以被扩展以提供属于两个不同逻辑块的两个相邻块连接器之间的可连接性。图5C的开关573示出了这种把块连接器501经过开关573连接到块连接器584的块连接器的扩展。由于在两个相邻逻辑块之间不必经过级1MLA线和相关的MLA交换网络就可以传送信号,所以,这进一步增加了灵活性。这个概念可以被类似的应用于级1MLA线等。图7B的开关714示出了一个例子,其中,通过启动的开关714使级1MLA线709被扩展以与级1MLA线716的连接。由于不必经过级2MLA线和相关的MLA交换网络就可以在两个相邻块群之间传送信号,所以,这进一步提供了灵活性。
图9示出了一个用于在所述多个逻辑块和所述多个MLA级之间提供传送性能的分级的多级路径网络。这里一共示出了8个逻辑块901-908。与逻辑块901-908中的每一个相关的是多个块连接器,在当前的较佳实施例中,具有与逻辑块901-908中的每一个相关的8个水平的和8个垂直的块连接器。为了清楚和容易理解,利用一个单一的线来表示与一个单独的逻辑块相关的块连接器(即块连接器909-916分别对应于逻辑块901-908)和仅示出了水平块连接器。
接下来,所述块连接器909-916每一个分别被耦合到可编程双向驱动器917-924上。然后,块连接器909-916可以被编程,以被双向耦合到所述MLA线925-928上。例如,交换网络917可以被编程以把逻辑块901的多个块连接器909中的一个耦合到所述MLA-1线925上。附加的可编程双向驱动器929-932被用于提供所述MLA-1线925-928和下一个MLA级、MLA-2线933-934之间的互连。可编程双向驱动器935-936有选择地提供所述MLA-2线933-934和MLA-3线937之间的互连。对于附加的多MLA级可以重复这些分级互连方法。
图10示出了另外一个用于在所述多个逻辑块和所述多个MLA线之间提供可连接性的分级的多级路径网络的实施例。除了所述块连接器被直接地连接到所述多个MLA级和旁路任一介入的MLA级以外,这个实施例类似于图9所示的路径网络的实施例。该图示出了8个逻辑块1001-1008。与每个逻辑块相关的是多个块连接器1009-1016。可编程的双向驱动器1017-1024被用于有选择地将块连接器1009-1016耦合到块连接器接头1025-1032上。块连接器接头1025-1032被用作多个结合点,从这些结合点可以执行到多个MLA层的连接。
可编程双向驱动器组(1033-1035)、(1036-1038)、(1039-1041)、(1042-1044)、(1045-1047)、(1048-1050)、(1051-1053)、(1054-1056)分别多应于块连接器插头1025-1032。这些驱动器组中的每一个使它们各自的逻辑块被连接到MLA-1线1061、MLA-2线1062、或MLA-3线1063上的任一个,而不需要使它通过任意一个介入的MLA线。例如,通过有选择地激活驱动器1017和1033,可以使逻辑块1001被连接到MLA-1线1061上。通过有选择地激活驱动器1017和1034,可以使逻辑块1001被连接到MLA-2线1062上。注意,在这个实施例中,所述逻辑块1001可以在不必首先连接到MLA-1线1061的情况下连接到MLA-2线1062上。还有,通过有选择地激活驱动器1017和1035,可以使逻辑块1001连接到MLA-3线1063上。注意,在这个实施例中,逻辑块1001不需要被连接到MLA-1或MLA-2层以使它被连接到MLA-3层上。通过将该逻辑块直接地连接到所希望的MLA层上,整个传送网络的速度被改善了。再有,通过直接连接两个或多个相邻逻辑块,可以增加速度和路径灵活性。借此,相邻的逻辑块可以进行通信而不必经过所述MLA层中任意一个。例如,逻辑块1001和1002可以通过可编程双向驱动器1057连接到一起;逻辑块1003和1004可以通过驱动器1058连接到一起;和逻辑块1005-1007可以通过驱动器1059-1060连接到一起。这个分级路径方法可以很容易的是任意数量的逻辑块和MLA层。另外,可以包括一个传递门1064,用于将与逻辑块1002相应的块连接器1010耦合到与逻辑块1003相应的块连接器1011。
图11的方框图示出了分级路径网络的一个实施例,其中,两组块连接器对同样的MLA线进行访问。该图示出了第一组逻辑块1101-1104和第二组逻辑块1105-1108。第一组逻辑块1101-1104可以经过块连接器插头1113-1116有选择地连接到MLA-1层1109和1121,MLA-2层1110,MLA-3层1111,和MLA插头1112。类似的,第二组逻辑块1105-1108可以经过它们各自的块连接器插头1117-1120有选择地连接到MLA-1层1109和1121,MLA-2层1110,MLA-3层1111和MLA插头1112。
图12的方框图示出了部分多级路径网络(未示出I-矩阵),该网络部分包括用于较高级路径网络的、到具有MLA插头的MLA-3级的多个块连接器。图12示出了一组块连接器与在水平方向上和它对应的MLA较高级的互连。还具有一个相应垂直组的路径网络,用于所述块连接器和相关MLA的互连。在图12中未示出这个垂直组,以避免使本发明变得不清楚。注意,对于所述FPGA的每一个块连接器和相关的MLA,都具有所述路径网络的相应拷贝。
图12示出了32个块1201-1232。除了与两个BC插头(即,一个水平的和一个垂直的插头)相关以外,每一个部件还与个别的和相邻的部件相关。块连接器1201-1232的每一个通过一个可编程的开关被耦合到两个可选择的BC插头上。例如,块连接器1201通过可编程开关1234被耦合到可选择的BC插头1233上。没有示出与所述第一BC插头组相垂直的第二插头组。类似的BC插头互连方案可以被用于块连接器1217-1232(水平和垂直的)。对于每一个BC插头,还具有可以连接到所述MLA-1传送线上的多个双向可编程驱动器。例如,BC插头1233可以经过驱动器1236被选择性地连接到MLA-1路径线1235上。这些驱动器既可以和相应的BC插头平行,又可以和它们相互垂直。在当前的较佳实施例中,对于每一个块连接器来讲,由于具有一个相应的MLA-1线加上与所述第一MLA线相互垂直的另外一个MLA-1线,所以,所述MLA-1线的数量是块连接器数量的二分之一。每一个MLA线可以利用可编程装置通过它们相应的BC插头连接到相应的块连接器、MLA-2和MLA-3线。注意,所述的MLA-1路径网络和所述的I-矩阵以及块连接器一起形成了所述的2×2块区域内的路径资源。这种格式增进了对多个单元进行访问和互连的更加复杂逻辑功能的形成。另外,除了I-矩阵线和块连接器以外,所述MLA-1路径网络也变成了一个附加的可双向编程的路径线,该路径线可以被用做一个访问端口,以用于通过利用其它MLA线的连接,或用来自所述2×2块区域以外的的多个块连接器执行一个更加复杂的逻辑功能。通过使用可编程的开关,所述I-矩阵线和块连接器可以被有选择地进行访问而不必和所述2×2块区域相邻或相应。因此,当所述增长是从一个部件到2×2的部件时,包括I-矩阵线、块连接器和MLA-1线在内的路径段的数量呈几何级数增长。
对于每个BC插头来讲,具有多个可以被连接到所述MLA-2路径线的双向可编程驱动器。例如,块连接器的插头1233可以通过驱动器1238连接到MLA-2线1237上。所述的MLA-2线可以平行于或垂直于相应的BC插头。在当前的较佳实施例中,所述MLA-2线的数量是所述MLA-1线数量的一半。每个MLA-2线通过可编程装置被连接到相应的块连接器、MLA-1线上和通过相应的BC插头连接到MLA-3线上。所述的MLA-2路径网络和I-矩阵线、块连接器和MLA-1路径网络一起形成了4×4块区域内的路径资源,用于更加复杂的逻辑功能连接访问和用于进行所述多个单元的互连。在这种情况下,所述MLA-2路径网络与所述I-矩阵线、块连接器和MLA-1线一起变成了附加的双向可编程访问线,该访问线可以被用做访问端口,用于通过和来自所述4×4块区域以外的其它MLA线或块连接器的连接实现更加复杂的逻辑功能。借助于可编程的开关,所述的访问不必非得是与所述4×4块区域相邻或相应的。在4×4块单元内包括I-矩阵线、块连接器、MLA-1线和MLA-2线在内的路径段的总数与逻辑单元的增加呈正比增长。当开始从4×4部件增长时,总数的增加是一个几何级数。类似的,对于每个BC插头来讲,具有多个可以被连接到MLA-3路径线的双向可编程驱动器。例如,BC插头1233可以通过驱动器1240被连接到所述MLA-3线1239上。所述的MLA-3线可以平行或垂直(例如,水平和垂直)于相应的BC插头。在当前的较佳实施例中,所述MLA-3线的数量是所述MLA-2线数量的一半。每一个MLA-3线可以利用可编程装置通过相应的BC插头连接到相应的块连接器、MLA-1和MLA-2线上。所述MLA-3路径网络和I-矩阵线、块连接器、MLA-1路径网络和MLA-2路径网络一起形成了8×8块区域内的路径资源,用于更加复杂的逻辑功能连接访问和所述单元的互连。除了I-矩阵线、块连接器、MLA-1线和MLA-2线以外,所述的MLA-3路径网络也变成了多个附加的双向可编程的访问线,这些访问线可以被用做访问端口,用于利用可编程装置通过其它MLA线或块连接器的连接实现更加复杂的逻辑功能,所述的块连接器位于所述8×8块区域的外部并不必与所述的8×8块区域相邻或相应。因此,在一个8×8块单元中包括所述I-矩阵线、块连接器、MLA-1线、MLA-2线和MLA-3线在内的路径段的总数随着逻辑单元的增加而成正比增加。当增长是从一个块到8×8个块时,这个增加是一个几何级数。另外,对于每个BC插头来讲,具有可以被连接到MLA插头的多个双向可编程驱动器。例如,BC插头1233可以通过驱动器1242连接到MLA插头1241上。MLA插头既可以与相应的BC插头相互平行,也可以与其相互垂直。每一个双向可编程驱动器(即,驱动器1236、1238、1240、1242等)可以是通过可编程装置控制的传递门;具有由可编程装置进行控制的传递门的双向驱动器;在一个方向上通过可编程装置控制的一个三态门和具有通过可编程装置控制的传递门的传递门或驱动器;或者在相反的方向上由可编程装置进行控制的两个三态门之一。这种选择是根据速度和密度要求的一个函数。
在一个实施例中,每一个块连接器和BC插头都具有到相邻块的扩展。例如,块连接器1201通过可编程开关1243可以被连接到块1202上。BC插头1244可以通过可编程开关1246被连接到BC插头1245上。应当注意,可以实现对MLA线的附加扩展,以便在不使用较高级MLA线的情况下扩展路径范围。图12所示的路径网络可以有多种变化。例如,为了增加路径资源和传送能力,可以通过制造两个所述MLA-2路径网络的拷贝来取代所述MLA-1路径网络。另一方面,如果目的是要使路径面积最小化,那么,一个实施例通过使用所述MLA-2路径网络的一个拷贝来取代所述MLA-1路径网络,可以使编程位(比特)的数量最小化。这种变化可以用于其它级的混合。另外一个实施例将移动一个或多个所述MLA线。例如在图12中,所述1247可以被BC插头1245、1248、1249和1250访问。所述MLA-1线1247可以移动4个块,从而变成可由BC插头1248、1251、1250和1252进行访问。所有其它的MLA线都可以被如此地移动。这还可以被应用于其它的MLA线上。
图13示出了一个MLA-1转向网络。该图示出了4个逻辑块1301-1304。这4个逻辑块被连接到所述MLA-1线组1305-1308的每一个上。所述MLA-1线中的每一个都可以通过一个可编程装置(例如,转向点1309)被连接到除相应的一个垂直MLA-1线以外的所有垂直MLA-1线上。例如,水平MLA-1线1310可以通过转向点1312被连接到垂直MLA线1311上。MLA-1线的目的是将位于所述MLA-1路径网络区域内的块连接器组连接到一起。如图13所示,在连接一个4-块区域内的相应块连接器的情况下,可以利用所述的块连接器扩展或利用一个BC插头通过转向点连接到相应MLA线的一个线上,而不必求助使用两个垂直MLA-2线。在一个实施例中,转向点的数量被减少。这限制了转向灵活性,但也减少了设计所述MLA线和所述区域所需要的负担。但是路径的灵活性及可连通性受到影响。
图14示出了一个MLA-2转向网络。如所看到的,每一个MLA-2线都可以通过可编程装置被连接到与所述MLA-2线相互垂直的每一个MLA-2线上。例如,垂直MLA-2线1401可以通过转向点1403被连接到水平MLA-2线1402上。在另外一个实施例中,通过减少所述转向点的数量可以进一步限制所述的转向灵活性。这可以减少设计所述MLA线和所述区域所需要的负担。但是路径的灵活性及可连通性受到影响。
图15示出了MLA-3转向网络。每一个MLA-3线都可以通过可编程装置被连接到所有的垂直MLA-3线上,例如,垂直MLA-3线1501可以通过转向点1503被连接到水平MLA-3线1502上。通过减少转向点的数量可以进一步限制所述转向灵活性。这将减少设计所述MLA-3线和所述区域所需要的负担。但是路径的灵活性及可连通性受到影响。
图16示出了一个用于MLA-4层和一个使所述MLA-4层得以被访问的机制的路径网络的实施例。该图示出了4个8×8块1621-1624(总数为16×16个块)。与这4个8×8部件1621-1624相关的是4个水平的和4个垂直的MLA插头组。在当前的较佳实施例中,所述MLA-4线和MLA插头是8位(比特)宽。由于每个块都具有8个相应的块连接器,所以,所示出的每个MLA插头都具有8个线宽度,其中的每一个线对应于8个块连接器中的一个,如较早在图12中所示的那样。在当前的实施例中,共有4个垂直的和4个水平的MLA-4线,其中的每一个都具有8个线宽。由此,所述MLA-4线的数量是所述MLA-3线数量的四分之一。每个MLA-4线都可以通过可编程装置被连接到相应的块连接器、MLA-1、MLA-2和MLA-3线上。通过相应的MLA插头和BC插头可以进行所希望的连接。所述的MLA-4路径网络和所述I-矩阵线、块连接器、MLA-1路径网络、MLA-2路径网络和MLA-3路径网络一起形成了一个16×16块区域内的路径资源,用于更加复杂的逻辑功能连接访问和所述单元的互连。在一个实施例中,除了所述I-矩阵线、块连接器、MLA-1线、MLA-2线和MLA-3线以外,所述的MLA-4路径网络也变成了多个附加的双向可编程访问线,它们可以被用做多个访问端口,以用于通过可编程装置利用由来自所述16×16块区域以外的块连接器的其它MLA线进行的连接执行更加复杂的逻辑功能。这些其它的MLA线或块连接器不必和所述的16×16块区域相邻或相应。包括I-矩阵线、块连接器、MLA-1线、MLA-2线、MLA-3线和MLA-4线在内的路径段的总数量随逻辑单元数量的增加成正比增长。当所述增长是从一个块到16×16块时,在尺寸方面的增加呈几何级数。相应的MLA-4线可以从每一个MLA插头通过一个开关连接到所述MLA插头上。例如,MLA插头1601可以通过开关1603被连接到MLA-4线1602上。类似的,MLA插头1601可以通过开关1605连接到MLA-4线1604上;通过开关1607连接到MLA-4线1606上;通过开关1609连接到MLA-4线1608上。同样,MLA插头1610可以通过开关1615-1618分别连接到MLA线1611-1614上。在4个角的任意一个角内的每一个MLA插头都可以利用可编程装置通过所述垂直或水平MLA-4线连接到所有4个角内的所有的相应MLA插头上。
图17示出了三个不同的开关实施例1701-1703。通常,这种开关是一种简单的双向传递门的双向可编程驱动器网络,或是双向驱动器结构1701-1703中的任意一个。
图18示出了一个用于MLA-5层和对所述MLA-5层进行访问的一种机制的路径网络的实施例。该图示出了16个8×8块。与该8×8个块中每一个块相关的是4个水平的和4个垂直的MLA插头,这些MLA插头与在图16中示出的MLA插头相同。当这16×16个块(如图16所示)被分组成一个单元时,形成了由32×32个块组成的下一个较高级。与16×16个角单元中的每一个相关的是4个水平的和4个垂直的MLA-5线,其中的每一个都具有8位宽。如图18所示,这些线由相邻的角单元共享。由此,MLA-5线的数量是MLA-4线数量的一半。每个MLA-5线都可以利用可编程装置通过相应的MLA插头和BC插头连接到相应的块连接器、MLA-1、MLA-2、MLA-3和MLA-4线上。所述MLA-5路径网络和I-矩阵线、块连接器、MLA-1路径网络、MLA-2路径网络、MLA-3路径网络和MLA-4路径网络一起形成了32×32块区域的路径资源,用于更加复杂的逻辑功能连接访问和所述单元的互连。另外,除了I-矩阵线、块连接器、MLA-1线、MLA-2线、MLA-3线和MLA-4线以外,MLA-5路径网络也被用做附加的双向可编程访问线,这些访问线可以被用做多个访问端口,以用于利用可编程装置通过由来自所述32×32块区域以外的其它MLA线或块连接器(不必与所述的32×32块区域相邻或相应)进行的连接执行更加复杂的逻辑功能。包括在32×32块单元组内的I-矩阵线、块连接器、MLA-1线、MLA-2线、MLA-3线、MLA-4线和MLA-5线在内的路径段的总数量随着逻辑单元数量的增加正比增长。当所述增长是从一个块到32×32块时,这个增加是一个几何级数。
一个相应的MLA-5线可以经过一个开关从每一个MLA插头连接到所述的MLA插头上。所述开关是一个双向可编程驱动器网络,该网络可以是一个简单的双向传递门或图17所示双向驱动器结构中的任意一个。另外,可以结合使用多个转向点,使得所述垂直MLA-5线通过可编程装置贯穿所述水平MLA线。在4个角任意一个角内的每一个MLA插头可以利用可编程装置连接到所有4个角内的所有相应的MLA插头上。这是通过到所述垂直和水平MLA-5线的可编程连接加上使用转向点相互组合而实现的。
可以通过利用所述MLA插头的可编程访问或通过引入其它的新的中间MLA插头来开发较高级的MLA网络。在这种情况下,所述MLA线的数量是下一较低级MLA数量的几分之一。包括I-矩阵线、块连接器、MLA-1线、MLA-2线、MLA-3线、MLA-4线、MLA-5线和较高级的MLA线的路径段的总数量以及相应数量的n×n个块单元随逻辑单元数量的增加成正比增长。当所述增长是从一个块到n×n个块时,这个增加呈几何级数。
至此,描述了用于可编程逻辑电路的具有内连和互连方案的结构。
权利要求
1.一种可编程逻辑电路,包括具有多个可编程互连单元的多个逻辑块,用于根据逻辑信号执行逻辑功能;耦合到所述多个逻辑块的多个单元上的第一组可编程开关;耦合到所述第一组可编程开关上的第一组路径线,用于形成到所述多个逻辑块的第一组双向可编程访问线,其中,所述第一组双向可编程访问线通过可编程装置被用做与所述多个逻辑块相关的输入/输出端子;耦合到所述第一组双向可编程访问线上的第二组可编程开关;耦合到所述第二组可编程开关上的第二组路径线。
2.如权利要求1所述的可编程逻辑电路,还包括第三组可编程开关,用于有选择地耦合所述第二组路径线的多个线,其中,所述第二组路径线和所述第三组可编程开关包括第一级互连;连接到所述第二组可编程开关上的第三组路径线。
3.如权利要求2所述的可编程逻辑电路,还包括第四组可编程开关,用于有选择地耦合所述第三组路径线的多个线,其中,所述第三组路径线和所述第四组可编程开关包括第二级互连;可在所述第三组路径线和所述第二组路径线之间进行连接的第五组可编程开关,用于通过所述第一级互连有选择地把所述多个逻辑块耦合到所述第二级互连上。
4.如权利要求1所述的可编程逻辑电路,还包括第六组可编程开关,用于把第一逻辑块的所述第一组双向可编程访问线的一个有选择地耦合到第二逻辑块的所述第一组双向可编程访问线的一个线上,其中,所述第一逻辑块与所述第二逻辑块彼此相邻。
5.如权利要求4所述的可编程逻辑电路,其中,用于所述多个逻辑块中每一个逻辑块的所述第一组路径线的线的数量大约为所述逻辑块的所述多个单元的数量的一半。
6.如权利要求2所述的可编程逻辑电路,其中,所述第二组路径线中每一个的跨距是所述第一组路径线中每一个的跨距的两倍。
7.如权利要求2所述的可编程逻辑电路,其中,所述第二组路径线的数量是所述第一组路径线数量的一半。
8.如权利要求3所述的可编程逻辑电路,其中,所述第三组路径线中每一个的跨距是所述第二组路径线中每一个的跨距的两倍。
9.如权利要求3所述的可编程逻辑电路,其中,所述第三组路径线的数量是所述第二组路径线数量的一半。
10.如权利要求1所述的可编程逻辑电路,还包括可以连接到所述的第二组可编程开关的第四组路径线;第七组可编程开关,用于有选择地耦合所述第四组路径线的多个线,其中,所述第四组路径线和所述第七组可编程开关包括第三级互连;可以在所述第四组路径线和所述第三组路径线之间进行连接的第八组可编程开关,用于通过所述第二级互连或所述第一级互连有选择地将所述多个逻辑块耦合到所述第三级互连上。
11.如权利要求10所述的可编程逻辑电路,其中,所述第四组路径线中每一个的跨距是所述第三组路径线中每一个的跨距的两倍,并且,所述第四组路径线的数量是所述第三组路径线数量的一半。
12.如权利要求10所述的可编程逻辑电路,其中,所述第四组路径线和所述第七组可编程开关包括第三级互连。
13.如权利要求1所述的可编程逻辑电路,还包括可连接到所述第二组可编程开关上的第五组路径线,用于形成第四级互连。
14.如权利要求13所述的可编程逻辑电路,其中,所述第五组路径线中每一个的跨距是所述第三组路径线中每一个的跨距的两倍。
15.如权利要求13所述的可编程逻辑电路,其中,所述第五组路径线的数量是所述第三组路径线数量的一半。
16.如权利要求1所述的可编程逻辑电路,还包括包括第五级互连的第六组路径线;可在所述第六组路径线和所述第五组路径线之间进行连接的第九组可编程开关,该组开关能够传送来自所述第一组双向可编程访问线的信号,以用于通过所述第四级互连有选择的将所述多个逻辑块耦合到所述第五级互连上,并且,旁路所述的第一级互连、所述的第二级互连和所述的第三级互连。
17.如权利要求16所述的可编程逻辑电路,其中,所述第六组路径线中每一个的跨距是所述第四组路径线中每一个的跨距的两倍。
18.如权利要求16所述的可编程逻辑电路,其中,所述第六组路径线的数量是所述第四组路径线数量的四分之一。
19.如权利要求1所述的可编程逻辑电路,还包括第七组路径线;第十组可编程开关,用于有选择地连接所述第七组路径线的多个线,其中,所述第七组路径线和所述第十组可编程开关包括第六级互连;可在所述第七组路径线和所述第五组路径线之间进行连接的第十一组可编程开关,该开关能够传送来自所述第一组双向可编程访问线的信号,以通过所述第四级互连有选择地耦合所述多个逻辑块,和旁路所述第一级互连、所述第二级互连、所述第三级互连和所述第五级互连。
20.如权利要求19所述的可编程逻辑电路,其中,所述第七组路径线中每一个的跨距是所述第六组路径线中每一个的跨距的两倍。
21.如权利要求19所述的可编程逻辑电路,其中,所述第七组路径线的数量是所述第六组路径线数量的一半。
22.如权利要求1所述的可编程逻辑电路,其中,所述第一级互连被用做第二组双向可编程访问线。
23.如权利要求2所述的可编程逻辑电路,其中,所述第二级互连被用做第三组双向可编程访问线。
24.如权利要求1所述的可编程逻辑电路,其中,所述的多个开关包括多个双向可编程驱动器。
25.如权利要求1所述的可编程逻辑电路,其中,所述的多个开关包括多个双向可编程传递门。
26.如权利要求1所述的可编程逻辑电路,还包括第十二组可编程开关,用于将一个相邻组逻辑块的第一组双向可编程访问线的相邻一组有选择地耦合到所述相同的第一级互连上。
27.如权利要求1所述的可编程逻辑电路,还包括第十三组可编程开关,用于将一个相邻组逻辑块的第一组双向可编程访问线的相邻一组有选择地耦合到所述相同的第二级互连上。
28.如权利要求10所述的可编程逻辑电路,还包括第十四组可编程开关,用于将一个相邻组逻辑块的第一组双向可编程访问线的相邻一组有选择地耦合到所述相同的第三级互连上。
29.如权利要求13所述的可编程逻辑电路,还包括第十五组可编程开关,用于将一个相邻组逻辑块的第一组双向可编程访问线的相邻一组有选择地耦合到所述相同的第四级互连上。
30.如权利要求16所述的可编程逻辑电路,还包括第十六组可编程开关,用于有选择地将所述第四级互连的相邻一组耦合到相同的第五级互连上。
31.如权利要求19所述的可编程逻辑电路,还包括第十七组可编程开关,用于有选择地将相邻一组的所述第四级互连耦合到相同的第六级互连上。
32.如权利要求10所述的可编程逻辑电路,其中,所述第三级互连被用做第四组双向可编程访问线。
33.如权利要求13所述的可编程逻辑电路,其中,所述第四级互连被用做第五组双向可编程访问线。
34.如权利要求16所述的可编程逻辑电路,其中,所述第五级互连被用做第六组双向可编程访问线。
35.如权利要求19所述的可编程逻辑电路,其中,所述第六级互连被用做第七组双向可编程访问线。
36.如权利要求1所述的可编程逻辑电路,还包括多个逻辑群,其中的每一个逻辑群都具有多个可编程互连单元,用于根据逻辑信号执行逻辑功能;耦合到一个所述逻辑群的多个逻辑单元上的第十八组可编程开关,;耦合到所述第十八组可编程开关上的第八组路径线,用于形成一组耦合到所述逻辑群上的内连矩阵路径线。
37.如权利要求36所述的可编程逻辑电路,其中,所述的一组内连矩阵路径线通过可编程装置被用做短距离连接,以用于所述逻辑群的所述多个逻辑单元。
38.如权利要求36所述的可编程逻辑电路,在每组所述内连矩阵路径线中线的数量近似等于在所述逻辑群中输入和输出端子总数数量的一半。
39.如权利要求36所述的可编程逻辑电路,用于所述内连矩阵路径线组中每一个的跨距等于所述第一组双向可编程访问线的每一个线的跨距的一半。
40.如权利要求36所述的可编程逻辑电路,一个所述逻辑块的所述单元包括所述多个逻辑群的所述多个单元。
41.如权利要求36所述的可编程逻辑电路,还包括第十九组可编程开关,用于有选择地将第一逻辑群的所述内连矩阵组的一个线耦合到第二逻辑群的所述内连矩阵组的一个线上,其中,所述第一逻辑群与所述第二逻辑群彼此相邻。
42.一种可编程逻辑电路,包括多个逻辑群,所述逻辑群中的每一个都具有多个可编程互连单元,用于根据逻辑信号执行逻辑功能;用于耦合一组所述多个逻辑群的一组内连矩阵路径线;多个逻辑块,所述多个逻辑块中的每一个逻辑块都具有多个可编程互连的单元,用于根据逻辑信号执行逻辑功能;用于耦合第一组所述多个逻辑块的第一组双向可编程访问线。
43.如权利要求42所述的可编程逻辑电路,还包括用于耦合至少两个所述第一组双向可编程访问线的第一级互连。
44.如权利要求43所述的可编程逻辑电路,还包括耦合到第一逻辑块的所述第一组双向可编程访问线的一个所述双向可编程访问线上的第一可编程开关,用于将与所述第一逻辑块相应的信号可编程地传送给所述的第一级互连。
45.如权利要求44所述的可编程逻辑电路,还包括用于耦合至少两个所述第一级互连的第二级互连。
46.如权利要求45所述的可编程逻辑电路,还包括可连接到所述第一逻辑块的所述第一组双向可编程访问线的所述双向可编程访问线上的第二可编程开关,用于将与所述第一逻辑块相应的所述信号可编程地传送给所述第二级互连,其中,所述的第一级互连可以被所述的信号旁路。
47.如权利要求46所述的可编程逻辑电路,还包括用于耦合至少两个所述第二级互连的第三级互连。
48.如权利要求47所述的可编程逻辑电路,还包括连接到所述第一逻辑块的所述第一组双向可编程访问线的所述双向可编程访问线上的第三可编程开关,用于将与所述第一逻辑块相应的所述信号可编程地传送给所述第三级互连,其中,所述第一级互连和所述第二级互连可以被所述信号旁路。
49.如权利要求42所述的可编程逻辑电路,还包括第四级互连;耦合到所述第四级互连上的路径线;可连接到所述第一逻辑块的所述第一组双向可编程访问线的所述双向可编程访问线上的第四组可编程开关,用于将与所述第一逻辑块相应的所述信号传送给所述路径线。
50.如权利要求42所述的可编程逻辑电路,还包括可连接到所述第一逻辑群的所述内连矩阵路径线组的所述内连矩阵路径线上的第五可编程开关,用于将与所述第一逻辑群的所述内连矩阵路径线组的所述内连矩阵路径线相应的所述信号可编程地传送给第二逻辑群的所述内连矩阵路径线组的一个内连矩阵路径线,其中,所述第一逻辑群与所述第二逻辑群彼此相邻。
51.如权利要求42所述的可编程逻辑电路,还包括可连接到所述第一逻辑块的所述第一组双向可编程访问线的所述双向可编程访问线上的第五可编程开关,用于将与所述第一逻辑块的所述第一组双向可编程访问线的所述双向可编程访问线相应的所述信号可编程地传送给第二逻辑块的第一组双向可编程访问线的一双向可编程访问线上,其中,所述第一级互连可以被旁路和其中所述第一逻辑块与所述第二逻辑块彼此相邻。
52.如权利要求42所述的可编程逻辑电路,其中,所述开关包括多个双向可编程驱动器。
53.如权利要求42所述的可编程逻辑电路,其中,所述的开关包括多个双向可编程传递门。
54.如权利要求43所述的可编程逻辑电路,还包括第六组可编程开关,用于将相邻组逻辑块的一组相邻第一组双向可编程访问线耦合到所述第一级互连上。
55.在一个具有用于根据逻辑信号执行逻辑功能的多个单元的可编程逻辑电路内,一种用于形成更加复杂逻辑功能以通过利用路径信号将一组所述的单元从所述多个单元中的一个可编程地耦合到另外一个上的方法,所述的方法包括以下步骤通过一组内连矩阵路径线,可编程地互连多个所述单元,以形成第一逻辑群、第二逻辑群和第三逻辑群;通过第一组双向可编程访问线,将与第一逻辑群的第一组内连矩阵路径线相应的一个信号可编程地传送给所述第二逻辑群的第一组内连矩阵路径线;可编程地互连多个所述的单元,以形成第一逻辑块、第二逻辑块和第三逻辑块;通过第一级互连,将与第一逻辑块的第一组双向可编程访问线相应的一个信号可编程地传送给所述第二逻辑块的第一组双向可编程访问线。
56.如权利要求55所述的方法,其中,所述第一组内连矩阵路径线中每一个的跨距是所述第一组双向可编程访问线的每一个的跨距的几分之一,且所述内连矩阵路径线组中线的数量是所述逻辑群内所述单元的输入和输出端子数量的几分之一。
57.如权利要求55所述的方法,其中,在整个逻辑块电路区域内,所述的第一组双向可编程访问线中每一个的跨距是所述第一级互连线中每一个的跨距的几分之一,所述第一级互连线的线的数量是所述第一组双向可编程访问线的数量的几分之一。
58.如权利要求55所述的方法,还包括下述步骤在经过所述第一级互连线传送所述信号的情况下,将所述信号经过第二级互连线可编程地传送给所述第三逻辑块的第一组双向可编程访问线。
59.如权利要求55所述的方法,还包括在不经过所述第一级互连线传送所述信号的情况下,将所述信号经过第二级互连线可编程地传送给所述第三逻辑块的第一组双向可编程访问线。
60.如权利要求58所述的方法,其中,在整个逻辑块电路区域内,所述第一级互连线中每一个的跨距是所述第二级互连线中每一个的跨距的几分之一,所述第二级互连线的线的数量是所述第一级互连线数量的几分之一。
61.如权利要求55所述的方法,还包括如下步骤在经过所述第一级互连或所述第二级互连传送所述信号的情况下,将所述信号经过第三级互连可编程地传送给第四逻辑块的第一级双向可编程访问线。
62.如权利要求55所述的方法,还包括如下步骤在不经过所述第一级互连或所述第二级互连传送所述信号的情况下,将所述信号经过第三级互连可编程地传送给一个第四逻辑块的第一组双向可编程访问线。
63.如权利要求62所述的方法,其中,在整个逻辑块电路区域内,所述第二级互连线中每一个的跨距是所述第三级互连线中每一个的跨距的几分之一,所述第三级互连线的线的数量是所述第二级互连线的数量的几分之一。
64.如权利要求55所述的方法,还包括如下步骤将所述信号可编程地传送给耦合到第四级互连的路径线上,其中,用于每个线的跨距和所述第四级互连的线的数量与所述第三级互连成正比。
65.如权利要求55所述的方法,还包括可编程地将所述信号直接传送给所述第二逻辑群和旁路所述第一组双向可编程访问线的步骤。
66.如权利要求55所述的方法,还包括可编程地将所述信号直接传送给所述第二逻辑块和旁路所述第一级互连的步骤。
67.如权利要求55所述的方法,还包括如下步骤在经过所述第一级互连、所述第二级互连或所述第三级互连传送所述信号的情况下,通过所述第四级互连经过第五级互连将所述信号可编程地传送给第五逻辑块的第一组双向可编程访问线。
68.如权利要求55所述的方法,还包括如下步骤在不经过所述第一级互连、所述第二级互连或所述第三级互连传送所述信号的情况下,通过所述第四级互连经过第五级互连将所述信号可编程地传送给第五逻辑块的第一组双向可编程访问线。
69.如权利要求68所述的方法,其中,在整个逻辑块区域内,所述第四级互连线中每一个的跨距是所述第五级互连线跨距的每一个的几分之一,所述第五级互连线的线的数量是所述第四级互连线的数量的几分之一。
70.如权利要求55所述的方法,还包括如下步骤在经过所述第一级互连、所述第二级互连、所述第三级互连或所述第五级互连传送所述信号的情况下,将所述信号通过所述第四级互连经过第六级互连可编程地传送给第六逻辑块的第一组双向可编程访问线。
71.如权利要求55所述的方法,还包括如下步骤在不经过所述第一级互连、所述第二级互连、所述第三级互连或所述第五级互连传送所述信号的情况下,将所述信号通过所述第四级互连经过第六级互连可编程地传送给第六逻辑块的第一组双向可编程访问线。
72.如权利要求71所述的方法,其中,在整个逻辑块电路区域内,所述第五级互连线中每一个的跨距是所述第六级互连线中每一个的跨距的几分之一,所述第六级互连线的线的数量是所述第五级互连线的数量的几分之一。
73.如权利要求55所述的方法,还包括经过一组可编程开关将相邻的一组所述逻辑块的相邻一组的所述第一组双向可编程访问线有选择地耦合到所述第一级互连上的步骤。
74.如权利要求55所述的方法,还包括经过一组可编程开关将相邻的一组的所述逻辑块的相邻一组的所述第一组双向可编程访问线有选择地耦合到所述第二级互连上的步骤。
75.如权利要求55所述的方法,还包括经过一组可编程开关将相邻的一组所述逻辑块的相邻一组所述第一组双向可编程访问线有选择地耦合到所述第三级互连上的步骤。
76.如权利要求55所述的方法,还包括经过一组可编程开关将相邻的一组所述逻辑块的相邻一组所述第一组双向可编程访问线有选择地耦合到所述第四级互连上的步骤。
77.如权利要求55所述的方法,还包括经过一组可编程开关将相邻的一组所述第四级互连有选择地耦合到所述第五级互连上的步骤。
78.如权利要求55所述的方法,还包括经过一组可编程开关将相邻的一组所述第四级互连耦合到所述第六级互连上的步骤。
79.如权利要求55所述的方法,其中,所述的开关由双向可编程驱动器组成。
80.如权利要求55所述的方法,其中,所述的开关由双向可编程传递门组成。
81.一种现场可编程门阵列,包括多个单元,用于根据输入给所述现场可编程门阵列的信号执行逻辑功能;一个内连矩阵,用于可编程地互连多个所述的单元,以形成一个逻辑群;可以在两个相邻所述内连矩阵之间连接的多个可编程开关,以形成逻辑群的扩展;多个与所述逻辑群、所述内连矩阵、和所述扩展连接在一起的块连接器,用于形成一个逻辑块;可在两个相邻所述逻辑块之间进行连接的多个可编程开关,用于形成逻辑块的扩展;第一级可编程互连,用于互连所述的多个逻辑块,以形成块群;第二级可编程互连,用于互连所述的多个块群,以形成块区段;用于将多个逻辑块连接到所述第一级可编程互连上的第一组可编程开关;用于将多个逻辑块连接到所述第二级可编程互连上的第二组可编程开关。
82.如权利要求81所述的现场可编程门阵列,其中,所述的逻辑群由2×2矩阵的单元组成。
83.如权利要求82所述的现场可编程门阵列,其中所述的逻辑块由2×2矩阵的逻辑群组成。
84.如权利要求83所述的现场可编程门阵列,其中所述的逻辑群由2×2矩阵的逻辑块组成。
85.如权利要求84所述的现场可编程门阵列,其中所述的块区段由2×2矩阵的块群组成。
86.如权利要求81所述的现场可编程门阵列,其中,所述的第一级互连由第一组路径线和垂直于所述第一组路径线的第二组路径线组成。
全文摘要
一个PFCA包括一定数量的单元,用于根据输入信号执行逻辑功能。多个可编程的内连将属于一个逻辑群集器的每一个单元的输出可编程地连接到属于那个逻辑群集器的其它单元的每一个的至少一个输出上。一组可编程块连接器被用于提供多个单元逻辑群集器之间的互连性和到分级路径网络的可访问性。所述多个路径网络线的均匀分布的第一层被用于提供多组块连接器之间的连接。所述路径网络线的均匀分布的第二层被用于提供所述路径网络线不同第一层之间的连接。多个转换网络被用于提供所述块连接器和与所述第一层相应的所述路径网络之间的连接。另外的一些转换网络被用于提供在与所述第一层相应的路径网络线和与所述第二层相应的路径网络线之间的连接。多个附加的路径网络线的均匀分布层提供所述多个路径网络线的不同在前层之间的连接。
文档编号H03K19/177GK1152375SQ95193431
公开日1997年6月18日 申请日期1995年4月14日 优先权日1994年4月14日
发明者B·S·丁 申请人:Btr公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1