Graphical Program Hardware Configuration via Descriptive Directives

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphical programming for hardware implementation is complex, error-prone, and requires maintaining multiple versions of designs for different performance and resource utilization requirements, with existing tools being difficult to use for users unfamiliar with hardware specifics and requiring manual optimization of memory resources.

Innovation Solution

A system and method for specifying and managing hardware implementations of graphical programs by storing descriptive directives associated with the program, allowing users to select optimization levels and memory implementation options through a graphical user interface, enabling synthesis tools to generate hardware configuration programs for programmable hardware elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the graphical program is redesigned to achieve fast throughput (1 cycle/sample), then performance is improved, but hardware resource utilization increases

Engineering Contradiction:
ImprovethroughputVSAvoidhardware resource utilization
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system dynamically adjusts hardware resource allocation based on performance requirements. Users can select different optimization levels that automatically configure the appropriate amount of hardware resources, allowing the system to adapt between throughput-optimized and resource-efficient modes without manual redesign

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes key parameters such as initiation interval and unrolling factor to achieve different performance levels. By modifying these parameters, the system can achieve 1 cycle/sample throughput without permanently increasing hardware resource utilization, as the changes are applied through configuration rather than structural redesign

Inventive Principle:
Principle #35Parameter changes

2Speed

If more registers are inserted to execute at 160 MHz, then performance is improved, but hardware resource utilization increases

Engineering Contradiction:
Improveexecution frequencyVSAvoidhardware resource utilization
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system performs preliminary analysis of the graphical program to identify optimal register placement and timing. By pre-calculating the necessary registers and their positions, the system achieves 160 MHz execution frequency without excessive resource utilization, as the register insertion is optimized rather than arbitrary

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention replaces manual mechanical redesign of graphical programs with an automated synthesis system. The synthesis tool automatically inserts registers and configures timing based on performance requirements, eliminating the need for users to manually add registers and maintain multiple design versions

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

3Manufacturing precision

If users manually specify hardware implementation details, then performance optimization is improved, but ease of operation deteriorates

Engineering Contradiction:
Improveperformance optimizationVSAvoiduser operation complexity
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The system introduces an intermediary synthesis tool that translates high-level graphical programs into optimized hardware implementations. This intermediary automatically handles the complex task of specifying hardware details, allowing users to focus on algorithm development while the tool handles performance optimization and resource management

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The synthesis system performs self-service by automatically analyzing the graphical program and generating optimized hardware configurations without user intervention. The tool autonomously determines optimal initiation intervals, unrolling factors, and resource allocation, eliminating the need for users to manually specify hardware implementation details

Inventive Principle:
Principle #25Self-service

4Adaptability or versatility

If multiple versions of graphical programs are maintained for different requirements, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improvedesign configuration flexibilityVSAvoiddesign maintenance complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system creates a universal synthesis platform that can generate multiple hardware configurations from a single graphical program. Instead of maintaining separate program versions, the universal tool handles different performance requirements by applying different synthesis parameters, making the system adaptable to various needs without increasing design maintenance complexity

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

Solution Approach 2:

The invention segments the design process into two independent parts: the high-level graphical program (which remains unchanged) and the hardware synthesis parameters (which are adjusted for different requirements). This segmentation allows the system to maintain adaptability across different performance levels while keeping the core program design simple and easy to maintain

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8656345B2Managing hardware implementation and deployment of a graphical program
Publication Date: 2014.02.18 NATIONAL INSTRUMENTS CORP
  • US8656345B2 patent drawing
  • US8656345B2 patent drawing
  • US8656345B2 patent drawing

AI summary

System and method for managing and specifying hardware implementation of a graphical program. A graphical program that implements an algorithm is stored in a memory of a computer system. The graphical program meets one or more first specified implementation requirements and is targeted for deployment to a programmable hardware element. A plurality of sets of descriptive directives are also stored in the memory, where the descriptive directives are associated with the graphical program and specify one or more additional specified implementation requirements, e.g., memory resource implementations, optimization directives, and so forth, where the additional directives result from programmatic and/or user-specification. Each set of descriptive directives is useable by a synthesis tool to generate a respective hardware configuration program for deployment to the graphical programmable hardware element.