FPGA DSP Block for Shared AI and Signal Processing Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current integrated circuit devices struggle to efficiently perform calculations for both machine learning and digital signal processing applications, as circuitry optimized for one domain is often not well-suited for the other, leading to suboptimal performance and resource utilization.

Innovation Solution

A digital signal processing (DSP) block is implemented on field-programmable gate arrays (FPGAs) that can perform multiply-accumulate operations with flexible precision and non-linear activation functions, allowing for efficient adaptation to emerging algorithms and balancing computational cost with available resources, enabling simultaneous AI and digital signal processing capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If circuitry is optimized for machine learning applications, then machine learning performance is improved, but digital signal processing capability deteriorates

Engineering Contradiction:
Improvemachine learning performanceVSAvoiddigital signal processing capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The DSP block is designed to perform both machine learning operations (multiply-accumulate for neural networks) and digital signal processing operations (filtering, transformation) using the same hardware resources. The block accepts different input data formats and operation types, switching between ML inference modes and DSP modes through configuration controls, thereby achieving multi-functionality without requiring separate dedicated circuitry for each application domain.

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

2Productivity

If circuitry is optimized for digital signal processing applications, then digital signal processing performance is improved, but machine learning performance deteriorates

Engineering Contradiction:
Improvedigital signal processing performanceVSAvoidmachine learning capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The same DSP block that excels at digital signal processing operations is configured to perform machine learning multiply-accumulate operations. The block maintains its high-performance DSP characteristics while incorporating flexibility to handle ML workloads through programmable operation modes and configurable data path widths, allowing it to adapt to emerging ML algorithms without sacrificing DSP performance.

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

3Ease of manufacture

If fixed precision circuitry is used, then manufacturing simplicity is improved, but adaptability to emerging algorithms deteriorates

Engineering Contradiction:
Improvecircuitry simplicityVSAvoidalgorithm flexibility
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The DSP block incorporates dynamic precision adjustment capabilities where the data path width and numerical precision can be reconfigured at runtime based on the specific algorithm requirements. The block can operate with different precision modes (e.g., 8-bit, 16-bit, 32-bit) and adjust its internal arithmetic units dynamically, allowing it to adapt to emerging algorithms with varying precision demands while maintaining a relatively simple fixed-precision hardware foundation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3835941A1FPGA specialist processing block for machine learning
Publication Date: 2021.06.16 ALTERA CORP
  • EP3835941A1 patent drawingFigure 1
  • EP3835941A1 patent drawingFigure 2
  • EP3835941A1 patent drawingFigure 3

AI summary

The present disclosure describes a digital signal processing (DSP) block that includes a plurality of columns of weight registers and a plurality of inputs configured to receive a first plurality of values and a second plurality of values. The first plurality of values is stored in the plurality of columns of weight registers after being received. Additionally, the DSP block includes a plurality of multipliers configured to simultaneously multiply each value of the first plurality of values by each value of the second plurality of values.