Run-Length Decompression Circuit With Substitute Value Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large configuration bitstreams for programmable logic devices (PLDs) pose a challenge as they require significant memory and increase device size and cost, while storing them off-chip can lead to prolonged boot times.

Innovation Solution

A method and circuit for compressing and decompressing data sets using a substitute value for single occurrences of a run value, allowing for efficient representation and storage of run-length encoded data, reducing the size of the configuration bitstream and improving boot times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If configuration bitstream is stored on-chip or within the same package, then boot time is reduced, but device footprint and cost increase due to large memory device requirements

Engineering Contradiction:
Improveboot timeVSAvoiddevice footprint
Core Design Contradiction:
Loss of timeVSArea of stationary object

Solution Approach 1:

The patent extracts the least frequently occurring values from the configuration data and stores them in a separate lookup table in decompression logic, while the main configuration bitstream is stored off-chip. This separation allows the majority of configuration data to be stored externally without increasing on-chip memory requirements, thus reducing device footprint while enabling fast boot through efficient decompression.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements a nested structure where a compressed configuration bitstream is stored off-chip, and a decompression engine with embedded lookup tables is nested within the FPGA fabric. The decompression engine expands the compressed data during boot, effectively nesting the decompression functionality within the configuration loading process to reduce both external storage requirements and boot time.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Area of stationary object

If configuration bitstream size is reduced through compression, then device footprint and cost are reduced, but boot time may increase due to longer loading time from external sources

Engineering Contradiction:
Improvedevice footprintVSAvoidboot time
Core Design Contradiction:
Area of stationary objectVSLoss of time

Solution Approach 1:

The patent applies preliminary compression to the configuration bitstream using run-length encoding and value substitution techniques before storage. Frequently occurring values are replaced with shorter codes, and least frequently occurring values are substituted with placeholder values that are later resolved using lookup tables. This preliminary processing reduces the overall bitstream size, allowing faster loading from external storage despite the added decompression step.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces lookup tables as an intermediary mechanism between the compressed configuration bitstream and the final configuration data. The lookup tables store mappings for substituted values and are integrated into the decompression logic, enabling fast resolution of compressed data during boot without requiring the entire uncompressed configuration to be loaded from external storage, thus reducing both footprint and boot time.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If run-length encoding is applied to compress configuration data, then bitstream size is reduced, but decompression complexity increases

Engineering Contradiction:
Improvebitstream sizeVSAvoiddecompression circuit complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the decompression process into distinct functional units: a compare circuit that identifies run-length encoded sequences, a lookup table unit that resolves substituted values, and an output generation unit that reconstructs the configuration data. This segmentation allows each unit to perform a specific function efficiently, reducing overall decompression complexity while maintaining effective compression ratios.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The decompression circuit is designed to be self-sufficient by integrating the lookup tables directly within the decompression logic fabric of the FPGA. The circuit automatically identifies run-length sequences and resolves substituted values without requiring external intervention or complex control logic, enabling efficient decompression with minimal additional circuitry beyond the standard FPGA fabric.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10305511B1Run length compression and decompression using an alternative value for single occurrences of a run value
Publication Date: 2019.05.28 XILINX INC
  • US10305511B1 patent drawing
  • US10305511B1 patent drawing
  • US10305511B1 patent drawing

AI summary

Decompressing a data set includes inputting data units to a decompression circuit and comparing each input data unit to a run value and to a substitute value. In response to the data unit being not equal to the run value or the substitute value, the decompression circuit outputs the value of the input data unit; in response to the input data unit having the run value and a succeeding data unit having a value N not equal to zero or one, the decompression circuit outputs multiple data units having the run value based on the value N; in response to input data unit having the substitute value, the decompression circuit outputs one data unit having the run value; and in response to one input data unit having the run value and a succeeding data unit equal to zero or one, the decompression circuit outputs one data unit of the substitute value.