Imperative Language Circuit Translator

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

There is a need for a method and apparatus to translate imperative programming language descriptions of circuits into hardware descriptions, allowing designers to map software objects to appropriate hardware components for instantiation in hardware descriptions, as existing tools primarily process hardware description languages (HDLs) and lack direct support for imperative programming languages like C, C++, and MATLAB.

Innovation Solution

A system comprising a programming environment, a translator, and an implementation system that identifies state objects in imperative programming language descriptions and maps them to hardware objects based on criteria, generating a hardware description that can be implemented into programmable logic devices or integrated circuits.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If standard implementation tools process HDL descriptions into hardware, then hardware implementation is achieved, but direct support for imperative programming languages is lacking

Engineering Contradiction:
Improvelanguage supportVSAvoidtranslation system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a translator as an intermediary component that converts imperative programming language descriptions into HDL descriptions. This translator acts as a mediator between the programming environment and the implementation system, allowing designers to use familiar programming languages while still leveraging existing HDL-based hardware implementation tools. The translator includes state machine generation logic that automatically converts software constructs into hardware-equivalent state machines, thereby extending language support without requiring complete redesign of the implementation toolchain.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If a translator maps software objects to hardware components, then bridging between software and hardware design flows is achieved, but device complexity increases

Engineering Contradiction:
Improvedesign flow integrationVSAvoidtranslator complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The translator is segmented into distinct functional modules: state object identification, state machine generation, and HDL code generation. Each module handles a specific aspect of the translation process, making the overall system more manageable and maintainable. The state object identification module analyzes programming language constructs, the state machine generation module creates hardware-equivalent state representations, and the HDL code generation module outputs synthesizable hardware descriptions. This segmentation reduces translator complexity by breaking down the monolithic translation task into manageable components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The translator is designed with universal capabilities to handle multiple imperative programming languages (C, C++, MATLAB) through a common translation framework. The state machine generation logic is language-agnostic, recognizing stateful constructs across different programming paradigms and converting them into unified hardware representations. This multi-functionality allows the same translator infrastructure to serve diverse programming languages without requiring language-specific implementation paths, thereby reducing overall system complexity despite the broad adaptability.

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

3Manufacturing precision

If state objects are mapped to hardware objects based on criteria, then accurate hardware instantiation is achieved, but translation complexity increases

Engineering Contradiction:
Improvemapping accuracyVSAvoidtranslation process complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The translator performs preliminary analysis of state objects during the translation process, identifying their characteristics and mapping them to appropriate hardware objects before generating the final HDL code. The system pre-processes programming language constructs to determine state object properties (such as data type, access patterns, and lifecycle), then matches these properties against criteria for hardware object instantiation. This preliminary action ensures accurate mapping by making translation decisions based on analyzed characteristics rather than generic rules, thereby improving manufacturing precision while managing translation complexity through structured analysis.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7395521B1Method and apparatus for translating an imperative programming language description of a circuit into a hardware description
Publication Date: 2008.07.01 XILINX INC
  • US7395521B1 patent drawing
  • US7395521B1 patent drawing
  • US7395521B1 patent drawing

AI summary

Method and apparatus for translating an imperative programming language description of a circuit into a hardware description is described. In one example, a state object in a function of the imperative programming language description is identified. Use of the state object in the function is compared against criteria associated with each of a plurality of hardware objects. The state object is mapped to a hardware object of the plurality of hardware objects such that the use of the state object in the function satisfies the criteria of the hardware object. At least one instance of the hardware object is generated in the hardware description.