LUT Optimization for FPGA Compiler Design

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hardware description languages (HDLs) require extensive code for digital logic circuits, leading to time-consuming design processes and increased error likelihood, especially for software engineers unfamiliar with HDLs, resulting in poor performance and errors in electronic circuits.

Innovation Solution

Optimizing look-up tables (LUTs) on synchronous digital circuits by merging computational operations and identifying invariant inputs, allowing for iterative optimizations and reducing the number of pipeline stages, registers, and clock cycles, using a compiler that parses source code into an abstract syntax tree and intermediate representation to merge LUTs and apply bitwise analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If HDLs are used to model digital logic circuits, then the design can be created, but the number of lines of code increases significantly making the design process time-consuming and error-prone

Engineering Contradiction:
Improvedesign error rateVSAvoidnumber of code lines
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges multiple computational operations into single LUTs by combining their truth tables. For example, if LUT1 implements operation f(a,b) and LUT2 implements operation g(c,d), the merged LUT implements a combined operation that processes multiple inputs simultaneously, reducing the total number of LUTs and corresponding HDL code lines required to implement the circuit.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates universal LUTs that can implement multiple different operations by combining truth tables from different computational operations. A single LUT can serve multiple functional purposes, replacing what would traditionally require multiple separate LUTs and their associated HDL code, thereby reducing complexity and error potential.

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

2Productivity

If more LUTs are used to implement computational operations, then the circuit functionality is complete, but the hardware area and number of pipeline stages increase

Engineering Contradiction:
Improvecircuit performanceVSAvoidhardware area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent combines truth tables from multiple LUTs into a single merged LUT that implements the functionality of all original LUTs. This merging process reduces the total number of LUTs required, thereby reducing the hardware area occupied by LUTs and the number of pipeline stages needed to implement the same computational operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent changes the parameter configuration of LUTs by combining their truth tables to create LUTs with different input-output relationships. The merged LUT has a truth table that represents the combination of multiple operations, allowing it to process multiple inputs and produce outputs that would traditionally require multiple separate LUTs, thus reducing hardware area while maintaining functionality.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If traditional HDL programming paradigm is used, then hardware circuits can be designed, but software engineers unfamiliar with HDLs find it difficult to utilize

Engineering Contradiction:
Improveease of useVSAvoidprogramming paradigm familiarity
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent introduces a compiler as an intermediary that translates a software-friendly programming paradigm into HDL code that targets synchronous digital circuits. The compiler parses source code into an abstract syntax tree, converts it to an intermediate representation, and generates optimized HDL code, thereby bridging the gap between software engineering practices and hardware description languages.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the manual HDL coding process with an automated compilation process. Instead of requiring software engineers to manually write HDL code, the system uses a compiler that automatically generates optimized HDL code from high-level source code, substituting the mechanical process of manual HDL programming with an automated software-based solution.

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

Data Source

PatentUS11106437B2Lookup table optimization for programming languages that target synchronous digital circuits
Publication Date: 2021.08.31 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11106437B2 patent drawing
  • US11106437B2 patent drawing
  • US11106437B2 patent drawing

AI summary

A programming language and a compiler are disclosed that optimize the use of look-up tables (LUTs) on a synchronous digital circuit (SDC) such as a field programmable gate array (FPGA) that has been programmed. LUTs are optimized by merging multiple computational operations into the same LUT. A compiler parses source code into an intermediate representation (IR). Each node of the IR that represents an operator (e.g. ‘&’, ‘+’) is mapped to a LUT that implements that operator. The compiler iteratively traverses the IR, merging adjacent LUTs into a LUT that performs both operations and performing input removal optimizations. Additional operators may be merged into a merged LUT until all the LUT's inputs are assigned. Pipeline stages are then generated based on merged LUTs, and an SDC is programmed based on the pipeline and the merged LUT.