FPGA Configuration Bitstream Compression With Simple Codeword Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing compression schemes for configuration bitstreams in programmable logic devices, such as LZW and Huffman encoding, are complex and resource-intensive, leading to increased costs and die space usage in SRAM-based FPGAs.
Innovation Solution
A method that encodes prevalent data words into specific codewords, allowing for efficient compression by representing null data words with a single-bit codeword, more-prevalent data words with a six-bit codeword, and less-prevalent data words with a ten-bit codeword, without requiring complex configuration logic or external components.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If LZW compression algorithm is used to compress configuration bitstream, then compression ratio is improved, but device complexity and die space increase due to complex configuration logic required for decompression
Solution Approach 1:
The patent changes the parameter of codeword length distribution to optimize compression. Instead of using fixed-length codewords or complex adaptive algorithms, it uses a specific distribution where 0x00 is represented by 1 bit, 0x01-0x0F by 6 bits, and 0x10-0xFF by 10 bits. This parameter change achieves good compression ratio while keeping the decoding logic simple and deterministic.
Solution Approach 2:
The patent applies local quality by treating different data words with different codeword lengths based on their frequency of occurrence in configuration data. The most frequent byte value (0x00) gets the shortest codeword (1 bit), while less frequent values get longer codewords. This localized optimization at the data word level achieves overall compression without requiring complex global algorithms.
2Loss of substance
If Huffman encoding is used to compress configuration bitstream, then compression ratio is improved, but device complexity and cost increase due to external decoders and associated memories
Solution Approach 1:
The patent extracts the decoding complexity from external components and integrates it into simple internal logic. By using a predetermined codeword distribution that is hardwired into the device, it eliminates the need for external Huffman decoders and associated memories, achieving compression without external complexity.
Solution Approach 2:
The device performs decompression using its own internal logic without requiring external decoder components. The predetermined codeword distribution is built into the device's configuration logic, allowing it to self-decompress the bitstream using simple internal circuits rather than external hardware.
3Loss of substance
If conventional compression schemes are used, then compression ratio is improved, but manufacturing cost increases due to increased die space
Solution Approach 1:
The patent changes the parameter of codeword allocation to optimize the balance between compression ratio and die space. By assigning 1 bit to the most frequent byte (0x00), 6 bits to intermediate frequencies (0x01-0x0F), and 10 bits to least frequent (0x10-0xFF), it achieves effective compression while minimizing the logic required for decoding, thus reducing die space and manufacturing cost.
Data Source
AI summary
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.


