IP Library Granted Patent US 8,058,898
Granted Patent B1
US 8,058,898 · App. 13/034,174 · Granted Nov 15, 2011

Compression and decompression of configuration data using repeated data frames

Assignee: Lattice Semiconductor Corporation
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 8,058,898
App. No.
13/034,174
Granted
Nov 15, 2011
Kind
B1
Abstract

In one embodiment, a method of converting an uncompressed bitstream into a compressed bitstream for a programmable logic device (PLD) is disclosed. The method includes embedding a first data frame from the uncompressed bitstream into the compressed bitstream, wherein the first data frame comprises a first data set; embedding a first instruction into the compressed bitstream to load the first data frame into a first row of configuration memory of the PLD at an address associated with the first data frame; identifying a second data frame in the uncompressed bitstream, wherein the second data frame comprises the first data set; and embedding a second instruction into the compressed bitstream to load the first data frame into a second row of the configuration memory at an address associated with the second data frame.

Claims (55)

1. A method of converting an uncompressed bitstream into a compressed bitstream for a programmable logic device (PLD), the method comprising:

embedding a first data frame from the uncompressed bitstream into the compressed bitstream;

embedding a first instruction into the compressed bitstream to load the first data frame into a data shift register;

embedding a second instruction into the compressed bitstream to load a first address associated with the first data frame into an address shift register; and

embedding a third instruction into the compressed bitstream to load a second address associated with a second data frame into the address shift register, wherein the second data frame is an instance of the first data frame.

2. The method of claim 1 including passing the compressed bitstream to the PLD.

3. The method of claim 1 including:

embedding a third data frame into the compressed bitstream, wherein the third data frame is not an instance of the first data frame;

embedding a fourth instruction into the compressed bitstream to load the third data frame into the data shift register; and

embedding a fifth instruction into the compressed bitstream to load a third address associated with the third data frame into the address shift register.

4. The method of claim 3 including:

embedding a sixth instruction into the compressed bitstream to load a fourth address associated with a fourth data frame into the address shift register, wherein the fourth data frame is an instance of the third data frame.

5. A non-transitory computer-readable medium on which is stored a computer program that performs a method of converting an uncompressed bitstream into a compressed bitstream for a programmable logic device (PLD), the method comprising:

embedding a first data frame from the uncompressed bitstream into the compressed bitstream;

embedding a first instruction into the compressed bitstream to load the first data frame into a data shift register;

embedding a second instruction into the compressed bitstream to load a first address associated with the first data frame into an address shift register; and

embedding a third instruction into the compressed bitstream to load a second address associated with a second data frame into the address shift register, wherein the second data frame is an instance of the first data frame.

6. A method of configuring a programmable logic device (PLD) with a compressed bitstream, the method comprising:

reading a first data frame embedded in the compressed bitstream;

executing a first instruction embedded in the compressed bitstream to load the first data frame into a data shift register;

executing a second instruction embedded in the compressed bitstream to load a first address associated with the first data frame into an address shift register; and

executing a third instruction embedded in the compressed bitstream to load a second address associated with a second data frame into the address shift register, wherein the second data frame is an instance of the first data frame.

7. The method of claim 6 including:

reading a third data frame embedded in the compressed bitstream, wherein the third data frame is not an instance of the first data frame;

executing a fourth instruction embedded in the compressed bitstream to load the third data frame into the data shift register; and

executing a fifth instruction embedded in the compressed bitstream to load a third address associated with the third data frame into the address shift register.

8. The method of claim 7 including:

executing a sixth instruction embedded in the compressed bitstream to load a fourth address associated with a fourth data frame into the address shift register, wherein the fourth data frame is an instance of the third data frame.

9. The method of claim 6 including receiving the compressed bitstream at a data port of the PLD from a computing device external to the PLD.

10. The method of claim 6 including receiving the compressed bitstream at a data port of the PLD from a memory external to the PLD.

11. A programmable logic device (PLD) comprising:

configuration memory; and

a configuration download engine adapted to:

read a first data frame embedded in a compressed bitstream received by the PLD;

execute a first instruction embedded in the compressed bitstream to load the first data frame into a data shift register;

execute a second instruction embedded in the compressed bitstream to load a first address associated with the first data frame into an address shift register; and

execute a third instruction embedded in the compressed bitstream to load a second address associated with a second data frame into the address shift register, wherein the second data frame is an instance of the first data frame.

12. The PLD of claim 11 , wherein the configuration download engine is further adapted to:

read a third data frame embedded in the compressed bitstream, wherein the third data frame is not an instance of the first data frame;

execute a fourth instruction embedded in the compressed bitstream to load the third data frame into the data shift register; and

execute a fifth instruction embedded in the compressed bitstream to load a third address associated with the third data frame into the address shift register.

13. The PLD of claim 12 , wherein the configuration download engine is further adapted to:

execute a sixth instruction embedded in the compressed bitstream to load a fourth address associated with a fourth data frame into the address shift register, wherein the fourth data frame is an instance of the third data frame.

14. A compressed configuration bitstream for a programmable logic device (PLD) comprising:

a first data frame;

a first embedded instruction to load the first data frame into a data shift register;

a second embedded instruction to load a first address associated with the first data frame into an address shift register; and

a third embedded instruction to load a second address associated with a second data frame into the address shift register, wherein the second data frame is an instance of the first data frame.

15. The compressed configuration bitstream of claim 14 including:

a third data frame, wherein is not an instance of the first data frame; and

a third instruction to load the third data frame into a third row of the configuration memory at an address associated with the third data frame

a fourth embedded instruction to load the third data frame into the data shift register; and

a fifth embedded instruction to load a third address associated with the third data frame into the address shift register.

16. The compressed configuration bitstream of claim 15 including:

a sixth embedded instruction to load a fourth address associated with a fourth data frame into the address shift register, wherein the fourth data frame is an instance of the third data frame.

Assignments (4)
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 May 21, 2019
From: LATTICE SEMICONDUCTOR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 049980/0786 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2011
From: CHENG, CHAN-CHI JASON; KOW, SAN-TA; WU, ANN
To: LATTICE SEMICONDUCTOR CORPORATION
Reel/Frame 025859/0184 →
Continuity (1)
Continuation 11941031 · Nov 15, 2007