HLS State Node Annotations for RTL Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing C-to-Silicon compiler requires users to manually analyze high-level language source code for RTL model analysis, which is tedious and challenging, especially due to transformations like inlining functions, unrolling loops, and optimizations, making it difficult to track state nodes and wait statements.
Innovation Solution
A method and system that allow users to specify and maintain user-friendly annotations for state nodes, including labels and pragmas, which persist through successive runs, enabling easier identification and tracking of state nodes and wait statements in the HLS tool.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If automatic translation from high-level language to RTL is implemented, then productivity is improved, but ease of operation deteriorates due to difficulty in tracking state nodes and wait statements
Solution Approach 1:
The patent introduces an intermediary annotation system that bridges the high-level language source code and the generated RTL code. Annotations (comments in the source code) serve as mediators that carry state node and wait statement information through the translation process, allowing users to track these elements without manually analyzing the transformed RTL code. This intermediary layer resolves the contradiction by maintaining user-friendly tracking capabilities while enabling automatic translation.
Solution Approach 2:
The patent applies preliminary action by having users specify annotations in the high-level language source code before translation. These annotations pre-identify state nodes and wait statements, and the system preserves these annotations through successive runs of the HLS tool. This preliminary specification allows users to track elements easily without needing to understand the complex transformations applied during translation.
2Manufacturing precision
If transformations like inlining functions and unrolling loops are applied, then manufacturing precision is improved, but difficulty of detecting and measuring worsens
Solution Approach 1:
Annotations serve as intermediaries that preserve the connection between high-level language constructs and transformed RTL code. Even when functions are inlined or loops are unrolled, the annotations remain attached to the corresponding state nodes and wait statements, allowing users to detect and measure these elements without being confused by the transformations.
Solution Approach 2:
The system provides feedback by displaying annotation information for state nodes and wait statements after translation. This feedback mechanism allows users to verify that transformations have been applied correctly and to track the location of state nodes and wait statements in the generated RTL code, resolving the difficulty of detection and measurement.
3Ease of operation
If user-friendly annotations are specified and persisted, then ease of operation is improved, but device complexity increases
Solution Approach 1:
The annotation system operates on a self-service basis where users specify annotations once in the high-level language source code, and the system automatically preserves and manages these annotations through successive runs. The system serves itself by maintaining annotation consistency without requiring complex user intervention or management procedures, thus improving ease of operation without proportionally increasing device complexity.
Data Source
AI summary
Methods and systems provide creating and reporting of path annotations and renaming a state node using the path annotations for high level synthesis (HLS). In an embodiment, a method to annotate a state node includes identifying labels and pragmas specified in a high-level language input model for wait statements and function calls, and can also accommodate loops. In an embodiment, a method to display and/or report annotation information for a given state node includes displaying a state node name, an associated path annotation, and/or an associated hierarchical path. In an embodiment, a method to rename a state node based on a user-specified name includes using annotation information to locate a target state node and associating the target state node with the user-specified name or an automatically-created name based on the user-specified name. In an embodiment, a name specified for a state node can persist through successive runs of an HLS tool.


