Mapping Software Constructs to Deadlock-Free Synchronous Digital Circuits

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hardware Description Languages (HDLs) require extensive code for modeling digital logic circuits, leading to time-consuming design processes and a high likelihood of errors, especially for software engineers unfamiliar with HDLs, and can result in poor performance or deadlocks in electronic circuits.

Innovation Solution

A multi-threaded imperative programming language is used to generate synchronous digital circuits, reducing code requirements and eliminating common design errors by mapping programming constructs directly to circuit implementations, ensuring thread ordering and preventing deadlocks through queue capacity management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If HDLs are used to model digital logic circuits, then the circuits can be designed and implemented, but the number of lines of code becomes extremely large and the design process becomes extremely time consuming

Engineering Contradiction:
Improvedesign speedVSAvoidcode complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses C code as a template or copy that can be directly translated into HDL code through automated code generation tools. This allows software engineers to write code in a familiar language and automatically generate the corresponding hardware description, dramatically reducing design time and code complexity while maintaining the same functional behavior.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces code generation tools and translation mechanisms as intermediaries between C code and HDL code. These tools automatically convert high-level C descriptions into detailed HDL implementations, eliminating the need for engineers to manually write complex HDL code and reducing both design time and error rates.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If more lines of code are present in an HDL design, then more functionality can be implemented, but the likelihood of errors increases

Engineering Contradiction:
ImprovefunctionalityVSAvoiderror rate
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

By copying proven C code patterns and algorithms into hardware designs through automated generation, the patent reduces errors associated with manual HDL coding. The automated translation process ensures consistency and correctness, maintaining high functionality while minimizing human-introduced errors.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The code generation system performs self-validation and error checking during the translation process from C to HDL. The automated tools can detect and correct issues before synthesis, reducing the error rate without requiring additional manual verification steps.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If HDLs are used by software engineers unfamiliar with the language, then circuit design can be attempted, but the resulting circuits often include errors or perform poorly

Engineering Contradiction:
Improvecross-disciplinary designVSAvoidcircuit performance
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

Software engineers can copy their existing C code into the design flow and automatically generate HDL implementations. This eliminates the need for software engineers to learn HDL syntax and paradigms, allowing them to leverage their existing programming skills while maintaining high circuit performance through automated, optimized code generation.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The code generation tools serve as an intermediary that translates software engineers' C code into optimized HDL implementations. This mediator handles the complexity of hardware-specific optimizations and best practices, allowing software engineers to achieve high-performance designs without becoming experts in HDL.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If conventional HDL-based solutions are used, then digital logic circuits can be modeled, but the design process becomes extremely time consuming

Engineering Contradiction:
Improvedesign efficiencyVSAvoiddesign time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent enables copying of C code directly into hardware design projects, with automated tools generating the corresponding HDL code. This approach can reduce design time by a factor of 10 or more compared to manual HDL coding, as engineers write code once in C and automatically generate the hardware implementation without repetitive manual translation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10810343B2Mapping software constructs to synchronous digital circuits that do not deadlock
Publication Date: 2020.10.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10810343B2 patent drawing
  • US10810343B2 patent drawing
  • US10810343B2 patent drawing

AI summary

A language disclosed herein includes a loop construct that maps to a circuit implementation. The circuit implementation may be used to design or program a synchronous digital circuit. The circuit implementation includes a hardware pipeline that implements a body of a loop and a condition associated with the loop. The circuit implementation also includes the hardware first-in-first-out (FIFO) queues that marshal threads (i.e. collections of local variables) into, around, and out of the hardware pipeline. A pipeline policy circuit limits a number of threads allowed within the hardware pipeline to a capacity of the hardware FIFO queues.