Arithmetic Unit Interface Generation for Expression Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Users of programmable logic devices, particularly those performing arithmetic functions, face challenges in specifying implementation details such as connectivity, data alignment, and pipelining, which increases the complexity of executing arithmetic expressions.
Innovation Solution
A method and system for implementing symbolic specifications using a dynamically configurable arithmetic unit, where mathematical expressions are parsed, abstract syntax trees are formed, and input variables are assigned to input ports, generating an interface that determines operations and aligns data types, thereby simplifying the execution of arithmetic expressions on integrated circuits like FPGAs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If users explicitly specify implementation details (connectivity, data alignment, pipelining) for arithmetic expressions on cores, then the arithmetic expressions can be executed on the IC, but the complexity of the implementation process increases
Solution Approach 1:
The system performs self-service by automatically analyzing high-level arithmetic expressions and generating the necessary implementation details (connectivity configurations, data alignment, pipelining) without requiring user specification. The synthesis tool autonomously translates mathematical expressions into core-specific implementation parameters.
Solution Approach 2:
An intermediary synthesis tool is introduced between the user's high-level arithmetic expression specification and the core's detailed implementation requirements. This intermediary automatically translates and adapts the expressions, generating appropriate connectivity, alignment, and pipelining configurations without user involvement.
2Manufacturing precision
If users manually configure connectivity, data alignment, and pipelining for arithmetic cores, then precise control over implementation is achieved, but the time and effort required increases
Solution Approach 1:
The synthesis tool performs preliminary analysis and configuration generation before the user needs to implement the arithmetic expressions. By pre-processing the high-level expressions and automatically generating all necessary implementation details, the system eliminates the time-consuming manual configuration process while maintaining precision.
Solution Approach 2:
The manual mechanical process of configuring connectivity, alignment, and pipelining is replaced with an automated computer-based synthesis system. This substitution eliminates manual effort and time while maintaining or improving implementation precision through systematic analysis and generation.
3Adaptability or versatility
If traditional core interfaces require explicit specification of arithmetic expression details, then the core can be programmed, but the interface complexity increases
Solution Approach 1:
The synthesis tool provides a universal interface that accepts diverse high-level arithmetic expressions and automatically adapts them to specific core requirements. This multi-functional approach allows the same interface to handle various arithmetic operations (addition, multiplication, etc.) without requiring users to understand core-specific implementation details.
Data Source
AI summary
An exemplary embodiment includes a method that receives a plurality of mathematical expressions having a plurality of input variables. The mathematical expressions can then be parsed, checked for proper syntax and one or more abstract syntax trees can be formed. Next, the input variables are then assigned to input ports of the dynamically configurable arithmetic unit. Then using the parsed mathematical expressions with the assigned input ports, a list of operations to be performed by the dynamically configurable arithmetic unit are determined. And lastly, an interface to the dynamically configurable arithmetic unit is generated using in part the variable-to-input port assignments and the list of operations.


