CN108228395B - 用于绕开电路行中的缺陷的技术 - Google Patents

用于绕开电路行中的缺陷的技术 Download PDF

Info

Publication number
CN108228395B
CN108228395B CN201711163140.0A CN201711163140A CN108228395B CN 108228395 B CN108228395 B CN 108228395B CN 201711163140 A CN201711163140 A CN 201711163140A CN 108228395 B CN108228395 B CN 108228395B
Authority
CN
China
Prior art keywords
circuit
rows
region
row
multiplexer
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.)
Active
Application number
CN201711163140.0A
Other languages
English (en)
Other versions
CN108228395A (zh
Inventor
D·刘易斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN108228395A publication Critical patent/CN108228395A/zh
Application granted granted Critical
Publication of CN108228395B publication Critical patent/CN108228395B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • H03K19/17764Structural details of configuration resources for reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00392Modifications for increasing the reliability for protection by circuit redundancy
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17736Structural details of routing resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Abstract

本公开涉及用于绕开电路行中的缺陷的技术。集成电路包括电路行。集成电路的第一区域包括电路行中的每个电路行的第一部分,并且集成电路的第二区域包括电路行中的每个电路行的第二部分。集成电路基于第一区域中的电路行中的第一电路行中的第一缺陷来将用于第一区域中的电路行的第一子集的功能转移到第一区域中的电路行的第二子集。集成电路基于第二区域中的电路行中的第二电路行中的第二缺陷来将用于第二区域中的电路行的第三子集的功能转移到第二区域中的电路行的第四子集。

Description

用于绕开电路行中的缺陷的技术
技术领域
本公开涉及电子电路,并且更具体地涉及用于绕开集成电路中的电路行中的缺陷的技术。
背景技术
诸如现场可编程门阵列(FPGA)和可编程逻辑器件(PLD)之类的可编程逻辑集成电路(IC)通常包括可编程逻辑电路块。所有集成电路都易受制造缺陷的影响。为了提高产品收得率,可编程逻辑IC可以配备有备用电路或冗余电路。具有冗余电路的可编程逻辑IC可以通过使用冗余电路修复IC上的缺陷区域来帮助提高产品收得率。基于行的冗余方案通常为若干可编程逻辑电路行提供至少一个冗余行或“备用”行及其相关路由。典型地,可修复区域可以在冗余行上方,使得在可编程逻辑电路行中的一个可编程逻辑电路行有缺陷的情况下激活冗余行,并且从冗余行到缺陷行的每一行均替代接下来的更高行,由此修复缺陷行。
发明内容
一种集成电路包括电路行。所述集成电路的第一区域包括所述电路行中的每一电路行的第一部分。所述集成电路的第二区域包括所述电路行中的每一电路行的第二部分。所述集成电路基于所述第一区域中的所述电路行中的第一电路行中的第一缺陷来将用于所述第一区域中的所述电路行的第一子集的功能转移到所述第一区域中的所述电路行的第二子集。仅禁用在所述第一区域中的所述电路行中的第一电路行。所述集成电路基于所述第二区域中的所述电路行中的第二电路行中的第二缺陷来将用于所述第二区域中的所述电路行的第三子集的功能转移到所述第二区域中的所述电路行的第四子集。仅禁用在所述第二区域中的所述电路行中的第二电路行。所述电路行中的所述第二电路行与所述电路行中的所述第一电路行不同。所述电路行的所述第三子集包括所述第一子集中的所述电路行中的至少一些电路行。
可以以诸如进程、装置、系统、设备或方法等多种方式来实施本发明的各种实施例。下面描述了若干个实施例。在考虑下面的具体实施方式和附图之后,本发明的各种目的、特征和优点将变得显而易见。
附图说明
图1示出了根据实施例的具有冗余电路行的集成电路(IC)的示例,其中冗余电路行在IC的每个区域内是可独立控制的。
图2示出了根据实施例的、图1的集成电路(IC)中的每个区域如何可被独立控制以使用冗余行的一部分绕开该区域内的电路行中的缺陷的进一步细节。
图3示出了根据实施例的、电路行中的多路复用器电路如何可以被重新配置以将传播通过电路行的信号重新引导穿过在不同行中具有缺陷的两个区域的边界的示例。
图4A-图4B示出了根据一些实施例的在集成电路中的电路行的部分之间提供可编程互连的多路复用器电路的示例。
图5示出了根据实施例的、生成用于控制多路复用器电路的选择信号的控制电路的示例,其中多路复用器电路将在集成电路的两个区域之间的边界两侧的不同电路行连接在一起。
图6示出了根据实施例的在集成电路中的两个区域之间的边界处的、位于每个电路行中的两个2到1多路复用器电路的示例。
图7示出了根据实施例的在集成电路中的两个区域之间的边界处的、位于每个电路行中的3到1多路复用器电路。
图8示出了根据实施例的在集成电路中的两个区域之间的边界处的3到1多路复用器电路,每个3到1多路复用器电路均具有耦合到三个相邻电路行的输入。
图9示出了根据实施例的电路架构的示例,其中,该电路架构允许三条路由选择导线(routing wire)穿过集成电路中的两个区域之间的边界。
图10示出了根据实施例的用于绕开集成电路中的缺陷的操作的示例。
具体实施方式
如上所述,许多可编程逻辑IC通过使用基于行的架构来实现冗余,在基于行的架构中,每行均包含相同的可编程资源集合。可编程路由结构被设计为使得可编程逻辑电路行之间的连接具有对于用户设计而言是不可见的副本连接(duplicate connection),该副本连接能够实现转移。转移允许将对一行的编程下移到位于其下方的行,并保持精确的逻辑功能性。响应于在可编程逻辑IC中的可编程逻辑电路行中检测到缺陷,禁用缺陷所在的行,并且针对该行和每个后续行的所有编程都下移一行,使得冗余行现在能够被编程以实现对IC的用户设计的一部分。
冗余在可修复的缺陷数量与冗余行的成本之间具有折衷,并且因此在可修复的缺陷数量与管芯面积之间具有折衷。在现有的PLD和FPGA架构中,每个冗余行只能够修复一行中的缺陷,使得更大量的冗余行才可以修复更多行中的缺陷,但是代价是用于额外冗余行的更大电路面积。每个冗余行横跨IC的整个宽度,并且每个冗余行占用的面积等于集成电路管芯的宽度乘以行高度。因此,在集成电路中提供额外的冗余可编程逻辑电路行以修复更多行中的缺陷通常需要大量的额外管芯面积。
根据本文公开的本发明的一些实施例,提供了多种技术,以通过给定量的备用逻辑来使得更多缺陷被修复,从而降低冗余成本。集成电路(IC)被分成一组区域。在IC的每个区域内提供冗余。IC可以具有沿着IC的垂直轴的一个、两个或更多个区域以及沿着IC的水平轴的一个、两个或更多个区域。电路行的冗余转移在每个区域内独立进行,包括在IC中的水平相邻区域之间独立进行。响应于在一个区域内的电路行中检测到缺陷,在该区域中仅禁用缺陷所在的行,并且针对该区域内的该行和每个后续行的所有编程都下移一行,使得该区域内的备用行或冗余行现在能够被编程以实现对IC的用户设计的一部分。
图1示出了根据实施例的具有冗余电路行的集成电路(IC)100的示例,冗余电路行在IC的每个区域内是可独立控制的。IC 100可以是诸如现场可编程门阵列(FPGA)或可编程逻辑器件(PLD)之类的可编程逻辑集成电路(IC),或者IC 100可以是具有某种可编程电路的另一类型的IC。IC 100包括若干个电路,在图(附图)1的俯视图中这些若干个电路被排列成24个水平行和54个垂直列。在图1中示出了24行、54列的电路仅仅作为一个示例。具有本文公开的任何实施例的IC可以具有任意数量的电路行和任意数量的电路列。
IC 100包括48个由可编程逻辑电路块构成的垂直列102、两个由数字信号处理(DSP)电路104构成的垂直列104、以及四个由存储器电路构成的垂直列106。提供这些列的数量仅仅是作为示例,而不是要进行限制。这些列中的每一列内的每个矩形框均表示可编程逻辑电路块、DSP电路或存储器电路。IC 100中的每个水平电路行包括可编程逻辑电路块、DSP电路和存储器电路。作为示例,在图1中,这些水平行之一被标注为行115。
如图1所示,IC 100还包括两个冗余电路行121和122。为了更容易地识别,在图1中,利用点对冗余行121-122进行标记。冗余行121和122中的每一行均包括在相应列102、104和106中的可编程逻辑电路块、DSP电路和存储器电路。
IC 100包括四个区域(象限)110A、110B、110C和110D。四个区域110A-110D之间的边界在图1中由粗线示出。区域110A、110B、110C和110D中的每一个均包括IC 100中的可编程逻辑电路块、DSP电路和存储器电路的四分之一。作为示例,区域110A包括12个电路行中的每一行的一半和27个电路列中的每一列的一半。
区域110A、110B、110C和110D中的每一个区域均包括冗余电路行的一半。区域110A和110B中的每一个均包括冗余行121的一半,并且区域110C和110D中的每一个均包括冗余行122的一半。区域110A-110D中的每一个区域中的冗余行121-122中的每一行的每一半都可独立地控制以绕开该区域内的电路行中的缺陷,如下文关于图2进一步详细公开的。
根据一些替代实施例,集成电路可以具有沿着集成电路的水平轴(例如,图1-2中的x方向)的三个或更多个区域,和/或集成电路可以具有沿着垂直于水平轴的垂直轴(例如,图1-2中的y方向)的三个或更多个区域。根据这些替代实施例,这些额外区域中的每一个区域中的冗余行相对于集成电路中的所有其它区域是可独立控制的,以绕开该区域内的电路行中的缺陷,如关于图2所公开的。
图2示出了根据实施例的、集成电路(IC)100中的区域110A-110D中的每一个区域如何可被独立地控制以使用冗余行的一部分绕开该区域内的电路行中的缺陷的进一步细节。在图2的示例中,在区域110A中的行201的左半部分中存在第一缺陷,如在图2中由对角线所示。在区域110B中的行202的右半部分中存在第二缺陷,如在图2中由对角线所示。在IC100中,要被编程到区域110A和110B中的电路行中的功能可以彼此独立地下移,如图2所示,以绕开不同区域110A和110B内的不同行中的缺陷。
在区域110A内,仅禁用区域110A中的行201的存在缺陷的左半部分。如在图2中挨着区域110A的箭头所示,在IC 100的用户设计中要被编程到行201的左半部分和行201下方的每个后续半行的功能在区域110A内下移一行。例如,要被编程到区域110A中的行201的左半部分中的功能下移一行到区域110A中的行211的左半部分。而且,要被编程到区域110A中的行212的左半部分中的功能下移一行到区域110A中的冗余行121的左半部分。因此,区域110A内的冗余行121的左半部分能够被编程以实现用户设计中的最初要用于行212的左半部分的部分。
在区域110B内,仅禁用区域110B中的行202的存在缺陷的右半部分。如在图2中挨着区域110B的箭头所示,在IC 100的用户设计中要被编程到行202的右半部分和行202下方的每个后续半行的功能在区域110B内下移一行。例如,要被编程到区域110B中的行202的右半部分中的功能下移一行到区域110B中的行213的右半部分。而且,要被编程到区域110B中的行212的右半部分中的功能下移一行到区域110B中的冗余行121的右半部分。因此,区域110B内的冗余行121的右半部分能够被编程以实现用户设计中的最初要用于行212的右半部分的部分。
在图2所示的示例中,在区域110A中7个半行执行的功能均下移一行,并且在区域110B中10个半行执行的功能均下移一行。因此,区域110A中的下移半行数量可以不同于区域110B中的下移半行数量。在两个区域110A-110B中,7个相同行所执行的功能下移。
此外,在图2的示例中,在区域110C中的行203的左半部分中存在第三缺陷,如在图2中由对角线所示。在区域110D中的行204的右半部分中存在第四缺陷,如在图2中由对角线所示。在IC 100中,要被编程到区域110C和110D中的不同数量行中的功能可以彼此独立地下移,如图2所示,以绕开不同区域内的不同行中的缺陷。
在区域110C内,仅禁用区域110C中的行203的存在缺陷的左半部分。如在图2中挨着区域110C的箭头所示,在IC 100的用户设计中要被编程到行203的左半部分和行203下方的每个后续半行的功能在区域110C内下移一行。例如,要被编程到区域110C中的行203的左半部分中的功能下移一行到区域110C中的行215的左半部分,并且要被编程到区域110C中的行216的左半部分中的功能下移一行到区域110C中的冗余行122的左半部分。因此,区域110C内的冗余行122的左半部分能够被编程以实现用户设计中的最初要用于行216的左半部分的部分。
在区域110D内,仅禁用区域110D中的行204的存在缺陷的右半部分。如在图2中挨着区域110D的箭头所示,在IC 100的用户设计中要被编程到行204的右半部分和行204下方的每个后续半行的功能在区域110D内下移一行。例如,要被编程到区域110D中的行204的右半部分中的功能下移一行到区域110D中的行217的右半部分。而且,要被编程到区域110D中的行216的右半部分中的功能下移一行到区域110D中的冗余行122的右半部分。因此,区域110D内的冗余行122的右半部分能够被编程以实现用户设计中的最初要用于行216的右半部分的部分。
在图2所示的示例中,在区域110C中用于8个半行的功能均下移一行,并且在区域110D中用于6个半行的功能均下移一行。因此,区域110C中的下移半行数量可以不同于区域110D中的下移半行数量。在两个区域110C和110D中,要由6行执行的功能下移。
当独立转移用于集成电路中的电路行的不同部分的功能时,水平的路由选择导线不会在不再对齐的行上排成一行。图3示出了根据实施例的、如何重新配置电路行中的多路复用器电路以将传播通过电路行的信号重新引导为穿过在不同行中具有缺陷的两个区域的边界的示例。作为示例,图3示出了区域110A和110B中的五个电路行301-305的部分。为了简化附图,图3仅示出了在五个电路行301-305的部分中的由可编程逻辑电路块构成的8个垂直列102。
在图3的示例中,在区域110A中的行304的左半部分中存在第一缺陷,如由对角线所示,并且在区域110B中的行302的右半部分中存在第二缺陷,如由对角线所示。将由区域110B中的行302和区域110B中的行302下方的每个行执行的功能均下移一行,使得区域110B中的行302的缺陷部分不执行用于IC 100的用户设计的任何部分。由区域110A中的行304和区域110A中的行304下方的每个行执行的功能也均下移一行,使得区域110A中的行304的缺陷部分不执行用于IC 100的用户设计的任何部分。
因为区域110A中的缺陷与区域110B中的缺陷不在同一行中,所以在用于缺陷行下方的行的功能已经如上所论述的那样下移之后,在行302-304中引起穿过区域110A和110B之间的边界的一行偏移。因为用于行304下方的行的功能在区域110A和110B两者中均下移一行,因此对于行305而言或者对于区域110A和110B中的位于行305下方的任何行而言,没有穿过110A和110B之间的边界的偏移。
图3示出了行302-304中的在区域110A和110B之间的多路复用器电路被重新配置,以便穿过区域110A和110B之间的边界补偿在行302-304中的偏移。例如,IC 100中的第一组多路复用器电路被配置为穿过区域110A和110B之间的边界将区域110A中的行302中的可编程逻辑电路块102A耦合到区域110B中的行303中的可编程逻辑电路块102B,如在图3中由双向斜箭头所示。作为另一示例,IC 100中的第二组多路复用器电路被配置为穿过区域110A和110B之间的边界将区域110A中的行303中的可编程逻辑电路块102C耦合到区域110B中的行304中的可编程逻辑电路块102D,如在图3中由双向斜箭头所示。
图4A-图4B示出了多路复用器电路的各种示例,该多路复用器电路可以被配置为穿过集成电路管芯中的两个区域之间的边界将电路行的不同部分连接在一起。图4A-图4B示出了根据一些实施例的多路复用器电路的示例,其中该多路复用器电路提供集成电路中的电路行的部分之间的可编程互连。图4A-图4B示出了可编程逻辑电路块(PLCB)401-403和421-423。图4A示出了三个进行右驱动的3到1多路复用器电路411-413。图4B示出了三个进行左驱动的3到1多路复用器电路431-433。PLCB 401和421以及多路复用器电路411和431位于IC中的第一电路行中。PLCB 402和422以及多路复用器电路412和432位于IC中的第二电路行中。PLCB 403和423以及多路复用器电路413和433位于IC中的第三电路行中。
图4A-图4B的可编程互连电路包括多路复用器电路411-413和431-433以及与其相连接的路由选择导线。多路复用器电路411、412和413被配置为沿图4A中的从左到右的第一方向(即,右驱动)从IC的第一区域(例如,区域110A或110C)提供信号给IC的第二区域(例如,区域110B或110D),其中IC的第二区域位于IC中的第一区域的右侧。多路复用器电路411-413中的每一个可以被配置为将来自IC的第一区域中的三个相邻行之一的信号提供给IC的第二区域中的一行。多路复用器电路411被配置为响应于选择信号S1以将来自PLCB401、PLCB 402或直接位于包含PLCB 401的行的上方的行中的PLCB的信号提供给PLCB 421和/或同一行中的其它电路。多路复用器电路412被配置为响应于选择信号S2以将来自PLCB401、PLCB 402或PLCB 403的信号提供给PLCB 422和/或同一行中的其它电路。多路复用器电路413被配置为响应于选择信号S3以将来自PLCB402、PLCB 403或直接位于包含PLCB403的行的下方的行中的PLCB的信号提供给PLCB 423和/或同一行中的其它电路。
图4B的多路复用器电路431-433被配置为沿图4B中的从右到左的、与第一方向相反的第二方向(即,左驱动)从IC的第二区域(例如,区域110B或110D)提供信号给IC的第一区域(例如,区域110A或110C)。多路复用器电路431-433中的每一个可以被配置为将来自IC的第二区域中的三个相邻行之一的信号提供给IC的第一区域中的一行。多路复用器电路431被配置为响应于选择信号S4以将来自PLCB 421、PLCB 422或直接位于包含PLCB 421的行的上方的行中的PLCB的信号提供给PLCB 401和/或同一行中的其它电路。多路复用器电路432被配置为响应于选择信号S5以将来自PLCB 421、PLCB 422或PLCB 423的信号提供给PLCB 402和/或同一行中的其它电路。多路复用器电路433被配置为响应于选择信号S6以将来自PLCB 422、PLCB 423或直接位于包含PLCB 423的行的下方的行中的PLCB的信号提供给PLCB 403和/或同一行中的其它电路。
因为多路复用器电路411-413和431-433中的每一个多路复用器电路均可以将来自三个相邻行之一的信号发送穿过IC的两个区域之间的边界,所以多路复用器电路411-413和431-433可以被配置为穿过两个区域之间的边界而将不同的电路行连接在一起。由于这个原因,当被编程的功能在一个区域中的一行或多行的部分中没有转移时,多路复用器电路411-413和431-433可以为用于水平相邻区域中的相同行的其它部分的被编程的功能提供转移。
图5示出了根据实施例的能够生成用于控制多路复用器电路的选择信号的控制电路的示例,其中多路复用器电路将在集成电路的两个区域之间的边界两侧的不同电路行连接在一起。图5的控制电路500包括或逻辑门电路501-502、与逻辑门电路503-504、以及反相器电路505-506。或门电路501通过对提供给或门501的输入的输入信号ANY_BAD_IN_L和BAD_ROW_L执行或布尔函数来在其输出处生成信号ANY_BAD_OUT_L。或门502通过对提供给或门502的输入的输入信号ANY_BAD_IN_R和BAD_ROW_R执行或布尔函数来在其输出处生成信号ANY_BAD_OUT_R。
当在左侧区域110A或110C之一中的任何半行中检测到缺陷时,用于该半行的信号BAD_ROW_L被驱动为逻辑高状态。为IC 100中的在区域110B和110D中的每一个区域内的每半个电路行生成不同的信号BAD_ROW_R。当在右侧区域110B或110D之一中的任何半行中检测到缺陷时,用于该半行的信号BAD_ROW_R被驱动为逻辑高状态。信号BAD_ROW_L和BAD_ROW_R可以由在IC的测试期间配置的非易失性存储器和逻辑电路提供。
IC 100中的每个电路行均包括控制电路500。例如,IC 100中的区域110A和110C均具有12个电路行,并因此区域110A和110C均具有12个控制电路500。每个控制电路500的输入信号ANY_BAD_IN_L和ANY_BAD_IN_R分别是直接在该控制电路上方的控制电路500的输出信号ANY_BAD_OUT_L和ANY_BAD_OUT_R。然而,用于相邻的一对区域的第一控制电路500在其上方不具有控制电路500,并因此该控制电路500可以具有连接到逻辑0的输入信号ANY_BAD_IN_L和ANY_BAD_IN_R。
现在描述图5的控制电路500的操作。如果在左侧区域110A或110C中包含电路500的行(这里称为行A)的左半部分中检测到缺陷,则BAD_ROW_L被驱动为高,从而使得或门501的输出信号ANY_BAD_OUT_L为高并且反相器505的输出信号为低。如果ANY_BAD_IN_L信号为高,从而指示在行A上方的左侧区域中具有缺陷,则或门501的输出信号也为高。如果在右侧区域110B或110D中的行A的右半部分中未检测到缺陷,则BAD_ROW_R为低。如果在行A上方的右侧区域中没有缺陷,则ANY_BAD_IN_R也为低。如果ANY_BAD_IN_R和BAD_ROW_R二者都为低,则或门502的输出信号ANY_BAD_OUT_R为低,并且反相器电路506的输出信号为高。响应于或门501和反相器506的输出信号都为高,与门504的输出信号SHIFT_RIGHT_UP为高。
信号SHIFT_RIGHT_UP作为第一选择信号提供给行A中的用于进行右驱动的多路复用器电路和行A中的用于进行左驱动的多路复用器电路的选择输入。例如,可以将信号SHIFT_RIGHT_UP作为信号S1和S4分别提供给多路复用器电路411和431的选择输入,或者可以将信号SHIFT_RIGHT_UP作为信号S2和S5分别提供给多路复用器电路412和432的选择输入。响应于信号SHIFT_RIGHT_UP为高,这些多路复用器电路在区域110A和110B之间(或在区域110C和110D之间)提供信号。如果例如多路复用器电路412和432在行A中,则多路复用器电路412将来自PLCB403的信号驱动到行A的右半部分,并且多路复用器电路432将来自PLCB421的信号驱动到行A的左半部分。
如果在右侧区域110B或110D中包含电路500的行A的右半部分中检测到缺陷,则BAD_ROW_R被驱动为高,从而使得或门502的输出信号ANY_BAD_OUT_R为高并且反相器506的输出信号为低。如果ANY_BAD_IN_R信号为高,从而指示在行A上方的右侧区域中具有缺陷,则或门502的输出信号也为高。如果在左侧区域110A或110C中的行A的左半部分中没有检测到缺陷,则BAD_ROW_L为低。如果在行A上方的左侧区域中没有检测到缺陷,则ANY_BAD_IN_L为低。如果ANY_BAD_IN_L和BAD_ROW_L二者都为低,则或门501的输出信号为低,并且反相器电路505的输出信号为高。响应于或门502和反相器505的输出信号都为高,与门503的输出信号SHIFT_LEFT_UP为高。
信号SHIFT_LEFT_UP作为第二选择信号被提供给行A中的用于进行左驱动的多路复用器电路和行A中的用于进行右驱动的多路复用器电路的选择输入。例如,可以将信号SHIFT_LEFT_UP作为信号S2和S5分别提供给多路复用器电路412和432的选择输入,或者可以将信号SHIFT_LEFT_UP作为信号S3和S6分别提供给多路复用器电路413和433的选择输入。响应于信号SHIFT_LEFT_UP为高,这些多路复用器电路在区域110A和110B之间(或在区域110C和110D之间)提供信号。如果例如多路复用器电路412和432在行A中,则多路复用器电路412将来自PLCB401的信号驱动到行A,并且多路复用器电路432将来自PLCB 423的信号驱动到行A。
如果行A和行A上方的行在左侧区域或右侧区域中都不包含任何缺陷,则由一个控制电路500生成的信号SHIFT_LEFT_UP和SHIFT_RIGHT_UP二者都为低。如果在行A或行A上方的行中的左侧区域和右侧区域二者中都存在缺陷,则由一个控制电路500生成的信号SHIFT_LEFT_UP和SHIFT_RIGHT_UP二者也都为低。如果来自一个控制电路500的信号SHIFT_LEFT_UP和SHIFT_RIGHT_UP二者均为低,则接收这些选择信号的进行右驱动的多路复用器电路和进行左驱动的多路复用器电路在相同行之间驱动信号。例如,响应于提供给多路复用器电路411和431的选择信号都为低,多路复用器电路411可以将来自PLCB 401的信号驱动到PLCB 421,并且多路复用器电路431可以将来自PLCB 421的信号驱动到PLCB 401。
图6示出了根据实施例的在集成电路管芯中的两个区域之间的边界处的、位于每个电路行中的两个2到1多路复用器电路的示例。图6示出了可编程逻辑电路块(PLCB)601-603和631-633以及进行右驱动的2到1多路复用器电路611-613和621-623。PLCB 601-603、多路复用器电路611-613和621-623、以及PLCB 631-633均分别位于IC中的第一电路行、第二电路行和第三电路行中。
多路复用器电路611-613和621-623被配置为在图6中从左到右地(即,右驱动)将信号从IC的第一区域(例如,区域110A或110C)提供给IC的第二区域(例如,区域110B或110D),其中IC的第二区域位于IC中的第一区域的右侧。图6的多路复用器电路可以将来自IC的第一区域中的任何电路行的信号穿过第一区域和第二区域之间的边界驱动到IC的第二区域中的三个相邻行之一。IC的第一区域和第二区域之间的边界在图6中被显示为垂直虚线。当被编程的功能在一个区域中的一行或多行的(多个)部分中没有转移时,多路复用器电路611-613和621-623可以为用于水平相邻区域中的相同行的其它部分中的被编程功能提供转移。
选择信号ANY_BAD_L被提供给每个多路复用器电路611-613的选择输入。选择信号ANY_BAD_L由控制电路500之一生成,选择信号ANY_BAD_L作为该控制电路500的输出信号ANY_BAD_OUT_L。选择信号ANY_BAD_L可以作为输入信号ANY_BAD_IN_L提供给一个或多个其它控制电路500。
选择信号ANY_BAD_R被提供给每个多路复用器电路621-623的选择输入。选择信号ANY_BAD_R由控制电路500之一生成,选择信号ANY_BAD_R作为该控制电路500的输出信号ANY_BAD_OUT_R。选择信号ANY_BAD_R可以作为输入信号ANY_BAD_IN_R被提供给一个或多个其它控制电路500。
多路复用器电路611被配置为响应于选择信号ANY_BAD_L,以将来自两个不同行中的PLCB 601或PLCB 602的信号提供给多路复用器电路621的输入。多路复用器电路621被配置为响应于选择信号ANY_BAD_R,以将多路复用器电路611的输出信号或来自第三行(未示出)的信号提供给PLCB 631和/或同一行中的其它电路。因此,多路复用器电路611和621可以将来自第一区域中的三个不同行之一的信号提供给第二区域中的包含PLCB 631的行。
多路复用器电路612被配置为响应于选择信号ANY_BAD_L,以将来自两个不同行中的PLCB 602或PLCB 603的信号提供给多路复用器电路622的输入。多路复用器电路622被配置为响应于选择信号ANY_BAD_R,以将多路复用器电路611的输出信号或多路复用器电路612的输出信号提供给PLCB 632和/或同一行中的其它电路。因此,多路复用器电路612和622可以将来自第一区域中的三个不同行之一的信号提供给第二区域中的包含PLCB 632的行。
多路复用器电路613被配置为响应于选择信号ANY_BAD_L,以将来自一行中的PLCB603的信号或来自另一行(未示出)中的PLCB的信号提供给多路复用器电路623的输入。多路复用器电路623被配置为响应于选择信号ANY_BAD_R,以将多路复用器电路612的输出信号或多路复用器电路613的输出信号提供给PLCB 633和/或同一行中的其它电路。因此,多路复用器电路613和623可以将来自第一区域中的三个不同行之一的信号提供给第二区域中的包含PLCB 633的行。
如上所述,当用于第一区域或第二区域中的一个区域中的一些行的功能已经下移而用于第一区域或第二区域中的另一区域中的相同行的功能没有下移时,多路复用器电路611-613和621-623可以将信号发送穿过第一区域与第二区域之间的边界而到达IC的用户设计中的适当行。尽管在图6中仅示出了进行右驱动的多路复用器电路611-613和621-623,但是IC还包括进行左驱动的2到1多路复用器电路(未示出),其将来自第二区域的信号穿过这两个区域之间的边界而驱动到IC的第一区域。
根据其它实施例,现有的路由选择多路复用器电路(其是可编程逻辑集成电路中的可编程互连结构的一部分)被改变用途,以用作避免添加额外的多路复用器电路的转移多路复用器电路。然而,在这些实施例中的一些实施例中,可以减少穿过区域之间的边界的导线的数量。图7-图8示出了这些实施例的示例。
图7示出了根据实施例的在集成电路管芯中的两个区域之间的边界处的、位于每个电路行中的3到1多路复用器电路。图7示出了可编程逻辑电路块(PLCB)701-703和721-723、以及进行右驱动的3到1多路复用器电路711-713。PLCB 701-703、多路复用器电路711-713和PLCB 721-723均分别位于集成电路(IC)中的第一电路行、第二电路行和第三电路行中。
在图7的实施例中,在每个电路行中的一组三条水平的路由选择导线中,两条导线终止于第一区域和第二区域之间的边界处,并且一条导线继续穿过第一区域和第二区域之间的边界。第一区域和第二区域之间的边界在图7中由垂直虚线示出。图7中的第一电路行、第二电路行和第三电路行中的继续穿过第一区域和第二区域之间的边界的导线分别是导线731、732和733。
例如,多路复用器电路711-713可以是改变用途的路由选择多路复用器,例如驱动器输入多路复用器(DIM)或逻辑阵列块输入多路复用器(LIM)。多路复用器电路711-713中的每一个均使用三条扇入导线来在同一行、该同一行上方的相邻行或该同一行下方的相邻行当中的信号中进行选择。因此,多路复用器电路711被配置为响应于选择信号,以将来自包含PLCB 701的行、包含PLCB 702的行或者位于包含PLCB 701的行上方的行的信号提供给PLCB 721的输入。多路复用器电路712被配置为响应于选择信号,以将来自包含PLCB 701的行、包含PLCB 702的行或者包含PLCB 703的行的信号提供给PLCB 722的输入。多路复用器电路713被配置为响应于选择信号,以将来自包含PLCB 702的行、包含PLCB 703的行或者位于包含PLCB 703的行下方的行的信号提供给PLCB 723的输入。
多路复用器电路711-713的选择输入例如可以由存储在配置随机存取存储器(CRAM)中的配置位来控制。配置位用作控制多路复用器电路711-713的选择信号。在这个示例中,编程硬件对存储在CRAM中的位的值进行修改,以便基于哪些电路行被穿过第一区域和第二区域之间的边界转移来为多路复用器电路711-713选择适当的扇入。多路复用器电路711-713的输入处的导线的三重化(triplication)是通过在多路复用器电路711-713中的每一个多路复用器电路的输入处使用跨接(span)在第二区域中的每一行上的三条导线来实现的。因此,多路复用器电路711-713中的每一个多路复用器电路的3个输入被耦合到跨接在第二区域中的对应行上的3条导线。
在另一实施例中,导线延伸了多路复用器电路的输入范围,以跨接在三个相邻的电路行上。每个多路复用器电路的输入处的导线不跨接在同一电路行上。图8中示出了这个实施例的一个示例。图8示出了根据实施例的3到1多路复用器电路,每个3到1多路复用器电路均具有耦合到三个相邻电路行的输入。图8示出了可编程逻辑电路块(PLCB)801-803和821-823以及进行右驱动的3到1多路复用器电路811-813。PLCB 801-803、多路复用器电路811-813和PLCB 821-823均分别在集成电路(IC)中的第一电路行、第二电路行和第三电路行中。
在图8的实施例中,在每个电路行中的一组三条水平的路由选择导线中,两条导线终止于第一区域和第二区域之间的边界处,并且一条导线继续穿过第一区域和第二区域之间的边界,这与图7的实施例相同。第一区域和第二区域之间的边界在图8中由垂直虚线示出。图8中的第一电路行、第二电路行和第三电路行中的继续穿过第一区域和第二区域之间的边界的导线分别是导线831、832和833。
例如,多路复用器电路811-813可以是改变用途的路由选择多路复用器,例如DIM或LIM。多路复用器电路811-813中的每一个均使用三条扇入导线来在同一行、该同一行上方的相邻行或该同一行下方的相邻行当中的信号中进行选择。因此,多路复用器电路811被配置为响应于选择信号,以将来自包含PLCB 801的行、包含PLCB 802的行或者位于包含PLCB 801的行上方的行的信号提供给PLCB 821的输入。多路复用器电路812被配置为响应于选择信号,以将来自包含PLCB 801的行、包含PLCB 802的行或者包含PLCB 803的行的信号提供给PLCB 822的输入。多路复用器电路813被配置为响应于选择信号,以将来自包含PLCB 802的行、包含PLCB 803的行或者位于包含PLCB 803的行下方的行的信号提供给PLCB823的输入。
多路复用器电路811-813的选择输入例如可以由存储在CRAM中的配置位来控制,其中该配置位用作控制多路复用器电路811-813的选择信号。在这个示例中,编程硬件对存储在CRAM中的位的值进行修改,以便基于哪些电路行被穿过第一区域和第二区域之间的边界转移来为多路复用器电路811-813选择适当的扇入。可选地,多路复用器电路811-813可以使用配置RAM位和转移信号(例如SHIFT_RIGHT_UP)二者的组合来选择适当的扇入。
图9示出了根据实施例的电路架构的示例,其中,该电路架构允许电路行中的全部三条路由选择导线穿过第一区域和第二区域之间的边界。在图9中,路由选择多路复用器电路上的扇入输入被提供给未转移的电路行和转移的电路行中的导线。在第一区域和第二区域之间的边界处在每个电路行中使用多路复用器电路,以提供穿过该边界的、去往每条导线的连接。图9中的每列多路复用器电路将扇入提供给不同的导线。图9的实施例减少了对用于穿过边界的导线的路由选择的逻辑连接性,但是穿过边界的导线总数不受行冗余或行转移的影响。
图9示出了可编程逻辑电路块(PLCB)901-903、921-923、941-943和961-963。图9还示出了进行右驱动的3到1多路复用器电路911-913、931-933和951-953。PLCB 901-903、多路复用器电路911-913、PLCB 921-923、多路复用器电路931-933、PLCB 941-943、多路复用器电路951-953和PLCB961-963均分别位于集成电路(IC)中的第一电路行、第二电路行和第三电路行中。
例如,多路复用器电路911-913、931-933和951-953可以是改变用途的路由选择多路复用器,例如DIM或LIM。多路复用器电路911-913、931-933和951-953中的每一个均使用三条扇入导线来在同一行、该同一行上方的相邻行或该同一行下方的相邻行当中的信号中进行选择。多路复用器电路911被配置为响应于选择信号,以将来自包含PLCB 901的行中的导线972、包含PLCB 902的行中的导线975或者位于包含PLCB 901的行上方的行中的导线的信号提供给PLCB 921的输入。多路复用器电路912被配置为响应于选择信号,以将来自导线972、导线975或包含PLCB 903的行中的导线978的信号提供给PLCB 922的输入。多路复用器电路913被配置为响应于选择信号,以将来自导线975、导线978或者位于包含PLCB 903的行下方的行中的导线的信号提供给PLCB 923的输入。
多路复用器电路931被配置为响应于选择信号,以将来自包含PLCB921的行中的导线971、包含PLCB 922的行中的导线974或者位于包含PLCB 921的行上方的行中的导线的信号提供给PLCB 941的输入。多路复用器电路932被配置为响应于选择信号,以将来自导线971、导线974或包含PLCB 923的行中的导线977的信号提供给PLCB 942的输入。多路复用器电路933被配置为响应于选择信号,以将来自导线974、导线977或者位于包含PLCB 923的行下方的行中的导线的信号提供给PLCB 943的输入。
多路复用器电路951被配置为响应于选择信号,以将来自包含PLCB941的行中的导线973、包含PLCB 942的行中的导线976或者位于包含PLCB 941的行上方的行中的导线的信号提供给PLCB 961的输入。多路复用器电路952被配置为响应于选择信号,以将来自导线973、导线976或包含PLCB 943的行中的导线979的信号提供给PLCB 962的输入。多路复用器电路953被配置为响应于选择信号,以将来自导线976、导线979或者位于包含PLCB 943的行下方的行中的导线的信号提供给PLCB 963的输入。
因此,在图9的实施例中,多路复用器电路911-913、931-933和951-953中的每一个多路复用器电路均具有与三个相邻电路行中的、穿过第一区域和第二区域之间的边界的导线的输入连接。图9的多路复用器电路可以被配置为将来自电路行中的三条不同导线的信号提供给一行中的PLCB的输入。例如,多路复用器电路912、932和952可以被配置为将第一行中的导线972、971和973上的信号分别提供给PLCB 922、942和962的输入。作为另一示例,多路复用器电路912、932和952可以被配置为将第二行中的导线975、974和976上的信号分别提供给PLCB 922、942和962的输入。作为又一示例,多路复用器电路912、932和952可以被配置为将第三行中的导线978、977和979上的信号分别提供给PLCB 922、942和962的输入。
图9中的多路复用器电路的选择输入例如可以由存储在CRAM中的配置位来控制,其中该配置位用作控制多路复用器电路的选择信号。在这个示例中,编程硬件对存储在CRAM中的位的值进行修改,以便基于哪些电路行被穿过第一区域和第二区域之间的边界转移来为多路复用器电路选择适当的扇入。尽管在图7-9中仅示出了进行右驱动的多路复用器电路,但是每个IC还包括进行左驱动的3到1多路复用器电路,其中该3到1多路复用器电路将来自IC的第二区域的信号穿过IC的第二区域与IC的第一区域之间的边界驱动到IC的第一区域。
图10示出了根据实施例的用于绕开集成电路中的缺陷的操作的示例。在操作1001中,接收集成电路的第一区域中的第一缺陷和集成电路的第二区域中的第二缺陷的指示。这些指示可以例如以图5所示的信号ANY_BAD_IN_R、ANY_BAD_IN_L、BAD_ROW_L和/或BAD_ROW_R的形式来提供。第一区域包括第一电路行、第二电路行、第三电路行和第四电路行中的每一个电路行的第一部分。第二区域包括第一电路行、第二电路行、第三电路行和第四电路行中的每一个电路行的第二部分。在操作1002中,将用于第一电路行的第一部分的功能转移到第二电路行的第一部分,以绕开第一电路行的第一部分中的第一缺陷。仅禁用第一电路行的第一部分。在操作1003中,将用于第三电路行的第二部分的功能转移到第一电路行的第二部分,以绕开第四电路行的第二部分中的第二缺陷。仅禁用第四电路行的第二部分。
本文描述的方法和装置可以被并入到任何合适的电子设备或电子设备系统中。例如,该方法和装置可以被并入到许多类型的设备中,例如可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑器件(EPLD)、电可擦除可编程逻辑器件(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)、专用标准产品(ASSP)、专用集成电路(ASIC)、数字信号处理器(DSP)、微处理器和图形处理单元(GPU)。
本文描述的集成电路可以是包括下列部件中的一个或多个部件的数据处理系统的一部分:处理器、存储器、输入/输出电路、和外围设备。集成电路可以用于各种各样的应用,例如计算机联网、数据联网、仪器仪表、视频处理、数字信号处理或任何其它合适的应用。
尽管方法操作是以特定的顺序描述的,但是应当理解可以在所描述的操作之间执行其它操作,所描述的操作可以被调整为使得它们在略微不同的时间或者以不同的顺序进行,或者所描述的操作可以分布在系统中,该系统允许以与处理相关的各种间隔进行操作。
先前已经出于示例的目的呈现了本发明的示例性实施例的描述。该先前描述并不是要进行穷举或将本发明限制于本文公开的示例。在一些情况下,可以使用本发明的特征,而不如上阐述地对应地使用其它特征。鉴于上述教导,许多修改、替换和变化都是可能的,而不会偏离本发明的范围。

Claims (21)

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.如权利要求13所述的可编程逻辑集成电路,其中,所述控制电路使得所述多路复用器电路穿过所述第一区域与所述第二区域之间的边界在所述电路行中的所述第一电路行的所述第一部分与所述电路行中的所述第二电路行的所述第二部分之间提供信号,以允许基于所述第一区域中的缺陷来将用于所述第一区域中的所述电路行的第一子集的功能转移到所述第一区域中的所述电路行中的后续电路行。
15.一种用于绕开集成电路中的缺陷的方法,所述集成电路包括电路行,其中所述集成电路的第一区域包括所述电路行中的每一电路行的第一部分,并且所述集成电路的第二区域包括所述电路行中的每一电路行的第二部分,所述方法包括:
由所述集成电路基于所述第一区域中的所述电路行中的第一电路行中的第一缺陷来将用于所述第一区域中的所述电路行的第一子集的功能转移到所述第一区域中的所述电路行中的后续电路行,其中仅禁用在所述第一区域中的所述电路行中的所述第一电路行,
由所述集成电路基于所述第二区域中的所述电路行中的第二电路行中的第二缺陷来将用于所述第二区域中的所述电路行的第二子集的功能转移到所述第二区域中的所述电路行中的后续电路行,其中仅禁用在所述第二区域中的所述电路行中的所述第二电路行,其中所述电路行中的所述第二电路行与所述电路行中的所述第一电路行不同,并且其中,所述电路行的所述第二子集包括所述第一子集中的所述电路行中的至少一些电路行。
16.如权利要求15所述的方法,其中,所述集成电路包括多路复用器电路,其中,所述电路行中的第三电路行是冗余电路行,所述方法还包括:
由所述多路复用器电路将用于所述集成电路的所述第一区域和所述第二区域二者中的所述电路行中的第四电路行的所述第一部分和所述第二部分的功能转移到所述集成电路的所述第一区域和所述第二区域二者中的冗余电路行。
17.如权利要求15所述的方法,所述集成电路包括多路复用器电路,所述方法还包括:
由所述多路复用器电路将来自所述电路行中的第三电路行的所述第一部分的信号提供给所述电路行中的第四电路行的所述第二部分,其中,所述电路行中的所述第四电路行与所述电路行中的所述第三电路行相比是所述电路行中的不同电路行。
18.如权利要求15所述的方法,所述集成电路包括多路复用器电路和控制电路,所述方法还包括:
由所述控制电路生成用于控制所述多路复用器电路的控制信号,其中,所述控制电路对指示所述电路行中的所述第一电路行的所述第一部分是否包含所述第一缺陷的第一输入信号进行响应,并且其中,所述控制电路对指示所述电路行中的所述第一电路行的所述第二部分是否包含缺陷的第二输入信号进行响应。
19.如权利要求18所述的方法,所述方法还包括:
由所述控制电路使所述多路复用器电路将来自所述电路行中的第三电路行的所述第一部分的信号穿过所述第一区域与所述第二区域之间的边界提供给所述电路行中的第四电路行的所述第二部分,以使得用于所述集成电路的用户设计中的所述电路行中的单个电路行的功能由所述电路行中的所述第三电路行的所述第一部分和所述电路行中的所述第四电路行的所述第二部分执行,其中,所述电路行中的所述第三电路行和所述第四电路行是不同的电路行。
20.如权利要求15所述的方法,所述集成电路包括多路复用器电路,所述方法还包括:
由每个所述电路行中的一个所述多路复用器电路将来自所述电路行中的三个相邻电路行中的三条导线中的任一导线的信号穿过所述第一区域与所述第二区域之间的边界提供给所述电路行中的包含该多路复用器电路的一个电路行中的电路块。
21.如权利要求15所述的方法,所述集成电路包括多路复用器电路,所述方法还包括:
由每个所述电路行中的两个所述多路复用器电路将来自所述电路行中的三个相邻电路行中的三条导线中的任一导线的信号穿过所述第一区域与所述第二区域之间的边界提供给所述电路行中的一个电路行中的电路块。
CN201711163140.0A 2016-12-22 2017-11-21 用于绕开电路行中的缺陷的技术 Active CN108228395B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/389,292 US9893732B1 (en) 2016-12-22 2016-12-22 Techniques for bypassing defects in rows of circuits
US15/389,292 2016-12-22

Publications (2)

Publication Number Publication Date
CN108228395A CN108228395A (zh) 2018-06-29
CN108228395B true CN108228395B (zh) 2023-07-14

Family

ID=60421615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711163140.0A Active CN108228395B (zh) 2016-12-22 2017-11-21 用于绕开电路行中的缺陷的技术

Country Status (3)

Country Link
US (1) US9893732B1 (zh)
EP (1) EP3343770A1 (zh)
CN (1) CN108228395B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625523B2 (en) 2016-12-14 2023-04-11 iCometrue Company Ltd. Logic drive based on standard commodity FPGA IC chips
CN108288616B (zh) 2016-12-14 2023-04-07 成真股份有限公司 芯片封装
US10957679B2 (en) 2017-08-08 2021-03-23 iCometrue Company Ltd. Logic drive based on standardized commodity programmable logic semiconductor IC chips
US10630296B2 (en) 2017-09-12 2020-04-21 iCometrue Company Ltd. Logic drive with brain-like elasticity and integrality based on standard commodity FPGA IC chips using non-volatile memory cells
US10608642B2 (en) 2018-02-01 2020-03-31 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile radom access memory cells
US10623000B2 (en) * 2018-02-14 2020-04-14 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips
US10608638B2 (en) 2018-05-24 2020-03-31 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips
US11309334B2 (en) 2018-09-11 2022-04-19 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells
US11616046B2 (en) 2018-11-02 2023-03-28 iCometrue Company Ltd. Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip
US11211334B2 (en) 2018-11-18 2021-12-28 iCometrue Company Ltd. Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip
US11227838B2 (en) 2019-07-02 2022-01-18 iCometrue Company Ltd. Logic drive based on multichip package comprising standard commodity FPGA IC chip with cooperating or supporting circuits
US11887930B2 (en) 2019-08-05 2024-01-30 iCometrue Company Ltd. Vertical interconnect elevator based on through silicon vias
US11637056B2 (en) 2019-09-20 2023-04-25 iCometrue Company Ltd. 3D chip package based on through-silicon-via interconnection elevator
US11600526B2 (en) 2020-01-22 2023-03-07 iCometrue Company Ltd. Chip package based on through-silicon-via connector and silicon interconnection bridge
US20220113350A1 (en) * 2021-12-22 2022-04-14 Intel Corporation Segmented row repair for programmable logic devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992019052A1 (en) * 1991-04-19 1992-10-29 Vlsi Technology, Inc. Mappable test structure for gate array circuit and method for testing the same
CN102708923A (zh) * 2010-09-21 2012-10-03 瑞萨电子株式会社 半导体集成电路以及控制方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6201404B1 (en) 1998-07-14 2001-03-13 Altera Corporation Programmable logic device with redundant circuitry
EP1162747B1 (en) * 2000-04-26 2012-02-29 Altera Corporation Line segmentation in programmable logic devices having redundancy circuitry
US6965249B2 (en) 2001-10-15 2005-11-15 Altera Corporation Programmable logic device with redundant circuitry
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
US7180324B2 (en) 2004-05-28 2007-02-20 Altera Corporation Redundancy structures and methods in a programmable logic device
US7508231B2 (en) * 2007-03-09 2009-03-24 Altera Corporation Programmable logic device having redundancy with logic element granularity
US7746100B2 (en) * 2008-04-28 2010-06-29 Altera Corporation Flexible adder circuits with fast carry chain circuitry
US7772872B2 (en) * 2008-09-08 2010-08-10 Altera Corporation Multi-row block supporting row level redundancy in a PLD
US8860460B1 (en) * 2012-11-05 2014-10-14 Altera Corporation Programmable integrated circuits with redundant circuitry
US10523207B2 (en) * 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992019052A1 (en) * 1991-04-19 1992-10-29 Vlsi Technology, Inc. Mappable test structure for gate array circuit and method for testing the same
CN102708923A (zh) * 2010-09-21 2012-10-03 瑞萨电子株式会社 半导体集成电路以及控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
支持边界扫描测试的电路设计;李鑫;刘伟;;无线电通信技术(第06期);全文 *
电子镇流器控制芯片死区控制电路的优化设计;孙岩;许维胜;余有灵;;装备制造技术(第06期);全文 *

Also Published As

Publication number Publication date
US9893732B1 (en) 2018-02-13
CN108228395A (zh) 2018-06-29
EP3343770A1 (en) 2018-07-04

Similar Documents

Publication Publication Date Title
CN108228395B (zh) 用于绕开电路行中的缺陷的技术
EP0983549B1 (en) Redundancy circuitry for programmable logic devices with interleaved input circuits
US6201404B1 (en) Programmable logic device with redundant circuitry
JP5485962B2 (ja) 電子デバイス
US7902855B1 (en) Repairable IO in an integrated circuit
EP2728753B1 (en) Programmable integrated circuits with redundant circuitry
US7345507B1 (en) Multi-product die configurable as two or more programmable integrated circuits of different logic capacities
US8001511B1 (en) Methods of implementing and modeling interconnect lines at optional boundaries in multi-product programmable IC dies
US6600337B2 (en) Line segmentation in programmable logic devices having redundancy circuitry
US7402443B1 (en) Methods of providing families of integrated circuits with similar dies partially disabled using product selection codes
US7498192B1 (en) Methods of providing a family of related integrated circuits of different sizes
US20100182473A1 (en) Solid-state imaging device
US7215140B1 (en) Programmable logic device having regions of non-repairable circuitry within an array of repairable circuitry and associated configuration hardware and method
US7491576B1 (en) Yield-enhancing methods of providing a family of scaled integrated circuits
US7786749B1 (en) Programmable integrated circuit having built in test circuit
Yu et al. Defect-tolerant FPGA switch block and connection block with fine-grain redundancy for yield enhancement
JP2006518095A (ja) 製造された集積回路の設計ミスを修正するための予備のセル構造
TWI393245B (zh) 用於半導體積體電路裝置的保險絲電路
EP1986326B1 (en) A programmable logic device having redundancy with logic element granularity
Harikrishna et al. A survey on fault tolerance in FPGAs
US6885218B1 (en) Parallel programmable antifuse field programmable gate array device (FPGA) and a method for programming and testing an antifuse FPGA
US9030227B1 (en) Methods and apparatus for providing redundancy on multi-chip devices
US20220113350A1 (en) Segmented row repair for programmable logic devices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant