Code Alteration System for Hardware Description Language Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current hardware design procedures are object-oriented and self-contained, leading to confusion and error-prone processes due to the use of hardware description languages that are not fully supported by programming languages, necessitating a method to alter code lines written in both programming and syntax extensions to be compatible with parsers.

Innovation Solution

A system and method that identifies lines of code written in programming languages with syntax extensions, alters them to use only the programming language, and returns the altered code, utilizing a preparser to convert hardware description language operators and statements into method calls supported by the programming language, thereby embedding syntax extensions and minimizing object-oriented development.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If hardware description languages with syntax extensions are used, then hardware design capability is improved, but code compatibility with standard parsers deteriorates

Engineering Contradiction:
Improvehardware design capabilityVSAvoidcode compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The preparser performs preliminary action by converting syntax extensions to standard programming language before the main parser processes the code. This translation happens in advance, ensuring that the code written in hardware description language with extensions is transformed into compatible standard language syntax, resolving the contradiction between hardware design capability and code compatibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The preparser acts as an intermediary component between the hardware description language with syntax extensions and the standard programming language parser. It translates and bridges the gap between these two language systems, allowing code written in one language to be executed by a parser that only understands the other language, thus maintaining both hardware design capability and code compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If syntax extensions are embedded in programming language, then hardware design expressiveness is improved, but parser complexity increases

Engineering Contradiction:
Improvehardware design expressivenessVSAvoidparser complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The parsing system is segmented into two distinct components: a preparser that handles syntax extensions and a main parser that handles standard programming language. This segmentation allows the syntax extension handling logic to be isolated in the preparser, preventing it from increasing the complexity of the main parser while still enabling expressive hardware design capabilities through the preparser's translation functions.

Inventive Principle:
Principle #1Segmentation

3Stability of the object's composition

If object-oriented hardware design is used, then modularity is improved, but development complexity increases

Engineering Contradiction:
ImprovemodularityVSAvoiddevelopment complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The invention extracts and eliminates the object-oriented programming layer from the hardware design process. By removing this complex layer, the system achieves simpler data flow-based code development while maintaining modularity through alternative means, thus resolving the contradiction between modularity and development complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9323502B2System, method, and computer program product for altering a line of code
Publication Date: 2016.04.26 NVIDIA CORP
  • US9323502B2 patent drawing
  • US9323502B2 patent drawing
  • US9323502B2 patent drawing

AI summary

A system, method, and computer program product are provided for altering a line of code. In use, a line of code is identified, where the line of code is written utilizing both a programming language and one or more syntax extensions to the programming language. Additionally, the line of code is altered so that the altered line of code is written using only the programming language. Further, the altered line of code is returned.