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

Method and system for programming a gate array using a compressed configuration bit stream

Assignee: Cavium International
•
Filing: 1995-09-29
•
Granted: 1998-04-28
•
Expires: 2015-09-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A generalized data decompression engine is incorporated within a field programmable gate array ("FPGA"). The generalized data decompression engine uses a general purpose data decompression technique such as, for example, a Lempel-Ziv type technique. During operation, a compressed configuration bit stream is received by the generalized data decompression engine in the FPGA and is decompressed thereby. A resultant decompressed configuration bit stream is then used to program logic cells within the FPGA.

Inventors

  • 👤 David John Craft
  • 👤 Scott Whitney Gould
  • 👤 Frank Ray Keyser, III
  • 👤 Brian Worth

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 23:51
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06T; G06T9/00; G06T9/005; H; H03; H03M; H03M7/00; H03M7/30; H03M7/3084

Claims Analysis

Total Claims: 47
Claim 1
Independent Claim 65 words
A programmable logic circuit comprising: a plurality of programmable logic resources; a configuration input; and a generalized data decompression engine having a compressed input and a decompressed output, said compressed input being coupled to said configuration input and said decompressed output being coupled to said plurality of programmable logic resources to provide programming thereof, wherein said generalized data decompression engine comprises a Lempel-Ziv decompression engine.
Claim 2
Dependent Claim 65 words
A programmable logic circuit comprising: a plurality of programmable logic resources; a configuration input; and a generalized data decompression engine having a compressed input and a decompressed output, said compressed input being coupled to said configuration input and said decompressed output being coupled to said plurality of programmable logic resources to provide programming thereof, wherein said generalized data decompression engine comprises a Lempel-Ziv decompression engine.
Claim 3
Dependent Claim 16 words
The circuit of claim 1, wherein said generalized data decompression engine comprises and ALDC decompression engine.
Claim 4
Dependent Claim 81 words
A programmable logic circuit comprising: a plurality of programmable logic resources; a configuration input; a generalized data decompression engine having a compressed input and a decompression output, said compressed input being coupled to said configuration input and said decompressed output providing direct run-time personalization of said plurality of programmable logic resources; and a configuration memory for said direct run-time personalization of said plurality of programmable logic resources said configuration memory also comprising a history buffer of said generalized data decompression engine.
Claim 5
Dependent Claim 81 words
A programmable logic circuit comprising: a plurality of programmable logic resources; a configuration input; a generalized data decompression engine having a compressed input and a decompression output, said compressed input being coupled to said configuration input and said decompressed output providing direct run-time personalization of said plurality of programmable logic resources; and a configuration memory for said direct run-time personalization of said plurality of programmable logic resources said configuration memory also comprising a history buffer of said generalized data decompression engine.
Claim 6
Dependent Claim 16 words
The circuit of claim 3, wherein said generalized data decompression engine comprises a Lempel-Ziv decompression engine.
Claim 7
Dependent Claim 33 words
The circuit of claim 3, wherein said generalized data decompression engine further comprises means for copying data from an already loaded portion of said configuration memory to another portion of said configuration memory.
Claim 8
Dependent Claim 30 words
The circuit of claim 5, wherein said means for copying comprises a read address register for storing an address of said configuration memory from which data is to be copied.
Claim 9
Dependent Claim 26 words
The circuit of claim 6, further comprising a write address register for storing an address of said configuration memory to which data is to be written.
Claim 10
Dependent Claim 79 words
The circuit of claim 7, further comprising an arithmetic logic unit ("ALU") having two inputs, a first input of said two inputs being coupled to said write address register, a second input of said two inputs being coupled to the compressed input of said generalized data decompression engine, an output of said arithmetic logic unit being coupled to said read address register for storing therein an address as an arithmetic function of said first input and said second input.
Claim 11
Dependent Claim 18 words
The circuit of claim 8, wherein said read address register and said write address register comprise shift registers.
Claim 12
Dependent Claim 29 words
The circuit of claim 9, wherein said ALU comprises a one bit serial ALU wherein said first input, said second input, and said output are each one bit wide.
Claim 13
Dependent Claim 20 words
The circuit of claim 10, wherein said arithmetic function comprises a subtraction of said second input from said first input.
Claim 14
Dependent Claim 31 words
The circuit of claim 11, wherein said ALU further comprises a borrow out and a carry in, said borrow out coupled to said carry in by a one bit carry/borrow latch.
Claim 15
Dependent Claim 26 words
The circuit of claim 7, further comprising a count register for storing a number of words of data to be copied by said means for copying.
Claim 16
Dependent Claim 38 words
The circuit of claim 13, further comprising means for incrementing the read register, incrementing the write register and decrementing the count register for each word of data copied of said number of words of data to be copied.
Claim 17
Dependent Claim 20 words
The circuit of claim 14, further comprising means for terminating copying upon said count register holding a value of zero.
Claim 18
Dependent Claim 133 words
A programmable logic circuit comprising: a plurality of programmable logic resources; a configuration input; a generalized data decompression engine having a compressed input and a decompressed output, said compressed input being coupled to said configuration input and said decompressed output being coupled to said plurality of programmable logic resources to provide programming thereof, wherein said generalized data decompression engine comprises serial processing logic and wherein said compressed input of said generalized data decompression engine comprises a serial data input; and a parallel to serial converter including a parallel address output, a parallel data input and a serial data output, said serial data output being coupled to said serial data input of said generalized data decompression engine, said parallel address output and said parallel data input adapted to couple to a parallel organized memory.
Claim 19
Dependent Claim 133 words
A programmable logic circuit comprising: a plurality of programmable logic resources; a configuration input; a generalized data decompression engine having a compressed input and a decompressed output, said compressed input being coupled to said configuration input and said decompressed output being coupled to said plurality of programmable logic resources to provide programming thereof, wherein said generalized data decompression engine comprises serial processing logic and wherein said compressed input of said generalized data decompression engine comprises a serial data input; and a parallel to serial converter including a parallel address output, a parallel data input and a serial data output, said serial data output being coupled to said serial data input of said generalized data decompression engine, said parallel address output and said parallel data input adapted to couple to a parallel organized memory.
Claim 20
Dependent Claim 16 words
The circuit of claim 16, wherein said generalized data decompression engine comprises a Lempel-Ziv decompression engine.
Claim 21
Dependent Claim 32 words
The circuit of claim 16, further comprising an address shift register coupled to said parallel address output and a serial increment circuit for incrementing an address stored in said address shift register.
Claim 22
Dependent Claim 43 words
The circuit of claim 18, further comprising means for simultaneously shifting said address shift register and shifting a data shift register coupling said parallel data input and said serial data output such that serial data is output simultaneous with said address being incremented.
Claim 23
Dependent Claim 90 words
A programmable logic circuit comprising: a plurality of programmable logic resources; a configuration input; and a generalized data decompression engine having a compressed input and a decompressed output, said compressed input being coupled to said configuration input and said decompressed output being coupled to said plurality of programmable logic resources to provide programming thereof, wherein said circuit comprises an integrated circuit chip having a floorplan, said floorplan having an elongated region separating groups of said plurality of programmable logic resources, said generalized data decompression engine being within said elongated region.
Claim 24
Dependent Claim 90 words
A programmable logic circuit comprising: a plurality of programmable logic resources; a configuration input; and a generalized data decompression engine having a compressed input and a decompressed output, said compressed input being coupled to said configuration input and said decompressed output being coupled to said plurality of programmable logic resources to provide programming thereof, wherein said circuit comprises an integrated circuit chip having a floorplan, said floorplan having an elongated region separating groups of said plurality of programmable logic resources, said generalized data decompression engine being within said elongated region.
Claim 25
Dependent Claim 16 words
The circuit of claim 20, wherein said generalized data decompression engine comprises a Lempel-Ziv decompression engine.
Claim 26
Independent Claim 68 words
A method for programming a programmable logic circuit comprising a plurality of programmable logic resources, said method comprising the steps of: (a) receiving a compressed configuration; (b) decompressing said compressed configuration using a generalized data decompression technique to produce a decompressed configuration; and (c) programming said plurality of logic resources using said decompressed configuration, wherein said decompressing step (b) comprises decompressing said configuration using a Lempel-Ziv decompression technique.
Claim 27
Independent Claim 68 words
A method for programming a programmable logic circuit comprising a plurality of programmable logic resources, said method comprising the steps of: (a) receiving a compressed configuration; (b) decompressing said compressed configuration using a generalized data decompression technique to produce a decompressed configuration; and (c) programming said plurality of logic resources using said decompressed configuration, wherein said decompressing step (b) comprises decompressing said configuration using a Lempel-Ziv decompression technique.
Claim 28
Dependent Claim 19 words
The method of claim 22, wherein said decompressing step (b) comprises decompressing said configuration using an ALDC decompression technique.
Claim 29
Independent Claim 92 words
A method for programming a programmable logic circuit comprising a plurality of programmable logic resources, said method comprising the steps of: (a) receiving a compressed configuration; (b) decompressing said compressed configuration using a generalized data decompression technique to produce a decompressed configuration; and (c) programming said plurality of logic resources using said decompressed configuration, wherein said programmable logic circuit further comprises a configuration memory for direct run-time personalization of said plurality of programmable logic resources, said method further including accessing said configuration memory as a history buffer during said decompressing step (b).
Claim 30
Independent Claim 92 words
A method for programming a programmable logic circuit comprising a plurality of programmable logic resources, said method comprising the steps of: (a) receiving a compressed configuration; (b) decompressing said compressed configuration using a generalized data decompression technique to produce a decompressed configuration; and (c) programming said plurality of logic resources using said decompressed configuration, wherein said programmable logic circuit further comprises a configuration memory for direct run-time personalization of said plurality of programmable logic resources, said method further including accessing said configuration memory as a history buffer during said decompressing step (b).
Claim 31
Dependent Claim 19 words
The method of claim 24, wherein said decompressing step (b) comprises decompressing said configuration using a Lempel-Ziv decompression technique.
Claim 32
Dependent Claim 25 words
The method of claim 24, further comprising copying data from an already loaded portion of said configuration memory to another portion of said configuration memory.
Claim 33
Dependent Claim 40 words
The method of claim 26, wherein said programmable logic circuit further comprises a read address register, said method further comprising storing an address of said configuration memory from which data is to be copied from in said read address register.
Claim 34
Dependent Claim 39 words
The method of claim 27, wherein said programmable logic circuit further comprises a write address register, said method further comprising storing an address of said configuration memory to which data is to be written in said write address register.
Claim 35
Dependent Claim 45 words
The method of claim 28, wherein said programmable logic circuit further comprises an arithmetic logic unit ("ALU") said method further including subtracting a history offset from a value within said write address register using said ALU, and storing a result in said read address register.
Claim 36
Dependent Claim 27 words
The method of claim 29, wherein said arithmetic logic unit comprises a one bit serial arithmetic logic unit such that said subtracting comprises subtracting using serial processing.
Claim 37
Dependent Claim 37 words
The method of claim 30, wherein said arithmetic logic unit further comprises a borrow out and a carry in, said method further comprising passing said borrow out to said carry in during said subtracting using serial processing.
Claim 38
Dependent Claim 33 words
The method of claim 28, wherein said programmable logic circuit further comprises a count register, said method further comprising storing a number of words of data to be copied in said count register.
Claim 39
Dependent Claim 36 words
The method of claim 32, further comprising incrementing the read register, incrementing the write register and decrementing the count register for each word of data copied of said number of words of data to be copied.
Claim 40
Dependent Claim 19 words
The method of claim 33, further comprising terminating said copying upon said count register holding a value of zero.
Claim 41
Independent Claim 126 words
A method for programming a programmable logic circuit comprising a plurality of programmable logic resources said method comprising the steps of: (a) receiving a compressed configuration; (b) decompressing said compressed configuration using a generalized data decompression technique to produce a decompressed configuration; and (c) programming said plurality of logic resources using said decompressed configuration, wherein said compressed configuration comprises a serial bit stream, said programmable logic circuit further comprising a parallel to serial converter including a parallel address output, a parallel data input and a serial data output for generating said serial bit stream, said parallel address ouptut and said parallel data input adapted to couple to a parallel organized memory, said method further including serializing said parallel data input to produce said serial bit stream.
Claim 42
Independent Claim 126 words
A method for programming a programmable logic circuit comprising a plurality of programmable logic resources said method comprising the steps of: (a) receiving a compressed configuration; (b) decompressing said compressed configuration using a generalized data decompression technique to produce a decompressed configuration; and (c) programming said plurality of logic resources using said decompressed configuration, wherein said compressed configuration comprises a serial bit stream, said programmable logic circuit further comprising a parallel to serial converter including a parallel address output, a parallel data input and a serial data output for generating said serial bit stream, said parallel address ouptut and said parallel data input adapted to couple to a parallel organized memory, said method further including serializing said parallel data input to produce said serial bit stream.
Claim 43
Dependent Claim 19 words
The method of claim 35, wherein said decompressing step (b) comprises decompressing said configuration using a Lempel-Ziv decompression technique.
Claim 44
Dependent Claim 23 words
The method of claim 35, further comprising incrementing an address of said parallel address output by shifting said address through serial incrementer logic.
Claim 45
Dependent Claim 33 words
The method of claim 37, further comprising simultaneously shifting said address and shifting a data value of said parallel data input such that serial data is output simultaneous with said address being incremented.
Claim 46
Independent Claim 72 words
A method for reducing the amount of configuration information needed to configure a programmable logic circuit comprising the steps of: (a) compressing a configuration for the programmable logic circuit using a generalized compression technique to produce a compressed configuration; and (b) transferring said compressed configuration to a configuration storage device that facilitates loading of the programmable logic circuit, wherein said compressing step (a) comprises compressing said configuration with a Lempel-Ziv compression technique.
Claim 47
Independent Claim 72 words
A method for reducing the amount of configuration information needed to configure a programmable logic circuit comprising the steps of: (a) compressing a configuration for the programmable logic circuit using a generalized compression technique to produce a compressed configuration; and (b) transferring said compressed configuration to a configuration storage device that facilitates loading of the programmable logic circuit, wherein said compressing step (a) comprises compressing said configuration with a Lempel-Ziv compression technique.

References Cited (Backward Citations)

US5440718A Cited
US5410671A Cited
US5336950A Cited
US5155484A Cited
US5329179A Cited
US5315178A Cited
US5563592A Cited
US5394031A Cited
US5563595A Cited
US5430687A Cited
US5572209A Cited
US5581198A Cited
US5608396A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-04-27 2001-10-27 2002-04-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-04-27 2005-10-27 2006-04-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-04-27 2009-10-27 2010-04-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag