Patent US5946478A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5946478A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for generating a secure macro element of a design for a programmable IC

Assignee: Xilinx Inc
•
Filing: 1997-05-16
•
Granted: 1999-08-31
•
Expires: 2017-05-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method of generating and using a secure macro element for configuring programmable ICs is provided. The method provides a bitstream to a user, rather than providing a user-editable macro. Compilation software is provided to the user that combines the data from a "macro bitstream" (the bitstream comprising the macro data description) and the data from the user's own circuits to create the complete bitstream. The compilation software reserves the relevant portions of the complete bitstream for the macro, and does not assign user circuits to the areas controlled by those portions of the bitstream. In one embodiment of the invention, the user specifies a physical location on the programmable IC for the macro, so the macro data is optionally placed in a different location in the complete bitstream than in the macro bitstream. In another embodiment, the macro bitstream and the complete bitstream represent the same programmable IC architecture, but not the same device, so they are of similar formats but different lengths.

Inventors

  • 👤 Gary R. Lawman

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 13:43
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/70; G06F21/71; G06F21/76; G06F30/00; G06F30/30; G06F30/34; G06F2115/00; G06F2115/08

Claims Analysis

Total Claims: 43
Claim 1
Independent Claim 54 words
A method for including a macro in a programmable IC, comprising the steps of: a) generating a macro bitstream; b) providing said macro bitstream to a user; c) generating a user circuit description; and d) combining said macro bitstream and said user circuit description to generate a complete bitstream for programming the programmable IC.
Claim 2
Independent Claim 54 words
A method for including a macro in a programmable IC, comprising the steps of: a) generating a macro bitstream; b) providing said macro bitstream to a user; c) generating a user circuit description; and d) combining said macro bitstream and said user circuit description to generate a complete bitstream for programming the programmable IC.
Claim 3
Dependent Claim 12 words
The method of claim 1, wherein the programmable IC is an FPGA.
Claim 4
Dependent Claim 13 words
The method of claim 1, wherein said user circuit description comprises a netlist.
Claim 5
Dependent Claim 11 words
The method of claim 1, wherein the macro has predictable timing.
Claim 6
Dependent Claim 75 words
The method of claim 1, wherein: one or more portions of said macro bitstream comprise macro bitstream data representing the macro; one or more portions of said complete bitstream comprise complete bitstream data representing the macro; and said complete bitstream data is different from said macro bitstream data, said complete bitstream data having been altered from said macro bitstream data to permit connections between signals in the macro and circuits in said user circuit description.
Claim 7
Dependent Claim 78 words
The method of claim 1, wherein: one or more portions of said macro bitstream comprise macro bitstream data representing the macro; one or more portions of said complete bitstream comprise complete bitstream data representing the macro; and said complete bitstream data is different from said macro bitstream data, said complete bitstream data having been altered from said macro bitstream data to permit the addition of user logic to the area of the programmable IC encompassed by the macro.
Claim 8
Dependent Claim 17 words
The method of claim 1, where said macro bitstream and said complete bitstream are of different lengths.
Claim 9
Dependent Claim 62 words
The method of claim 1, wherein: one or more portions of said macro bitstream comprise macro bitstream data representing the macro; one or more portions of said complete bitstream comprise complete bitstream data representing the macro; and the position of said macro bitstream data within said macro bitstream is different from the position of said complete bitstream data within said complete bitstream.
Claim 10
Dependent Claim 23 words
The method of claim 1, further comprising the step of: generating a macro placeholder to be used in generating said user circuit description.
Claim 11
Dependent Claim 25 words
The method of claim 9, further comprising the step of: modifying said macro placeholder to specify the location of the macro in the programmable IC.
Claim 12
Dependent Claim 17 words
The method of claim 9, further comprising the step of: providing said macro placeholder to the user.
Claim 13
Independent Claim 59 words
A method for using a macro for a programmable IC, comprising the steps of: a) generating a user circuit description for a user design; b) receiving a macro bitstream; c) specifying that the macro be included in the user design; and d) producing a complete bitstream for a programmable IC by combining said circuit description and said macro bitstream.
Claim 14
Independent Claim 59 words
A method for using a macro for a programmable IC, comprising the steps of: a) generating a user circuit description for a user design; b) receiving a macro bitstream; c) specifying that the macro be included in the user design; and d) producing a complete bitstream for a programmable IC by combining said circuit description and said macro bitstream.
Claim 15
Dependent Claim 12 words
The method of claim 12, wherein the programmable IC is an FPGA.
Claim 16
Dependent Claim 13 words
The method of claim 12, wherein said user circuit description comprises a netlist.
Claim 17
Dependent Claim 14 words
The method of claim 12, wherein the macro includes routing, thereby providing predictable timing.
Claim 18
Dependent Claim 75 words
The method of claim 12, wherein: one or more portions of said macro bitstream comprise macro bitstream data representing the macro; one or more portions of said complete bitstream comprise complete bitstream data representing the macro; and said complete bitstream data is different from said macro bitstream data, said complete bitstream data having been altered from said macro bitstream data to permit connections between signals in the macro and circuits in said user circuit description.
Claim 19
Dependent Claim 78 words
The method of claim 12, wherein: one or more portions of said macro bitstream comprise macro bitstream data representing the macro; one or more portions of said complete bitstream comprise complete bitstream data representing the macro; and said complete bitstream data is different from said macro bitstream data, said complete bitstream data having been altered from said macro bitstream data to permit the addition of user logic to the area of the programmable IC encompassed by the macro.
Claim 20
Dependent Claim 17 words
The method of claim 12, where said macro bitstream and said complete bitstream are of different lengths.
Claim 21
Dependent Claim 62 words
The method of claim 12, wherein: one or more portions of said macro bitstream comprise macro bitstream data representing the macro; one or more portions of said complete bitstream comprise complete bitstream data representing the macro; and the position of said macro bitstream data within said macro bitstream is different from the position of said complete bitstream data within said complete bitstream.
Claim 22
Dependent Claim 28 words
The method of claim 12, further comprising the step of: receiving a macro placeholder to be used in specifying that the macro be included in the user design.
Claim 23
Dependent Claim 25 words
The method of claim 20, further comprising the step of: modifying said macro placeholder to specify the location of the macro in the programmable IC.
Claim 24
Dependent Claim 33 words
The method of claim 12, further comprising the step of: setting software parameters to reserve for the macro both an area of the programmable IC and the related portion of said complete bitstream.
Claim 25
Dependent Claim 24 words
The method of claim 12, further comprising the step of: setting software parameters to specify the location of the macro in the programmable IC.
Claim 26
Dependent Claim 11 words
The method of claim 12, wherein said macro bitstream is encrypted.
Claim 27
Independent Claim 75 words
A method for generating a macro bitstream for inclusion in a complete bitstream for programming a programmable IC, comprising the steps of: a) creating bitstream data representing a macro; b) placing said bitstream data representing said macro into one or more portions of a macro bitstream; and c) completing said macro bitstream by filling the remaining portions of said macro bitstream with data at least some of which will be omitted from the complete bitstream.
Claim 28
Independent Claim 75 words
A method for generating a macro bitstream for inclusion in a complete bitstream for programming a programmable IC, comprising the steps of: a) creating bitstream data representing a macro; b) placing said bitstream data representing said macro into one or more portions of a macro bitstream; and c) completing said macro bitstream by filling the remaining portions of said macro bitstream with data at least some of which will be omitted from the complete bitstream.
Claim 29
Dependent Claim 12 words
The method of claim 25, wherein the programmable IC is an FPGA.
Claim 30
Dependent Claim 14 words
The method of claim 25, wherein said macro includes routing, thereby providing predictable timing.
Claim 31
Dependent Claim 48 words
The method of claim 25, wherein: one or more portions of said macro bitstream comprise macro bitstream data representing the macro; one or more portions of said complete bitstream comprise complete bitstream data representing the macro; and said complete bitstream data is different from said macro bitstream data.
Claim 32
Dependent Claim 32 words
The method of claim 28, wherein: said complete bitstream data is altered from said macro bitstream data to permit connections between signals in the macro and circuits in said user circuit description.
Claim 33
Dependent Claim 35 words
The method of claim 28, wherein: said complete bitstream data is altered from said macro bitstream data to permit the addition of user logic to the area of the programmable IC encompassed by the macro.
Claim 34
Dependent Claim 17 words
The method of claim 25, where said macro bitstream and said complete bitstream are of different lengths.
Claim 35
Dependent Claim 62 words
The method of claim 25, wherein: one or more portions of said macro bitstream comprise macro bitstream data representing the macro; one or more portions of said complete bitstream comprise complete bitstream data representing the macro; and the position of said macro bitstream data within said macro bitstream is different from the position of said complete bitstream data within said complete bitstream.
Claim 36
Dependent Claim 36 words
The method of claim 25, wherein: said data at least some of which will be omitted from the complete bitstream comprises data bits that make it difficult to isolate the macro data from the macro bitstream.
Claim 37
Dependent Claim 19 words
The method of claim 25, further comprising the step of: d) providing said completed macro bitstream to a user.
Claim 38
Dependent Claim 16 words
The method of claim 25, further comprising the step of: d) encrypting said completed macro bitstream.
Claim 39
Dependent Claim 19 words
The method of claim 35, further comprising the step of: e) providing said encrypted macro bitstream to a user.
Claim 40
Independent Claim 83 words
A method for providing macro data for inclusion in a complete bitstream for programming a programmable IC, comprising the steps of: a) creating bitstream data representing a macro; b) placing said bitstream data representing said macro into one or more portions of a macro bitstream; c) generating a macro placeholder to reserve for the macro both an area of the programmable IC and the related portion of the complete bitstream; and d) providing said macro bitstream and said macro placeholder to a user.
Claim 41
Independent Claim 83 words
A method for providing macro data for inclusion in a complete bitstream for programming a programmable IC, comprising the steps of: a) creating bitstream data representing a macro; b) placing said bitstream data representing said macro into one or more portions of a macro bitstream; c) generating a macro placeholder to reserve for the macro both an area of the programmable IC and the related portion of the complete bitstream; and d) providing said macro bitstream and said macro placeholder to a user.
Claim 42
Independent Claim 61 words
A method for including a macro in a programmable IC, comprising the steps of: a) generating a macro bitstream; b) encrypting said macro bitstream; c) providing said encrypted macro bitstream to a user; d) generating a user circuit description; and e) combining said encrypted macro bitstream and said user circuit description to generate a complete bitstream for programming the programmable IC.
Claim 43
Independent Claim 61 words
A method for including a macro in a programmable IC, comprising the steps of: a) generating a macro bitstream; b) encrypting said macro bitstream; c) providing said encrypted macro bitstream to a user; d) generating a user circuit description; and e) combining said encrypted macro bitstream and said user circuit description to generate a complete bitstream for programming the programmable IC.

References Cited (Backward Citations)

US5448493A Cited
US5594657A Cited
US5761484A Cited
US5426379A Cited
US5635855A Cited
US5815405A Cited
US5761078A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-08-30 2003-03-01 2003-08-31 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-08-30 2007-03-01 2007-08-31 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-08-30 2011-03-01 2011-08-31 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag