IP Library Granted Patent US 7,808,405
Granted Patent B1
US 7,808,405 · App. 12/413,787 · Granted Oct 5, 2010

Efficient bitstream compression

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,808,405
App. No.
12/413,787
Granted
Oct 5, 2010
Kind
B1
Abstract

In one embodiment of the invention, a method of generating a compressed configuration bitstream for a programmable logic device comprises encoding the most-prevalent data word within the configuration data of the bitstream into a codeword of a first type; encoding a set of more-prevalent data words within the configuration data into codewords of a second type; and including in the compressed bitstream at least some of the data words that are members of the set of more-prevalent data words. The included data words, when received by the programmable logic device, are adapted to be identified by the device as members of the set of more-prevalent data words. The included data words are stored for selection by the device when a codeword of the second type representing an included data word is received by the device.

Claims (36)

1. A method of generating a compressed configuration bitstream for a programmable logic device, comprising:

encoding the most-prevalent data word within the configuration data of the bitstream into a codeword of a first type;

encoding a set of more-prevalent data words within the configuration data into codewords of a second type having a fixed length, wherein such codewords have fewer bits than the data words they represent; and

including in the compressed bitstream at least some of the data words that are members of the set of more-prevalent data words,

wherein the included data words, when received by the programmable logic device, are adapted to be identified by the device as members of the set of more-prevalent data words and stored for selection by the device when a codeword of the second type representing an included data word is received by the device.

2. The method of claim 1 , wherein the most-prevalent data word is the null data word.

3. The method of claim 1 , wherein the first type of codeword is a single-bit codeword.

4. The method of claim 1 , wherein the set of more-prevalent data words is no more than sixteen data words.

5. The method of claim 1 , wherein the set of more-prevalent data words includes the data words with a single “1” bit therein.

6. The method of claim 1 , wherein the second type of codeword includes a flag identifying the codeword type and a code identifying an associated data word within the set of more-prevalent data words.

7. The method of claim 1 , wherein including data words that are members of the set of more-prevalent data words comprises inserting the data words at a location in the bitstream reserved for identifying such data words.

8. The method of claim 1 including encoding a set of less-prevalent data words within the configuration data into codewords of a third type.

9. The method of claim 8 , wherein the third type of codeword includes a flag identifying the codeword type and a body containing a data word within the set of less-prevalent data words.

10. A computer-readable medium on which is stored a computer program for generating a compressed configuration bitstream for a programmable logic device, the steps of the program comprising:

encoding the most-prevalent data word within the configuration data of the bitstream into a codeword of a first type;

encoding a set of more-prevalent data words within the configuration data into codewords of a second type having a fixed length, wherein such codewords have fewer bits than the data words they represent; and

including in the compressed bitstream at least some of the data words that are members of the set of more-prevalent data words,

wherein the included data words, when received by the programmable logic device, are adapted to be identified by the device as members of the set of more-prevalent data words and stored for selection by the device when a codeword of the second type representing an included data word is received by the device.

11. A configuration bitstream containing configuration data encoded therein, the bitstream including:

at least some of data words that are members of a set of more-prevalent data words;

a first type of codeword that encodes the most-prevalent data word in the configuration data;

a second type of codeword having a fixed length that encodes the set of more-prevalent data words in the configuration data, wherein such codewords have fewer bits than the data words they represent,

wherein the included data words, when received by the programmable logic device, are adapted to be identified by the device as members of the set of more-prevalent data words and stored for selection by the device when a codeword of the second type representing an included data word is received by the device.

12. The configuration bitstream of claim 11 , wherein the configuration bitstream includes:

an ID frame containing the data words that are members of the set of more-prevalent data words; and

one or more data frames following the ID frame and containing codewords of the first and second types.

13. The configuration bitstream of claim 12 , wherein the ID frame contains a flag identifying whether the following data frames are compressed.

14. A method of decompressing a configuration bitstream within a programmable logic device, the method comprising:

receiving a configuration bitstream in the programmable logic device;

storing in the device data words included in the configuration bitstream that are members of a set of more-prevalent data words in the configuration data;

decoding a codeword of a first type into the most-prevalent data word in the configuration data;

decoding codewords of a second type having a fixed length into data words that are members of the set of more-prevalent data words, wherein such codewords have fewer bits than the data words they represent; and

retrieving, in response to decoding a codeword of the second type, a stored data word included in the configuration bitstream.

15. The method of claim 14 , wherein the configuration bitstream includes:

an ID frame containing the data words that are members of the set of more-prevalent data words; and

one or more data frames following the ID frame and containing codewords of the first and second types.

Assignments (3)
SECURITY INTEREST Recorded May 21, 2019
From: LATTICE SEMICONDUCTOR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 049980/0786 →
RELEASE OF SECURITY INTEREST Recorded May 21, 2019
From: JEFFERIES FINANCE LLC
To: LATTICE SEMICONDUCTOR CORPORATION; SILICON IMAGE, INC.; SIBEAM, INC.; DVDO, INC.
Reel/Frame 049827/0326 →
SECURITY INTEREST Recorded Mar 24, 2015
From: LATTICE SEMICONDUCTOR CORPORATION; SIBEAM, INC; SILICON IMAGE, INC.; DVDO, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 035308/0345 →