US20010006347A1 - Redundancy circuitry for programmable logic devices with interleaved input circuits - Google Patents

Redundancy circuitry for programmable logic devices with interleaved input circuits Download PDF

Info

Publication number
US20010006347A1
US20010006347A1 US09/795,870 US79587001A US2001006347A1 US 20010006347 A1 US20010006347 A1 US 20010006347A1 US 79587001 A US79587001 A US 79587001A US 2001006347 A1 US2001006347 A1 US 2001006347A1
Authority
US
United States
Prior art keywords
column
logic
programmable logic
columns
defective
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
Application number
US09/795,870
Other versions
US6337578B2 (en
Inventor
David Jefferson
Srinivas Reddy
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.)
Altera Corp
Original Assignee
Altera 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 Altera Corp filed Critical Altera Corp
Priority to US09/795,870 priority Critical patent/US6337578B2/en
Publication of US20010006347A1 publication Critical patent/US20010006347A1/en
Application granted granted Critical
Publication of US6337578B2 publication Critical patent/US6337578B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • 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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • 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
    • 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/1778Structural details for adapting physical parameters

Definitions

  • This invention relates to programmable logic devices, and more particularly, to redundancy circuitry for repairing programmable logic devices containing defects.
  • Programmable logic devices are integrated circuits that may be programmed to perform custom logic functions. Integrated circuit fabrication techniques are not perfect, so occasionally a programmable logic device may be fabricated with a defect. Unless the defect can be repaired before the logic device is put into use, the logic device must be discarded. Discarding such a device is wasteful, particularly when a defect is relatively minor. As a result, various redundancy schemes have been developed that allow spare circuitry to be switched into place to repair a defective portion of a circuit.
  • the difficulty of implementing a suitable redundancy scheme for a given logic device architecture depends on the attributes of the architecture. For example, there are difficulties associated with providing redundancy for programmable logic devices that use interleaved multiplexer circuitry to distribute signals to logic array blocks. Because adjacent logic array blocks share signal routing resources in such arrangements, the occurrence of a defect in one logic array block can affect an adjacent and otherwise defect-free logic array block. Although it might be possible to use a redundancy scheme in which both of these affected logic array blocks are replaced upon detection of a defect, such a scheme would necessarily involve bypassing at least one defect-free logic array block. A redundancy scheme that uses logic resources more efficiently would be desirable.
  • This and other objects of the invention are accomplished in accordance with the principles of the present invention by providing redundant circuitry for a programmable logic device that uses interleaved input multiplexer circuits to distribute signals to adjacent logic regions.
  • the programmable logic device has at least one row of logic regions and has multiple columns, each of which contains one of the interleaved input multiplexers and one of the logic regions.
  • a set of conductors associated with the row of logic regions is used to convey signals between logic regions.
  • Each interleaved input multiplexer circuit distributes logic signals from the conductors in the row to two adjacent logic regions.
  • One of the logic regions to which the signals are distributed is in the same column as the interleaved input multiplexer circuit.
  • the other logic region to which the signals are distributed is in an adjacent column.
  • Bypass circuitry is provided in each column for bypassing the interleaved input multiplexer and logic region in that column.
  • the device is tested to determine if any of the columns contain defective circuitry. If a defect is detected in a column, the manufacturer can repair the device by configuring the bypass circuitry to bypass that column during use of the device.
  • a user supplies programming data to the device that directs the various logic components on the device to perform desired logical functions. If a column of circuitry contains a defect, circuitry previously configured by the manufacturer shifts the programming data originally intended for that column into an adjacent column. The programming data originally intended for the adjacent column and each successive column of logic in the row is also shifted.
  • a spare column of logic is provided at the end of the row to receive the shifted programming data from the last column of regular logic when the programming data for the various columns of logic is being shifted to accommodate the bypassing of a defective column.
  • the spare logic makes up for the logic that is lost when the defective column is bypassed. As a result, the same number of logic regions are used regardless of whether the device is repaired following detection of a defect or was defect free initially.
  • Outputs from the logic regions are applied to the conductors using programmable drivers.
  • the drivers associated with each column typically form a unique pattern of connections to the conductors.
  • the programming data associated with the drivers is also shifted to the successive column.
  • the programmable logic device uses programming data redirecting circuitry to redirect the shifted programming data for the drivers back to the drivers in the original column.
  • auxiliary drivers are provided in each column. The auxiliary drivers in each column form the same pattern of connections to the conductors that are formed by the normal drivers in the previous column. When a column containing a defect is repaired, the auxiliary drivers in successive columns are used in place of the normal drivers to ensure that the outputs of the logic regions in the successive columns are directed to the same destinations that they would have been directed to had the programming data not been shifted.
  • the logic regions are preferably programmable logic array blocks, each of which contains a plurality of programmable logic elements based on a four-input look-up table or based on product term logic.
  • Two sets of logic array blocks may be provided in a row.
  • a single spare logic array block may be provided in the center of the row. This reduces the overhead associated with redundancy, because the two sets of logic array blocks in the row can share the spare logic array block.
  • FIG. 1 is a circuit diagram of a portion of an illustrative programmable logic device with a redundancy arrangement in accordance with the present invention.
  • FIG. 2 is a more detailed circuit diagram of a portion of a programmable logic device of the type shown in FIG. 1.
  • FIG. 3 is a circuit diagram of a portion of the programmable logic device of FIG. 2 showing the interleaved input multiplexer circuits in more detail.
  • FIG. 4 is a circuit diagram showing the circuitry used to route programming data to various portions of the programmable logic device of the present invention.
  • FIG. 5 is a circuit diagram showing the output driver connections that are made between logic array blocks and horizontal conductors in a programmable logic device in accordance with the present invention.
  • FIG. 6 is a circuit diagram showing an arrangement for reducing the overhead associated with providing redundancy in accordance with the present invention.
  • FIG. 7 is a diagram of a data processing system in which a programmable logic device having the redundancy circuitry of the present invention may be used.
  • Programmable logic devices are integrated circuits that contain logic that may be reconfigured or “programmed” by a user to perform custom logic functions. At their most basic level, programmable logic devices are based on programmable switches or connectors. Such programmable components may use random-access memory, read-only memory, erasable programmable read-only memory, electrically-erasable programmable read-only memory, fuses, antifuses, ferro-electric elements, or other suitable programmable component technology.
  • Programmable logic devices that contain redundant or spare circuitry may be configured by a manufacturer during the manufacturing process to repair portions of the circuit that are determined to be defective.
  • FIG. 1 A programmable logic device integrated circuit having a redundancy arrangement in accordance with the present invention is shown in FIG. 1.
  • Programmable logic device 10 preferably has one or more rows of logic array blocks 12 , although the principles of the invention are applicable to programmable logic devices containing any suitable type of programmable logic region.
  • the logic array blocks 12 in a row are interconnected by horizontal conductors 14 . If more than one row of logic array blocks 12 is desired, suitable vertical conductors and associated programmable routing circuitry (not shown) may be used to convey logic signals between rows. To avoid over-complicating the drawings, only a single row of logic array blocks 12 is shown in FIG. 1. In addition, not all of the components of logic device 10 are shown in FIG. 1. For example, details of the input/output circuitry for device 10 are not shown in FIG. 1.
  • Each logic array block 12 preferably contains a number of programmable logic elements 16 .
  • Logic elements 16 and other programmable logic circuitry in programmable logic device 10 may be programmed by a user to perform various logic functions.
  • Logic elements 16 may be based on look-up table logic, product term logic, or any other suitable type of programmable logic. If desired, logic elements 16 may contain register logic for registering various logic signals.
  • Programmable logic device 10 has multiple columns each of which contains a logic array block 12 and an interleaved input multiplexer circuit 18 .
  • Interleaved multiplexer circuits 18 are used to distribute logic signals from horizontal conductors 14 to logic array blocks 12 .
  • Each interleaved input multiplexer circuit 18 distributes signals to two adjacent logic array blocks 12 via conductors 20 .
  • One of the array blocks 12 to which the signals are distributed is in the same column as the interleaved input multiplexer circuit 18 .
  • the other logic array block 12 to which the signals are distributed is in an adjacent column.
  • each row of device 10 there is preferably at least one spare logic array block 12 and at least one spare interleaved input multiplexer circuit 18 .
  • the location of such spare circuitry within a row of logic array blocks 12 is not critical.
  • spare circuitry may be located at either end of a row or may be located in the center of a row if desired.
  • device 10 is tested by the manufacturer. If a defect is located in one of logic array blocks 12 or one of interleaved input multiplexer circuits 18 , device 10 may be repaired by replacing the logic array block 12 and interleaved input multiplexer circuit 18 in the defective column using the spare circuitry.
  • Replacing the defective circuitry typically involves configuring the device so that logic signals that were originally provided to the inputs of the defective circuitry are redirected to unaffected circuitry that is adjacent to the defective circuitry. For example, if it is determined that there is a defect located in the column containing logic array block 12 a and interleaved input multiplexer circuit 18 a (column N ⁇ 1 ), bypass circuit 22 a associated with that column may be used to redirect signals that would normally have been provided to inputs 20 a of logic array block 12 a to inputs 20 b of logic array block 12 b in column N. Bypass circuit 22 b in column N, bypass circuit 22 c in column N+ 1 , and the bypass circuits in other columns are not used.
  • Each logic array block 12 in a row typically makes output connections to the horizontal conductors 14 in the row using a different pattern of drivers.
  • replacing the defective circuitry also involves redirecting the outputs of some of the logic array blocks so that the outputs of the repaired row of logic array blocks are connected to horizontal conductors 14 in the same way that the outputs would have been connected to horizontal conductors 14 if the circuit had been defect free. This ensures that the output signals from each logic array block are directed to the same destinations that they would have been directed to had the circuit not contained a defect.
  • a repaired circuit therefore works identically to a defect-free circuit.
  • output redirecting circuitry 24 a may be used to redirect the signals at outputs 26 b back to driver paths 28 a . Because this allows the same pattern of driver connections to be used to connect outputs 26 b to conductors 14 that would have been used to connect outputs 26 a to conductors 14 had there been no defect, this arrangements ensures that the output signals from logic array block 12 b are directed to the same destinations that the output signals from logic array block 12 a would have been directed had logic array block 12 a or interleaved input multiplexer circuit 18 a not been defective.
  • outputs 26 b of logic array block 12 b are redirected to driver paths 28 a
  • outputs 26 c must be redirected to driver paths 28 b by output redirecting circuit 24 b.
  • the outputs of the logic array blocks 12 in successive columns to the left of logic array block 12 c use similar output redirecting circuits 24 to shift output signals to the output drivers in previous columns immediately to their right.
  • the original output driver patterns of a circuit can be preserved during replacement of defective circuitry using other output redirecting circuitry arrangements.
  • the output redirecting circuitry arrangement may have auxiliary driver paths 28 ′ that can be used in place of the circuitry of normal driver paths 28 .
  • Each auxiliary driver path 28 ′ uses same pattern of drivers to connect its associated logic array block outputs to conductors 14 that are used by the normal driver path 28 in the previous column.
  • each logic array block is connected to conductors 14 using is associated normal driver path 28 . If it is determined that a column contains a defect, the logic array blocks 12 to the right of the defective column are connected to conductors 14 using normal driver paths 28 and the logic array blocks 12 to the left of the defective column are connected to conductors 14 using auxiliary driver paths 28 ′. For example, if logic array block 12 a is defective, the outputs of each logic array block 12 to the right of logic array block 12 a are connected to conductors 14 using a respective one of normal driver paths 28 . However, the outputs of logic array block 12 b and each logic array block 12 to the left of logic array block 12 b are connected to conductors 14 using auxiliary driver paths 28 ′.
  • FIG. 2 is a more detailed circuit diagram of a portion of a programmable logic device of the type shown in FIG. 1.
  • the portion of the programmable logic device 30 shown in FIG. 2 has a single row and multiple columns of logic elements 32 that are interconnected by horizontal conductors 34 .
  • a number of such logic elements 32 in each column are preferably grouped together to form a logic array block in each column, as shown in FIG. 1. This level of detail is not shown in FIG. 2 to avoid over-complicating the drawings.
  • Programmable logic device 30 also preferably contains multiple rows of such logic array blocks each of which contains the same type of logic element arrangement.
  • the logic array blocks in other rows may be interconnected with the row of logic array blocks containing the row of logic elements 32 depicted in FIG. 2 using vertical conductors (not shown) to route signals between various rows of horizontal conductors 34 .
  • logic device 30 may have any suitable number of logic elements 32 .
  • Logic elements 32 may be based on any suitable type of logic such as product term logic or look-up table logic and may contain register logic if desired. Logic elements 32 may have any suitable number of inputs and outputs. In the illustrative arrangement of FIG. 2, logic elements 32 have inputs A, B, C, and D, which may be, for example, the inputs to a standard four-input look-up table circuit. Logic elements 32 of FIG. 2 each have an L output and a G output which may be the outputs from a standard look-up table circuit.
  • Signals from horizontal conductors 34 are provided to input multiplexer circuits 36 by programmable multiplexers 38 and local vertical conductors 40 .
  • Input multiplexer circuits 36 preferably extend past all of the logic elements 32 in a given logic array block.
  • Programmable multiplexers 38 may be programmed by a user of device 30 to connect selected horizontal conductors 34 to local vertical conductors 40 .
  • Local horizontal conductors 42 are used to direct signals from the input multiplexer circuits 36 to the logic elements 32 .
  • FIG. 3 An illustrative set of input multiplexer circuits 36 and logic elements 32 is shown in more detail in FIG. 3. As shown in FIG. 3, signals on the four local vertical conductors 40 associated with each input multiplexer circuit 36 may be selectively routed to the intersecting local horizontal conductors 42 by programmable connectors 43 . The operation of programmable connectors 43 is controlled by data in storage cells 45 .
  • Each multiplexer 47 directs one of the four horizontal conductors 42 connected to its input to an input of a logic element 32 .
  • Each programmable multiplexer 38 is preferably formed from a number of individual programmable connectors 49 .
  • logic elements 32 there are four columns of logic elements 32 .
  • Logic elements 32 b, 32 c, and 32 d are regular logic elements.
  • Logic element 32 a is a spare or redundant logic element 32 .
  • device 30 is tested for defects. If it is determined that device 30 is defect free, spare logic element 32 a need not be used. If a defect is located in a column, the defect can be bypassed by bypassing the logic in that column. In addition, the circuitry of spare logic element 32 a can be shifted into place to replace circuitry lost in the bypassed column (i.e., the bypassed logic element).
  • Each logic element 32 can receive signals from four associated input multiplexer circuits 36 .
  • logic element 32 c may receive signals from input multiplexer circuits 36 e and 36 f (via-the local horizontal conductors 42 a connected to the A and C inputs of logic element 32 c ) and input multiplexer circuits 36 g and 36 h (via the local horizontal conductors 42 b′ connected to the B and D inputs of logic element 32 c with multiplexers 44 ).
  • Adjacent input multiplexer circuits 36 are interleaved with one another because they share a common set of local horizontal conductors 42 .
  • input multiplexer circuit 36 e is interleaved with input multiplexer circuit 36 f because the local horizontal conductors 42 that pass through input multiplexer 36 e also pass through input multiplexer 36 f.
  • Local horizontal conductors 42 a supply signals from input multiplexer circuits 36 directly to logic element inputs A and C.
  • Local horizontal conductors 42 b supply signals from input multiplexer circuits 36 to logic element inputs B and D via bypass multiplexers 44 .
  • device 30 is tested to determine whether or not device 30 contains defective circuitry. If testing indicates that device 30 is defect free, no bypassing is needed. Bypass multiplexers 44 are therefore configured to pass signals from the local horizontal conductors 42 b that are directly connected to their inputs to logic element inputs B and D via multiplexer outputs 46 . If testing indicates that device 30 contains a defect in one of the logic elements 32 or input multiplexer circuits 36 in a column, the manufacturer configures the appropriate bypass multiplexers 44 so that the defective logic in that column is bypassed.
  • bypass multiplexers 44 ′ may be configured to route the signals from local horizontal conductors 42 b ′ to the B and D inputs of logic element 32 b in column 3 via bypass conductors 48 , rather than to the B and D inputs of logic element 32 c of column 2 via outputs 46 ′.
  • the pathways that supply programming data to the logic of device 30 are preferably configured by the manufacturer so that the programming data with which the user programs device 30 is routed to the appropriate logic during device programming.
  • the programming data that would have been used for the programmable multiplexers 38 ′ associated with interleaved input multiplexer circuits 36 e and 36 f had circuits 36 e and 36 f been used is directed to programmable multiplexers 38 ′′.
  • the programming data that would have been used to configure logic element 32 c is provided to logic element 32 b.
  • the programming data that would have been used to establish the pattern programmable connections between local vertical conductors 40 ′ and local horizontal conductors 42 a and 42 b ′′ in interleaved input multiplexers 36 e and 36 f of column 2 is provided to interleaved input multiplexer circuits 36 c and 36 d of column 3 .
  • Another change that is made when defective logic circuitry is bypassed relates to the paths of the logic element output signals provided to conductors 34 .
  • the output multiplexers 50 that are associated with each logic element 32 direct the L and G outputs of that logic element 32 directly to horizontal conductors 34 .
  • multiplexers 50 ′ direct the L and G outputs of logic element 32 c to horizontal conductors 34 via drivers 52 ′ and paths 54 ′
  • multiplexers 50 ′′ direct the L and G outputs of logic element 32 b to horizontal conductors 34 via drivers 52 ′′ and paths 54 ′′.
  • multiplexers 50 are configured so that the output signals are directed to the horizontal conductors 34 using the same driver patterns that were used when there was no defective circuitry.
  • multiplexers 50 ′ and paths 58 ′ are used to redirect the output signals from logic element 32 b in column 3 to the drivers 52 ′ associated with bypassed logic element 32 c in column 2 .
  • multiplexers 50 ′′ direct the outputs from spare logic element 32 a in the redundant or spare column back to the drivers 52 ′′ that were originally associated with logic element 32 b in column 3 . This arrangement allows the pattern of connections 56 between paths 54 and horizontal conductors 34 that are associated with each set of drivers 52 to be preserved even if some of the circuitry on device 30 is rearranged during the replacement of defective circuitry by spare circuitry.
  • Each set of driver connections 56 typically drives a different pattern of horizontal conductors 34 . As a result, preserving the pattern of driver connections 56 that are used ensures that the logic element output signals for a given logic element 32 reach their intended destinations.
  • Drivers 54 are preferably programmable to either an on state or an off state. If desired, each driver 54 can drive more than one conductor 34 . Unlike the programming data for the logic element 32 and input multiplexer 36 in a defective column, which is shifted to a non-defective logic element 32 and a non-defective input multiplexer in an adjacent column, the programming data for the drivers in the defective column is ultimately not shifted. This is shown in FIG. 4.
  • the programming arrangement of FIG. 4 has multiple vertical chains of programming storage cells 60 .
  • the programming data loaded into storage cells 60 configures the programmable logic with which the cells 60 are associated.
  • Each column of cells 60 is associated with a different column of logic elements 32 , input multiplexer circuits 36 , and programmable multiplexers 38 in device 30 in FIG. 2.
  • the redundant column of cells 60 of FIG. 4 may be associated with redundant logic element 32 a of FIG. 2
  • column 2 of cells 60 may be associated with logic element 32 c
  • column 1 of cells 60 may be associated with logic element 32 d.
  • programming data supplied to input line 62 is serially clocked into the data registers 64 . If no defective circuitry is detected, multiplexers 68 are configured to shift the programming data for columns 1 , 2 , and 3 into data registers 66 b , 66 c , and 66 d . The programming data in registers 66 b , 66 c , and 66 d is clocked into the vertical chains of cells 60 in columns 3 , 2 , and 1 respectively.
  • multiplexers 68 are configured to shift the programming data that would normally have traveled down the vertical chain of cells 60 in column 2 to column 3 and the programming data that would normally have traveled down the vertical chain of cells 60 in column 3 to the redundant or spare column.
  • the programming data for column 1 is unaffected.
  • Shifting the programming data for logic elements 32 , input multiplexer circuits 36 , and programmable multiplexers 38 allows the logic functions originally to be performed by the circuitry that was found to be defective to be performed by defect-free circuitry.
  • the multiplexer arrangement of FIG. 2 redirects the output signals of each shifted logic element back to the original column during use of the device so that the original drivers are used. This requires that the programming data for these drivers be shifted back to the original column containing the defective circuitry during device programming rather than remain in the column to which it was shifted.
  • programming data for the various components of the device are loaded serially. For example, all of the programming data for the drivers in a row of logic array blocks may be loaded before loading the programming data for the logic elements, the input multiplexer circuits, and the programmable multiplexers 38 for that row. Shifting multiplexers 70 are used to selectively redirect the driver programming data back to the row in which that data was originally to be used before detection of the defect. For example, if column 2 contains a defective circuit, the programming data originally intended for the drivers in column 2 is shifted into column 3 with the rest of the shifted column 2 programming data by multiplexers 68 ′ , but is redirected back into column 2 and into the appropriate cells 60 ′ via path 72 and multiplexer 70 ′.
  • multiplexer 70 ′ Because programming data is loaded serially from the top of each columns of cells 60 , configuring multiplexer 70 ′ to redirect the programming data for the column 2 drivers back to column 2 from column 3 causes all the other programming data that passes through multiplexer 70 ′ to be directed to column 2 even if that data is for column 3 circuitry. Multiplexer 74 ′ is therefore used to ensure that the programming data that is directed back to column 2 by multiplexer 70 is directed back to column 3 , so that the programmable logic associated with column 3 is programmed correctly. The other multiplexers 70 and 74 are also configured to direct the programming data for the drivers and other circuit components to the appropriate cells to program device 30 .
  • the programming data for drivers 52 does not need to be rerouted back to its original column if each column of logic is provided with an auxiliary set of drivers that may be used whenever logic is shifted during repair of a defective logic region.
  • auxiliary set of drivers that may be used whenever logic is shifted during repair of a defective logic region.
  • FIG. 5 One suitable arrangement of this type is shown in FIG. 5. As shown in FIG. 5, the L and G outputs of logic elements 76 may be connected to horizontal conductors 78 through either normal drivers 80 or auxiliary drivers 82 . If a column has no defects, then the outputs of the logic elements 76 in that column are provided to horizontal conductors 78 through the normal drivers 80 .
  • logic element 76 a For example, if there are no defects in the logic of column 2 , the L and G outputs of logic element 76 a are applied to horizontal conductors 78 via normal drivers 80 and connections 84 and 86 . If there is a defect in column 2 , the logic functions that are normally performed by the logic of logic element 76 a are performed by logic element 76 b . This is accomplished by configuring the device so that the programming data originally intended for the logic of column 2 is shifted into column 3 during device programming. In order to retain the same pattern of output driver connections in column 3 that would have been used in column 2 , the L and G outputs of logic element 76 b are applied to horizontal conductors 78 via auxiliary drivers 82 and connections 88 and 90 .
  • the auxiliary drivers 82 associated with each column make the same connections to the horizontal conductors 78 as the normal drivers 80 associated with the previous column (i.e., the next column to the right).
  • connections 88 and 90 which are connections associated with the auxiliary drivers 82 for the L and G outputs in column 3
  • connections 84 and 86 which are connections associated with the regular drivers 80 for the L and G outputs in column 2 .
  • column 2 contains a defect, the logic element 76 in column 1 uses normal drivers 80 and the logic element in column 2 is not used.
  • the logic elements in column 3 and the redundant column use auxiliary drivers 82 .
  • input multiplexer circuits 36 a and 36 j are “end caps.” End caps are active input multiplexer circuits that provide symmetry to the layout of device 30 and facilitate the programming of device 30 by reducing potential software fitting problems.
  • Input multiplexer circuit 36 a provides symmetry by balancing input multiplexer circuit 36 d , which is located on the opposite side of logic element 32 a and input multiplexer circuit 36 j provides symmetry by balancing input multiplexer circuitry 36 g , which is located on the opposite side of logic element 32 d.
  • programming data is shifted somewhat differently than when a defect is detected in the middle of a row of logic elements.
  • the programming data for four logic components is shifted rather than the programming data for three components (one logic element and two input multiplexer circuits). For example, if a defect is detected in input multiplexer circuit 36 i of device 30 in FIG.
  • the programming data for the following regions of logic is shifted: input multiplexer circuit 36 i (shifted to input multiplexer circuit 36 g ), logic element 32 d (shifted to logic element 32 c ), input multiplexer circuit 36 h (shifted to input multiplexer 36 f ), and input multiplexer circuit 36 g (shifted to input multiplexer circuit 36 e ).
  • This switching arrangement is equivalent to shifting only the programming data associated with input multiplexer circuit 36 i.
  • programmable logic array device 92 may be contain an array of logic regions 94 , each of which has two groups of logic array blocks (GOLs) 96 . Each GOL 96 contains two sets of logic array blocks 98 . Spare logic array blocks 100 may be provided in the center of the two sets of logic array blocks 98 per row in each logic region 94 . A redundancy scheme such as the one shown in FIG. 2 may be used to repair logic regions 94 using spare logic array blocks 100 . Because spare logic array blocks 100 are centrally located, it is only necessary to provide a single spare logic array block 100 for each row containing two sets of logic array blocks 98 , rather than providing two such spare logic array blocks 100 , thereby reducing overhead.
  • FIG. 7 shows a programmable logic device 102 containing the redundancy circuitry of this invention in use in a digital data processing system 104 .
  • Data processing system 104 may include one or more of the following components: a processor 106 , memory 108 , I/O circuitry 110 , and peripheral drivers 112 . These components are coupled together by a system bus 114 and populate a circuit board 116 that is contained in system 104 .
  • System 104 may be used in a wide variety of applications, such as computer networking, data networking, instrumentation, video processing, digital signal processing, or any other application where the advantage of using programmable logic is desirable.
  • Programmable logic device 102 may be used to perform a variety of different logic functions.
  • programmable logic device 102 may be configured as a processor or controller that works in cooperation with processor 106 .
  • Programmable logic device 102 may also be used as an arbiter for arbitrating access to a shared resource in system 104 .
  • programmable logic device 102 may be configured as an interface between processor 106 and one of the other components in system 104 .
  • each programmable connection can be a relatively simple programmable connector such as a switch or a plurality of switches for connecting any one of several inputs to an output.
  • Each such connection may be configured using a memory cell such as a random-access memory cell.
  • programmable connectors can be somewhat more complex elements which are capable of performing logic (e.g., by logically combining several of their inputs) as well as making connections.
  • each programmable connection can use product term logic, implementing functions such as AND, NAND, OR, or NCR.
  • Examples of components suitable for implementing programmable connections are erasable programmable read-only memories (EPROMs), electrically-erasable programmable read-only memories (EEPROMs), pass transistors, transmission gates, antifuses, laser fuses, metal optional links, etc.
  • EPROMs erasable programmable read-only memories
  • EEPROMs electrically-erasable programmable read-only memories
  • pass transistors transmission gates
  • antifuses laser fuses
  • metal optional links etc.
  • These programmable components may be controlled by various programmable function control elements or memory cells, which store the configuration data used to control the programmable components and various programmable logic circuits.
  • Examples of suitable function control elements include static random-access memory (SPAM) cells, dynamic random-access memory (DRAM) cells, first-in first-out cells, EPROMs, EEPROMs, function control registers (e.g., as in Wahlstrom U.S. Pat. No. 3,473,160), ferroelectric memories, fuses, antifuses, or the

Abstract

Redundant circuitry is provided for a programmable logic device that uses an interleaved input multiplexer circuit arrangement. The programmable logic device has at least one row of logic regions and has multiple columns, each of which contains one of the interleaved input multiplexers and one of the logic regions. A set of conductors associated with the row of logic regions is used to convey signals between the logic regions. Each interleaved logic region distributes logic signals from the conductors in the row to two adjacent logic regions. Bypass circuitry is provided in each column for bypassing the interleaved input multiplexer and logic region in that column. If a defect is detected in a column during testing of the device, the manufacturer can repair the device using the bypass circuitry to bypass that column. Spare logic is provided to replace the circuitry lost when a defective column is bypassed.

Description

  • This application is a continuation of U.S. patent application Ser. No. 09/527,903, filed Mar. 17, 2000, hereby incorporated by reference in its entirety, which is a continuation of U.S. patent application Ser. No. 09/082,081, filed May 20, 1998, now U.S. Pat. No. 6,107,820, hereby incorporated by reference herein in its entirety, which claims the benefit of U.S. provisional application Ser. No. 60/047,610, filed May 23, 1997. [0001]
  • BACKGROUND OF THE INVENTION
  • This invention relates to programmable logic devices, and more particularly, to redundancy circuitry for repairing programmable logic devices containing defects. [0002]
  • Programmable logic devices are integrated circuits that may be programmed to perform custom logic functions. Integrated circuit fabrication techniques are not perfect, so occasionally a programmable logic device may be fabricated with a defect. Unless the defect can be repaired before the logic device is put into use, the logic device must be discarded. Discarding such a device is wasteful, particularly when a defect is relatively minor. As a result, various redundancy schemes have been developed that allow spare circuitry to be switched into place to repair a defective portion of a circuit. [0003]
  • The difficulty of implementing a suitable redundancy scheme for a given logic device architecture depends on the attributes of the architecture. For example, there are difficulties associated with providing redundancy for programmable logic devices that use interleaved multiplexer circuitry to distribute signals to logic array blocks. Because adjacent logic array blocks share signal routing resources in such arrangements, the occurrence of a defect in one logic array block can affect an adjacent and otherwise defect-free logic array block. Although it might be possible to use a redundancy scheme in which both of these affected logic array blocks are replaced upon detection of a defect, such a scheme would necessarily involve bypassing at least one defect-free logic array block. A redundancy scheme that uses logic resources more efficiently would be desirable. [0004]
  • It is therefore an object of the present invention to provide a redundancy arrangement for programmable logic devices with interleaved input circuits. [0005]
  • SUMMARY OF THE INVENTION
  • This and other objects of the invention are accomplished in accordance with the principles of the present invention by providing redundant circuitry for a programmable logic device that uses interleaved input multiplexer circuits to distribute signals to adjacent logic regions. The programmable logic device has at least one row of logic regions and has multiple columns, each of which contains one of the interleaved input multiplexers and one of the logic regions. A set of conductors associated with the row of logic regions is used to convey signals between logic regions. [0006]
  • Each interleaved input multiplexer circuit distributes logic signals from the conductors in the row to two adjacent logic regions. One of the logic regions to which the signals are distributed is in the same column as the interleaved input multiplexer circuit. The other logic region to which the signals are distributed is in an adjacent column. [0007]
  • Bypass circuitry is provided in each column for bypassing the interleaved input multiplexer and logic region in that column. During manufacturing of the device, the device is tested to determine if any of the columns contain defective circuitry. If a defect is detected in a column, the manufacturer can repair the device by configuring the bypass circuitry to bypass that column during use of the device. [0008]
  • During programming of the programmable logic device, a user supplies programming data to the device that directs the various logic components on the device to perform desired logical functions. If a column of circuitry contains a defect, circuitry previously configured by the manufacturer shifts the programming data originally intended for that column into an adjacent column. The programming data originally intended for the adjacent column and each successive column of logic in the row is also shifted. [0009]
  • A spare column of logic is provided at the end of the row to receive the shifted programming data from the last column of regular logic when the programming data for the various columns of logic is being shifted to accommodate the bypassing of a defective column. The spare logic makes up for the logic that is lost when the defective column is bypassed. As a result, the same number of logic regions are used regardless of whether the device is repaired following detection of a defect or was defect free initially. [0010]
  • Outputs from the logic regions are applied to the conductors using programmable drivers. The drivers associated with each column typically form a unique pattern of connections to the conductors. When programming data is shifted to a successive column daring repair of a defect, the programming data associated with the drivers is also shifted to the successive column. In one arrangement, the programmable logic device uses programming data redirecting circuitry to redirect the shifted programming data for the drivers back to the drivers in the original column. In another arrangement, auxiliary drivers are provided in each column. The auxiliary drivers in each column form the same pattern of connections to the conductors that are formed by the normal drivers in the previous column. When a column containing a defect is repaired, the auxiliary drivers in successive columns are used in place of the normal drivers to ensure that the outputs of the logic regions in the successive columns are directed to the same destinations that they would have been directed to had the programming data not been shifted. [0011]
  • The logic regions are preferably programmable logic array blocks, each of which contains a plurality of programmable logic elements based on a four-input look-up table or based on product term logic. [0012]
  • Two sets of logic array blocks may be provided in a row. In this type of arrangement, a single spare logic array block may be provided in the center of the row. This reduces the overhead associated with redundancy, because the two sets of logic array blocks in the row can share the spare logic array block. [0013]
  • Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description of the preferred embodiments. [0014]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a circuit diagram of a portion of an illustrative programmable logic device with a redundancy arrangement in accordance with the present invention. [0015]
  • FIG. 2 is a more detailed circuit diagram of a portion of a programmable logic device of the type shown in FIG. 1. [0016]
  • FIG. 3 is a circuit diagram of a portion of the programmable logic device of FIG. 2 showing the interleaved input multiplexer circuits in more detail. [0017]
  • FIG. 4 is a circuit diagram showing the circuitry used to route programming data to various portions of the programmable logic device of the present invention. [0018]
  • FIG. 5 is a circuit diagram showing the output driver connections that are made between logic array blocks and horizontal conductors in a programmable logic device in accordance with the present invention. [0019]
  • FIG. 6 is a circuit diagram showing an arrangement for reducing the overhead associated with providing redundancy in accordance with the present invention. [0020]
  • FIG. 7 is a diagram of a data processing system in which a programmable logic device having the redundancy circuitry of the present invention may be used. [0021]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • Programmable logic devices are integrated circuits that contain logic that may be reconfigured or “programmed” by a user to perform custom logic functions. At their most basic level, programmable logic devices are based on programmable switches or connectors. Such programmable components may use random-access memory, read-only memory, erasable programmable read-only memory, electrically-erasable programmable read-only memory, fuses, antifuses, ferro-electric elements, or other suitable programmable component technology. [0022]
  • Programmable logic devices that contain redundant or spare circuitry may be configured by a manufacturer during the manufacturing process to repair portions of the circuit that are determined to be defective. [0023]
  • A programmable logic device integrated circuit having a redundancy arrangement in accordance with the present invention is shown in FIG. 1. [0024] Programmable logic device 10 preferably has one or more rows of logic array blocks 12, although the principles of the invention are applicable to programmable logic devices containing any suitable type of programmable logic region. The logic array blocks 12 in a row are interconnected by horizontal conductors 14. If more than one row of logic array blocks 12 is desired, suitable vertical conductors and associated programmable routing circuitry (not shown) may be used to convey logic signals between rows. To avoid over-complicating the drawings, only a single row of logic array blocks 12 is shown in FIG. 1. In addition, not all of the components of logic device 10 are shown in FIG. 1. For example, details of the input/output circuitry for device 10 are not shown in FIG. 1.
  • Each logic array block [0025] 12 preferably contains a number of programmable logic elements 16. Logic elements 16 and other programmable logic circuitry in programmable logic device 10 may be programmed by a user to perform various logic functions. Logic elements 16 may be based on look-up table logic, product term logic, or any other suitable type of programmable logic. If desired, logic elements 16 may contain register logic for registering various logic signals.
  • [0026] Programmable logic device 10 has multiple columns each of which contains a logic array block 12 and an interleaved input multiplexer circuit 18. Interleaved multiplexer circuits 18 are used to distribute logic signals from horizontal conductors 14 to logic array blocks 12. Each interleaved input multiplexer circuit 18 distributes signals to two adjacent logic array blocks 12 via conductors 20. One of the array blocks 12 to which the signals are distributed is in the same column as the interleaved input multiplexer circuit 18. The other logic array block 12 to which the signals are distributed is in an adjacent column. Although conductors like conductors 14 and conductors 20 are depicted as single lines in FIG. 1, each such line typically represents multiple parallel signal conductors.
  • In each row of [0027] device 10 there is preferably at least one spare logic array block 12 and at least one spare interleaved input multiplexer circuit 18. The location of such spare circuitry within a row of logic array blocks 12 is not critical. For example, spare circuitry may be located at either end of a row or may be located in the center of a row if desired.
  • During the manufacturing process, [0028] device 10 is tested by the manufacturer. If a defect is located in one of logic array blocks 12 or one of interleaved input multiplexer circuits 18, device 10 may be repaired by replacing the logic array block 12 and interleaved input multiplexer circuit 18 in the defective column using the spare circuitry.
  • Replacing the defective circuitry typically involves configuring the device so that logic signals that were originally provided to the inputs of the defective circuitry are redirected to unaffected circuitry that is adjacent to the defective circuitry. For example, if it is determined that there is a defect located in the column containing logic array block [0029] 12 a and interleaved input multiplexer circuit 18 a (column N−1), bypass circuit 22 a associated with that column may be used to redirect signals that would normally have been provided to inputs 20 a of logic array block 12 a to inputs 20 b of logic array block 12 b in column N. Bypass circuit 22 b in column N, bypass circuit 22 c in column N+1, and the bypass circuits in other columns are not used.
  • Each logic array block [0030] 12 in a row typically makes output connections to the horizontal conductors 14 in the row using a different pattern of drivers. As a result, replacing the defective circuitry also involves redirecting the outputs of some of the logic array blocks so that the outputs of the repaired row of logic array blocks are connected to horizontal conductors 14 in the same way that the outputs would have been connected to horizontal conductors 14 if the circuit had been defect free. This ensures that the output signals from each logic array block are directed to the same destinations that they would have been directed to had the circuit not contained a defect. A repaired circuit therefore works identically to a defect-free circuit.
  • For example, if it is determined that there is a defect located in logic array block [0031] 12 a or interleaved input multiplexer circuit 18 a in column N−1, output redirecting circuitry 24 a may be used to redirect the signals at outputs 26 b back to driver paths 28 a. Because this allows the same pattern of driver connections to be used to connect outputs 26 b to conductors 14 that would have been used to connect outputs 26 a to conductors 14 had there been no defect, this arrangements ensures that the output signals from logic array block 12 b are directed to the same destinations that the output signals from logic array block 12 a would have been directed had logic array block 12 a or interleaved input multiplexer circuit 18 a not been defective.
  • Because [0032] outputs 26 b of logic array block 12 b are redirected to driver paths 28 a, outputs 26 c must be redirected to driver paths 28 b by output redirecting circuit 24 b. The outputs of the logic array blocks 12 in successive columns to the left of logic array block 12 c use similar output redirecting circuits 24 to shift output signals to the output drivers in previous columns immediately to their right.
  • If desired, the original output driver patterns of a circuit can be preserved during replacement of defective circuitry using other output redirecting circuitry arrangements. For example, the output redirecting circuitry arrangement may have [0033] auxiliary driver paths 28′ that can be used in place of the circuitry of normal driver paths 28. Each auxiliary driver path 28′ uses same pattern of drivers to connect its associated logic array block outputs to conductors 14 that are used by the normal driver path 28 in the previous column.
  • If no defective circuitry is found, each logic array block is connected to [0034] conductors 14 using is associated normal driver path 28. If it is determined that a column contains a defect, the logic array blocks 12 to the right of the defective column are connected to conductors 14 using normal driver paths 28 and the logic array blocks 12 to the left of the defective column are connected to conductors 14 using auxiliary driver paths 28′. For example, if logic array block 12 a is defective, the outputs of each logic array block 12 to the right of logic array block 12 a are connected to conductors 14 using a respective one of normal driver paths 28. However, the outputs of logic array block 12 b and each logic array block 12 to the left of logic array block 12 b are connected to conductors 14 using auxiliary driver paths 28′.
  • FIG. 2 is a more detailed circuit diagram of a portion of a programmable logic device of the type shown in FIG. 1. The portion of the [0035] programmable logic device 30 shown in FIG. 2 has a single row and multiple columns of logic elements 32 that are interconnected by horizontal conductors 34. A number of such logic elements 32 in each column are preferably grouped together to form a logic array block in each column, as shown in FIG. 1. This level of detail is not shown in FIG. 2 to avoid over-complicating the drawings. Programmable logic device 30 also preferably contains multiple rows of such logic array blocks each of which contains the same type of logic element arrangement. The logic array blocks in other rows may be interconnected with the row of logic array blocks containing the row of logic elements 32 depicted in FIG. 2 using vertical conductors (not shown) to route signals between various rows of horizontal conductors 34. Although there are only four logic elements 32 in the row of logic elements 32 shown in FIG. 2, logic device 30 may have any suitable number of logic elements 32.
  • [0036] Logic elements 32 may be based on any suitable type of logic such as product term logic or look-up table logic and may contain register logic if desired. Logic elements 32 may have any suitable number of inputs and outputs. In the illustrative arrangement of FIG. 2, logic elements 32 have inputs A, B, C, and D, which may be, for example, the inputs to a standard four-input look-up table circuit. Logic elements 32 of FIG. 2 each have an L output and a G output which may be the outputs from a standard look-up table circuit.
  • Signals from [0037] horizontal conductors 34 are provided to input multiplexer circuits 36 by programmable multiplexers 38 and local vertical conductors 40. Input multiplexer circuits 36 preferably extend past all of the logic elements 32 in a given logic array block. Programmable multiplexers 38 may be programmed by a user of device 30 to connect selected horizontal conductors 34 to local vertical conductors 40. Local horizontal conductors 42 are used to direct signals from the input multiplexer circuits 36 to the logic elements 32.
  • An illustrative set of [0038] input multiplexer circuits 36 and logic elements 32 is shown in more detail in FIG. 3. As shown in FIG. 3, signals on the four local vertical conductors 40 associated with each input multiplexer circuit 36 may be selectively routed to the intersecting local horizontal conductors 42 by programmable connectors 43. The operation of programmable connectors 43 is controlled by data in storage cells 45.
  • Each [0039] multiplexer 47 directs one of the four horizontal conductors 42 connected to its input to an input of a logic element 32. Each programmable multiplexer 38 is preferably formed from a number of individual programmable connectors 49.
  • In the depicted embodiment of FIG. 2, there are four columns of [0040] logic elements 32. Logic elements 32 b, 32 c, and 32 d are regular logic elements. Logic element 32 a is a spare or redundant logic element 32. During the manufacturing process, device 30 is tested for defects. If it is determined that device 30 is defect free, spare logic element 32 a need not be used. If a defect is located in a column, the defect can be bypassed by bypassing the logic in that column. In addition, the circuitry of spare logic element 32 a can be shifted into place to replace circuitry lost in the bypassed column (i.e., the bypassed logic element).
  • Each [0041] logic element 32 can receive signals from four associated input multiplexer circuits 36. For example, logic element 32 c may receive signals from input multiplexer circuits 36 e and 36 f (via-the local horizontal conductors 42 a connected to the A and C inputs of logic element 32 c) and input multiplexer circuits 36 g and 36 h (via the local horizontal conductors 42 b′connected to the B and D inputs of logic element 32 c with multiplexers 44).
  • Adjacent [0042] input multiplexer circuits 36 are interleaved with one another because they share a common set of local horizontal conductors 42. For example, input multiplexer circuit 36 e is interleaved with input multiplexer circuit 36 f because the local horizontal conductors 42 that pass through input multiplexer 36 e also pass through input multiplexer 36 f.
  • Local horizontal conductors [0043] 42 a supply signals from input multiplexer circuits 36 directly to logic element inputs A and C. Local horizontal conductors 42 b supply signals from input multiplexer circuits 36 to logic element inputs B and D via bypass multiplexers 44.
  • During the manufacturing process, [0044] device 30 is tested to determine whether or not device 30 contains defective circuitry. If testing indicates that device 30 is defect free, no bypassing is needed. Bypass multiplexers 44 are therefore configured to pass signals from the local horizontal conductors 42 b that are directly connected to their inputs to logic element inputs B and D via multiplexer outputs 46. If testing indicates that device 30 contains a defect in one of the logic elements 32 or input multiplexer circuits 36 in a column, the manufacturer configures the appropriate bypass multiplexers 44 so that the defective logic in that column is bypassed.
  • For example, if a defect is detected in [0045] logic element 32 c or in interleaved input multiplexer circuits 36 e or 36 f of column 2, bypass multiplexers 44′ may be configured to route the signals from local horizontal conductors 42 b ′ to the B and D inputs of logic element 32 b in column 3 via bypass conductors 48, rather than to the B and D inputs of logic element 32 c of column 2 via outputs 46′.
  • The pathways that supply programming data to the logic of [0046] device 30 are preferably configured by the manufacturer so that the programming data with which the user programs device 30 is routed to the appropriate logic during device programming. For example, the programming data that would have been used for the programmable multiplexers 38′ associated with interleaved input multiplexer circuits 36 e and 36 f had circuits 36 e and 36 f been used is directed to programmable multiplexers 38″. The programming data that would have been used to configure logic element 32 c is provided to logic element 32 b. The programming data that would have been used to establish the pattern programmable connections between local vertical conductors 40′ and local horizontal conductors 42 a and 42 b″ in interleaved input multiplexers 36 e and 36 f of column 2 is provided to interleaved input multiplexer circuits 36 c and 36 d of column 3.
  • Another change that is made when defective logic circuitry is bypassed relates to the paths of the logic element output signals provided to [0047] conductors 34. When there is no defective circuitry, the output multiplexers 50 that are associated with each logic element 32 direct the L and G outputs of that logic element 32 directly to horizontal conductors 34. For example, multiplexers 50′ direct the L and G outputs of logic element 32 c to horizontal conductors 34 via drivers 52′ and paths 54′ and multiplexers 50″ direct the L and G outputs of logic element 32 b to horizontal conductors 34 via drivers 52″ and paths 54″. When it is determined that device 30 contains defective circuitry, multiplexers 50 are configured so that the output signals are directed to the horizontal conductors 34 using the same driver patterns that were used when there was no defective circuitry.
  • For example, if a defect is detected in [0048] logic element 32 c or in interleaved input multiplexer circuits 36 e or 36 f of column 2, multiplexers 50′ and paths 58′ are used to redirect the output signals from logic element 32 b in column 3 to the drivers 52′ associated with bypassed logic element 32 c in column 2. Similarly, multiplexers 50″ direct the outputs from spare logic element 32 a in the redundant or spare column back to the drivers 52″ that were originally associated with logic element 32 b in column 3. This arrangement allows the pattern of connections 56 between paths 54 and horizontal conductors 34 that are associated with each set of drivers 52 to be preserved even if some of the circuitry on device 30 is rearranged during the replacement of defective circuitry by spare circuitry.
  • Each set of [0049] driver connections 56 typically drives a different pattern of horizontal conductors 34. As a result, preserving the pattern of driver connections 56 that are used ensures that the logic element output signals for a given logic element 32 reach their intended destinations.
  • [0050] Drivers 54 are preferably programmable to either an on state or an off state. If desired, each driver 54 can drive more than one conductor 34. Unlike the programming data for the logic element 32 and input multiplexer 36 in a defective column, which is shifted to a non-defective logic element 32 and a non-defective input multiplexer in an adjacent column, the programming data for the drivers in the defective column is ultimately not shifted. This is shown in FIG. 4.
  • The programming arrangement of FIG. 4 has multiple vertical chains of [0051] programming storage cells 60. The programming data loaded into storage cells 60 configures the programmable logic with which the cells 60 are associated. Each column of cells 60 is associated with a different column of logic elements 32, input multiplexer circuits 36, and programmable multiplexers 38 in device 30 in FIG. 2. For example, the redundant column of cells 60 of FIG. 4 may be associated with redundant logic element 32 a of FIG. 2, column 3 of cells 60 may be associated with logic element 32 b, column 2 of cells 60 may be associated with logic element 32 c, and column 1 of cells 60 may be associated with logic element 32 d.
  • To program the device, programming data supplied to input [0052] line 62 is serially clocked into the data registers 64. If no defective circuitry is detected, multiplexers 68 are configured to shift the programming data for columns 1, 2, and 3 into data registers 66 b, 66 c, and 66 d. The programming data in registers 66 b, 66 c, and 66 d is clocked into the vertical chains of cells 60 in columns 3, 2, and 1 respectively.
  • If defective circuitry is detected (e.g., in column [0053] 2), multiplexers 68 are configured to shift the programming data that would normally have traveled down the vertical chain of cells 60 in column 2 to column 3 and the programming data that would normally have traveled down the vertical chain of cells 60 in column 3 to the redundant or spare column. The programming data for column 1 is unaffected.
  • Shifting the programming data for [0054] logic elements 32, input multiplexer circuits 36, and programmable multiplexers 38 allows the logic functions originally to be performed by the circuitry that was found to be defective to be performed by defect-free circuitry. The multiplexer arrangement of FIG. 2 redirects the output signals of each shifted logic element back to the original column during use of the device so that the original drivers are used. This requires that the programming data for these drivers be shifted back to the original column containing the defective circuitry during device programming rather than remain in the column to which it was shifted.
  • As shown in FIG. 4, programming data for the various components of the device are loaded serially. For example, all of the programming data for the drivers in a row of logic array blocks may be loaded before loading the programming data for the logic elements, the input multiplexer circuits, and the [0055] programmable multiplexers 38 for that row. Shifting multiplexers 70 are used to selectively redirect the driver programming data back to the row in which that data was originally to be used before detection of the defect. For example, if column 2 contains a defective circuit, the programming data originally intended for the drivers in column 2 is shifted into column 3 with the rest of the shifted column 2 programming data by multiplexers 68′ , but is redirected back into column 2 and into the appropriate cells 60′ via path 72 and multiplexer 70′.
  • Because programming data is loaded serially from the top of each columns of [0056] cells 60, configuring multiplexer 70′ to redirect the programming data for the column 2 drivers back to column 2 from column 3 causes all the other programming data that passes through multiplexer 70′ to be directed to column 2 even if that data is for column 3 circuitry. Multiplexer 74′ is therefore used to ensure that the programming data that is directed back to column 2 by multiplexer 70 is directed back to column 3, so that the programmable logic associated with column 3 is programmed correctly. The other multiplexers 70 and 74 are also configured to direct the programming data for the drivers and other circuit components to the appropriate cells to program device 30.
  • The programming data for [0057] drivers 52 does not need to be rerouted back to its original column if each column of logic is provided with an auxiliary set of drivers that may be used whenever logic is shifted during repair of a defective logic region. One suitable arrangement of this type is shown in FIG. 5. As shown in FIG. 5, the L and G outputs of logic elements 76 may be connected to horizontal conductors 78 through either normal drivers 80 or auxiliary drivers 82. If a column has no defects, then the outputs of the logic elements 76 in that column are provided to horizontal conductors 78 through the normal drivers 80.
  • For example, if there are no defects in the logic of [0058] column 2, the L and G outputs of logic element 76 a are applied to horizontal conductors 78 via normal drivers 80 and connections 84 and 86. If there is a defect in column 2, the logic functions that are normally performed by the logic of logic element 76 a are performed by logic element 76 b. This is accomplished by configuring the device so that the programming data originally intended for the logic of column 2 is shifted into column 3 during device programming. In order to retain the same pattern of output driver connections in column 3 that would have been used in column 2, the L and G outputs of logic element 76 b are applied to horizontal conductors 78 via auxiliary drivers 82 and connections 88 and 90.
  • The [0059] auxiliary drivers 82 associated with each column make the same connections to the horizontal conductors 78 as the normal drivers 80 associated with the previous column (i.e., the next column to the right). For example, connections 88 and 90, which are connections associated with the auxiliary drivers 82 for the L and G outputs in column 3, are connected to the same horizontal conductors as connections 84 and 86, which are connections associated with the regular drivers 80 for the L and G outputs in column 2. If column 2 contains a defect, the logic element 76 in column 1 uses normal drivers 80 and the logic element in column 2 is not used. The logic elements in column 3 and the redundant column use auxiliary drivers 82.
  • As shown in FIG. 2, [0060] input multiplexer circuits 36 a and 36 j are “end caps.” End caps are active input multiplexer circuits that provide symmetry to the layout of device 30 and facilitate the programming of device 30 by reducing potential software fitting problems. Input multiplexer circuit 36 a provides symmetry by balancing input multiplexer circuit 36 d, which is located on the opposite side of logic element 32 a and input multiplexer circuit 36 j provides symmetry by balancing input multiplexer circuitry 36 g, which is located on the opposite side of logic element 32 d.
  • If a defect is detected in an input multiplexer adjacent to an end cap, programming data is shifted somewhat differently than when a defect is detected in the middle of a row of logic elements. In particular, the programming data for four logic components (one logic element and three input multiplexer circuits) is shifted rather than the programming data for three components (one logic element and two input multiplexer circuits). For example, if a defect is detected in input multiplexer circuit [0061] 36 i of device 30 in FIG. 2, the programming data for the following regions of logic is shifted: input multiplexer circuit 36 i (shifted to input multiplexer circuit 36 g), logic element 32 d (shifted to logic element 32 c), input multiplexer circuit 36 h (shifted to input multiplexer 36 f), and input multiplexer circuit 36 g (shifted to input multiplexer circuit 36 e). This switching arrangement is equivalent to shifting only the programming data associated with input multiplexer circuit 36 i.
  • In certain situations it may be desirable to reduce the overhead costs associated with providing spare circuitry. As shown in FIG. 6, programmable [0062] logic array device 92 may be contain an array of logic regions 94, each of which has two groups of logic array blocks (GOLs) 96. Each GOL 96 contains two sets of logic array blocks 98. Spare logic array blocks 100 may be provided in the center of the two sets of logic array blocks 98 per row in each logic region 94. A redundancy scheme such as the one shown in FIG. 2 may be used to repair logic regions 94 using spare logic array blocks 100. Because spare logic array blocks 100 are centrally located, it is only necessary to provide a single spare logic array block 100 for each row containing two sets of logic array blocks 98, rather than providing two such spare logic array blocks 100, thereby reducing overhead.
  • The foregoing arrangements are typically used in programmable logic devices that are made part of larger systems. FIG. 7 shows a [0063] programmable logic device 102 containing the redundancy circuitry of this invention in use in a digital data processing system 104. Data processing system 104 may include one or more of the following components: a processor 106, memory 108, I/O circuitry 110, and peripheral drivers 112. These components are coupled together by a system bus 114 and populate a circuit board 116 that is contained in system 104.
  • [0064] System 104 may be used in a wide variety of applications, such as computer networking, data networking, instrumentation, video processing, digital signal processing, or any other application where the advantage of using programmable logic is desirable. Programmable logic device 102 may be used to perform a variety of different logic functions. For example, programmable logic device 102 may be configured as a processor or controller that works in cooperation with processor 106. Programmable logic device 102 may also be used as an arbiter for arbitrating access to a shared resource in system 104. In yet another example, programmable logic device 102 may be configured as an interface between processor 106 and one of the other components in system 104.
  • The programmable connections made between various components in the programmable logic devices of the present invention can be implemented in any of a wide variety of ways. For example, each programmable connection can be a relatively simple programmable connector such as a switch or a plurality of switches for connecting any one of several inputs to an output. Each such connection may be configured using a memory cell such as a random-access memory cell. Alternatively, programmable connectors can be somewhat more complex elements which are capable of performing logic (e.g., by logically combining several of their inputs) as well as making connections. For example, each programmable connection can use product term logic, implementing functions such as AND, NAND, OR, or NCR. Examples of components suitable for implementing programmable connections are erasable programmable read-only memories (EPROMs), electrically-erasable programmable read-only memories (EEPROMs), pass transistors, transmission gates, antifuses, laser fuses, metal optional links, etc. These programmable components may be controlled by various programmable function control elements or memory cells, which store the configuration data used to control the programmable components and various programmable logic circuits. Examples of suitable function control elements include static random-access memory (SPAM) cells, dynamic random-access memory (DRAM) cells, first-in first-out cells, EPROMs, EEPROMs, function control registers (e.g., as in Wahlstrom U.S. Pat. No. 3,473,160), ferroelectric memories, fuses, antifuses, or the like. From the various examples mentioned above it will be seen that this invention is applicable both to one-time-only programmable and reprogrammable devices. [0065]
  • The foregoing is merely illustrative of the principles of this invention and various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention. [0066]

Claims (25)

What is claimed is:
1. A programmable logic device comprising:
programmable logic regions and interleaved multiplexers that are arranged in a row comprising a plurality of columns that include a spare column, each one of the columns including one of the programmable logic regions and one of the interleaved multiplexers, and wherein the interleave multiplexers and the programmable logic regions are arranged in the row to have two of the interleaved multiplexers adjacent to each one of the programmable logic regions for distributing input signals to that programmable logic region; and
bypass circuitry that is configured to bypass input signals that are for a particular one of the columns to the spare column to replace that particular column.
2. The programmable logic device of
claim 1
wherein the row comprises an end cap comprising one of the interleaved multiplexers.
3. The programmable logic device of
claim 1
wherein the bypass circuitry is configured to bypass input signals that are for a defective one of the columns to one of the columns that is adjacent to the defective column.
4. The programmable logic device of
claim 1
further comprising a plurality of horizontal conductors that extend along the row.
5. The programmable logic device of
claim 1
wherein the bypass circuitry is configured to bypass programming data that are for the particular column to the spare column to replace that particular column.
6. The programmable logic device of
claim 5
wherein the bypass circuitry is configured to bypass programming data that are for a defective one of the columns to one of the columns that is adjacent to the defective column.
7. The programmable logic device of
claim 1
wherein the bypass circuitry is configured to shift programming data that is for a defective one of the columns to an adjacent column that is to replace the defective column.
8. The programmable logic device of
claim 1
wherein the spare column is adjacent to the particular column that the spare column is to replace.
9. A programmable logic device comprising:
programmable logic regions and interleaved multiplexers that are arranged in a row comprising a plurality of columns that include a spare column, each one of the columns including one of the programmable logic regions and one of the interleaved multiplexers, and wherein the interleave multiplexers and the programmable logic regions are arranged in the row to have two of the interleaved multiplexers adjacent to each one of the programmable logic regions for distributing input signals to that programmable logic region;
bypass circuitry that is configured to bypass input signals that are for a particular one of the columns to the spare column to replace that particular column;
a plurality of horizontal conductors that extend along the row; and
driver paths that are associated with each logic region that are configured to connect each logic region to the horizontal conductors differently.
10. The programmable logic device of
claim 9
wherein the bypass circuitry is configured to apply output signals of the logic region in the spare column to the horizontal conductors in the same pattern as the logic region that is in the particular column that is being replaced.
11. The programmable logic device of
claim 9
further comprising auxiliary driver paths that are associated with each logic region.
12. The programmable logic device of
claim 9
wherein the bypass circuitry is configured to bypass programming data that is for the particular column to the spare column to replace that particular column.
13. The programmable logic device of
claim 12
wherein the bypass circuitry is configured to bypass programming data that are for a defective one of the columns to one of the columns that is adjacent to the defective column.
14. The programmable logic device of
claim 9
wherein the bypass circuitry is configured to shift programming data that is for a defective one of the columns to an adjacent column that is to replace the defective column.
15. The programmable logic device of
claim 9
wherein the spare column is adjacent to the particular column that the spare column is to replace.
16. A method comprising:
arranging programmable logic regions and interleaved multiplexers in a row comprising a plurality of columns that include a spare column, each one of the columns including one of the programmable logic regions and one of the interleaved multiplexers, wherein the interleaved multiplexers and the programmable logic regions are arranged in the row to have two of the interleaved multiplexers adjacent to each one of the programmable logic regions for distributing input signals to that programmable logic region; and
bypassing input signals that are for a particular one of the columns to the spare column to replace that particular column.
17. The method of
claim 16
wherein said arranging comprises providing an end cap comprising one of the interleaved multiplexers.
18. The method of
claim 16
wherein said bypassing comprises bypassing input signals that are for a defective one of the columns to one of the columns that is adjacent to the defective column.
19. The method of
claim 16
further comprising arranging a plurality of horizontal conductors to extend along the row.
20. The method of
claim 16
further comprising associating driver paths with each logic region for connecting each logic region to the horizontal conductors differently.
21. The method of
claim 20
wherein said bypassing comprises applying output signals of the logic region in the spare column to the horizontal conductors in the same pattern as the logic region that is in the column that is being replaced.
22. The method of
claim 16
further comprising associating auxiliary driver paths with each logic region.
23. The method of
claim 16
wherein said bypassing comprises bypassing programming data that is for the particular column to the spare column to replace that particular column.
24. The method of
claim 23
wherein said bypassing programming data comprises bypassing programming data that is for a defective one of the columns to one of the columns that is adjacent to the defective column.
25. The method of
claim 16
wherein said bypassing comprises shifting programming data that is for a defective one of the columns to an adjacent column that is to replace the defective column.
US09/795,870 1997-05-23 2001-02-28 Redundancy circuitry for programmable logic devices with interleaved input circuits Expired - Lifetime US6337578B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/795,870 US6337578B2 (en) 1997-05-23 2001-02-28 Redundancy circuitry for programmable logic devices with interleaved input circuits

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US4761097P 1997-05-23 1997-05-23
US09/082,081 US6107820A (en) 1997-05-23 1998-05-20 Redundancy circuitry for programmable logic devices with interleaved input circuits
US09/527,903 US6222382B1 (en) 1997-05-23 2000-03-17 Redundancy circuitry for programmable logic devices with interleaved input circuits
US09/795,870 US6337578B2 (en) 1997-05-23 2001-02-28 Redundancy circuitry for programmable logic devices with interleaved input circuits

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/527,903 Continuation US6222382B1 (en) 1997-05-23 2000-03-17 Redundancy circuitry for programmable logic devices with interleaved input circuits

Publications (2)

Publication Number Publication Date
US20010006347A1 true US20010006347A1 (en) 2001-07-05
US6337578B2 US6337578B2 (en) 2002-01-08

Family

ID=21949943

Family Applications (3)

Application Number Title Priority Date Filing Date
US09/082,081 Expired - Lifetime US6107820A (en) 1997-05-23 1998-05-20 Redundancy circuitry for programmable logic devices with interleaved input circuits
US09/527,903 Expired - Lifetime US6222382B1 (en) 1997-05-23 2000-03-17 Redundancy circuitry for programmable logic devices with interleaved input circuits
US09/795,870 Expired - Lifetime US6337578B2 (en) 1997-05-23 2001-02-28 Redundancy circuitry for programmable logic devices with interleaved input circuits

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US09/082,081 Expired - Lifetime US6107820A (en) 1997-05-23 1998-05-20 Redundancy circuitry for programmable logic devices with interleaved input circuits
US09/527,903 Expired - Lifetime US6222382B1 (en) 1997-05-23 2000-03-17 Redundancy circuitry for programmable logic devices with interleaved input circuits

Country Status (5)

Country Link
US (3) US6107820A (en)
EP (1) EP0983549B1 (en)
JP (1) JP3865789B2 (en)
DE (1) DE69802927T2 (en)
WO (1) WO1998053401A1 (en)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030072185A1 (en) * 2001-10-15 2003-04-17 Christopher Lane Programmable logic device with redundant circuitry
US20050264318A1 (en) * 2004-05-28 2005-12-01 Altera Corporation Redundancy structures and methods in a programmable logic device
US7202698B1 (en) * 2005-06-14 2007-04-10 Xilinx, Inc. Integrated circuit having a programmable input structure with bounce capability
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
US7253658B1 (en) 2005-06-14 2007-08-07 Xilinx, Inc. Integrated circuit providing direct access to multi-directional interconnect lines in a general interconnect structure
US7256612B1 (en) 2005-06-14 2007-08-14 Xilinx, Inc. Programmable logic block providing carry chain with programmable initialization values
US7265576B1 (en) 2005-06-14 2007-09-04 Xilinx, Inc. Programmable lookup table with dual input and output terminals in RAM mode
US7268587B1 (en) 2005-06-14 2007-09-11 Xilinx, Inc. Programmable logic block with carry chains providing lookahead functions of different lengths
US7274214B1 (en) 2005-06-14 2007-09-25 Xilinx, Inc. Efficient tile layout for a programmable logic device
US7276934B1 (en) 2005-06-14 2007-10-02 Xilinx, Inc. Integrated circuit with programmable routing structure including diagonal interconnect lines
US7277346B1 (en) 2004-12-14 2007-10-02 Altera Corporation Method and system for hard failure repairs in the field
US7375552B1 (en) 2005-06-14 2008-05-20 Xilinx, Inc. Programmable logic block with dedicated and selectable lookup table outputs coupled to general interconnect structure
US20080263319A1 (en) * 2007-04-17 2008-10-23 Cypress Semiconductor Corporation Universal digital block with integrated arithmetic logic unit
US7804719B1 (en) 2005-06-14 2010-09-28 Xilinx, Inc. Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode
KR101209824B1 (en) 2011-10-12 2012-12-07 고려대학교 산학협력단 Block interleaving apparatus
US8462576B2 (en) 2007-04-17 2013-06-11 Cypress Semiconductor Corporation State-monitoring memory element
US8476928B1 (en) 2007-04-17 2013-07-02 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8482313B2 (en) 2007-04-17 2013-07-09 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8704548B1 (en) * 2012-10-19 2014-04-22 Altera Corporation Methods and apparatus for building bus interconnection networks using programmable interconnection resources
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6107820A (en) * 1997-05-23 2000-08-22 Altera Corporation Redundancy circuitry for programmable logic devices with interleaved input circuits
US6126451A (en) * 1997-06-02 2000-10-03 Compaq Computer Corporation SCSI connector
US6084427A (en) 1998-05-19 2000-07-04 Altera Corporation Programmable logic devices with enhanced multiplexing capabilities
US6600337B2 (en) 2000-04-26 2003-07-29 Altera Corporation Line segmentation in programmable logic devices having redundancy circuitry
NZ508052A (en) * 2000-11-09 2003-06-30 Derek Ward Programmable controller
EP1227385A3 (en) * 2001-01-24 2005-11-23 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit
US6803782B2 (en) * 2002-03-21 2004-10-12 John Conrad Koob Arrayed processing element redundancy architecture
FR2846491B1 (en) * 2002-10-25 2005-08-12 Atmel Corp ARCHITECTURE COMPRISING REPLACEMENT CELLS TO REPAIR DESIGN ERRORS IN INTEGRATED CIRCUITS AFTER MANUFACTURING
US7111213B1 (en) 2002-12-10 2006-09-19 Altera Corporation Failure isolation and repair techniques for integrated circuits
US7062685B1 (en) 2002-12-11 2006-06-13 Altera Corporation Techniques for providing early failure warning of a programmable circuit
US7024327B1 (en) 2002-12-18 2006-04-04 Altera Corporation Techniques for automatically generating tests for programmable circuits
US7058534B1 (en) 2003-03-19 2006-06-06 Altera Corporation Method and apparatus for application specific test of PLDs
US6879207B1 (en) * 2003-12-18 2005-04-12 Nvidia Corporation Defect tolerant redundancy
ATE412932T1 (en) * 2004-09-03 2008-11-15 Derek Ward IMPROVEMENTS TO NUMERICAL CONTROLS AND RELATED ELECTRONIC DEVICES
US7265573B1 (en) 2004-12-18 2007-09-04 Altera Corporation Methods and structures for protecting programming data for a programmable logic device
JP4552803B2 (en) * 2005-08-10 2010-09-29 ソニー株式会社 Semiconductor integrated circuit
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US7644385B1 (en) 2005-11-07 2010-01-05 Altera Corporation Programmable logic device with performance variation compensation
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7212032B1 (en) * 2006-04-25 2007-05-01 Altera Corporation Method and apparatus for monitoring yield of integrated circuits
US7408380B1 (en) * 2006-05-16 2008-08-05 Xilinx, Inc. Method and apparatus for a redundant transceiver architecture
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7724031B2 (en) * 2007-03-21 2010-05-25 Altera Corporation Staggered logic array block architecture
US7995067B2 (en) * 2007-03-29 2011-08-09 Mobileye Technologies Limited Cyclical image buffer
US8830790B2 (en) * 2007-05-17 2014-09-09 Octio Geophysical As Apparatus and method for collecting geophysical information
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US7589552B1 (en) 2007-10-23 2009-09-15 Altera Corporation Integrated circuit with redundancy
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US7902855B1 (en) 2010-03-03 2011-03-08 Altera Corporation Repairable IO in an integrated circuit
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US9236864B1 (en) 2012-01-17 2016-01-12 Altera Corporation Stacked integrated circuit with redundancy in die-to-die interconnects
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US8860460B1 (en) * 2012-11-05 2014-10-14 Altera Corporation Programmable integrated circuits with redundant circuitry
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9030227B1 (en) 2013-08-20 2015-05-12 Altera Corporation Methods and apparatus for providing redundancy on multi-chip devices
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
KR102557310B1 (en) * 2016-08-09 2023-07-20 에스케이하이닉스 주식회사 Semiconductor device
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US33521A (en) * 1861-10-22 Improved apparatus for heating air for blast-furnaces
US3566153A (en) * 1969-04-30 1971-02-23 Texas Instruments Inc Programmable sequential logic
US3805039A (en) * 1972-11-30 1974-04-16 Raytheon Co High reliability system employing subelement redundancy
US3995261A (en) * 1975-02-24 1976-11-30 Stanford Research Institute Reconfigurable memory
US4020469A (en) * 1975-04-09 1977-04-26 Frank Manning Programmable arrays
US4051354A (en) * 1975-07-03 1977-09-27 Texas Instruments Incorporated Fault-tolerant cell addressable array
US4124899A (en) * 1977-05-23 1978-11-07 Monolithic Memories, Inc. Programmable array logic circuit
DE3015992A1 (en) * 1980-04-25 1981-11-05 Ibm Deutschland Gmbh, 7000 Stuttgart PROGRAMMABLE LOGICAL ARRANGEMENT
US4538247A (en) * 1983-01-14 1985-08-27 Fairchild Research Center Redundant rows in integrated circuit memories
US4566102A (en) * 1983-04-18 1986-01-21 International Business Machines Corporation Parallel-shift error reconfiguration
JPS6093700A (en) * 1983-10-26 1985-05-25 Hitachi Ltd Line switching circuit and semiconductor storage device using the circuit
US4551814A (en) * 1983-12-12 1985-11-05 Aerojet-General Corporation Functionally redundant logic network architectures
US4617479B1 (en) * 1984-05-03 1993-09-21 Altera Semiconductor Corp. Programmable logic array device using eprom technology
US4774421A (en) * 1984-05-03 1988-09-27 Altera Corporation Programmable logic array device using EPROM technology
US4713792A (en) * 1985-06-06 1987-12-15 Altera Corporation Programmable macrocell using eprom or eeprom transistors for architecture control in programmable logic circuits
US4609986A (en) * 1984-06-14 1986-09-02 Altera Corporation Programmable logic array device using EPROM technology
US4598388A (en) * 1985-01-22 1986-07-01 Texas Instruments Incorporated Semiconductor memory with redundant column circuitry
US4706216A (en) * 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
US4677318A (en) * 1985-04-12 1987-06-30 Altera Corporation Programmable logic storage element for programmable logic devices
US4722084A (en) * 1985-10-02 1988-01-26 Itt Corporation Array reconfiguration apparatus and methods particularly adapted for use with very large scale integrated circuits
US4703206A (en) * 1985-11-19 1987-10-27 Signetics Corporation Field-programmable logic device with programmable foldback to control number of logic levels
US4700187A (en) * 1985-12-02 1987-10-13 Concurrent Logic, Inc. Programmable, asynchronous logic cell and array
JPS632351A (en) * 1986-06-20 1988-01-07 Sharp Corp Semiconductor device
US5187393A (en) * 1986-09-19 1993-02-16 Actel Corporation Reconfigurable programmable interconnect architecture
US5019736A (en) * 1986-11-07 1991-05-28 Concurrent Logic, Inc. Programmable logic cell and array
US4829198A (en) * 1987-04-10 1989-05-09 International Business Machines Corporation Fault tolerant logical circuitry
US4928022A (en) * 1987-07-17 1990-05-22 Trw Inc. Redundancy interconnection circuitry
US4800302A (en) * 1987-07-17 1989-01-24 Trw Inc. Redundancy system with distributed mapping
US4920497A (en) * 1987-10-27 1990-04-24 State University Of New York Method for rendering usuable a defective raw programmable logic array and a defective programmable logic array rendered usable by this method
US4798976A (en) * 1987-11-13 1989-01-17 International Business Machines Corporation Logic redundancy circuit scheme
US4912342A (en) * 1988-05-05 1990-03-27 Altera Corporation Programmable logic device with array blocks with programmable clocking
US4871930A (en) * 1988-05-05 1989-10-03 Altera Corporation Programmable logic device with array blocks connected via programmable interconnect
KR910003594B1 (en) * 1988-05-13 1991-06-07 삼성전자 주식회사 Spare column selection method and circuit
US4899067A (en) * 1988-07-22 1990-02-06 Altera Corporation Programmable logic devices with spare circuits for use in replacing defective circuits
JPH0289299A (en) * 1988-09-27 1990-03-29 Nec Corp Semiconductor storage device
US5255228A (en) * 1989-01-10 1993-10-19 Matsushita Electronics Corporation Semiconductor memory device with redundancy circuits
US5471427A (en) * 1989-06-05 1995-11-28 Mitsubishi Denki Kabushiki Kaisha Circuit for repairing defective bit in semiconductor memory device and repairing method
GB8926004D0 (en) * 1989-11-17 1990-01-10 Inmos Ltd Repairable memory circuit
US5005158A (en) * 1990-01-12 1991-04-02 Sgs-Thomson Microelectronics, Inc. Redundancy for serial memory
US5204836A (en) * 1990-10-30 1993-04-20 Sun Microsystems, Inc. Method and apparatus for implementing redundancy in parallel memory structures
US5255227A (en) * 1991-02-06 1993-10-19 Hewlett-Packard Company Switched row/column memory redundancy
US5121006A (en) * 1991-04-22 1992-06-09 Altera Corporation Registered logic macrocell with product term allocation and adjacent product term stealing
US5220214A (en) * 1991-04-22 1993-06-15 Altera Corporation Registered logic macrocell with product term allocation and adjacent product term stealing
US5260610A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5260611A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
KR950000275B1 (en) * 1992-05-06 1995-01-12 삼성전자 주식회사 Column redundancy of semiconductor memory device
US5237219A (en) * 1992-05-08 1993-08-17 Altera Corporation Methods and apparatus for programming cellular programmable logic integrated circuits
JP2909328B2 (en) * 1992-11-02 1999-06-23 株式会社東芝 Field programmable gate array
US5498975A (en) * 1992-11-19 1996-03-12 Altera Corporation Implementation of redundancy on a programmable logic device
US5434514A (en) * 1992-11-19 1995-07-18 Altera Corporation Programmable logic devices with spare circuits for replacement of defects
US5483178A (en) * 1993-03-29 1996-01-09 Altera Corporation Programmable logic device with logic block outputs coupled to adjacent logic block output multiplexers
CH688425A5 (en) * 1993-05-24 1997-09-15 Suisse Electronique Microtech Electronic circuit organized in a matrix network of cells.
US5369314A (en) * 1994-02-22 1994-11-29 Altera Corporation Programmable logic device with redundant circuitry
US5426379A (en) * 1994-07-29 1995-06-20 Xilinx, Inc. Field programmable gate array with built-in bitstream data expansion
US5592102A (en) * 1995-10-19 1997-01-07 Altera Corporation Means and apparatus to minimize the effects of silicon processing defects in programmable logic devices
US5670895A (en) * 1995-10-19 1997-09-23 Altera Corporation Routing connections for programmable logic array integrated circuits
US6107820A (en) * 1997-05-23 2000-08-22 Altera Corporation Redundancy circuitry for programmable logic devices with interleaved input circuits
JP3130269B2 (en) 1997-05-30 2001-01-31 愛三工業株式会社 Fuel supply device

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965249B2 (en) 2001-10-15 2005-11-15 Altera Corporation Programmable logic device with redundant circuitry
US20030072185A1 (en) * 2001-10-15 2003-04-17 Christopher Lane 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
US20050264318A1 (en) * 2004-05-28 2005-12-01 Altera Corporation Redundancy structures and methods in a programmable logic device
US7180324B2 (en) 2004-05-28 2007-02-20 Altera Corporation Redundancy structures and methods in a programmable logic device
US8191025B1 (en) 2004-05-28 2012-05-29 Altera Corporation Redundancy structures and methods in a programmable logic device
US7644386B1 (en) 2004-05-28 2010-01-05 Altera Corporation Redundancy structures and methods in a programmable logic device
US7277346B1 (en) 2004-12-14 2007-10-02 Altera Corporation Method and system for hard failure repairs in the field
US7804719B1 (en) 2005-06-14 2010-09-28 Xilinx, Inc. Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode
US7202698B1 (en) * 2005-06-14 2007-04-10 Xilinx, Inc. Integrated circuit having a programmable input structure with bounce capability
US7274214B1 (en) 2005-06-14 2007-09-25 Xilinx, Inc. Efficient tile layout for a programmable logic device
US7276934B1 (en) 2005-06-14 2007-10-02 Xilinx, Inc. Integrated circuit with programmable routing structure including diagonal interconnect lines
US7265576B1 (en) 2005-06-14 2007-09-04 Xilinx, Inc. Programmable lookup table with dual input and output terminals in RAM mode
US7375552B1 (en) 2005-06-14 2008-05-20 Xilinx, Inc. Programmable logic block with dedicated and selectable lookup table outputs coupled to general interconnect structure
US7268587B1 (en) 2005-06-14 2007-09-11 Xilinx, Inc. Programmable logic block with carry chains providing lookahead functions of different lengths
US7256612B1 (en) 2005-06-14 2007-08-14 Xilinx, Inc. Programmable logic block providing carry chain with programmable initialization values
US7253658B1 (en) 2005-06-14 2007-08-07 Xilinx, Inc. Integrated circuit providing direct access to multi-directional interconnect lines in a general interconnect structure
US8462576B2 (en) 2007-04-17 2013-06-11 Cypress Semiconductor Corporation State-monitoring memory element
US9018979B2 (en) 2007-04-17 2015-04-28 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US20080263319A1 (en) * 2007-04-17 2008-10-23 Cypress Semiconductor Corporation Universal digital block with integrated arithmetic logic unit
US8476928B1 (en) 2007-04-17 2013-07-02 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8482313B2 (en) 2007-04-17 2013-07-09 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US10826499B2 (en) 2007-04-17 2020-11-03 Cypress Semiconductor Corporation System level interconnect with programmable switching
US10516397B2 (en) 2007-04-17 2019-12-24 Cypress Semiconductor Corporation System level interconnect with programmable switching
US10097185B2 (en) 2007-04-17 2018-10-09 Cypress Semiconductor Corporation System level interconnect with programmable switching
US9325320B1 (en) 2007-04-17 2016-04-26 Cypress Semiconductor Corporation System level interconnect with programmable switching
US9553588B2 (en) 2007-04-17 2017-01-24 Cypress Semiconductor Corporation System level interconnect with programmable switching
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
KR101209824B1 (en) 2011-10-12 2012-12-07 고려대학교 산학협력단 Block interleaving apparatus
US9166599B1 (en) 2012-10-19 2015-10-20 Altera Corporation Methods and apparatus for building bus interconnection networks using programmable interconnection resources
US8704548B1 (en) * 2012-10-19 2014-04-22 Altera Corporation Methods and apparatus for building bus interconnection networks using programmable interconnection resources

Also Published As

Publication number Publication date
US6222382B1 (en) 2001-04-24
US6337578B2 (en) 2002-01-08
DE69802927T2 (en) 2002-08-08
EP0983549A1 (en) 2000-03-08
JP2001526866A (en) 2001-12-18
EP0983549B1 (en) 2001-12-12
WO1998053401A1 (en) 1998-11-26
JP3865789B2 (en) 2007-01-10
US6107820A (en) 2000-08-22
DE69802927D1 (en) 2002-01-24

Similar Documents

Publication Publication Date Title
US6337578B2 (en) Redundancy circuitry for programmable logic devices with interleaved input circuits
US6344755B1 (en) Programmable logic device with redundant circuitry
US5485102A (en) Programmable logic devices with spare circuits for replacement of defects
US5825197A (en) Means and apparatus to minimize the effects of silicon processing defects in programmable logic devices
US5369314A (en) Programmable logic device with redundant circuitry
US5737766A (en) Programmable gate array configuration memory which allows sharing with user memory
US5384497A (en) Low-skew signal routing in a programmable array
JP3414770B2 (en) Architecture of Dense Erasable Programmable Logic Devices Using Multiplexer Interconnect
US7549081B2 (en) Processor array
US6467017B1 (en) Programmable logic device having embedded dual-port random access memory configurable as single-port memory
US5796267A (en) Tri-Statable input/output circuitry for programmable logic
US6091258A (en) Redundancy circuitry for logic circuits
US8174284B1 (en) Repairable IO in an integrated circuit
US6034536A (en) Redundancy circuitry for logic circuits
US4872137A (en) Reprogrammable control circuit
US6339341B1 (en) Programmable logic LSI
US5555214A (en) Apparatus for serial reading and writing of random access memory arrays
US5448572A (en) Spare signal line switching method and apparatus
JP3597972B2 (en) Programmable logic device, test method therefor, and test data creation method
US20040017221A1 (en) Field programmable device
US7622947B1 (en) Redundant circuit presents connections on specified I/O ports
US6295236B1 (en) Semiconductor memory of the random access type with a bus system organized in two planes
US6263482B1 (en) Programmable logic device having macrocells with selectable product-term inversion
JP3055639B2 (en) Logic integrated circuit
GB2286914A (en) Programmable logic device with redundancy

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12