Source Code Area Annotation for FPGA Resource Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Designing systems for target devices like FPGAs and ASICs is challenging due to resource allocation inefficiencies, as existing EDA tools lack effective methods to identify and address bottlenecks before lengthy HDL compilation, leading to increased design time and potential resource insufficiencies.

Innovation Solution

A method and apparatus for source code area annotation that includes generating an area report with estimated or actual resource information, allowing designers to identify and modify the source code without waiting for HDL compilation, by annotating compiler intermediate representations with debug information and tracing resource usage back to the source code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If HDL compilation is performed to obtain accurate resource allocation information, then resource allocation accuracy is improved, but design time increases significantly

Engineering Contradiction:
Improveresource allocation accuracyVSAvoiddesign time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs high-level compilation and generates area estimates before HDL compilation to provide early resource allocation information. This preliminary action allows designers to review and modify source code based on estimated resource usage without waiting for the time-consuming HDL compilation process, thus reducing overall design time while maintaining reasonable resource allocation accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The compilation process is segmented into multiple stages: high-level compilation that generates area estimates, and HDL compilation that produces final resource allocation. Each stage serves a specific purpose - the first provides early feedback for design optimization, while the second delivers precise resource allocation. This segmentation allows designers to work iteratively without being blocked by the lengthy HDL compilation process.

Inventive Principle:
Principle #1Segmentation

2Productivity

If high-level compilation is performed without area information annotation, then compilation speed is improved, but resource bottleneck identification capability deteriorates

Engineering Contradiction:
Improvecompilation speedVSAvoidresource bottleneck identification
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces area information as an intermediary that bridges high-level compilation and resource bottleneck detection. Area information is generated during high-level compilation and annotated in the source code, serving as a mediator that enables resource bottleneck identification without requiring complete HDL compilation. This intermediary provides sufficient detail for designers to identify resource constraints while maintaining the speed advantages of high-level compilation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Area information is generated preliminarily during high-level compilation before HDL compilation occurs. This preliminary generation of area information enables designers to identify resource bottlenecks early in the design process without waiting for the time-consuming HDL compilation, thus maintaining compilation speed while improving resource bottleneck detection capability.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If source code is modified based on estimated area information, then design iteration speed is improved, but resource allocation accuracy may deteriorate

Engineering Contradiction:
Improvedesign iteration speedVSAvoidresource allocation accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The design process is segmented into iterative cycles using estimated area information from high-level compilation, followed by final verification through HDL compilation. Designers can perform multiple rapid iterations based on estimates, then conduct final accuracy verification with HDL compilation. This segmentation allows fast iteration while maintaining ultimate resource allocation accuracy through the final compilation stage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Estimated area information is generated preliminarily to enable rapid design iterations. While these estimates provide approximate resource allocation, they are sufficient for most design decisions and optimizations. The preliminary nature of this information allows designers to iterate quickly, with the understanding that final resource allocation accuracy will be confirmed through subsequent HDL compilation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10303831B1Method and apparatus for performing and utilizing source code area annotation
Publication Date: 2019.05.28 ALTERA CORP
  • US10303831B1 patent drawing
  • US10303831B1 patent drawing
  • US10303831B1 patent drawing

AI summary

A method for designing a system on a target device includes generating a scheduled netlist and a hardware description language (HDL) of the system from a computer language description of the system. An area report is generated prior to HDL compilation, based on estimates from the scheduled netlist, that identifies resources from the target device required to implement portions of the computer language description of the system.