High-Level Synthesis for Systolic Array Generation on FPGAs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Designing systolic arrays on target devices like FPGAs is challenging due to the need for extensive knowledge in both algorithmic and hardware aspects, and the difficulty in tuning performance using hardware description languages, which is time-consuming and requires expertise.

Innovation Solution

A method and apparatus for generating systolic arrays using a high-level synthesis language, such as OpenCL, that allows users to input information about the array, generating descriptions of processing elements, channels, data transmitters, and receivers, and performing optimizations like external channel fan-out minimization, data buffering, and latency reduction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If hardware description language is used to design systolic arrays, then implementation precision is improved, but design complexity and time consumption increase

Engineering Contradiction:
Improveimplementation precisionVSAvoiddesign complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary tool that translates high-level algorithmic descriptions into hardware description language. This intermediary automatically generates the complex HDL code needed for precise FPGA implementation, eliminating the need for designers to manually write complex HDL while maintaining implementation precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the manual mechanical process of writing and tuning HDL code with an automated computational system. The tool automatically generates and optimizes HDL code from high-level specifications, substituting the time-consuming manual HDL development process with automated code generation.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If hardware description language is used to tune performance, then performance optimization is improved, but time consumption increases

Engineering Contradiction:
Improveperformance optimizationVSAvoidtime consumption
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary optimization actions by automatically analyzing the algorithmic description and pre-optimizing the generated HDL code before implementation. The tool incorporates optimization strategies during the code generation phase, eliminating the need for time-consuming iterative manual tuning.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables the design system to self-optimize by automatically analyzing performance requirements and generating optimized HDL code without human intervention. The tool performs self-service optimization by selecting appropriate optimization strategies and applying them automatically during code generation.

Inventive Principle:
Principle #25Self-service

3Manufacturing precision

If extensive knowledge in algorithm and hardware acceleration is required, then design quality is improved, but ease of operation deteriorates

Engineering Contradiction:
Improvedesign qualityVSAvoidease of operation
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The patent introduces an intermediary translation tool that bridges the gap between algorithmic descriptions and hardware implementation. This intermediary handles the complex knowledge requirements internally, allowing users with algorithmic expertise to design systolic arrays without needing deep hardware description language knowledge.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9626165B1Method and apparatus for generating systolic arrays on a target device using a high-level synthesis language
Publication Date: 2017.04.18 ALTERA CORP
  • US9626165B1 patent drawing
  • US9626165B1 patent drawing
  • US9626165B1 patent drawing

AI summary

A method for generating a description of a systolic array includes prompting a user to input information about the systolic array. A high-level synthesis language is generated that describes channels of processing elements of the systolic array and a topology of the processing elements in response to the information provided by the user.