Compiler Placement of Arithmetic Operators in Programmable Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-level language compilers for programmable logic devices are limited in placing arithmetic operators, typically using only one type (either in DSP blocks or logic fabric) due to differing routing delays, which complicates achieving optimal performance and area efficiency.

Innovation Solution

The compiler determines the placement of arithmetic operators in both DSP blocks and logic fabric regions, optimizing the data flow graph by scoring and iteratively adjusting placements to minimize routing delays and area consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the compiler uses only one type of arithmetic operator (either in DSP blocks or logic fabric), then routing delay consistency is maintained, but resource utilization efficiency and area optimization are limited

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidplacement complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic placement strategies where the compiler can adaptively choose between DSP blocks and logic fabric based on operational requirements. The system dynamically adjusts operator placement during compilation rather than being statically constrained to one type, enabling optimal resource utilization while managing complexity through structured decision-making frameworks.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local quality by allowing different regions of the programmable device to have different operator types based on specific functional requirements. DSP blocks are used in regions requiring high-performance arithmetic operations, while logic fabric is used in regions requiring flexibility or lower performance, optimizing overall device utilization without requiring uniformity across the entire device.

Inventive Principle:
Principle #3Local quality

2Area of stationary object

If the compiler places arithmetic operators in both DSP blocks and logic fabric, then area efficiency and resource optimization improve, but routing delay variations increase

Engineering Contradiction:
Improvearea efficiencyVSAvoidtiming consistency
Core Design Contradiction:
Area of stationary objectVSReliability

Solution Approach 1:

The patent incorporates feedback mechanisms where the compiler evaluates routing delays and performance metrics after initial placement, then iteratively adjusts operator positions. The system uses delay measurements and timing analysis to feedback into the placement algorithm, refining positions to balance area efficiency with timing consistency, ensuring that operators in both DSP blocks and logic fabric are optimally positioned.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary routing delay analysis and placement optimization during the compilation phase before actual device operation. By pre-calculating and pre-positioning operators to account for routing delay variations, the system proactively addresses timing consistency issues rather than reacting to them during runtime, enabling mixed placement while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

3Speed

If the compiler optimizes for minimal routing delays, then performance improves, but area consumption increases

Engineering Contradiction:
Improveoperational performanceVSAvoidarea consumption
Core Design Contradiction:
SpeedVSArea of stationary object

Solution Approach 1:

The patent applies partial optimization by focusing routing delay minimization only on critical paths rather than all operator placements. The compiler identifies performance-critical arithmetic operators and optimizes their placement for minimal routing delays, while allowing non-critical operators to be placed more densely in available areas, thus achieving performance improvement without proportionally increasing overall area consumption.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9043739B1Placement based arithmetic operator selection
Publication Date: 2015.05.26 ALTERA CORP
  • US9043739B1 patent drawing
  • US9043739B1 patent drawing
  • US9043739B1 patent drawing

AI summary

Methods and systems are described for placing arithmetic operators on a programmable integrated circuit device (e.g., a PLD). Placement of arithmetic operators of a data flow graph in one of multiple regions (e.g., a region of DSP circuitry blocks or a region of logic fabric circuitry) on the programmable integrated circuitry device may be determined (e.g., randomly). A score related to the performance of the graph (e.g., a score related to data flow graph routing delays or area consumed by the data flow graph) may be determined and this process may be repeated after one of the arithmetic operators of the data flow graph is moved. The placement of arithmetic operators that corresponds to the best value for the score related to the performance of the data flow graph may be stored. Accordingly, more arithmetic operators may be included on a programmable integrated device than in conventional devices.