Multithreading Programmable Logic Configuration Software

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current programmable logic device configuration software lacks the ability to recognize and utilize multithreading in user logic designs without affecting functionality, limiting the optimization of operating speed.

Innovation Solution

The method involves accepting user inputs to specify multithreading characteristics of user logic designs, determining configurations, and retiming them to maximize operating speed, using enhancements to hardware-description language statements and graphical user interfaces to indicate multithreaded modules, and employing entry and exit primitives to manage clocking.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If configuration software attempts multithreading in user logic designs, then operating speed can be optimized, but functionality may be altered

Engineering Contradiction:
Improveoperating speedVSAvoidfunctionality
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The configuration software performs preliminary analysis of the user logic design to identify cyclic logic paths before attempting multithreading. This preliminary action allows the software to determine which portions can be safely multithreaded without altering functionality, thereby optimizing speed while preserving reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The software applies multithreading locally only to specific portions of the user logic design that contain cyclic logic paths, rather than applying it universally. This localized approach allows optimization of speed in relevant sections while maintaining functionality in other sections that would be adversely affected.

Inventive Principle:
Principle #3Local quality

2Reliability

If configuration software does not attempt multithreading, then functionality is preserved, but operating speed cannot be optimized

Engineering Contradiction:
ImprovefunctionalityVSAvoidoperating speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The configuration software incorporates feedback mechanisms to analyze the user logic design and automatically identify cyclic logic paths that are suitable for multithreading. This feedback loop enables the software to optimize speed by applying multithreading where appropriate without compromising functionality.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The configuration software performs self-analysis to determine which portions of the user logic design can be multithreaded. By autonomously identifying suitable sections and applying multithreading accordingly, the software optimizes operating speed while preserving functionality without requiring manual intervention.

Inventive Principle:
Principle #25Self-service

3Device complexity

If manual logic layout is used, then device complexity is reduced, but it becomes impractical for current larger devices

Engineering Contradiction:
Improvelogic layout complexityVSAvoidconfiguration capability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent replaces manual mechanical logic layout with automated configuration software that uses hardware description language and graphical user interfaces. This substitution enables complex logic designs to be configured efficiently without manual intervention, making it feasible for current larger devices while reducing the complexity burden on users.

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

Data Source

PatentUS8645885B1Specification of multithreading in programmable device configuration
Publication Date: 2014.02.04 ALTERA CORP
  • US8645885B1 patent drawing
  • US8645885B1 patent drawing
  • US8645885B1 patent drawing

AI summary

A method of configuring a programmable integrated circuit device with a user logic design includes accepting a first user input defining the user logic design, accepting a second user input defining multithreading characteristics of at least a portion the user logic design, determining a configuration of the programmable integrated circuit device having the user logic design, multithreading the at least a portion of the configuration based on the second user input, and retiming the multithreaded configuration.