← Back to Patent Explorer
US6102964A Expired / Lapsed US ⏱️ 0.0 years remaining

Fitting for incremental compilation of electronic designs

Assignee: Altera Corp
•
Filing: 1997-10-27
•
Granted: 2000-08-15
•
Expires: 2017-10-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A technique is disclosed for efficiently placing logic cells from an electronic design during an incremental recompile. This is accomplished by fixing in place as many logic cells as possible during the recompile procedure. To understand how this works, recognize than an "original electronic design" has already been fully compiled. Now, a user has made one or more changes to the original electronic design to produce a "changed electronic design." The disclosed technique fits the changed electronic design, during incremental recompile, without effecting too much of the logic previously fit during compilation of the original electronic design. Initially, a compiler attempts to fit logic cells of the changed portion of the electronic design onto available logic elements of the hardware device while confining logic cells from the unchanged portion of the changed electronic design to their original positions. If this fails, the compiler allows logic cells from the unchanged portion of the changed electronic design to shift by a limited amount to other logic elements within the target hardware device. At first, this shifting is fairly constrained in order to preserve as much of the original compilation's placement as possible. However, if fitting can not be accomplished under these constraints, gradually the constraints are lifted, until a fit is achieved.

Inventors

  • 👤 John Tse
  • 👤 Fung Fung Lee
  • 👤 David Wolk Mendel

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 20:46
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/60; G01; G01R; G01R31/00; G01R31/28; G01R31/317; G01R31/3177; G01R31/3181; G01R31/3185; G01R31/318516; G06F11/00; G06F11/07; G06F11/0703; G06F11/0706; G06F11/0748; G06F11/22; G06F11/2294; G06F30/00; G06F30/30; G06F30/32; G06F30/33; G06F30/3308; G06F30/331; G06F30/34; G06F30/347; G06F8/65; G06F8/70; G06F8/71; G06Q; G06Q10/00; G06Q10/06; G06Q10/10; G06F2111/00; G06F2111/02; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953; Y10S707/99954

Claims Analysis

Total Claims: 46
Claim 1
Independent Claim 181 words
In a compiler for fitting electronic designs on target hardware devices, which devices have multiple levels of hierarchical containment together defining placement of logic from the electronic designs onto the target hardware devices, a method of fitting a changed electronic design which is changed from an original electronic design that was previously compiled, the changed electronic design including an unchanged portion which is unchanged from the original electronic design and a changed portion which is changed from the original electronic design, the method comprising: (a) providing the unchanged portion of the changed electronic design on an unchanged region of a target hardware device on which the unchanged portion of the original electronic design was placed during the previous compilation; (b) specifying one or more levels of hierarchical containment to relax; and (c) attempting to place the changed electronic design on the target hardware device while allowing the unchanged portion of the changed electronic design to change its placement within the unchanged region of the target hardware device but only insofar as permitted within the specified one or more hierarchical containment levels.
Claim 2
Dependent Claim 181 words
In a compiler for fitting electronic designs on target hardware devices, which devices have multiple levels of hierarchical containment together defining placement of logic from the electronic designs onto the target hardware devices, a method of fitting a changed electronic design which is changed from an original electronic design that was previously compiled, the changed electronic design including an unchanged portion which is unchanged from the original electronic design and a changed portion which is changed from the original electronic design, the method comprising: (a) providing the unchanged portion of the changed electronic design on an unchanged region of a target hardware device on which the unchanged portion of the original electronic design was placed during the previous compilation; (b) specifying one or more levels of hierarchical containment to relax; and (c) attempting to place the changed electronic design on the target hardware device while allowing the unchanged portion of the changed electronic design to change its placement within the unchanged region of the target hardware device but only insofar as permitted within the specified one or more hierarchical containment levels.
Claim 3
Dependent Claim 40 words
The method of claim 1, wherein the original electronic design and the changed electronic design are provided as netlists including logic cells comprising gates and nets, each logic cell being placed in a logic element of the target hardware device.
Claim 4
Dependent Claim 84 words
The method of claim 2, wherein at least two of the hierarchical containment levels are a logic element level and a logic array block level, which logic array block level comprises logic array blocks, each of which comprise multiple logic elements, and wherein (b) requires relaxing the logic element level, whereby a logic cell from within the changed portion is permitted to be placed, during (c), in any logic element within the logic array block in which it was placed during the previous compilation.
Claim 5
Dependent Claim 15 words
A programmable logic device containing logic cells fit according to the method of claim 3.
Claim 6
Dependent Claim 23 words
The method of claim 1, further comprising: (d) determining whether the changed electronic design has been successfully fit in the target hardware device.
Claim 7
Dependent Claim 61 words
The method of claim 5, further comprising repeating (b), (c), and (d), with at least one additional constraint being relaxed each time that (b) is performed, until it is determined that either (i) the changed electronic design has been successfully fit in the target hardware device or (ii) the changed electronic design can not be fit in the target hardware device.
Claim 8
Dependent Claim 24 words
The method of claim 1, wherein the changed portion of the changed electronic design includes a logic cell whose fan-in or fan-out has changed.
Claim 9
Dependent Claim 27 words
The method of claim 1, wherein the changed portion of the changed electronic design includes a logic cell that was not present in the original electronic design.
Claim 10
Dependent Claim 30 words
The method of claim 1, wherein attempting to fit the changed electronic design comprises placing logic cells of changed electronic design on the target hardware device and routing lines therebetween.
Claim 11
Dependent Claim 16 words
The method of claim 1, wherein the target hardware device is an Application Specific Integrated Circuit.
Claim 12
Dependent Claim 15 words
The method of claim 10, wherein the target hardware device is a Programmable Logic Device.
Claim 13
Dependent Claim 15 words
The method of claim 1, wherein there are at least three levels of hierarchy containment.
Claim 14
Dependent Claim 13 words
The method of claim 12, wherein there are four levels of hierarchy containment.
Claim 15
Dependent Claim 15 words
A programmable logic device containing logic cells fit according to the method of claim 1.
Claim 16
Dependent Claim 62 words
The method of claim 1, further comprising, prior to (b), attempting to fit the changed electronic design on the target hardware device while holding the unchanged portion of the electronic design fixed on the unchanged region of the target hardware device, and without allowing reorganization of the unchanged portion of the electronic design within the unchanged region of the target hardware device.
Claim 17
Dependent Claim 191 words
A machine readable medium containing instructions for operating a compiler that fits electronic designs on target hardware devices, which devices have multiple levels of hierarchical containment together defining placement of logic from the electronic designs onto the target hardware devices, the instructions controlling fitting of a changed electronic design which is changed from an original electronic design that was previously compiled, the changed electronic design including an unchanged portion which is unchanged from the original electronic design and a changed portion which is changed from the original electronic design, the instructions specifying operations comprising: (a) providing the unchanged portion of the changed electronic design on an unchanged region of a target hardware device on which the unchanged portion of the original electronic design was placed during the previous compilation; (b) specifying one or more levels of hierarchical containment to relax; and (c) attempting to place the changed electronic design on the target hardware device while allowing the unchanged portion of the changed electronic design to change its placement within the unchanged region of the target hardware device but only insofar as permitted within the specified one or more hierarchical containment levels.
Claim 18
Dependent Claim 191 words
A machine readable medium containing instructions for operating a compiler that fits electronic designs on target hardware devices, which devices have multiple levels of hierarchical containment together defining placement of logic from the electronic designs onto the target hardware devices, the instructions controlling fitting of a changed electronic design which is changed from an original electronic design that was previously compiled, the changed electronic design including an unchanged portion which is unchanged from the original electronic design and a changed portion which is changed from the original electronic design, the instructions specifying operations comprising: (a) providing the unchanged portion of the changed electronic design on an unchanged region of a target hardware device on which the unchanged portion of the original electronic design was placed during the previous compilation; (b) specifying one or more levels of hierarchical containment to relax; and (c) attempting to place the changed electronic design on the target hardware device while allowing the unchanged portion of the changed electronic design to change its placement within the unchanged region of the target hardware device but only insofar as permitted within the specified one or more hierarchical containment levels.
Claim 19
Dependent Claim 68 words
The machine readable medium of claim 16, further comprising instructions executed prior to (b), and specifying: attempting to fit the changed electronic design on the target hardware device while holding the unchanged portion of the electronic design fixed on the unchanged region of the target hardware device, and without allowing reorganization of the unchanged portion of the electronic design within the unchanged region of the target hardware device.
Claim 20
Dependent Claim 27 words
The machine readable medium of claim 16, further comprising instructions for: (d) determining whether the changed electronic design has been successfully fit in the target hardware device.
Claim 21
Dependent Claim 65 words
The machine readable medium of claim 18, further comprising instructions for repeating (b), (c), and (d), with at least one additional constraint being relaxed each time that (b) is performed, until it is determined that either (i) the changed electronic design has been successfully fit in the target hardware device or (ii) the changed electronic design can not be fit in the target hardware device.
Claim 22
Dependent Claim 35 words
The machine readable medium of claim 16, wherein the instructions for attempting to fit the changed electronic design specify placing logic cells of changed electronic design on the target hardware device and routing lines therebetween.
Claim 23
Dependent Claim 255 words
In a compiler for fitting electronic designs on target hardware devices, which devices have multiple levels of hierarchical containment together defining placement of logic from the electronic designs onto the target hardware devices, a method of fitting a changed electronic design which is changed from an original electronic design that was previously compiled, the changed electronic design including an unchanged portion which is unchanged from the original electronic design and a changed portion which is changed from the original electronic design, the method comprising: (a) identifying an unchanged region of a target hardware device on which the unchanged portion of the original electronic design was fit during the previous compilation; (b) attempting to fit the changed electronic design on the target hardware device while holding the unchanged portion of the electronic design fixed on the unchanged region of the target hardware device; (c) determining whether the changed electronic design has been successfully fit in the target hardware device; and (d) if it has been determined that the changed electronic design has not been successfully fit in the target hardware device, identifying one or more levels of hierarchical containment to relax and attempting to fit the changed electronic design on the target hardware device while allowing the unchanged portion of the changed electronic design to shift within the unchanged region of the target hardware device on which the unchanged portion of the original electronic design was placed in the compiled original design but only insofar as permitted within the identified one or more hierarchical containment levels.
Claim 24
Dependent Claim 255 words
In a compiler for fitting electronic designs on target hardware devices, which devices have multiple levels of hierarchical containment together defining placement of logic from the electronic designs onto the target hardware devices, a method of fitting a changed electronic design which is changed from an original electronic design that was previously compiled, the changed electronic design including an unchanged portion which is unchanged from the original electronic design and a changed portion which is changed from the original electronic design, the method comprising: (a) identifying an unchanged region of a target hardware device on which the unchanged portion of the original electronic design was fit during the previous compilation; (b) attempting to fit the changed electronic design on the target hardware device while holding the unchanged portion of the electronic design fixed on the unchanged region of the target hardware device; (c) determining whether the changed electronic design has been successfully fit in the target hardware device; and (d) if it has been determined that the changed electronic design has not been successfully fit in the target hardware device, identifying one or more levels of hierarchical containment to relax and attempting to fit the changed electronic design on the target hardware device while allowing the unchanged portion of the changed electronic design to shift within the unchanged region of the target hardware device on which the unchanged portion of the original electronic design was placed in the compiled original design but only insofar as permitted within the identified one or more hierarchical containment levels.
Claim 25
Dependent Claim 15 words
A programmable logic device containing logic cells fit according to the method of claim 21.
Claim 26
Dependent Claim 38 words
The method of claim 21, wherein the original electronic design and the changed electronic design are provided as netlists including cells comprising gates and nets, each cell being placed in a logic element of the target hardware device.
Claim 27
Dependent Claim 37 words
The method of claim 21, wherein the changed portion of the changed electronic design includes a logic cell whose fan-in or fan-out has changed or a logic cell that was not present in the original electronic design.
Claim 28
Dependent Claim 15 words
The method of claim 21, wherein the target hardware device is a Programmable Logic Device.
Claim 29
Dependent Claim 241 words
In a compiler for fitting an electronic design on a target hardware device, a method of fitting a changed electronic design which is changed from an original electronic design that was previously compiled, the changed electronic design including an unchanged portion which is unchanged from the original electronic design and a changed portion which is changed from the original electronic design, wherein the target hardware device has multiple levels of hierarchical containment together defining placement of logic from the changed electronic design onto the target hardware device, the method comprising: (a) identifying an unchanged region of a target hardware device on which the unchanged portion of the original electronic design was fit during the previous compilation; (b) attempting to fit the changed electronic design on the target hardware device while holding the unchanged portion of the electronic design fixed on the unchanged region of the target hardware device; (c) determining whether the changed electronic design has been successfully fit in the target hardware device; (d) if the changed electronic design has not been successfully fit in the target hardware device, specifying one or more levels of hierarchical containment to relax; and (e) attempting to fit the changed electronic design on the target hardware device while allowing the unchanged portion of the changed electronic design to change its placement within the unchanged region of the target hardware device but only insofar as permitted within the specified one or more hierarchical containment levels.
Claim 30
Dependent Claim 241 words
In a compiler for fitting an electronic design on a target hardware device, a method of fitting a changed electronic design which is changed from an original electronic design that was previously compiled, the changed electronic design including an unchanged portion which is unchanged from the original electronic design and a changed portion which is changed from the original electronic design, wherein the target hardware device has multiple levels of hierarchical containment together defining placement of logic from the changed electronic design onto the target hardware device, the method comprising: (a) identifying an unchanged region of a target hardware device on which the unchanged portion of the original electronic design was fit during the previous compilation; (b) attempting to fit the changed electronic design on the target hardware device while holding the unchanged portion of the electronic design fixed on the unchanged region of the target hardware device; (c) determining whether the changed electronic design has been successfully fit in the target hardware device; (d) if the changed electronic design has not been successfully fit in the target hardware device, specifying one or more levels of hierarchical containment to relax; and (e) attempting to fit the changed electronic design on the target hardware device while allowing the unchanged portion of the changed electronic design to change its placement within the unchanged region of the target hardware device but only insofar as permitted within the specified one or more hierarchical containment levels.
Claim 31
Dependent Claim 15 words
The method of claim 22, wherein there are at least three levels of hierarchical containment.
Claim 32
Dependent Claim 316 words
In a compiler for placing an electronic design on a target hardware device by placing logic cells from the electronic design on logic elements of the target hardware device, the logic elements being grouped into blocks of related logic elements, the target hardware device having multiple levels of hierarchical containment together defining placement of logic from the electronic design onto the target hardware device, a method of recompiling comprising: (a) receiving a compiled original electronic design specifying placement of logic cells from the original electronic design on logic elements of the target hardware device; (b) accepting a change in the original electronic design to create a changed electronic design, the changed electronic design including (1) a changed portion comprising logic cells affected by the change to the design, and (2) an unchanged portion comprising logic cells not affected by the change; (c) providing logic cells from the unchanged portion of the changed electronic design to an unchanged region of the target hardware device comprising logic elements onto which logic cells from the unchanged portion of the changed electronic design were placed in the compiled original electronic design; (d) attempting to fit logic cells of the changed portion of the electronic design onto logic elements located outside of the unchanged region of the target hardware device while confining logic cells from the unchanged portion of the changed electronic design to remain fixed in the unchanged region of the target hardware device; and (e) if the attempt to fit fails, specifying one or more levels of hierarchical containment to relax and attempting to fit the changed electronic design on the target hardware device while allowing logic cells from the unchanged portion of the changed electronic design to shift other logic elements within the blocks in which they were placed in the compiled original design but only insofar as permitted within the specified one or more hierarchical containment levels.
Claim 33
Dependent Claim 316 words
In a compiler for placing an electronic design on a target hardware device by placing logic cells from the electronic design on logic elements of the target hardware device, the logic elements being grouped into blocks of related logic elements, the target hardware device having multiple levels of hierarchical containment together defining placement of logic from the electronic design onto the target hardware device, a method of recompiling comprising: (a) receiving a compiled original electronic design specifying placement of logic cells from the original electronic design on logic elements of the target hardware device; (b) accepting a change in the original electronic design to create a changed electronic design, the changed electronic design including (1) a changed portion comprising logic cells affected by the change to the design, and (2) an unchanged portion comprising logic cells not affected by the change; (c) providing logic cells from the unchanged portion of the changed electronic design to an unchanged region of the target hardware device comprising logic elements onto which logic cells from the unchanged portion of the changed electronic design were placed in the compiled original electronic design; (d) attempting to fit logic cells of the changed portion of the electronic design onto logic elements located outside of the unchanged region of the target hardware device while confining logic cells from the unchanged portion of the changed electronic design to remain fixed in the unchanged region of the target hardware device; and (e) if the attempt to fit fails, specifying one or more levels of hierarchical containment to relax and attempting to fit the changed electronic design on the target hardware device while allowing logic cells from the unchanged portion of the changed electronic design to shift other logic elements within the blocks in which they were placed in the compiled original design but only insofar as permitted within the specified one or more hierarchical containment levels.
Claim 34
Dependent Claim 28 words
The method of claim 28, wherein the original electronic design and the changed electronic design are provided as netlists in which the logic cells include gates and nets.
Claim 35
Dependent Claim 18 words
The method of claim 28, wherein logic elements in a single block are connected by a local interconnect.
Claim 36
Dependent Claim 44 words
The method of claim 28, wherein the changed portion of the changed electronic design includes a logic cell meeting at least one of the following criteria: its fan-in has changed, its fan-out has changed, and it was not present in the original electronic design.
Claim 37
Dependent Claim 30 words
The method of claim 28, wherein attempting to fit the changed electronic design comprises placing logic cells of changed electronic design on the target hardware device and routing lines therebetween.
Claim 38
Dependent Claim 15 words
The method of claim 28, wherein the target hardware device is a Programmable Logic Device.
Claim 39
Dependent Claim 67 words
The method of claim 28, further comprising: (f) if the attempt to fit at (e) fails, allowing logic cells from the unchanged portion of the changed electronic design to shift other logic elements within half-rows in which they were placed in the compiled original design and attempting to fit the changed electronic design on the target hardware device, wherein the half-rows comprise a plurality of related blocks.
Claim 40
Dependent Claim 15 words
A programmable logic device containing logic cells placed according to the method of claim 28.
Claim 41
Dependent Claim 321 words
A machine readable medium comprising instructions for operating a compiler capable of placing an electronic design on a target hardware device by placing logic cells from the electronic design on logic elements of the target hardware device, the logic elements being grouped into blocks of related logic elements, the target hardware device having multiple levels of hierarchical containment together defining placement of logic from the electronic design onto the target hardware device, the instructions specifying operations comprising: (a) receiving a compiled original electronic design specifying placement of logic cells from the original electronic design on logic elements of the target hardware device; (b) accepting a change in the original electronic design to create a changed electronic design, the changed electronic design including (1) a changed portion comprising logic cells affected by the change to the design, and (2) an unchanged portion comprising logic cells not affected by the change; (c) providing logic cells from the unchanged portion of the changed electronic design to an unchanged region of the target hardware device comprising logic elements onto which logic cells from the unchanged portion of the changed electronic design were placed in the compiled original electronic design; (d) attempting to fit logic cells of the changed portion of the electronic design onto logic elements located outside of the unchanged region of the target hardware device while confining logic cells from the unchanged portion of the changed electronic design to remain fixed in the unchanged region of the target hardware device; and (e) if the attempt to fit fails, relaxing one or more hierarchical containment levels and attempting to fit the changed electronic design on the target hardware device while allowing logic cells from the unchanged portion of the changed electronic design to shift other logic elements within the blocks in which they were placed in the compiled original design but only insofar as permitted within the relaxed one or more hierarchical containment levels.
Claim 42
Dependent Claim 321 words
A machine readable medium comprising instructions for operating a compiler capable of placing an electronic design on a target hardware device by placing logic cells from the electronic design on logic elements of the target hardware device, the logic elements being grouped into blocks of related logic elements, the target hardware device having multiple levels of hierarchical containment together defining placement of logic from the electronic design onto the target hardware device, the instructions specifying operations comprising: (a) receiving a compiled original electronic design specifying placement of logic cells from the original electronic design on logic elements of the target hardware device; (b) accepting a change in the original electronic design to create a changed electronic design, the changed electronic design including (1) a changed portion comprising logic cells affected by the change to the design, and (2) an unchanged portion comprising logic cells not affected by the change; (c) providing logic cells from the unchanged portion of the changed electronic design to an unchanged region of the target hardware device comprising logic elements onto which logic cells from the unchanged portion of the changed electronic design were placed in the compiled original electronic design; (d) attempting to fit logic cells of the changed portion of the electronic design onto logic elements located outside of the unchanged region of the target hardware device while confining logic cells from the unchanged portion of the changed electronic design to remain fixed in the unchanged region of the target hardware device; and (e) if the attempt to fit fails, relaxing one or more hierarchical containment levels and attempting to fit the changed electronic design on the target hardware device while allowing logic cells from the unchanged portion of the changed electronic design to shift other logic elements within the blocks in which they were placed in the compiled original design but only insofar as permitted within the relaxed one or more hierarchical containment levels.
Claim 43
Dependent Claim 30 words
The machine readable medium of claim 36, wherein the original electronic design and the changed electronic design are provided as netlists in which the logic cells include gates and nets.
Claim 44
Dependent Claim 35 words
The machine readable medium of claim 36, wherein the instructions for attempting to fit the changed electronic design comprises placing logic cells of changed electronic design on the target hardware device and routing lines therebetween.
Claim 45
Dependent Claim 17 words
The machine readable medium of claim 36, wherein the target hardware device is a Programmable Logic Device.
Claim 46
Dependent Claim 71 words
The machine readable medium of claim 36, further comprising instructions for: (f) if the attempt to fit at (e) fails, allowing logic cells from the unchanged portion of the changed electronic design to shift other logic elements within half-rows in which they were placed in the compiled original design and attempting to fit the changed electronic design on the target hardware device, wherein the half-rows comprise a plurality of related blocks.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-08-15 2004-02-14 2004-08-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-08-15 2008-02-14 2008-08-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-08-15 2012-02-14 2012-08-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag