CN103812502A - 具有冗余电路的可编程集成电路 - Google Patents
具有冗余电路的可编程集成电路 Download PDFInfo
- Publication number
- CN103812502A CN103812502A CN201310535221.4A CN201310535221A CN103812502A CN 103812502 A CN103812502 A CN 103812502A CN 201310535221 A CN201310535221 A CN 201310535221A CN 103812502 A CN103812502 A CN 103812502A
- Authority
- CN
- China
- Prior art keywords
- circuit
- row
- bypass
- route segment
- logical
- 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
- 230000002950 deficient Effects 0.000 claims abstract description 25
- 230000015654 memory Effects 0.000 claims description 33
- 230000007547 defect Effects 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 27
- 238000004519 manufacturing process Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 230000010354 integration Effects 0.000 claims description 3
- 230000008439 repair process Effects 0.000 abstract description 11
- 238000013461 design Methods 0.000 description 77
- 238000003860 storage Methods 0.000 description 11
- 238000012731 temporal analysis Methods 0.000 description 11
- 238000000700 time series analysis Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000011960 computer-aided design Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000002609 medium Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000004020 conductor Substances 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000005728 strengthening Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000011031 large-scale manufacturing process Methods 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17764—Structural details of configuration resources for reliability
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
提供了具有冗余电路的可编程集成电路,即具有可修复逻辑区域的集成电路。各连接区域可被组织为预定数量的逻辑电路行,其中一个行用作备用行。可修复区域可以在正常模式或者冗余模式下操作。在正常模式,备用行未激活。当逻辑区域行中的一个行包含缺陷电路时,该连接区域在冗余模式下操作使得该故障行下面的各行向下移位一行并且该备用行被引入以充当最后行来修复该区域。各行可以包括复用器和相关联的驱动器,该驱动器驱动从一个行到下一个行的对应的垂直路由段。各垂直路由段具有通过配置对应的复用器来被其紧前一行中的逻辑等效垂直导线驱动的选项。
Description
本申请要求2012年11月5日提交的美国专利申请No.13/669,244的优先权,其全部内容通过引用合并于此。
技术领域
本发明涉集成电路,更具体地涉及可编程集成电路。
背景技术
可编程集成电路包含可编程逻辑,其可以被编程以实现期望的定制逻辑设计,因此有时称为可编程逻辑装置(PLD)。可编程逻辑装置集成电路也可以包含冗余电路。冗余电路可以用于修复包含缺陷的可编程逻辑装置,因而提高产量。
可编程逻辑装置通常被编组为逻辑区域。可编程逻辑装置上的逻辑区域的每个包括多个逻辑行和一个备用的逻辑行。当逻辑区域中的一行被确定为有缺陷时(假定故障行不是该备用行),则逻辑区域中的备用行被引入使得来自备用行到紧接着故障行下面的行的每个行代替紧接着该行的行(即,故障行下面的每个行被紧接着该行之下的行替代)。例如在共同受让的美国专利No.6,965,249中和美国专利No.7,180,324中描述了这种类型的基于行的冗余方案,在此其整体通过引用并入。
现有的基于行的冗余方案经常依靠使用垂直导线来将各逻辑区域中的不同行相互连接。每个垂直导线通常在多个行延展并且具有连接到第一目标行或第二目标行中的电路的远端。如果给定的垂直导线不经过损坏行,则给定的垂直导线将连接到第一目标行。如果给定的垂直导线经过损坏行,则该损坏行下面的全部路由连接将向下移位一行,使得给定导线行连接到第二目标行。使用在多个行延展并且直接连接到两个目标行中的路由电路的垂直导线实现的冗余方案要求不期望的导线量和面积开销量。
发明内容
提供可编程集成电路,其包括:多个可修复的逻辑区域。各可修复逻辑区域可以具有正常的逻辑电路行和备用逻辑电路行的组。可修复区域中的各逻辑电路行可以包括:旁路电路(例如,复用电路)和相关联的驱动器,该驱动器用于驱动信号到对应的垂直路由段上。
各垂直路由段(有时称为垂直信号路由路径)可以具有耦合到逻辑电路行中相应一行的第一端子和耦合到逻辑电路行中的相邻一行的第二端子。正常行和备用行的组中的各行中的逻辑电路的量可以大致相等。所述逻辑电路的备用行可以在给定高度内来形成。各垂直路由段可以具有小于或者等于备用行的给定高度的长度。
各可修复逻辑区域可以在正常模式或者冗余模式下操作。如果可修复逻辑区域中的正常行没有缺陷,则该可修复区域可以在正常模式下操作(即,通过将该备用行设置为空闲模式)。如果可修复逻辑区域中的超过一个正常行包含缺陷电路,则该逻辑区域可以被标记为不可修复并且集成电路可以被放弃。如果仅一个正常行包含缺陷电路,则可以通过在冗余模式下操作该逻辑区域来修复该逻辑区域。
在冗余模式下,旁路电路可以被配置为将备用行切换到使用。具体地,可以使用故障行中的旁路电路通过被故障行接收的另一个垂直路由段驱动从缺陷行输出的垂直路由段。故障行中的旁路电路必须具有功能以适当地路由信号通过缺陷行。如果通过故障行中的旁路电路和相关联的驱动器也有缺陷,则可编程集成电路应被放弃。可以使用基于熔丝的存储元件来配置故障行中的旁路电路,该存储元件被选择性地熔断熔断使得旁路电路被永久地设置为将缺陷行旁路。
逻辑区域中的各正常行和备用行可以包括:复用器,该复用器具有耦合到对应的垂直路由段的至少第一输入端和耦合到从非相邻行路由的至少一个其它垂直路由路径的第二输入端(例如,其它垂直路由路径可以具有比所述备用行的给定高度更大的长度并且因此可以延展超过一个行)。
在这种类型的可编程装置的设计期间,可以使用存储在非瞬时计算机可读存储介质中的计算机辅助设计(CAD)工具来模拟可编程装置的性能。具体地,可以期望对关键信号路由路径进行时序分析。关键信号路由路径可以发源于可编程装置上的路径区域中的一个逻辑区域中的给定逻辑行,其中关键路由路径由多个垂直路由段形成。
在第一情形下,其中关键路由路径是区域内关键路由路径(即,其中关键路由逻辑仅仅在所选择的一个逻辑区域内携带信号),可以使用CAD工具来识别将呈现最大(最大)数量的垂直导线路由段交叉的相邻行对分开的关键行边界。CAD工具可以接着通过确定关键路由路径的长度计算针关键路由路径的路由延迟(例如,通过计数关键路由路径中夹着的垂直路由段和水平路由段的数量)。通过向路由延迟加上与关键路由路径交叉关键行边界的次数成比例的附加垂直路由延迟(例如,将最差情况情形考虑在内,其中紧接着关键行边界的行是缺陷行),CAD工具可以接着计算针对关键路径的最差情况路由延迟。
在另一个适当情形下,其中关键路由路径是区域间关键路由路径(即,其中关键路由路径携带从一个逻辑区域向另一个逻辑区域携带信号),CAD工具可以用于分别计算包括该关键路由路径的各个逻辑区域中的针对关键路由路径的最差情况路由延迟。换句话说,可以使用CAD工具来识别关键路径跨过的每个逻辑区域100中的关键行边界处的垂直导线交叉的数量。
每次关键路径跨过关键行边界,可以引发垂直路由延迟的附加单位,以将跟随该关键行边界的行有缺陷的最差情况情形考虑在内。因此可通过分别计算针对包括关键路径的各区域的最差情况延迟,接着随后将分别计算的延迟相加以获得针对区域间关键路径的总最差情况延迟,来确定最差情况时序延迟。按此方式使用CAD工具收集的信息可以用于确定针对关键路由路径的最差情况路由延迟是否满足性能准则。
从所附的附图和以下详细描述中,本发明的其它特征、实质和各种优点将变得更明显。
附图说明
图1是根据本发明的实施例的示例性的可编程集成电路的图。
图2是根据本发明的实施例的具有多个可修复逻辑区域的示例性的可编程集成电路的图。
图3是根据本发明的实施例的在正常模式下操作的可修复的逻辑区域的图。
图4是根据本发明的实施例的在冗余模式下操作的可修复的逻辑区域的图。
图5是例示根据本发明的实施例的用于制造、测试和封装可编程集成电路的步骤的流程图。
图6是例示根据本发明的实施例的系统环境的图,其中可以使用逻辑设计系统来配置可编程集成电路。
图7是根据本发明的实施例的可编程集成电路中的用于产生实现定制电路设计的配置数据的逻辑涉及系统的图。
图8是例示可以在根据本发明的实施例的逻辑设计系统中使用的计算机辅助设计(CAD)工具的图。
图9是根据本发明实施例的设计定制逻辑电路并进行时序分析的例示步骤的流程图。
图10是示出根据本发明的实施例的示例性的区域内关键路由路径的图。
图11是例示根据本发明的实施例的图10的关键路由路径相关联的最差情况情形的图。
图12是例示根据本发明的实施例的区域间关键路由路径相关联的最差情况情形的图。
图13是根据本发明实施例的进行时序分析涉及的例示步骤的流程图。
具体实施方式
本发明的实施例涉及具有冗余电路的集成电路。集成电路可以是任何适当类型的集成电路,诸如微处理器、专用集成电路、数字信号处理器、存储器电路或者其它集成电路。如果期望,集成电路可以是包含可编程电路的可编程集成电路。将总体上在集成电路的范畴内描述本发明,诸如可编程逻辑装置(PLD)集成电路作为示例。
图1是示例性集成电路,诸如可编程集成电路10。可编程装置10可以包括用于经由输入-输出针脚14将信号驱动离开器件10和用于从其它装置接收信号的输入-输出电路12。诸如全局或者局部垂直和水平导线和总线这样的互联资源16可以用于在装置10上路由信号。互联资源16包括导线和各个导线之间的可编程连接,因此有时称为可编程互联器16。
可编程装置10可以包括可以被配置为进行定制逻辑功能的可编程逻辑18。可编程逻辑18可以包括组合和顺序逻辑电路。可编程互联器16可以被认为是可编程逻辑18的一种类型。
装置10还可以包含可编程存储器元件20。使用针脚14和输入-输出电路12可以将存储器元件20加载配置数据(也称为编程数据)。在加载后,存储器元件可以均提供对应的静态控制信号,该信号控制可编程逻辑18中的关联的逻辑部件的操作。在典型情形下,加载后的存储器元件20的输出被施加到可编程逻辑18中的金属氧化物半导体晶体管的栅极以将特定晶体管接通或者关断,并因而配置可编程逻辑18中的逻辑并且路由路径。可以按此方式控制的可编程逻辑电路元件包括通过晶体管、复用器的部分(例如,用于形成可编程连接器16中的路由路径的复用器)、查找表、逻辑阵列、各种逻辑门等。
可以使用任何适当的易失性和/或非易失性存储器结构来实现存储器元件20,诸如随机存取存储器(RAM)单元、熔丝、反熔丝、可编程只读存储器存储器单元、掩模编程和激光编程结构、这些结构的组合等。因为存储器元件20在编程期间加载了配置数据,存储器元件20有时称为配置存储器、配置RAM(CRAM)或者可编程存储器元件。
可以使用任何适当架构来组织装置10的电路。作为示例,可以按照更大的逻辑器件区域的行和列组织装置10的逻辑,其中每一个区域包含多个较小的可编程逻辑器件区域。较小的逻辑器件区域例如可以是有时称为逻辑器件元件(LE)的逻辑器件的区域,每一个元件包含查找表(LUT)、一个或者更多个寄存器和可编程的复用器电路。较小的区域还可以是例如有时称为自适应逻辑器件模块(ALM)的逻辑器件的区域。每一个自适应逻辑器件模块可以包括加法器的对、关联寄存器的对和次载波或者其它共享的组合逻辑器件的块(作为示例)。更大的区域可以例如是包含多个逻辑元件或者多个ALM的逻辑阵列块(LAB)。在图1的示例中,示例性的逻辑区域22(其例如可以是LE或者ALM)在图1中的可编程逻辑18的更大的区域中的一个示出(其例如可以是逻辑阵列块)。在典型的可编程逻辑装置10中,可以存在数百或者数千个更小的逻辑区域22。图1所示的逻辑区域22仅仅是示例性的。
在装置编程期间,配置数据被加载到装置10中,其配置可编程逻辑区域22和可编程逻辑区域18,使得它们的逻辑资源对它们的输入执行期望的逻辑功能并且产生期望的输出信号。例如,CRAM单元加载适当的配置数据比特以在装置10上配置加法器和其它电路以实现期望的定制逻辑设计。
装置10的资源,诸如可编程逻辑18可以被可编程互联器16相互连接。互联器16通常包括垂直和水平导体。这些导体可以包括在基本上全部装置10上延展的全局导电线、在装置10的一部分延展的诸如二分之一线或者四分之一线的部分全局线、特定长度的交错线(例如,足以将多个逻辑阵列块或者其它这种逻辑区域相互连接)、更小的局部线、或者任何其它适当互联资源排列。如果期望,则器件10的逻辑器件可以以更多的级别或者层排列,其中每一个更大区域相互连接以形成逻辑器件的再大部分。其它器件排列可以使用不按行和列排列的逻辑器件。
除了图1所示的可编程逻辑的相对大的块,装置10通常还包括与装置10上的可编程互联器、存储器和输入-输出电路相关联的一些可编程逻辑。例如,输入-输出电路12可以包含可编程输入和输出缓冲器。互联器16可以被编程为将信号路由到期望的目的地。
可编程集成电路10可以具有冗余电路。可以在制造期间修复具有冗余电路的集成电路。
使用复杂半导体制造技术制造集成电路。当产生集成电路时的一个质量因数是电路的制造产量。极端复杂或者在尖端工艺制造的电路一般比现有的电路设计更难以没有缺陷地生产。结果,新的和更复杂的电路的制造产量有时比老的设计的制造产量低。当时设计高性能芯片时,产品有时被负面影响,因为这种类型的装置包含更小的线宽度和更复杂的结构,使得它们更难以制造。
较差的制造产量负面影响集成电路设计的利润率。在一些情形下,产量如此之低以至于大规模生产不可行。因此,期望每当可能增强制造产量。这使得否则没有利润的集成电路制造方面更经济。增强的产量可以提高已经赢利的集成电路的利润率。
尽管每当可能增强制造产量是有益的,但是不期望在牺牲性能或者管芯大小的情况下这样做。由于较差的功耗和较差的开关速度,通过使用增加管芯大小或者较不强大的制造技术实现的产量的增加在市场上可能不能够接受。然而,增加管芯大小增加成本,这会抵消来自提高的产量的益处。
一种方式提高制造产量并且维持可接受的性能涉及提供集成电路,诸如具有冗余电路的集成电路10。在装置制造之后,新制造的集成电路可以被测试。如果检测到缺陷,则集成电路10上的电路可以被配置为旁路缺陷。在这样做时,备用电路可以被切换到使用代替被旁路的缺陷。
这种类型的冗余方案可以帮助提高制造产量。否则需要废弃的集成电路10可被回收利用并且销售给消费者。修复处理不需要对装置性能负面影响,所以修好的装置可以像没有检测到缺陷的装置一样操作。通常在给定的集成电路10上存在有限数量的缺陷,因此通常不必要设置大量的冗余电路。因为仅仅设置了相对小量的冗余电路,和设置冗余相关联的增大管芯面积和性能牺牲通常被从实现增强的制造产量得到的经济效益超越。
图2示出根据本发明的实施例的具有冗余电路的集成电路10。如图2所示,集成电路10(例如,可编程逻辑装置集成电路)可以具有被组织为多个可修复区域100的可编程逻辑电路。各可修复区域100可以例如包括N行正常逻辑电路106(即,第一正常行106-1,第二正常行106-2,...,第N正常行106-N)和一个备用行106’。作为示例,各行106可以包括多个LAB,专用乘法器块、嵌入的随机存取存储器和其它控制电路。在可修复区域100中的(N+1)个行中的每个行中设置的可编程逻辑的量和类型可以是相同的用于支持冗余方案。备用行106'可以一般向可修复区域100的边缘形成。在图2的示例中,备用行106'可以被定位在各可修复区域100的底部。
可修复区域100可以在正常模式和冗余模式操作。当区域100中的全部正常行106能够正确起作用时(即,当行106-1,106-2,...,和106-N不包含缺陷电路时),区域100被设置在正常模式,而备用行106'被切换停用(即,在正常模式下,N个行106'可被配置为进行期望的逻辑功能并且备用行保留未激活)。
当区域100中的一个正常行106包含缺陷时(即,当行106-1,106-2,...,和106-N中的一个行包含缺陷电路时),通过将故障行切换停用并且引入备用行106'以对区域100进行行修复,区域100可以被设置为冗余模式。例如,考虑其中给定可修复区域100包含64个正常行106和一个备用行106'并且第11行包含制造缺陷(即,行106-11包含缺陷电路)的情形。在这个情形下,前十行106(行106-1,106-2,...,和106-10)不改变,而给定区域100中的故障行下面的剩余行被向下移位一个使得故障行被旁路。换句话说,行106-12将用作损坏行106-11的替代,并且各随后行将被紧接着该行的行代替并且备用行106'用于代替106-64。
这个示例仅仅是例示。备用行106'可以用于对包括至少一个故障行的任何大小的区域100进行修复。如果期望,则各可修复区域100可以包括一个以上备用行106'以提供对包括一个以上损故障行的区域100进行修复的能力。具有带有备用行的可修复区域100的装置10被称为实现行冗余。一般地,行冗余和列冗余配置可互换,因为当诸如电路10这样的电路旋转90度时行冗余方案变为列冗余方案。行冗余方案有时在此作为示例来描述。
沿着同一行排列的不同的可修复区域100可以经由可编程的区域间互联路径102通信,而沿着同一列排列的不同的可修复区域100可以经由可编程的区域间互联路径104通信。路径102和104可以形成如结合图1所描述的互联资源16的一部分。一般地,装置10可以包括沿着任何适当配置排列的任何数量的可修复区域100。
可修复区域100中的各行106可以包括可配置的路由电路100和可编程逻辑电路24(例如参见图2)。可以使用来自至少一个用户可配置非易失性存储器元件20(例如,加载了配置数据的CRAM单元)和/或来自至少一个非易失性存储器元件21(例如,熔丝、反熔丝、电可编程只读存储器元件等)的静态控制位来控制可配置的路由电路100。路由电路110可以包括用于经由路径102沿着水平路由路径114(有时称为“H”线)路由和驱动数据和控制信号并且用于从一个行到另一个行或者在单独的区域100之间经由路径104沿着垂直路由路径112(有时称为“V”线)路由和驱动数据和控制信号的开关电路和驱动器电路。
在路由电路110接收并且被路由电路110输出的数据中的至少一些和控制信号可以被馈送到同一行内的关联的逻辑电路24。(N+1)个行的每个行中的逻辑电路24可以包括任何适当数量的可配置电路,诸如通道晶体管、逻辑门(例如,逻辑NAND门、逻辑NOR门、反相器等)、开关电路、复用电路、顺序和组合逻辑电路、查找表(LUT)和排列为块的存储部件(例如,寄存器)有时称为逻辑阵列块(LAB)、逻辑元件(LE)、自适应逻辑模块(ALM)或者其它适当逻辑区域部分。
图3示出本发明的一个适当实施例,其中将信号从一个行路由到另一个行的垂直导线具有限制于单个备用行的高度的长度。如图3所示,可修复区域100包括(N+1)个相同逻辑行(例如,R1,R2,R3,...,RN和备用行)。各行可以包括垂直线(V-线)路由输入复用器150、与复用器150关联的驱动器152、另一个路由输入复用器160、与复用器160关联的驱动器162和其它路由电路。复用器150和160和关联的驱动器可以被认为是路由电路100(图2)的一部分。
具体地,复用器150可以具有经由耦合到前一行中的驱动器152的输出端的垂直路由路径154接收信号的第一输入端、可操作用于接收用户信号的第二输入端、从关联的存储器元件接收静态控制位的控制输入端和耦合到对应的驱动器152的输出端。驱动器152可以用于驱动被路由到随后行的另一个垂直路由路径154,图3的垂直路由路径154可以等效于图2中引入的V线,并且可以具有等于或者小于可修复区域100中的单个行的高度H的不中断的物理长度。夹在相邻行的对中的两个相继V线路由输入复用器150之间的各垂直路由导线154(有时称为垂直路由“段”)具有比单个备用行(电路的备用行可以在行高度H内形成)的行高度H更短的长度。换句话说,各路由段154具有耦合到区域100中的多个行的相应行中的电路的第一端并且具有耦合到该区域100中的多个行的相邻行中的电路的相对第二端(例如,每个垂直路由段154将在相邻行中形成的复用器150耦合到一起)。
复用器160可以具有还经由耦合到前一行中的驱动器152的输出端的垂直路由路径154接收信号的输入端、使用来自美国专利No.6,965,249和美国专利No.7,180,324(作为示例)中描述的其它冗余方案中的一种的更长的垂直路由导线而耦合到具有比路径154的长度基本上更长的长度的垂直路由路径164(即,跨过单个行106以上的垂直路由路径164)的附加输入端、以及耦合到对应的驱动器162的输出端。驱动器162可以用于将信号驱动到该行内的逻辑电路24上、水平路由线114(参见图2)、其它垂直路由线、输入-输出总线线路或者其它适当可编程电路。
给定区域100内的路由输入复用器150和160不限于经由该区域内的垂直导线接收数据和控制信号。在图3的示例中,第一行R1中的复用器150可以将其第一输入端耦合到从不作为装置10上的区域100的一部分的其它电路路由的垂直导线154'。类似地,区域100的顶部行的一个行中的路由输入复用器160可以具有耦合到从装置10上的该区域100外部的其它部件路由的垂直导线164'的输入端。
图3例示当区域100中的正常行R1-RN都不包含制造缺陷时区域100在正常模式操作。在正常模式下,备用行不被使用并且可以可选地被断电以节省电力。可以利用从用户配置的存储器元件20(例如,加载了配置数据的存储元件)提供的静态控制位控制在剩余N个行中的各路由输入复用器150,以将来自其第一输入端的信号路由到其输出端或者将来自其第二输入端的信号路由到其输出端。
如图3的加粗路径所示,行R1中的复用器150可以被配置为将来自其第二输入端的用户信号路由到其输出端,使得用户信号被经由关联的驱动器152驱动在对应的垂直路由段154上。这些信号接着经由段154被馈送到随后的行R2以便进一步处理。总体上,在正常模式下在垂直导线路由输入复用器150的输出端提供的信号可以被随后行中的复用器160接收以便进一步路由(假定随后行不是备用行),并且随后行中的复用器150可潜在地被用户配置以将来自第二输入端的用户信号路由到其输出端。
图4示出当区域100的行R1-RN中的一个行包含缺陷电路时在冗余模式下操作的可修复区域100。在冗余模式期间,损坏行被旁路并且备用行被切换到使用。如图4的示例中所示,行R2被确定为损坏行。结果,诸如熔丝21这样的关联的非易失性元件可以是选择性地熔断使得R2中的垂直行路由输入复用器150被永久设置为将来自其输入端的信号路由到其输出端。R2中的关联的驱动器152可以接着将这个输出信号驱动到对应的垂直路由段154,垂直路由段154被路由到行R3。换句话说,当垂直路由导线154到达损故障行时,该进入的垂直路由导线被短接到损坏行中的等效垂直路由导线并且路由出到紧接着损坏行下方的起作用的行。故障行(即,行R2)中的复用器160、逻辑电路24和其它输入路由电路可以被切换停用或者可选地未激活以降低功率消耗。在这个示例中,复用器150、驱动器152和关联的垂直路由导线必须没有制造缺陷以使得这个旁路方案成功操作(例如,故障行中的复用器150、驱动器152和关联的垂直路由线必须仍能够正确传播信号以便装置10被认为可修复)。
如箭头190所指示的,故障行下面的各连续行可以被向下移位一个,使得各向外垂直导线154被立即在前的行中的逻辑等效垂直导线154替代(例如,使得行R3,R4,...,RN和备用行用于替代R2-RN,如果行R2不是有缺陷的则R2-RN将被使用)。行的移位可以对装置10的用户不可见,因为用户仅仅关心在区域100中存在N个起作用的逻辑行。按照此方式在缺陷行中配置复用器150可因此用于有效地旁路有缺陷的行,通过将损故障行下面的各行移位一行使得每个移位后的行用于替代立即在移位行上面的行。复用器150因此有时被称为旁路电路。
图4的示例仅仅是示例性的,其中垂直导线154“向下游”携带信号(即,从R1到R2,从R2到R3以此类推)。在其它适当排列中,区域100可以包括附加复用器150和用于“向上游”驱动信号(即,从备用行到RN,从RN到RN-1以此类推)的关联的驱动器152。在下游垂直路由路径中,每个垂直导线应具有被其紧接着上面行中的逻辑等效导线驱动的选项,而在上游垂直路由路径中,每个垂直导线应具有被立即下面的其逻辑等效垂直导线驱动的选项。图4的示例例示仅仅下游垂直路由电路的一个集合。一般地,装置上的各区域100可以包括下游垂直路由电路的一个以上的集合和上游路由电路的一个以上的集合。
图5是在识别具有缺陷电路的管芯并且确定是否修复故障管芯中涉及的示例性步骤的流程图。在步骤200,可编程集成电路10可以在制造时在半导体加工设施作为集成电路管芯的一部分。在步骤202,管芯10可以被针对缺陷进行测试以确定每个可修复区域100中的损故障行的数量。
在管芯10上的至少一个可修复区域100包含一个以上的损故障行的情形下,该管芯10被标记为不可修复并被放弃。在管芯10上的各可修复区域100包含一个以上破损行的情形下,该管芯10是不可修复的并且处理可以进行到步骤208。
在步骤208,管芯10可以被测试以确定可修复区域100的每个区域中的损故障行中的复用器150、驱动器152和关联的垂直路由线(有时总称为旁路路由电路)仍正常起作用。如果损故障行中的旁路路由电路有缺陷(即,如果旁路路由电路能够从前一行向后一行传播信号),则该管芯10被标记为不可修复并且应被放弃。如果损故障行中的旁路路由电路没有缺陷,则该管芯10是可修复的并且处理可进行到步骤212。
在步骤212,适当熔丝元件21可以被熔断使得损坏行中的复用器150被永久设置为旁路模式(例如,使得损坏行中的垂直路由段154被紧接着该损坏行前一行中的其逻辑等效垂直导线驱动)。
在步骤214,装置10可以被划片并且封装为单独的集成电路部件接着运输到客户。客户可以接着通过向装置10加载将装置10配置以执行期望逻辑功能的用户配置数据来配置装置10。从客户的角度,装置10上的各逻辑区域100包括N个起作用的行(例如,客户不关心哪个行损坏并且被旁路,如果存在,只要存在N个可用行的可编程逻辑资源在进行期望应用中使用)。
图6示出了用于设计和配置可编程集成电路10的示例性系统环境。装置10可以被安装在系统380中的板360中。装置10可以从编程设备或者从任何其它适当设备或者装置接收配置数据。
在图6的示例中,装置10是从关联的集成电路400接收配置数据的可编程集成电路的一种类型。利用这种类型的排列,如果期望,则电路400可以与装置10安装在同一板35上。电路400可以是将配置数据从外部电可擦除可编程只读存储器(EEPROM)芯片加载到可编程逻辑装置存储器中的可编程逻辑装置配置数据加载芯片、具有内置存储器的可编程逻辑装置配置数据加载芯片(有时称为配置装置)或者任何其它适当装置。当系统380开机时(或者在其它适当时间),配置数据可以被从装置400提供到装置10,如路径420示意地示出。提供到装置10的配置数据可以存储在其可编程元件20中(例如,配置随机存取存储器元件)。
系统380可以包括处理电路440、存储装置460和与装置10通信的其它系统部件480。系统380的部件可以位于一个或者更多个板上,诸如板360,或者其它适当的安装结构或者壳体上。
通信路径可以用于将装置10相互路径到其它部件。例如,通信路径370可以用于在安装在板360上的集成电路390和装置10之间传送数据。通信路径350和500可以用于在装置10和部件440、460和480之间传送信号。
在诸如路径520这样的路径上,配置装置400可以被提供用于装置10的配置数据。配置装置400可以例如从配置数据加载设备540或者存储了配置装置400中的配置数据的其它适当设备接收配置数据。在安装在板360上之前或者之后,装置400可以加载数据。
在可编程逻辑装置中设计和实现期望的逻辑电路可以是显著的负担,逻辑设计者因此一般使用基于计算机辅助设计(CAD)工具的逻辑设计系统来帮助他们设计电路。逻辑设计系统(有时称为电路设计系统)可帮助逻辑设计者设计和测试用于系统的复杂系统。当设计完成时,逻辑设计系统可以被用于产生用于对适当可编程逻辑装置电编程的配置数据。逻辑设计系统可以在计算机设备上实现。
如图6所示,逻辑设计系统560产生的配置数据可以通过诸如路径580这样的路径被提供到设备540。设备540向装置400提供配置数据使得设备400可之后将这个配置数据通过路径420提供到装置10。系统560可以基于一个或者更多个计算机和一个或者更多个软件程序。一般地,软件和数据可以存储在系统560中的任何计算机可读介质(存储)上并且被示意地示出为存储600。
在通常情形下,逻辑设计系统560被逻辑设计者使用来创建定制电路设计。系统560产生被提供到配置装置400的对应的配置数据。在加电时,装置10上的配置装置400和数据加载电路被使用来将配置数据加载到装置10的可编程存储元件20中。可以接着在系统380的正常操作中使用装置10。
图7示出了根据本发明的示例性逻辑设计系统560。系统560可以基于一个或者更多个处理器,诸如个人计算机、工作站等。可以使用网络(例如,本地网络或者广域网络)将处理器链接。这些计算机中的存储器或者诸如内部和/或外部硬盘这样的外部存储器和存储装置可以用于存储指令和数据。
诸如计算机辅助设计工具620和数据库630这样的基于软件的部件驻留在系统560上。在操作期间,诸如计算机辅助设计工具620的软件这样的可执行的软件在系统560的处理器上运行。数据库630用于存储用于系统560的操作的数据。一般地,软件和数据可以存储在系统560中的任何计算机可读介质(存储装置)上。这种存储在图6中示意地示出为存储装置600,可以包括计算机存储芯片、可拆卸介质和固定介质,诸如音频驱动器、闪存存储器、质密盘(CD)、DVD、其它光学介质和软盘、磁带或者任何其它适当存储器或者存储装置。当安装了系统560的软件时,系统560的存储600具有造成系统560中的计算机设备执行各种方法(处理)的指令和数据。当进行这些处理时,计算机设备被配置为实现逻辑设计系统的功能。
计算机辅助设计(CAD)工具620的一些或者全部有时总体上称为CAD工具,可以由单个供应商或者多个供应商提供。工具620可以作为一个或者更多个软件套装来提供(例如,用于进行与实现可编程逻辑装置中的电路设计有关的任务的编译器套装)和/或作为一个或者更多个单独的软件部件(工具)。数据库630可以包括仅仅被特定工具存取的一个或者更多个数据库,并且可以包括一个或者更多个共享数据库。共享数据库可以被多个工具存取。例如,第一工具可以将用于第二工具的数据存储在共享数据库中。第二工具可以存取共享数据库来检索由第一工具存储的数据。这允许一个工具向另一个工具传递信息。如果期望,工具还可以彼此传递信息而不将信息存储在共享数据库中。
图8中示出了可以在诸如图6和图7中使用的系统560这样的逻辑设计系统中示例性计算机辅助设计工具620。
设计处理通常开始于逻辑电路功能规范的形成(例如,逻辑电路的功能描述)。使用设计和约束输入工具664,逻辑设计者可以规定期望的电路应如何工作。设计和约束输入工具664可以包括诸如设计和约束输入辅助666和设计编辑器668这样的工具。诸如辅助666这样的设计和约束输入辅助可以用于帮助逻辑设计者从已有的逻辑设计库定位期望的设计并且可以向逻辑设计者提供计算机辅助助理用于输入(规定)期望的设计。
作为示例,设计和约束输入辅助666可以用于呈现用于用户的选项的屏幕。用户可以在屏幕上选项点击以选择是否设计的电路应具有特定功能。设计编辑器668可以用于输入设计(例如,通过输入硬件描述语言代码行),可以用于编辑从库获得的设计(例如,使用设计和约束输入辅助),或者可以在选择和编辑适当预封装的代码/设计上辅助用户。
设计和约束输入工具664可以用于允许逻辑设计者使用任何适当格式提供期望的逻辑设计。例如,设计和约束输入工具664可以包括允许逻辑设计者使用真值表输入逻辑设计的工具。可以使用文本文件或者时序图来规定真值表并且可以从库导入。真值表逻辑设计和约束输入可以用于大电路的一部分或者用于整个电路。
作为另一个示例,设计和约束输入工具664可以包括电路示意图捕捉工具。电路示意图捕捉步骤工具可以允许逻辑设计者从诸如逻辑门和逻辑门的组这样的组成部分可视地构建逻辑电路。预存在的逻辑电路的库可以用于允许设计的期望部分通过示意性捕捉工具来导入。
如果期望,则设计和约束输入工具664可以允许逻辑设计者使用诸如Verilog硬件描述语言(HDL)或者超高速集成电路硬件描述语言(VHDL)这样的硬件描述语言以向逻辑设计系统560提供逻辑设计。逻辑电路的设计者可以通过利用编辑器668写硬件描述语言代码来输入逻辑设计。如果期望,则可以从用户维持的或者商用库导入代码的块。
在使用设计和约束输入工具664输入了设计之后,可以使用行为模拟工具672来模拟设计的功能性能。如果设计的功能性能不完整或者不正确,则逻辑设计者可以使用设计和约束输入工具664对设计进行改变。在使用工具674进行合成操作之前,可以使用行为模拟工具672来验证新设计的功能操作。诸如工具672这样的模拟工具可以在设计流程中的其它阶段(例如,在逻辑合成之后)使用。行为模拟工具672的输出可以以任何适当格式(例如真值表、时序图等)提供到逻辑设计者。
在逻辑设计的功能操作确定为满意时,可以使用逻辑合成和优化工具674来在特定可编程逻辑装置中(即,在特定可编程逻辑装置产品或者产品族中的逻辑和互联资源中)实现逻辑设计。
工具674尝试通过进行适当硬件选择对设计进行优化以基于逻辑设计者使用工具664输入的逻辑设计数据和约束数据而在逻辑设计中实现不同的逻辑功能。
在使用工具674进行逻辑合成和优化之后,逻辑设计系统可以使用诸如部署和路由工具676这样的工具来进行物理设计步骤(布局合成操作)。放置和路由工具676被使用以确定如何将电路针对可编程逻辑装置内的每个逻辑功能。例如,如果两个计数器彼此互动,则放置和路由工具676可以定位这些计数器在相邻的逻辑区域中,以减少相连延迟或者满足规定最大许可互联延迟的时序要求。放置和路由工具676创建用于可编程逻辑装置的逻辑设计的有序和有效的实现。
诸如工具674和676这样的工具可以是编译器套装的一部分(例如,可编程逻辑装置提供商提供的编译器工具的套装的一部分)。根据本发明,诸如工具674、676和678这样的工具自动在实现期望电路设计时将互联器之间的串扰的效应考虑在内。工具674、676和678还可以包括时序分析工具。这允许工具674和676当产生用于诸如可编程集成电路10这样的编程集成电路的配置数据时满足性能要求(例如,时序要求)。
在使用放置和路由工具676生成了在可编程逻辑装置中的期望逻辑设计的实现之后,可以使用分析工具678来分析和测试设计的实现。使用工具620完成了令人满意的优化操作之后,工具620可产生用于可编程逻辑装置的配置数据。
图9示出了使用图8的工具620涉及的示例性操作以产生配置数据文件。如图9所示,初始网络列表80在步骤82合成以产生后合成网络列表84。在步骤86,使用放置和路由和优化操作来处理用户输入88和后合成网络列表84。在步骤86的操作期间,CAD工具620将使用不同正电源电压和/或体偏置电压的效果考虑在内,并且通过电源和体偏置电平的适当选择,电路资源分配和放置决策,工具62降低功率消耗并且满足设计约束。
通过使用逻辑设计系统560进行时序分析,得到的网络列表90可以被进一步处理(步骤91)。可以使用时序分析来在配置可编程集成电路10之前确保最终网络列表90满足时序约束。如果期望,则处理可以可选地循环回到步骤86经由路径93以使用最终网络列表进行附加优化。例如,逻辑设计系统可以识别在时序约束失败的最终网络列表中的路由路径,并且通过经由可选路径93返回到步骤86确定再次放置路由路径。
在步骤92,在汇编处理期间,最终网络列表可以被进一步处理,以产生配置数据文件输出(例如,.pdf或者.sof文件)。配置数据文件输出可以接着被加载到可编程装置10中。
总体上,可以期望使用工具620来识别装置10上的最关键路由路径(例如,区域100中的具有最大传播延迟的路由路径)并且确定沿着该关键路径传播的信号满足设计准则。图10是示出示例性连续路由路径的图(例如,经由夹在该路径中的复用器150传播从单个逻辑源发出的用户信号的路由路径)。如图10所示,可修复区域100包括五个逻辑行R1-R5,每个逻辑行包括五个逻辑块700。可以通过识别具有最大数量的与任何相邻行通信的垂直路由段154的行来获得区域100中的关键路径(即,通过识别具有最大数量的垂直导线交叉的相邻行的对)。
在图10的示例中,关键路由路径可以源于行R4并且经由三个垂直线段154被路由到R1,经由水平线段155通过行R1中的两个逻辑块,经由两个附加垂直线段154返回下到行R3,并且返回上到行R2。该具体关键路由路径呈现两个U形弯,得到跨过行边界702(即,边界分离行R2和R3)的三个垂直路由段154(即,夹在关键路由路径中的垂直导线154)。呈现关键路由路径上的最大数量的垂直导线交叉的行边界702可以被称为关键行边界。
图11示出最差情况情形,其中与关键行边界702相邻的行R3是缺陷行。在此情形下,通过使用先前结合图4描述的旁路方案,故障行下面的各行必须向下移位一行。针对每次关键路径跨过边界702,按此方式旁路一行引入附加的复用器/驱动器和导线延迟。如图11所示,当确定区域100是否满足性能准则时,时序分析91将必须把三个附加复用器150、驱动器152和垂直路由段154相关联的传播延迟(有时总称为垂直路由延迟的一个单位)考虑在内。一般地,当进行保守时序分析时,关键地面中的各附加U形弯可潜在地导致多达一个的额外的垂直路由延迟。
对于包括一个以上的可修复区域100的装置,信号有可能在相邻的可修复区域100之间交叉。图12示出最差情况情形,其中区域键关键路径跨过与第一可修复区域100-1中的第一关键行边界710相邻的缺陷行并且跨过与第一区域100-1相接的第二可修复区域100-2中的第二关键行边界712相邻的另一个缺陷行。
换句话说,当针对区间之间关键路径进行保守时序分析时,可以使用工具620来识别在第一区域100-1中的相邻行中的第一对之间交叉的垂直导线的最大数量并且识别在第二区域100-2中的相邻行的第二对之间交叉的垂直导线的最大数量(例如,以识别在关键路径跨过的每个区域100中的关键行边界处的垂直导线交叉的数量)。每次关键路径跨过关键行边界,可以引发垂直路由延迟的附加单位,以将跟随该关键行边界的行有缺陷的最差情况情形考虑在内。因此可通过分别计算针对包括关键路径的各区域的最差情况延迟,接着随后将分别计算的延迟相加以获得针对区域间关键路径的总最差情况延迟,来确定最差情况时序延迟。这种计算针对区域间关键路径的最差情况延迟的方案可以延伸到计算针对跨过三个或者更多个可修复区域、五个或者更多个可修复区域、10个或者更多个可修复区域等的关键路径的最差情况延迟。
图10-12的示例仅仅是示例性的并且不旨在限制本发明的范围。一般地,各区域100可以被配置为包括跨过行边界任何适当次数的关键路由路径,而其它区域间关键路由路径可以交叉区域边界任何适当次数。
图13是进行时序分析91中所涉及的示例性步骤的流程图。在步骤800,工具620可以用于识别各区域100中的区域间关键路由路径(即,如结合图10和图11描述的在单个可修复区域100内进行信号路由的关键路由路径),并且可以用于识别装置10上的区域间关键路由路径(即,如结合图12描述的在相接的可修复区域100之间进行信号路由的关键路由路径)。
在步骤802,工具620可以通过识别将具有最大数量的垂直导线交叉的相邻行分开的关键行边界来对识别的关键路径进行最差情况时序分析。各关键行边界交叉可以引发一个附加单位的垂直路由延迟(以将跟随该关键行边界的行有缺陷的情形考虑在内)。
在步骤804,工具620可以确定将附加路由延迟考虑在内的情况下与各识别的关键路由路径相关联的信号传播满足性能准则。如果最差情况信号传播延迟是可接受的,则时序分析完成。如果最差情况信号传播延迟不满足设计准则,则处理可以进行到步骤86以进行可潜在地帮助减少最差情况延迟的进一步设计优化(参见图9)。
附加实施例
附加实施例1、一种集成电路,包括:具有包括备用电路行的多个电路行的逻辑区域;多个路由段,各路由段具有耦合到电路行中相应一行的第一端和耦合到电路行中的相邻一行的相对第二端;以及多个旁路电路,各旁路电路耦合在相应对的路由段之间,其中旁路电路可操作用于当多个电路行中的一个包含缺陷电路时将备用行切换到使用,并且其中各路由段可操作用于使用旁路电路中的相应一个被相关联的路由段驱动。
附加实施例2,根据附加实施例1的集成电路,其中逻辑区域包括可编程逻辑区域。
附加实施例3,根据附加实施例1的集成电路,其中多个旁路电路包括多个复用器。
附加实施例4,根据附加实施例1的集成电路,其中,多个旁路电路包括多个复用器。以及其中,多个复用器中的各复用器包括:第一输入端,其可操作用于接收用户信号;第二输入端,其耦合到一个相关联的路由段,以及输出端,其耦合到另一个相关联的路由段。
附加实施例5,根据附加实施例4的集成电路,还包括:多个驱动器电路,各驱动器电路耦合到复用器中的相应一个复用器的输出端。
附加实施例6,根据附加实施例1的集成电路,还包括:多个基于熔丝的存储元件,基于熔丝的存储元件可操作用于控制多个旁路电路。
附加实施例7,根据附加实施例1的集成电路,其中逻辑区域中的备用电路行以给定高度形成,并且其中多个路由段中的各路由段具有最多等于给定高度的长度。
附加实施例8,根据附加实施例1的集成电路,还包括:附加逻辑区域,其具有包括另一个备用电路行在内的其它多个电路行的逻辑区域;以及附加路由段,其具有耦合到逻辑区域中的备用电路行中的第一旁路电路的第一端和耦合到附加逻辑区域中的所选择的电路行中的第二旁路电路的相对第二端,其中逻辑区域中的备用电路行与附加逻辑区域中的所选择的电路行相邻。
附加实施例9,一种制造集成电路的方法,集成电路具有多个逻辑电路行,多个逻辑电路行包括备用逻辑电路行,多个路由段,各路由段具有耦合到多个逻辑电路行中相应一行的第一端和耦合到多个逻辑电路行中的相邻一行的第二端;以及多个旁路电路,各旁路电路耦合在相应路由段对之间,其中每个旁路电路包括:第一输入端,其可操作用于接收用户信号;第二输入端,其耦合到多个路由段中的一个相关联的路由段,以及输出端,其耦合到多个路由段中的另一个相关联的路由段,方法包括:确定是否多个逻辑电路行中的至少一个包含缺陷电路;并且响应于确定多个逻辑电路行中的所选择的逻辑电路行是有缺陷的,将备用逻辑电路行切换到使用,并且通过配置缺陷行中的旁路电路将来自其第二输入端的信号路由到其输出端来旁路缺陷逻辑电路行。
附加实施例10,根据附加实施例9的集成电路,集成电路还包括:响应于确定多个逻辑电路行中的至少两个行包含缺陷电路,放弃集成电路。
附加实施例11,根据附加实施例9的集成电路,集成电路还包括:确定是否所选择的逻辑电路行包含缺陷旁路电路;并且响应于确定所选择的逻辑电路行中的旁路电路有缺陷,放弃集成电路。
附加实施例12,根据附加实施例9的集成电路,集成电路还包括:响应于确定多个逻辑电路行中的各行是没有缺陷的,将备用逻辑电路行配置为空闲模式。
附加实施例13,根据附加实施例9的集成电路,其中将旁路电路配置为缺陷行包括使耦合到旁路电路的基于熔丝的存储器元件熔断。
附加实施例14,根据附加实施例9的集成电路,其中多个旁路电路包括多个复用电路。
附加实施例15,根据附加实施例9的集成电路,其中逻辑电路的备用行具有给定高度,其中多个路由段包括多个信号路由路径,各信号路由路径具有第一端子和第二端子,并且其中各信号路由路径的第一端子和第二端子以小于给定高度的距离分开。
附加实施例16,根据附加实施例14的集成电路,其中集成电路还包括:附加的多个复用电路,其中附加的多个复用电路中的各复用电路具有耦合到多个路由段中的相应一个路由段的第一输入端,和第二输入端;以及附加的多个路由段,各路由段具有耦合到在多个连接电路行中的相应一个逻辑电路行中形成的多个附加复用电路中的相应一个复用电路的第二输入端的第一端,和耦合到多个逻辑电路行中的不相邻的一行的第二端。
附加实施例17,一种用于操作集成电路的方法,其中集成电路包括:具有包括备用电路行在内的多个电路行的逻辑区域;并且其中集成电路还包括:多个路由段,各路由段具有耦合到多个电路行中相应一行的第一端和耦合到多个电路行中的相邻一行的相对第二端,方法包括:利用多个旁路电路,每个旁路电路耦合在相应的路由段对之间,当多个电路行中的一个行包含缺陷电路时将备用行切换到使用;并且使用多个旁路电路中的相应一个旁路电路利用相关联的路由段驱动各路由段。
附加实施例18,根据附加实施例17的集成电路,其中多个旁路电路包括多个复用电路。
附加实施例19,根据附加实施例17的集成电路,其中集成电路还包括:附加逻辑区域,其具有包括另一个备用电路行在内的其它多个电路行的逻辑区域,方法还包括:利用附加路由段,从逻辑区域中的备用电路行中的第一旁路电路接收信号,并且将接收到的信号路由到附加连接区域中的所选择的电路行中的第二旁路电路,其中逻辑区域中的备用电路行与附加逻辑区域中的所选择的电路行相邻。
附加实施例20,根据附加实施例19的集成电路,其中逻辑区域中的备用电路行以给定高度形成,并且其中多个路由段具有最多等于给定高度的长度。
以上仅仅是本发明的原理的例示,并且不背离本发明的范围和实质下本领域技术人员可以进行各种修改。上述实施例可以单独实施或者任意组合实施。
Claims (20)
1.一种集成电路,包括:
逻辑区域,其具有包括备用电路行的多个电路行;
多个路由段,各路由段具有耦合到所述电路行中相应一行的第一端和耦合到所述电路行中的相邻一行的相对第二端;以及
多个旁路电路,各旁路电路耦合在路由段的相应对之间,其中所述旁路电路可操作以当所述电路行中的一个包含缺陷电路时将所述备用行切换到使用,并且其中各路由段可操作以使用所述旁路电路中的相应一个而被相关联的路由段驱动。
2.根据权利要求1所述的集成电路,其中所述逻辑区域包括可编程逻辑区域。
3.根据权利要求1所述的集成电路,其中所述多个旁路电路包括多个复用器。
4.根据权利要求1所述的集成电路,其中所述多个旁路电路包括多个复用器,并且其中所述多个复用器中的各复用器包括可操作以接收用户信号的第一输入端,耦合到一个相关联的路由段的第二输入端,以及耦合到另一个相关联的路由段的输出端。
5.根据权利要求4所述的集成电路,还包括:
多个驱动器电路,各驱动器电路耦合到所述复用器中的相应一个复用器的输出端。
6.根据权利要求1所述的集成电路,还包括:
多个基于熔丝的存储元件,其可操作以控制所述多个旁路电路。
7.根据权利要求1所述的集成电路,其中所述逻辑区域中的备用电路行在给定高度内形成,并且其中所述多个路由段中的各路由段具有最多等于所述给定高度的长度。
8.根据权利要求1所述的集成电路,还包括:
附加逻辑区域,其具有包括另一个备用电路行的其它多个电路行;以及
附加路由段,其具有耦合到所述逻辑区域中的备用电路行中的第一旁路电路的第一端和耦合到所述附加逻辑区域中的选择的电路行中的第二旁路电路的相对第二端,其中所述逻辑区域中的所述备用电路行与所述附加逻辑区域中的所选择的电路行相邻。
9.一种制造集成电路的方法,所述集成电路具有多个逻辑电路行,所述多个逻辑电路行包括备用逻辑电路行,多个路由段,各路由段具有耦合到所述逻辑电路行中相应一行的第一端和耦合到所述逻辑电路行中的相邻一行的第二端;以及多个旁路电路,各旁路电路耦合在路由段的相应对之间,其中每个旁路电路包括:可操作以接收用户信号的第一输入端,耦合到所述多个路由段中的一个相关联的路由段的第二输入端,以及耦合到所述多个路由段中的另一个相关联的路由段的输出端,所述方法包括:
确定所述多个逻辑电路行中的至少一个是否包含缺陷电路;以及
响应于确定所述多个逻辑电路行中的选择的逻辑电路行是有缺陷的,将所述备用逻辑电路行切换到使用,并且通过配置缺陷行中的旁路电路将来自其第二输入端的信号路由到其输出端来旁路缺陷逻辑电路行。
10.根据权利要求9所述的方法,还包括
响应于确定所述多个逻辑电路行中的至少两个行包含缺陷电路,放弃所述集成电路。
11.根据权利要求9所述的方法,还包括:
确定所述选择的逻辑电路行是否包含缺陷旁路电路;以及
响应于确定所述选择的逻辑电路行中的旁路电路有缺陷,放弃所述集成电路。
12.根据权利要求9所述的方法,还包括:
响应于确定所述多个逻辑电路行中的各行是没有缺陷的,将所述备用逻辑电路行配置为空闲模式。
13.根据权利要求9所述的方法,其中配置所述缺陷行内的所述旁路电路包括熔断耦合到所述旁路电路的基于熔丝的存储器元件。
14.根据权利要求9所述的方法,其中所述多个旁路电路包括多个复用电路。
15.根据权利要求9所述的方法,其中所述逻辑电路的备用行具有给定高度,其中所述多个路由段包括多个信号路由路径,各信号路由路径具有第一端子和第二端子,并且其中各信号路由路径的所述第一端子和所述第二端子以小于所述给定高度的距离分离。
16.根据权利要求14所述的方法,其中所述集成电路还包括:
附加的多个复用电路,其中所述附加的多个复用电路中的各复用电路具有耦合到所述路由段中的相应一个路由段的第一输入端,和第二输入端;以及
附加的多个路由段,各路由段具有第一端,其耦合到在相应一个逻辑电路行中形成的附加复用电路中的相应一个复用电路的所述第二输入端,和耦合到所述逻辑电路行中的不相邻的一行的第二端。
17.一种操作集成电路的方法,其中所述集成电路包括:具有包括备用电路行的多个电路行的逻辑区域;并且其中所述集成电路还包括多个路由段,各路由段具有耦合到所述电路行中相应一行的第一端和耦合到所述电路行中的相邻一行的相对第二端,所述方法包括:
当所述电路行中的一个行包含缺陷电路时,利用多个旁路电路将所述备用行切换到使用,每个旁路电路耦合在路由段的相应对之间;以及
使用所述旁路电路中的相应一个旁路电路,利用相关联的路由段驱动各路由段。
18.根据权利要求17所述的方法,其中所述多个旁路电路包括多个复用电路。
19.根据权利要求17所述的方法,其中所述集成电路还包括:附加逻辑区域,所述附加逻辑区域具有包括另一个备用电路行的其它多个电路行的逻辑区域,所述方法还包括:
利用附加路由段,从所述逻辑区域中的备用电路行中的第一旁路电路接收信号,并且将接收到的信号路由到所述附加逻辑区域中的选择的电路行中的第二旁路电路,其中所述逻辑区域中的所述备用电路行与所述附加逻辑区域中的所述选择的电路行相邻。
20.根据权利要求19所述的方法,其中所述逻辑区域中的备用电路行在给定高度内形成,并且其中所述附加路由段具有最多等于所述给定高度的长度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/669,244 | 2012-11-05 | ||
US13/669,244 US8860460B1 (en) | 2012-11-05 | 2012-11-05 | Programmable integrated circuits with redundant circuitry |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103812502A true CN103812502A (zh) | 2014-05-21 |
CN103812502B CN103812502B (zh) | 2017-10-27 |
Family
ID=49679288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310535221.4A Active CN103812502B (zh) | 2012-11-05 | 2013-11-01 | 具有冗余电路的可编程集成电路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8860460B1 (zh) |
EP (1) | EP2728753B1 (zh) |
JP (1) | JP5699195B2 (zh) |
CN (1) | CN103812502B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107949267A (zh) * | 2017-10-20 | 2018-04-20 | 珠海格力电器股份有限公司 | 控制器主板及其电路控制方法和电器设备 |
CN108228395A (zh) * | 2016-12-22 | 2018-06-29 | 英特尔公司 | 用于绕开电路行中的缺陷的技术 |
CN111564174A (zh) * | 2020-04-23 | 2020-08-21 | 上海华虹宏力半导体制造有限公司 | 一种支持块擦除的数字冗余电路及其操作方法 |
CN116306457A (zh) * | 2023-01-28 | 2023-06-23 | 上海合见工业软件集团有限公司 | 基于垂直交叉点约束的电路原理图路由规划系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6111680B2 (ja) * | 2013-01-18 | 2017-04-12 | 住友電気工業株式会社 | 信号処理装置およびプログラマブルロジックデバイスの構成方法 |
JP6555359B2 (ja) | 2015-05-28 | 2019-08-07 | 日本電気株式会社 | 再構成可能回路 |
US10740435B2 (en) | 2015-05-29 | 2020-08-11 | Nec Corporation | Programmable logic integrated circuit, design support system, and configuration method |
KR102557310B1 (ko) * | 2016-08-09 | 2023-07-20 | 에스케이하이닉스 주식회사 | 반도체 장치 |
US10303563B2 (en) * | 2016-09-14 | 2019-05-28 | International Business Machines Corporation | Initializable repair circuit for selectively replacing a table-driven output |
US10879904B1 (en) | 2017-07-21 | 2020-12-29 | X Development Llc | Application specific integrated circuit accelerators |
US10790828B1 (en) | 2017-07-21 | 2020-09-29 | X Development Llc | Application specific integrated circuit accelerators |
US10831507B2 (en) | 2018-11-21 | 2020-11-10 | SambaNova Systems, Inc. | Configuration load of a reconfigurable data processor |
US10587270B2 (en) | 2019-06-12 | 2020-03-10 | Intel Corporation | Coarse-grain programmable routing network for logic devices |
US10749528B2 (en) | 2019-08-20 | 2020-08-18 | Intel Corporation | Stacked programmable integrated circuitry with smart memory |
US11409540B1 (en) * | 2021-07-16 | 2022-08-09 | SambaNova Systems, Inc. | Routing circuits for defect repair for a reconfigurable data processor |
US11327771B1 (en) * | 2021-07-16 | 2022-05-10 | SambaNova Systems, Inc. | Defect repair circuits for a reconfigurable data processor |
US11556494B1 (en) | 2021-07-16 | 2023-01-17 | SambaNova Systems, Inc. | Defect repair for a reconfigurable data processor for homogeneous subarrays |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0598495A2 (en) * | 1992-11-19 | 1994-05-25 | Altera Corporation | Programmable logic devices with spare circuits for replacement of defects |
US5459342A (en) * | 1992-11-02 | 1995-10-17 | Kabushiki Kaisha Toshiba | Field programmable gate array with spare circuit block |
US5498975A (en) * | 1992-11-19 | 1996-03-12 | Altera Corporation | Implementation of redundancy on a programmable logic device |
US7215140B1 (en) * | 2003-05-30 | 2007-05-08 | Altera Corporation | Programmable logic device having regions of non-repairable circuitry within an array of repairable circuitry and associated configuration hardware and method |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148390A (en) * | 1996-06-12 | 2000-11-14 | Quicklogic Corporation | Techniques and circuits for high yield improvements in programmable devices using redundant logic |
US6107820A (en) * | 1997-05-23 | 2000-08-22 | Altera Corporation | Redundancy circuitry for programmable logic devices with interleaved input circuits |
US6201404B1 (en) * | 1998-07-14 | 2001-03-13 | Altera Corporation | Programmable logic device with redundant circuitry |
US6965249B2 (en) * | 2001-10-15 | 2005-11-15 | Altera Corporation | Programmable logic device with redundant circuitry |
US7180324B2 (en) * | 2004-05-28 | 2007-02-20 | Altera Corporation | Redundancy structures and methods in a programmable logic device |
US7275196B2 (en) * | 2005-11-23 | 2007-09-25 | M2000 S.A. | Runtime reconfiguration of reconfigurable circuits |
US7622952B1 (en) | 2008-05-28 | 2009-11-24 | Altera Corporation | Periphery clock signal distribution circuitry for structured ASIC devices |
US8805916B2 (en) * | 2009-03-03 | 2014-08-12 | Altera Corporation | Digital signal processing circuitry with redundancy and bidirectional data paths |
US8362800B2 (en) * | 2010-10-13 | 2013-01-29 | Monolithic 3D Inc. | 3D semiconductor device including field repairable logics |
US7902855B1 (en) * | 2010-03-03 | 2011-03-08 | Altera Corporation | Repairable IO in an integrated circuit |
-
2012
- 2012-11-05 US US13/669,244 patent/US8860460B1/en active Active
-
2013
- 2013-10-29 EP EP13190600.0A patent/EP2728753B1/en active Active
- 2013-10-31 JP JP2013226694A patent/JP5699195B2/ja active Active
- 2013-11-01 CN CN201310535221.4A patent/CN103812502B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459342A (en) * | 1992-11-02 | 1995-10-17 | Kabushiki Kaisha Toshiba | Field programmable gate array with spare circuit block |
EP0598495A2 (en) * | 1992-11-19 | 1994-05-25 | Altera Corporation | Programmable logic devices with spare circuits for replacement of defects |
US5498975A (en) * | 1992-11-19 | 1996-03-12 | Altera Corporation | Implementation of redundancy on a programmable logic device |
US7215140B1 (en) * | 2003-05-30 | 2007-05-08 | Altera Corporation | Programmable logic device having regions of non-repairable circuitry within an array of repairable circuitry and associated configuration hardware and method |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228395A (zh) * | 2016-12-22 | 2018-06-29 | 英特尔公司 | 用于绕开电路行中的缺陷的技术 |
CN107949267A (zh) * | 2017-10-20 | 2018-04-20 | 珠海格力电器股份有限公司 | 控制器主板及其电路控制方法和电器设备 |
CN111564174A (zh) * | 2020-04-23 | 2020-08-21 | 上海华虹宏力半导体制造有限公司 | 一种支持块擦除的数字冗余电路及其操作方法 |
CN116306457A (zh) * | 2023-01-28 | 2023-06-23 | 上海合见工业软件集团有限公司 | 基于垂直交叉点约束的电路原理图路由规划系统 |
CN116306457B (zh) * | 2023-01-28 | 2024-02-20 | 上海合见工业软件集团有限公司 | 基于垂直交叉点约束的电路原理图路由规划系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103812502B (zh) | 2017-10-27 |
JP2014093782A (ja) | 2014-05-19 |
EP2728753A2 (en) | 2014-05-07 |
EP2728753A3 (en) | 2015-04-01 |
EP2728753B1 (en) | 2019-03-20 |
US8860460B1 (en) | 2014-10-14 |
JP5699195B2 (ja) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103812502A (zh) | 具有冗余电路的可编程集成电路 | |
JP4833023B2 (ja) | 半導体デバイスの製造適合性を向上させるための方法、システム及びプログラム | |
US8860458B2 (en) | Integrated circuits with logic regions having input and output bypass paths for accessing registers | |
US8028259B2 (en) | Automated method and apparatus for very early validation of chip power distribution networks in semiconductor chip designs | |
US7313776B2 (en) | Method and apparatus for routing an integrated circuit | |
US20160085898A1 (en) | Automated layout for integrated circuits with nonstandard cells | |
US11361133B2 (en) | Method of reporting circuit performance for high-level synthesis | |
WO2008106347A1 (en) | System and method for sign-off timing closure of a vlsi chip | |
US8719752B1 (en) | Hierarchical crosstalk noise analysis model generation | |
US11574101B2 (en) | Techniques for providing optimizations based on categories of slack in timing paths | |
US20090271750A1 (en) | Timing constraint merging in hierarchical soc designs | |
US9811621B2 (en) | Implementing integrated circuit designs using depopulation and repopulation operations | |
KR20220104731A (ko) | 금속 라인들을 갖는 셀들을 이용한 전기적 회로 설계 | |
JP2010257164A (ja) | 半導体集積回路装置の設計方法およびプログラム | |
Dalal et al. | Design of an efficient power distribution network for the UltraSPARC-I microprocessor | |
US11368158B2 (en) | Methods for handling integrated circuit dies with defects | |
US20060085778A1 (en) | Automatic addition of power connections to chip power | |
US10551431B1 (en) | EM-compliance topology in a tree router | |
US20110185335A1 (en) | Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations | |
JP2006338090A (ja) | 半導体集積回路の設計方法および設計装置 | |
Umadevi et al. | Effective Timing Closure Using Improved Engineering Change Order Techniques in SOC Design | |
EP1650688A1 (en) | Automatic addition of power connections to chip power supply network | |
JP4179221B2 (ja) | Lsiのレイアウト設計方法、レイアウト設計装置及びレイアウト設計プログラム | |
JP2008186229A (ja) | 半導体集積回路の設計装置 | |
JPH11259555A (ja) | マクロの設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |