High-Level Synthesis Tool Segmentation for RTL Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-level synthesis tools face challenges in generating register-transfer level (RTL) code for hardware accelerators, particularly with complex and data-dependent arithmetic coding, leading to failures and excessive debugging/testing in hardware accelerator designs.

Innovation Solution

A method involving a high-level synthesis (HLS) tool that isolates and synthesizes a portion of source code, generates an RTL description, defines a library component based on this description, and replaces the original source code with the library component to facilitate efficient RTL generation, thereby reducing debugging and testing efforts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If high-level synthesis tools are used to generate RTL code for hardware accelerators, then testing and changing RTL hardware becomes efficient, but synthesis failures occur due to complex arithmetic coding

Engineering Contradiction:
ImproveRTL generation efficiencyVSAvoidsynthesis success rate
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent segments the source code into multiple modules, synthesizing each module separately into RTL code. This modular approach isolates synthesis failures to specific modules rather than the entire system, making debugging more efficient and improving overall synthesis reliability while maintaining the benefits of high-level synthesis.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If high-level synthesis is used for complex arithmetic coding, then debugging and testing becomes easier, but excessive debugging and testing is required due to synthesis failures

Engineering Contradiction:
Improvedebugging easeVSAvoiddebugging time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

By dividing the system into synthesizable modules, the patent enables targeted debugging of only the problematic modules rather than the entire system. This reduces the time and effort required for debugging while preserving the ease of operation benefits provided by high-level synthesis.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary synthesis of individual modules before integrating them into the complete system. This preliminary action identifies and resolves synthesis issues early in the design process, preventing cascading failures that would require extensive debugging later.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If arithmetic coding is implemented in RTL, then hardware accelerator functionality is achieved, but the non-linear and data-dependent nature of the algorithm causes synthesis failures

Engineering Contradiction:
Improvealgorithm implementationVSAvoidsynthesis complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by breaking down the complex arithmetic coding algorithm into smaller, more manageable functional modules that can be synthesized independently. This reduces the immediate synthesis complexity while maintaining the algorithm's adaptability and versatility through modular reconfiguration.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9075945B1Method for implementing efficient entropy decoder by using high level synthesis
Publication Date: 2015.07.07 GOOGLE LLC
  • US9075945B1 patent drawing
  • US9075945B1 patent drawing
  • US9075945B1 patent drawing

AI summary

A non-transitory computer-readable storage medium having stored thereon computer executable program code which, when executed on a computer system, causes the computer system to perform steps is disclosed. The steps include receiving a portion of a source code including a first program model defining an element of an integrated circuit, generating a first register-transfer level (RTL) description based on the portion of the source code, defining a library component based on the first RTL description, receiving the source code including a second program model defining the integrated circuit, replacing the portion of the source code corresponding to the first program model with the library component, and generating a second RTL description based on the source code.