Heterogeneous FPGA Compiler Flow for LUT-AIC Logic Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Heterogeneous field-programmable gate arrays (FPGAs) face inefficiencies in resource utilization due to suboptimal mapping of combinational logic to available logic elements, leading to excessive die-area consumption, lower maximum clock frequency, and increased wire length.

Innovation Solution

A compiler flow that supports heterogeneous FPGA architectures by optimizing the use of lookup tables (LUTs) and AND-inverter cones (AICs), allowing for more area-efficient implementation of logic elements, improved wire usage, and enhanced timing closure through iterative technology mapping and placement algorithms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If combinational logic is mapped to heterogeneous logic elements (LUTs and AICs) without optimization, then logic implementation is achieved, but resource utilization is inefficient and die-area is excessive

Engineering Contradiction:
Improvelogic implementationVSAvoiddie-area
Core Design Contradiction:
Ease of manufactureVSArea of stationary object

Solution Approach 1:

The patent applies parameter changes by modifying the technology mapping process to consider multiple parameters simultaneously: logic element type (LUT vs AIC), resource availability, area constraints, and timing requirements. The compiler flow dynamically adjusts mapping decisions based on these parameters to achieve optimal resource utilization and minimize die-area while maintaining correct logic implementation.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If combinational logic is mapped to heterogeneous logic elements without optimization, then logic implementation is achieved, but maximum clock frequency is reduced

Engineering Contradiction:
Improvelogic implementationVSAvoidmaximum clock frequency
Core Design Contradiction:
Ease of manufactureVSSpeed

Solution Approach 1:

The patent incorporates timing parameters into the technology mapping process, evaluating the impact of mapping decisions on maximum clock frequency. The compiler flow adjusts the mapping strategy based on timing constraints, selecting logic element types and configurations that optimize signal propagation delay and achieve higher clock frequencies while still implementing the required logic functionality.

Inventive Principle:
Principle #35Parameter changes

3Ease of manufacture

If combinational logic is mapped to heterogeneous logic elements without optimization, then logic implementation is achieved, but wire length increases

Engineering Contradiction:
Improvelogic implementationVSAvoidwire length
Core Design Contradiction:
Ease of manufactureVSLength of stationary object

Solution Approach 1:

The patent applies local quality by making mapping decisions that are locally optimized for each region of the FPGA based on the specific logic requirements, available resources, and spatial relationships. The compiler flow considers the local distribution of LUTs and AICs and maps combinational logic to nearby appropriate logic elements, minimizing local wire length and improving signal routing efficiency.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20240184966A1FPGA Compiler Flow for Heterogeneous Programmable Logic Elements
Publication Date: 2024.06.06 ALTERA CORP
  • US20240184966A1 patent drawing
  • US20240184966A1 patent drawing
  • US20240184966A1 patent drawing

AI summary

Embodiments herein are directed to systems and techniques for supporting heterogeneous logic architecture in programmable devices, such as field-programmable gate arrays (FPGAs). heterogeneous logic architectures may include additional logic elements (e.g., AND-inverter cones (AICs)) in addition to lookup tables (LUTs). Accordingly, it may be desirable to provide a compiler flow that supports heterogeneous FPGA architecture, taking advantage of a combination of LUTs and other logic elements (e.g., AICs) to improve resource utilization (e.g., die area, wire length) and improve maximum clock frequency and compile time.