Heterogeneous Hardware Core Instantiation via HLL Interface Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for instantiating hardware accelerators in integrated circuits (ICs) struggle with complexities arising from multiple instances with different configurations, particularly when handling multi-function accelerators.

Innovation Solution

A method and system that detect references to a high-level language (HLL) library within an application, determine multiple instances of a core by analyzing function calls, and generate interface code for each instance, allowing for the creation of an executable version that binds interface code to the respective core instances.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple instances of hardware accelerators with different configurations are implemented, then the functionality and versatility of the system is improved, but the device complexity and difficulty of management increases

Engineering Contradiction:
ImprovefunctionalityVSAvoidcomplexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal interface code generation system that can handle multiple instances of hardware accelerators with different configurations through a single standardized process. The system generates interface code that automatically adapts to different core configurations, allowing one unified mechanism to manage diverse accelerator instances, thereby improving versatility without proportionally increasing complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system manages complexity by parameterizing the interface code generation process. Instead of creating entirely separate interface code for each configuration, the system uses parameter changes to adapt a single interface code template to different core configurations. This allows multiple instances with different parameters to be managed through a unified approach, reducing the overall system complexity

Inventive Principle:
Principle #35Parameter changes

2Manufacturing precision

If interface code is generated for each core instance, then the binding accuracy and resource management is improved, but the manufacturing time and processing complexity increases

Engineering Contradiction:
Improvebinding accuracyVSAvoidprocessing time
Core Design Contradiction:
Manufacturing precisionVSEase of manufacture

Solution Approach 1:

The patent applies preliminary action by generating interface code for all core instances during the compilation phase before execution. The system analyzes the HLL application, identifies all core references, and pre-generates the appropriate interface code bindings. This upfront preparation ensures accurate binding without adding complexity during runtime, as all interface generation is completed in advance

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system segments the interface code generation process into distinct phases: detecting HLL library references, identifying function calls correlated to each core instance, and generating interface code for each instance separately. This segmentation allows the complex task of managing multiple core bindings to be broken into manageable steps, improving both accuracy and efficiency

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10762265B1Heterogeneous instantiation of high-level language callable library for hardware core
Publication Date: 2020.09.01 XILINX INC
  • US10762265B1 patent drawing
  • US10762265B1 patent drawing
  • US10762265B1 patent drawing

AI summary

Using a high-level language (HLL) callable library for multiple instances of a core includes detecting, using computer hardware, a reference to an HLL library for a core within an HLL application, determining, using the computer hardware, a plurality of instances of the core by detecting function calls within the HLL application correlated to each of the plurality of instances of the core, and generating, using the computer hardware, interface code within the HLL application for each of the plurality of instances of the core using the HLL library. An executable version of the HLL application is generated, using the computer hardware, wherein the interface code for each of the plurality of instances of the core is bound to the respective instance of the core. The function calls can specify different parameterization files corresponding to the plurality of instances of the core.