Adaptive programming method for antifuse technology
First Claim
1. A method of programming a programmable device having interconnect wiring segments and programmable elements which programmably connect said wiring segments to each other, said method comprising the steps of:
- providing a design in machine readable form, said design comprising connections between selected nodes in said device;
for each of said connections, selecting active wiring segments and active programmable elements in said programmable device to implement said connection, thereby to form a route for said connection;
programming at least some of said active programmable elements;
if during programming any of said active programmable elements fails to become conductive, selecting from those programmable elements not yet programmed an alternative set of programmable elements to complete said connections;
programming said alternative set of programmable elements, thereby to form an implementation of said design.
1 Assignment
0 Petitions
Accused Products
Abstract
For antifuse programmable integrated circuit devices, in particular FPGA devices, the invention allows for alternative routing around antifuses which fail to program. The chip architecture includes wiring segments and antifuses which together allow for alternative routes around every antifuse in the event of failure of that antifuse. The method includes programming the device under control of a computer which can recalculate routes in the event of an antifuse which fails to program. Preferably the initial routing distributes unused wiring segments through the chip to be available for routing around a failed antifuse. When a failure occurs, the method includes determining an alternative route around every failed antifuse. The alternative route may be established directly after the antifuse has failed or after all initially selected antifuses have been programmed. The method also includes swapping of logic cell inputs, logic cells, and/or logic blocks from their original layout to adapt to a failed antifuse without changing the timing of signals which would have used the failed antifuse.
-
Citations
14 Claims
-
1. A method of programming a programmable device having interconnect wiring segments and programmable elements which programmably connect said wiring segments to each other, said method comprising the steps of:
-
providing a design in machine readable form, said design comprising connections between selected nodes in said device; for each of said connections, selecting active wiring segments and active programmable elements in said programmable device to implement said connection, thereby to form a route for said connection; programming at least some of said active programmable elements; if during programming any of said active programmable elements fails to become conductive, selecting from those programmable elements not yet programmed an alternative set of programmable elements to complete said connections; programming said alternative set of programmable elements, thereby to form an implementation of said design. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of programming an antifuse programmable logic device having logic elements, interconnect wiring segments, and antifuses which programmably connect wiring segments to each other and to said logic elements, said method comprising the steps of:
-
providing a logic design in machine readable form, said logic design comprising design elements and connections for carrying a signal from an output terminal of one of said design elements to an input terminal of at least one of said design elements; selecting one of said logic elements to implement at least one of said design elements; for at least one of said connections, selecting active wiring segments and active antifuses in said antifuse programmable logic device to form a route from an output terminal of one of said design elements to an input terminal of at least one of said design elements; selecting one of said logic elements to implement at least one of said design elements; for said at least one of said connections, programming said active antifuses in order of signal flow from said output terminal of said one of said design elements to said input terminal of said at least one of said design elements; if an antifuse fails to become conductive upon programming, for at least that connection of which said failed antifuse is a part, calculating an alternative route to complete that connection; and continuing to program active antifuses in said alternative route in order of signal flow to said input terminal of said at least one of said design elements.
-
Specification