一种半导体集成电路的制作方法

文档序号:6812872阅读:155来源:国知局
专利名称:一种半导体集成电路的制作方法
技术领域
本发明涉及一种半导体集成电路,尤其(但不仅仅)涉及由可配置逻辑电路阵列组成的那种半导体集成电路。
半导体集成电路包含可以被分为布线资源、功能资源和存储/编程资源的多种资源。在我们的英国专利说明书第9410980.8号(它本身是我们的英国专利第2180382号和美国专利第5001368号的改进)中描述了一种具有分开的部分和单元的矩阵的可配置逻辑单元阵列,其中的每一个部分或单元都是用来完成简单的逻辑功能的逻辑电路。一般来说这种简单的逻辑功能都是由利用二输入与非门作为主要功能来实现的,每一部分都具有第二功能。这些单元以2×2个核心单元为一组象砌砖一样排列成堆,在堆中可以选择使用不同的第二功能。每一个单元都通过有限的局部互连结构连接到另外的单元,其中单元的每一个输出都连接到八个与其垂直并相邻的单元的输入端的次组(sub-set)。这些单元也通过在端口电路与至少该区域中的一些单元之间延伸的中介连接通路相互连接。该区域利用端口电路连接到该逻辑阵列的其余部分,端口电路通过中介总线提供在该区域中核心单元之间的连接,以及通过全局互连或通过相邻区域的中介互连与其它区域连接。
可配置逻辑电路阵列的局限在于由于所要求的信号进出功能单元的布线的限制,不可能全部利用阵列中可得到的全部功能。由于要求器件所占用的硅面积减至最小,以使功能与硅成本的比值大,因此使得该问题更加重要。
单元的逻辑电路提供功能资源,或也能被用于局部层次的布线资源。其它的互连结构应该被有效地使用,所用的硅面积由在硅上实现的功能决定,且由要求用于控制特定功能的编程位的个数决定。因此为了使硅成本尽可能的低,所用的编程位的数量必须最少,同时未被利用的编程位尽可能的少。为了便于器件的硅布局,要使物理布局尽可能均匀一致。在根据英国专利说明书第9410980.8号的器件中,所有的单元堆的物理布局都相同,使用双输入核心单元功能要求,为了实现三输入功能至少要两个核心单元一起使用,用互连资源把两个单元连在一起。电路中常用的功能是多路器。双输入多路器要求三个输入,因此对于现有技术来说,多路器核心单元和使用的有关的互连资源一起必须用来产生该功能。制造比较复杂的单元要求使用的硅面积显著地增加。
增加区域中包含的单位电路的数量,同时使硅面积增加最少—这是本发明的一个方面的目的。本发明的另一个目的是使在区域中可以使用的单元的数量增加,同时使硅面积增加最少。
因此,本发明的第一方面是介绍一种半导体集成电路,它包括由多个单元组成的面积,每一个单元具有多种资源,包括存储/编程资源和功能资源,根据单元的类型,功能资源至少包括布线资源和逻辑功能资源之一,每个单元中只具有有限数量的资源,所作的改进包括通过利用至少来自于一个其它单元的资源来增加单元可利用的资源。
因此本发明建议共享单元间的资源以使硅的利用率和电路效率最大化。
最好把单元安排成可以划分成区域的矩阵阵列形式。
在一个实施方式中,对于由具有主要功能和第二功能的两输入器件组成的单元,第二功能可以通过另一个单元形成第三输入,而成为三输入功能(例如两输入多路器)。要作到这一点的方法是来源单元(最好是相邻单元)的功能未被禁止。这样就节约了所用的核心单元,使得能在该阵列上实现更复杂的电路。与现有器件相比,这样也有使功能执行的速度更快的优点。更准确地说,根据这个实施方式,单元被排列成例如包含由2×2个核心单元组成的矩阵阵列的堆,每一个核心单元都具有常用的主要功能(例如二输入与非门)及第二功能。通常在堆中会有一定数量的不同的第二功能,但一些核心单元可以具有相同的第二功能。通常每一个堆都是相同的。单元可以方便地按行和列排列。对于这种结构,用于多路器的第三输入最好来自于同一个堆中的垂直相邻单元。输出也从中介总线输出驱动器得到。这意味着该驱动单元仍可以被配置成完全独立的功能,唯一的限制是该驱动单元只能通过它的局部互连结构输出,除非该驱动单元产生给予被驱动单元的第三输入信号。
该逻辑部分或逻辑单元具有局部互连结构,任何一个单元都可以仅通过局部互连结构同一些其它单元相连。通常任何一个单元都只和与它相距最近的八个相邻单元连接。此外,还有中介连接通路,通过与单元所处的区域有关联的端口单元,信号利用中介连接通路往返于该单元。
在另一个实施方式中,特别是对于如上所述的构造完全相同的单元,关于用于控制单元互连的编程位的数目以及在区域边界的相邻单元间的信号通路的位置都可以通过中介总线连到端口单元,并由此连到相邻区域的中介总线,在这些相邻单元之间不必有局部连接通路。这就使得在区域的边界产生多余的编程位。对于以上描述的结构,在区域的角落处的核心单元有四个多余的编程位,因为它们有跨接端口单元的四个局部互连,即两个在水平方向上,两个在垂直方向上。沿着侧边的核心单元有两个多余的编程位,相当于除去了跨越区域边界的两个局部互连。可以从物理上除去上述用于这些边界核心单元的局部互连。
从端口单元到核心单元的大规模的互连能使设计以较少的布线实现。因而这样也导至使得更多的单元用于实现功能,而不是布线,这样就增加了区域中的电路依赖(depending)。为了增加端口单元的连接性能,要求更多的编程位来实现其功能。这样就引起在硅上该端口单元布局的尺寸增加,导至总的器件的硅尺寸增加,功能与成本的比值减小。
根据本发明的这一方面,过去用来控制区域边界处局部互连的可编程位被重新分配用于给端口单元提供从端口单元多路器到中介总线的更大的连通性,因而使得在全局互连和中介互连之间的连通性增加。重新分配的可编程位的物理位置保持不变,即仍位于它们各自的核心单元中。
我们的共同未决公开的英国专利申请公开第2279168号描述了一个逻辑电路阵列,它包括在分开的单元块各自定义的单元矩阵阵列的多个逻辑电路形成的面积。该单元的矩阵阵列又至少再次被划分为区域(每个区域都包含单元的矩阵阵列),以及还包括用于每一个区域的端口电路,包括具有可选择性地与每个区域的端口电路连接的全局连接通路组成的分层布线结构包括从端口电路延伸至少可以与区域的一些单元进行选择性连接的中介连接通路,以及包括由有限的信号传输系统组成的局部连接通路。
可配置逻辑阵列的局限是,由于要求信号要跨越整个阵列进出功能单元的布线的限制,因此不可能全部利用阵列中可得到的全部功能。当实现更大规模的器件时,由于要求更大量的信号通过整个阵列,因此这个问题就更加突出。当器件更大时,由于这些通路的物理长度和连接到它们的资源的负载效应,跨过阵列的布线通路变得更慢,因而影响了阵列的总效率。
一个可能是比较明显的解决办法是在每一个层次上形成更多的资源,即更多的全局连接通路和更多的中介连接通路。然而,这使得硅的利用率降低,因此本发明的目的是提供解决的办法。
因此,本发明的这方面是提供一种半导体集成电路,它包括形成有多个逻辑电路的面积,该面积定义了可以被划分为区域的单元矩阵阵列(最好有一个区域矩阵阵列),以及用于每一个区域的区域端口电路,包括安排成连续层次的分层布线结构,其中连续的布线资源层包括由至少把一些单元与另外一些单元连接的局部直接连接通路组成的区域互连;从端口电路延伸出、有选择地至少可以与区域中的一些单元连接的中介互连;与每一个区域的端口电路可选择连接的全局连接通路;以及进一步包括一个或更多连续层次的布线资源,它们具有各自的端口电路,以把那层的布线资源与前一层的布线资源相连。
以这种方法,通过加入更多的布线层次可以有效地实现比预期更大规模的器件。这使得通过加入更多布线层次成比例地构造成任意大小的结构,每一个层次都被各自的端口电路分开。这使得要求通过整个阵列的一般信号(即非时钟或复位信号)在使用较低的层次之前,使用较高的层次到达实际的功能单元。而只要求传输较短距离的总信号在较低层次的布线层上就能作到。由于用于每一个总线的连接点的数量减少了,因此降低了每一条线的负载。负载的减少使得布线通路的速度提高,因此整个阵列的速度和效率得以提高。
为了方便起见,布线资源的第一个层次被成为超级全局层,用于那个层次的相关的端口单元被成为超级全局端口单元。
很明显,每一个端口电路都连接两个相邻的布线层次。有利的是,端口电路也连接同一层次的其它总线。在每一个层次上的端口电路影响单元被排列成行和列的集成电路的典型布局,端口电路包括端口单元组成,端口单元很方便地沿水平和垂直方向上排列开。为方便起见,这些端口单元被称为水平端口单元和垂直端口单元。在每一层上都有连接通路,为方便起见称其为总线,总线在水平和垂直方向上走线。通过习惯上被称为x总线的另外的总线,实现水平和垂直总线间的转向。在优选的布局中,这些另外的总线连接到位于阵列中分散的位置处的开关,目的是把在该互连层中的这些总线的水平和垂直线段连接在一起,实现90度转向。这些x总线在端口电路中连接到它们的层次。一种优选布局是用于这些类型总线的开关位于一些核心单元中。
正如对单元的每一个区域都有端口单元一样,最好对用于每一个连续层次的端口电路都进行分区,这样用于那一层的任何端口单元都必须通过用于那一层的连接通路来访问下一个较低层次的多个端口单元。例如超级端口单元连接多个相邻较低层次的端口单元就是通过与这些端口单元联系的全局连接通路。这样每一个超级端口单元和多个区域联系起来。可以方便地把其表示成超级区域。通常在每一个连续的较高层次中,会有更少数量的端口单元。每一个端口电路也允许在相同的层次中相邻的区域间同种类型总线的连接。该器件最好有三个层次。一个优选结构由四个单独的核心单元组成的堆构成,25个堆(100个核心单元)构成一个区域,区域再构成超级区域,最好5×5个区域构成一个超级区域。最好有组成器件的超级区域的矩阵,最好由3×3个超级区域加上输入/输出组成器件。
互连层次的一个最好结构包括用局部或中介互连形成区域互连,端口单元(即垂直和水平端口单元)围绕着每一个区域用来把中介总线连接到下一个更高层次的布线层。局部互连用来连接单元的输出,例如最近的正交相邻的每一个单元,中介总线水平和垂直走线提供区域内到核心单元的连接。每一行和每一列最好有六条中介线。互连进一步包括由全局和X总线组成的全局互连层。通过端口单元形成从区域级中介总线来往于全局和X总线间的连接。连接到端口单元的全局总线也连接到IO单元(称为超级端口单元),即下一个较高层次布线资源的端口单元。全局总线跨过超级区域跨过超级区域在垂直和水平方向上走线,即在下一个较高层次的资源的端口间走线。X总线用来在全局布线层形成转向。核心单元的每一行和每一列最好有三条全局总线和一条X总线。在水平和垂直X总线间的开关(在水平和垂直全局总线间形成90度转向)位于每一个核心单元中。互连还包括由超级全局总线和超级x总线组成的超级全局互连层。这一层用于跨过整个器件的连接(也就是跨过超级端口单元和其它超级端口单元IO单元间的超级区域)。用位于超级区域间的超级端口单元来连接全局和超级全局资源。核心单元的每一行和每一列最好有一条超级全局总线和两条超级X总线。超级X总线用来在超级全局层形成转向。超级端口单元也用来在全局和超全局总线间形成线性连接。
分层互连结构可以进一步延伸到至少更高的连续的布线层,一般称为超全局互连之上的特级全局布线层。超级全局互连仅跨越超级区域,而更高的层次跨越至少一些超级区域,并被端口电路(特级端口单元)分开。该端口电路会把超级全局互连连接到更高层的互连及连接到被分开的相邻区域的超级全局互连。在更高的层次中,端口沿着水平和垂直两个方向延伸。在更高层次的总线沿着水平和垂直方向走线,通过另外的x类型的总线形成在水平和垂直总线间的转向。这些另外的总线连接到阵列中分散位置处的开关处,其目的是在那一个互连层上把这些水平和垂直线段连接在一起形成90度转向,这些x总线在端口电路处连接到各层。
以下参考附图,利用例子进一步描述本发明的各个方面。


图1a图示说明了根据本发明的部分分层布线结构,图1b图示说明了根据另一个实施方式的部分分层布线结构,图2.1.A是实施本发明的一个阵列结构的总图,图2.2.A表示超级x总线开关的位置,图2.2.B是超级端口单元的原理图,图2.3.A说明用于垂直端口单元的连接,图2.3.B是垂直端口单元的原理图,图2.3.C说明用于水平端口单元的连接,图2.3.D是水平端口单元的原理图,图2.3.E-H是分别用于顶部、底部、左边和右边各个端口单元的原理图,图2.4.A图示说明一个区域的结构,图2.4.B说明局部单元到单元信号连接可能性的优选实施方式,图2.4.C说明用于A类堆的中介总线连接,
图2.4.D说明用于B类堆的中介总线连接,图2.4.E说明一个区域中堆的优选排列,图2.5.A是核心单元结构的原理图,图2.5.B是核心单元堆的图示说明,图2.5.C表示核心单元输入多路器的原理,图2.5.D表示核心单元输出多路器的原理,图2.5.E说明类型1至类型3的组合核心单元的原理,图2.5.F是表示来自于垂直相邻单元的第三输入的去向的单元堆的原理图,图2.5.G表示用于类型4的核心单元的原理,以及图2.5.I图示说明用于水平和垂直端口单元边界附近的单元的可配置RAM位的布局。
图1a图示说明了本发明。由集成电路矩阵阵列组成的核心单元(CC)用虚线作为单元框表示出来。图中有三个单元块,每一块表示一个区域(Z)。每一个区域都有和其相连的端口电路或端口单元(PC)。在核心单元的输入和输出之间有分散的局部信号连接通路(图中未表示出),它们是与区域中的核心单元可连接的、并且在与每一个区域相关的端口单元和下一个相邻区域的端口单元间延伸的中介信号连接通路(M)。图中只表示了一个中介连接通路,但是通常会有几个这样的连接通路。此外还有跨越多个区域延伸的全局信号连接通路(G),可与几个称为超级区域(SZ)的区域的端口单元连接。可能会有多个全局总线。
信号互连的另一层是由超级全局总线(SGB)提供的,它们跨过在超级端口单元(SPC)之间的超级区域(SZ)延伸,作为SG线或SG总线的信号通过超全局总线(SGB)或者在超级区域之间布线,或者向下连接到全局线或全局总线(G)。
图1b图示说明了本发明的另一个实施方式,使图1a所示的布局可以适用于更大的阵列。和图1相同的标号表示相同的部分,没有重复相应的描述。然而对于更大的阵列超级区域SZ本身通常构成称为特级区域(HYZ),其中有一般称为特级全局总线(HYZ)的信号连接通路,其跨越特级区域延伸,构成布线资源的更高层次。该特级全局总线与特级端口单元(HYPC)连接,HYPC控制特级区域间或向下到低层资源—即超级全局总线(SZ)的信号通路。
最好每个较高连续层次的全局布线资源都跨越更大数量的区域。最好每一个较高连续层次的布线资源都由数量更少的布线组成,即超级全局总线比全局总线少,特级全局总线比超级全局总线少,等等。
下面参考图2.1.A说明用于一个22.5K单元阵列的优选阵列结构。该阵列被分层划分成超级区域SZ,区域Z和单元堆T几个层次。每一个单元堆由四个单独的核心单元CC组成,25个单元堆(或100个核心单元)组成区域。区域再构成超级区域,9个超级区域加上输入/输出单元IO组成22.5K个单元的器件。每一个区域包括10×10个核心单元的矩阵阵列,每一个单元堆由2×2个核心单元的矩阵阵列组成。超级区域由5×5个区域的矩阵阵列组成。每一个区域的两个边界都被沿着该区域的水平边缘排列习惯上称为水平端口单元HPC及沿着该区域的垂直边缘排列的垂直端口单元VPC包围着的端口单元。超级端口单元SPC和每一个超级区域相连,有水平超级端口单元HSPC和垂直超级端口单元VSPC。每一个侧边有60个输入/输出单元,阵列的角落占据着外围总线角落开关PBSC。在所述的实施方式中,阵列包括3×3个超级区域组成的矩阵阵列,相互之间被被各自的超级端口单元(根据具体情况可能是水平和垂直单元)分隔开。
提供各种层次的信号布线资源,对于该优选实施方式使用三层信号布线资源。为方便起见,第一层指区域互连,包括利用局部或中介互连在区域中的连接。局部互连(参考图2.4.B)用于到每一个单元的八个最近的正交相邻单元(B,BB,F,FF,U,UU,L,LL)的快速连接,中介总线(M1-M6)在水平和垂直方向上走线,以提供到该区域中各处核心单元的连接。核心单元的每一行和每一列有六条中介总线(M1-M6)。围绕着每一个区域的端口单元(HPC)和(VPC)用于把中介总线连接到下一个布线层—下面将要描述的全局布线层。这些端口单元使中介总线连接到相邻的区域(参考图2.3.A-2.3.D)。
第二层布线指全局互连,由全局总线G和称为X的X总线组成。从区域层中介总线往返于全局和X总线的连接通过端口单元PC形成。全局总线跨越超级区域沿垂直和水平方向走线(参考图2.4.A)。X总线用于在全局布线层形成转向。核心单元的每一行和每一列有三条全局总线。在水平和垂直X总线之间的开关(在水平和垂直全局总线间形成90度转向)位于每一个核心单元中。
全局总线既连接到端口单元,也连接到IO单元和超级端口单元。
可以方便地把第三层布线称为超全局互连,它指的是跨越该器件在各自的超级端口单元之间或在超级区域和/或IO单元间走线的布线,包括超级全局SG和超级X(表示为SX)总线,每一个都跨越超级区域。用位于超级区域间的超级端口单元SPC把全局和超全局资源相连接(参考图2.2.B)。核心单元的每一行和每一列都有一条超全局总线SG和两条超级X(SX)总线。超级端口单元也用来在全局和超全局总线间形成线性连接(即从全局到全局,或从超全局到超全局总线)。
此外,由包括时钟和复位的特殊的布线资源通过特定的互连分散连接到阵列中特定的单元。就功能资源而言,在所述的实施方式中,所有的核心单元都可以被用作简单的与非门(参考图2.5.A)。此外,每一个核心单元也能实现一定范围内的第二功能。这些单元可以方便地被称为类型1,2,3和4(参看图2.5.B)。每一个都用与非门作为其主要功能,同时类型1,2和3都用异或/多路选择作为其第二功能,以及类型4的第二功能是D触发器,简写为DFF(带有复位和使能端)。时钟和复位通过特定的互连分散连接到阵列中的DFF单元。此外用户可配置IO单元提供来往于阵列的连接(通过超级全局,超级X,全局,X及中介总线)。IO单元也被安排在区域中-IO区域的节距要和阵列区域的节距匹配,每十个核心单元有四个IO单元。每一个IO单元也可以连接到四位的外围总线,它们围绕阵列走线。在器件的转角处用开关把外围总线划分为四个部分。它们可以被用作常规总线,或用作用于地址译码等的线—或总线。
超全局资源SG,SX提供顶级互连。超全局总线SG提供超级区域间,和往返于IO单元间的连接。超级X总线SX用来实现在超级全局总线间的90度转向,并且也用于连接IO单元。超级端口单元SPC提供超全局和全局资源层之间的连接。对于核心单元的每一行和每一列都有一条超全局线。每一条超全局线都跨越单一的超级区域,只能在超级端口单元处连接,或在位于阵列的边缘处的情况下往来于IO单元。超全局总线是承载长距离信号的最快的方法。
核心单元的每一行/列都有两个超级X总线。和超级全局总线一样,每一个超级X总线也跨越单一的超级区域,它只能在超级端口单元处连接,或者在IO单元处(对于在每一个阵列的超级区域)连接。此外,超级X总线连接到位于核心单元中的开关SXBS,由此使水平和垂直超级X总线可以连接到一起实现90度转向。转向开关位于每一个单元堆中(即每四个核心单元)。图2.2.A详细表示了在每一个单元堆中该开关的位置。超级X总线也可以用来跨越超级区域给信号布线(即类似于超级全局总线),但是由于开关的过量负载,这样作比使用超级全局总线资源慢。
关于超级X总线开关应该注意两点。首先,超级X总线开关的图形在跨越区域的边界处是连续的。这是一个很简单的事实,即区域由10×10个核心单元组成,但超级X总线的图形每四个核心单元重复。第二,图2.2.A表示了在核心单元2和3中的超级X总线开关。然而,为了在单元堆的四个核心单元之间均匀地分布RAM配置位,该开关物理上应位于核心单元1和2中。
图2.1.A所示的器件被划分成9个超级区域。在每一个超级区域之间有水平和垂直超级端口单元—核心单元的每一行和每一列一个超级端口单元。
图2.2.B以原理图的形式表示了超级端口单元可用的连接。水平和垂直超级端口单元具有相同的功能。每一个超级端口单元都需要24个可配置RAM位。
每一个I/O单元都可以连接到三行/列核心单元中的超级全局总线和两条超级X总线,或从其连出。由于每一个区域(即10个核心单元)有四个I/O单元,五分之一的行/列可以被连接到一个或两个I/O单元(所有其它行/列都只连接到一个I/O单元)。
每一个阵列区域(10×10个核心单元)的每一个侧边都有10个端口单元(参看图2.1.A)。一个区域之上和之下的端口单元称为垂直端口单元(由于它们处理垂直互连),每一个区域左边和右边的端口单元称为水平端口单元(由于它们处理水平互连)。端口单元用于区域布线资源(中介总线)和全局资源(全局和X总线)之间的连接。端口单元也提供相邻区域中中介总线之间的连接。在每一行/列中的所有6条中介总线都连接到端口单元(M1…M6)。主时钟和复位信号通过垂直端口单元分布。端口单元是对称的,仅当从一层连到另一层时加以缓冲。
图2.3.A表示垂直端口单元的连接,并表示出了区域和全局总线是如何连接的。区域之间的连接(即中介总线到中介总线,或X总线到中介总线)不用缓冲。端口单元成对排列,并与核心单元堆对齐。这是为了使端口单元在两列单元堆中访问中介总线。例如,图2.3.A中右边一列的中介总线M2可以利用在端口单元对的底部的交叉连接被连接到左边一列的中介,全局或X总线(即通过利用图2.3.A中左边端口单元中心的“A2”多路连接)。来自于相邻列的中介总线在该原理图中称为“M1P”或“M2P”。来往于全局布线层的连接(即通过“A3”和“C3”多路器来往于全局和X总线)在两个方向上都要被缓冲。在每个端口单元中心的“B”多路器允许在相邻的区域中有从M3-M3,M4-M4的两个直接的非缓冲的连接。四个主要的时钟/复位线通过垂直端口单元走线(两个时钟和两个复位)。另外的端口单元或者具有主时钟,或者具有复位多路器—它们给D触发器核心单元选择用于特定的时钟和复位线的来源。在时钟/复位多路器中还提供可编程反相和断开(tie-off)。主时钟/复位都可以通过“C3”和“C2”多路器从clk/rst多路器连接到该区域。第二时钟/复位通过“C3”和clk/rst多路器来自于全局总线。要求有30个配置RAM位来对每一个垂直端口单元编程。完整的原理图示于图2.3.B。
水平端口单元提供和垂直端口单元类似的资源,只有两点不同。首先,“B”多路器提供在M3和M4之间的交叉开关。在每一个水平端口单元中间的“B”多路器允许在相邻的区域中从M3-M3和M4-M4,或M3-M4和M4-M3有两个直接的非缓冲的连接,第二点不同是,在水平端口单元中没有分布时钟-复位信号。图2.3.C表示了水平端口单元的连接,图2.3.D是完整的原理图。
要求用28个RAM配置位对每一个水平端口单元进行编程。
端口单元是对称的,被指定来对该端口单元任一侧的区域进行来去的接口(顶端和底端用于垂直端口,左边和右边用于水平端口)。
然而,围绕着阵列边缘的周围只在一个侧边有端口单元阵列(IO单元在另一边)。因而在阵列的边缘使用缩减(cut-down)端口单元,以节省RAM配置位,减少总线的负载。
对于阵列的每一边,有四种不同的边缘端口单元。图2.3.E和2.3.H表示了每一个边缘端口单元的原理。
底端,左边和右边的边缘端口单元需要13个用于编程的RAM配置位。顶端的边缘端口单元需要17个RAM配置位(在这个单元中需要的多出位用于时钟/复位多路器)。
连接应该总是通过端口单元多路器形成(例如通过多路器A3和A2)从全局到中介总线。连接不应该在端口单元多路器的同一侧输入和输出(“bank-shots””)。例如G1不应该通过多路器A3连接到G2。这种规律的例外是中介总线可以用多路器A2和C2连接。到X总线的连接被缓冲驱动。例如,通过A1-A2使M连到X是不允许的,但是优选的布线是通过A1-A3使M连到X。
在图2.4.A中的器件表示用于该器件的一个区域的结构。在图2.4.A中,为了清楚起见,中介总线,全局总线和X总线仅表示出了一行/列。超级全局和超级X总线在图2.4.A中3没有表示出来,因为它们并不连接到区域级资源。局部互连提供从每一个核心单元的输出到它的八个最近的正交相邻单元的一个输入多路器的连接。局部互连是核心单元间最快速的连接。图2.4.B中表示了可利用的连接。局部互连不继续跨越区域和超级区域的边界。图2.4.B中所用的命名习惯是相对于源核心单元来命名目的核心单元。例如核心单元UU是从驱动单元向上两个的核心单元,B是向后一个的核心单元,FF是向前两个的核心单元。
核心单元的每一行/列都有六条中介总线(M1…M6)。中介互连用于区域内不可能用局部互连的连接,以及用于通过水平和垂直端口单元的区域内的连接。其中的四个也可以通过端口单元连接到全局资源。M1…M2和M5…M6全都可以通过端口单元连接到全局总线和X总线。M3…M4不能向上连接到全局层次的布线,而是用于在区域内的连接(利用在端口单元中的‘B’多路器)。参看节2.3.3(端口单元)。在每一个区域中,水平和垂直中介总线连接到每个核心单元的输入和输出多路器。每一个核心单元有两个输入多路器—其中每一个都能连接到三条中介总线。核心单元输出多路器能驱动六条中介总线,有12条中介总线,水平和垂直地贯通每一个核心单元。因此每一个核心单元只能连接到可得到的中介总线总个数的一半。为了补偿这一点,有分层的重复的中介总线连接图形跨越每一个区域。M1…M4的连接被排列成每个单元堆(2×2个核心单元)重复一次的图形,M5…M6在相邻的单元堆中交换位置。单元堆中的每一个核心单元的M5…M6的连接都是相同的,但是相邻单元堆的M5/M6连接反相(即M5的输入变成M6的输入,M6的输出变成M6的输出,反过来也是一样)。图2.4.C表示在单元堆中的中介总线的连接,其中。M5是输入,M6是输出。这被称为单元堆类型A。图2.4.D表示用于相邻单元堆中的中介总线连接(M6为输入,M5为输出),称为单元堆类型B。图2.4.E表示在一个区域中的单元堆类型A和B的排列。注意在两个类型的单元堆中M1…M4的连接是完全相同的。
每一个IO单元都可以被连接来往于核心单元的三行/列中的两条中介总线(M3/M4)。
核心单元是阵列中的基本功能块,每一个核心单元都可以被编程来实现二输入与非门,或者其它功能之一。每一个核心单元都具有同样的基本结构,表示在图2.5.A中。
每一个核心单元都包括两个输入多路器(7个输入(3个中介总线,4个局部总线)加接低(tie-Low)功能)输入交叉开关,在输入多路器间交换选定的局部互连对两个输入的可编程反相主要功能与非门可选功能块(提供一个或更多其它的功能,例如多路器或D触发器)中介总线输出多路器(连接到6条中介总线)X总线开关超级X总线开关(仅用于核心单元类型1和类型2)核心单元以2×2排列成单元堆,每一个单元堆都提供所有可利用的其它功能。在每一个单元堆中的三个单元都具有组合功能(即与非+异或和多路选择),以及在每一个单元堆中的第四个单元提供D触发器(即与非+D触发器)。通过来自于垂直端口单元的特定互连为D触发器(类型4)提供复位和时钟。如果需要的话,可以使每一个D触发器的复位端不起作用,复位使能端位于类型3的单元中,在4个核心单元之间使RAM位均匀分布。核心单元也包括SX和X总线开关。图2.5.B表示了在每一个单元堆中单元堆排列。
每一个核心单元都有两个输入多路器(A,B),每一个多路器都能从3个中介总线和4个局部连接输入。局部互连也能用交叉开关在A和B多路器间互换。参看图2.5.C。
在A和B两个输入多路器中都有下拉(pull-down)功能。当A和B输入多路器之一或两者都没使用时(即没有被选择的输入),它们各自的输出(““A OUT”和/或”“B/OUT”)都被拉低。为了清楚起见,该下拉器件在图2.5.C中没有表示出来。
输出多路器把每一个单元的输出向上连接到6个中介总线(3个垂直的,3个水平的)。如果不要求核心单元驱动中介总线,那么该单元的输出多路器就可以被用于把中介总线连接在一起。该核心单元输出多路器也可以被用来在垂直相邻的核心单元中对于二选一功能提供‘选择’输入。
从以上可以很明显地看出,核心单元提供阵列中的基本功能块,每一个核心单元都可以被编程,以实现二输入与非门,或实现一定范围内的其它功能之一。每一个核心单元都具有如图2.5.A所表示和所描述的基本相同的功能。这里也参考图2.5.B,2.5.C和2.5.D。核心单元类型1至3具有完全相同的功能资源。它们唯一的不同是超级X总线开关和复位使能逻辑的位置。图2.5.E表示了核心单元类型1至类型3的原理,但是不包括输入多路器和中介总线输出多路器。用两个RAM位提供A和B两个输入的可编程反相。两个另外的RAM位决定该核心单元的功能。在100处表示了到该核心单元的第三输入,它是用于二选一多路器的选择线。它来自于该单元堆中的垂直相邻核心单元(即对于类型3和类型4为上方的核心单元,对于类型1和类型2为下方的核心单元),参看图2.5.F。图2.5.D表示出选择线是如何从中介总线输出多路器产生的。这种安排意味着对二选一多路功能的选择线有两种布线方法。
第一种方法是直接来自于水平/垂直中介总线。单元堆中垂直相邻核心单元的中介总线输出多路器102用作输入多路器。多路器的选择可以来源于连接到该输出多路器的六个中介线之一。该核心单元仍然可以用作功能资源或布线资源,但是局限是它的输出多路器不再能使用-即其输出必须只能连到局部互连。
第二种方法是来自于布线单元的局部/中介互连。如果垂直相邻核心单元用作布线单元,那么多路选择线也可以源自于在核心单元A和B的输入多路器可得到的任何信号。该核心单元不再能提供功能资源或布线资源。
如果没有来自于垂直相邻单元的输出多路器到多路选择的附加的直接互连,则不可能以使准备形成第三输入的单元用于完全不同的功能或作为连线功能的方式形成三输入功能。
这样单元堆中至少一些单元功能可以具有多于双输入的功能,更明确地说具有三输入功能。具体来说三输入功能是一个多路器,第三输入是用于多路器的选择线。第三输入是由来自于相邻单元的资源驱动的。该第三输入的来源是中介总线输出多路器,可以很方便地来自于相邻单元。这个资源可以和相邻核心单元的输出隔离开。该相邻核心单元的主要功能由此通过局部互连驱动输出。
现在参看图2.5.G,该图说明具有D触发器功能的类型4的单元的电路。如果需要的话,该D触发器可以配置成异步复位,其时钟通过垂直端口单元来自于主要或第二时钟。该原理图不包括输入多路器和中介总线输出多路器。A和B输入端都提供可编程反相。连到该D触发器的D-输入之前有一个多路器单元。如果把该单元配置成简单的D触发器,那么二选一多路器就可以用作选择D触发器的输入是来自于A还是B核心单元输入多路器的开关(即和下拉一起利用选择输入的可编程反相)。
为了能实现如上所述,端口单元必须与核心单元阵列的间距匹配。这就是说垂直端口单元必须有和核心单元相同数量的可编程位。对于上面描述的结构,每一个核心单元都有26个RAM配置位,它们在物理上被安排成2行×13的结构,单元逻辑位于它们之间。核心单元的布局限制了端口单元的尺寸。垂直端口单元用来匹配核心单元的位数必须是13的倍数。计算芯片的尺寸时,排列成2行×13的26位RAM实际上是极大的。水平端口单元也必须与核心单元的RAM行数(即2行)间距匹配,而在一行中的位数并没有理论上的限制。然而水平端口单元的宽度(即位数/行数)必须被限制,以使芯片的总宽度减至最小。对于所建议的结构,2行×12位的宽度是合适的。这在图2.3.I中作了说明。
核心单元的八个RAM位所处的位置通常要使其能与周围八个最近的垂直相邻单元形成局部互连。然而在本实施方式中,由于局部互连并不连续跨越区域和超级区域的边界,因而围绕区域边缘的核心单元具有2或4个多余的RAM位,它们通常用作局部互连的输入。由于在区域角落处的核心单元的垂直和水平局部互连是多余的/被去掉了,因此有4个多余的RAM位。其它边缘单元只减少2位。这些多余位被端口单元借用,增加了每一个端口单元可用的RAM位数。在图2.3.I中图示说明了这一点。应该可以理解,在图2.3.I中重新安排的多余位的位置仅仅是为了说明起见,可能并不是最后实施方案中被借用位的实际位置。然而,应该可以理解,所借用的位物理上仍然存在于该核心单元中,它们的输出要连接到端口单元。以这种方法利用RAM位使该端口单元具有更强的功能和/或连通性,因而提高了阵列的效率。这样,这些物理上位于一个单元中,但是没被该单元使用的可编程位可以用于相邻的单元中。被借用了编程位的单元的功能仍然完全独立地配置。
权利要求
1一种半导体集成电路,包括形成有多个单元的面积,每一个单元都具有多种资源,包括存储/编程资源和功能资源,根据单元的类型,功能资源至少包括布线资源和逻辑功能资源之一,每一个单元中只具有有限数量的资源,这里所作的改进包括增加单元可利用的资源,方法是利用至少一个其它单元的资源,但并不影响施主单元功能的独立性。
2如权利要求1所要求的半导体集成电路,其中所增加的资源是布线资源。
3如权利要求2所要求的半导体集成电路,其中该布线资源给该单元提供另外的输入。
4如权利要求1,2或3所要求的半导体集成电路,其中资源增加的单元是可以执行逻辑功能的单元。
5如权利要求4所要求的半导体集成电路,其中有多个逻辑电路单元,它们被安排成堆的形式,每个堆的单元至少有一个简单共同的的逻辑功能,和至少一个第二功能,并且其中有一些不同的第二功能,每一个不同的第二功能每一个堆至少有一个。
6如权利要求5所要求的半导体集成电路,其中共同的逻辑功能是两输入与非门功能。
7如权利要求5或6所要求的半导体集成电路,其中的第二功能是大于两个输入的功能。
8如权利要求7所要求的半导体集成电路,其中的第二功能有三个输入。
9如权利要求7或8所要求的半导体集成电路,其中的第二功能是二选一多路器。
10如权利要求2-9中任何一个所要求的半导体集成电路,其中提供增加的资源的单元仍然能执行完全独立的功能。
11如权利要求5-10中任何一个所要求的半导体集成电路,其中布线资源包括在同一个堆中的两个单元间延伸的信号通路,以及包括从一个单元的中介总线输出多路器到其它单元的两个输入多路器的三输入门之一的走线(column)。
12如权利要求1所要求的半导体集成电路,其中所增加的资源是存储/编程资源。
13如权利要求12所要求的半导体集成电路,其中未被一个单元使用的编程位被相邻单元使用。
14如权利要求12或13所要求的半导体集成电路,其中大多数单元包括排列成矩阵阵列形式的逻辑单元,它们被分成多个区域,每一个区域都被端口单元包围着,端口单元用它们的编程位提供把该逻辑单元与中介或全局信号通路连接在一起的布线功能,具有编程位的逻辑单元通过直接(局部)连接通路可选择性地控制与有限个数的其它单元的连接,该端口单元在那里得到来自于逻辑单元的增加的资源。
15如权利要求14所要求的半导体集成电路,其中端口单元接受来自于相邻核心逻辑单元的两个可编程位。
16如权利要求14所要求的半导体集成电路,其中有水平和垂直端口单元,与该水平和垂直单元二者相邻的在该区域角落处的逻辑单元提供四个编程位,相邻的水平端口单元和垂直端口单元各两位。
17一种半导体集成电路,包括形成有多个逻辑电路的面积,该面积定义了被划分成区域的单元矩阵阵列,阵列中有多个区域,每个区域有区域端口电路,该面积还包括具有连线层次的分层布线结构,其中连续层次的布线资源包括区域互连,包括至少把一些单元和另外一些单元连接起来的局部直接连接通路,以及从区域端口电路延伸出、至少和区域中的一些单元可选择性地连接的中介连接通路;以及全局连接通路,它们和每一个区域的区域端口电路可以选择性地进行连接;以及进一步还包括一个或更多另外的连续层次的布线资源,它们具有各自的端口电路,用以把那层的布线资源同前一层的布线资源连接起来。
18如权利要求17所要求的半导体集成电路,其中每个连续层次的布线资源都跨越更多数量的区域。
19如权利要求17或18所要求的半导体集成电路,其中每一个更高连续层次的全局布线资源包括的布线数量都更少。
20如权利要求17,18或19所要求的半导体集成电路,其中包含区域组成的矩阵阵列。
21如权利要求17-20中任何一个所要求的半导体集成电路,其中对于把单元按行和列排列的电路来说,区域端口电路由分别在水平和垂直方向上延伸的水平和垂直端口单元组成。
22如权利要求21所要求的半导体集成电路,其中每一层布线资源都有一个或多个端口电路,每一个端口电路都通过用于该层布线资源的信号连接通路来访问前一层的多个端口单元。
23如权利要求17-22中任何一个所要求的半导体集成电路,其中有多个到布线资源的每一个另外的连续层次的信号连接通路。
24如在权利要求22基础上的权利要求23所要求的半导体集成电路,其中有多个在水平方向延伸的信号连接通路,以及多个在垂直方向延伸的信号连接通路。
25如权利要求24所要求的半导体集成电路,其中对于单元的每一行和每一列有多个水平和垂直的信号连接通路。
26如权利要求25所要求的半导体集成电路,其中对于每一个单元至少有一个可连接的水平和垂直的信号连接通路。
27如权利要求17-26中任何一个所要求的半导体集成电路,其中有多个由区域组成的矩阵阵列,每一个都定义了超级区域,每一个区域都有多个全局连接通路和用于每个区域的区域端口电路通信,并跨越该超级区域,在用于第一层布线资源的端口电路之间延伸,以下称为超全局层,所述的第一层布线资源可以选择性地与用于多个超级区域的端口电路进行连接。
28如权利要求27所要求的半导体集成电路,其中单元组成单元堆,每个单元堆包含2×2个单元的矩阵阵列,每个区域又包括单元堆的矩阵阵列。
29如权利要求27或28所要求的半导体集成电路,其中用于每一个超级区域的超级端口单元提供在跨越相邻超级区域之间或从超级全局连接到用于超级区域的全局连接的可选择性连接。
30一种半导体集成电路,基本上如附图1a或1b或2.5G或2.5I或如这些附图和其它附图的一个或多个的组合所示及如参照他们所述。
全文摘要
一种半导体集成电路,包括由诸多单元(CC)组成的面积,该每一个单元都具有多种资源,包括存储/编程资源和功能资源。根据单元的类型,功能资源至少包括布线资源和逻辑功能资源之一。每一个单元中只具有有限数量的资源。根据本发明的一个方面,一个单元可用的资源可以被增加,方法是利用至少来自于一个其它单元的资源,但并不影响该施主单元功能的独立性。在这里也描述了一个安排成连续层次的分层布线结构。单元被排列成划分为区域的单元矩阵阵列。有多个排列成阵列的区域及用于每一个区域的区域端口电路。根据本发明的另一个方面,连续层次的布线资源包括:由至少把一些单元与其它一些单元连接起来的局部直接连接通路,以及从区域端口电路延伸、至少可以与区域中的一些单元选择性地连接的中介连接路组成的区域互连;可以选择性地与每一个区域的区域端口电路连接的全局连接通路;以及进一步包括一个或更多具有各自的端口电路的连续层次的布线资源,它们把那个层次的布线资源同前一层布线资源连接起来。
文档编号H01L27/04GK1203706SQ9619871
公开日1998年12月30日 申请日期1996年10月1日 优先权日1995年9月30日
发明者罗杰·梅, 安德鲁·杜赫斯特, 斯蒂芬·查尔斯·比维斯, 保罗·罗伯特·邦威克, 亚当·戴维·罗斯, 戈登·斯特林·沃克, 伊恩·查默斯·巴顿 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1