Automated Code Generation for Switch Fabric Hardware Configuration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software programming methods for network-connected hardware systems are inefficient, requiring manual modification of macros and source code for hardware changes, making it difficult for chip vendors to manage complex programmable devices and limiting scalability and flexibility in switch fabrics.
Innovation Solution
A method for automatically generating code to define and control connected hardware elements using system configuration macros, tables, and graphical user interfaces, allowing for easy customization and reconfiguration of switch fabrics without delving into chipset register details or modifying source code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If manual macro modification is used to adapt software to hardware changes, then hardware independence is promoted, but the complexity of managing macros and source code increases significantly
Solution Approach 1:
The system automatically generates configuration macros and source code based on hardware connection definitions, eliminating the need for manual macro modification. The software adapts to hardware changes through automated code generation rather than manual intervention, reducing management complexity while maintaining hardware independence
Solution Approach 2:
The invention pre-generates all necessary macros and configuration code before runtime based on hardware connection specifications. This preliminary code generation eliminates the need for manual macro adaptation when hardware changes occur, as the system can regenerate configuration automatically
2Adaptability or versatility
If manual source code modification is required for hardware changes, then software can adapt to new hardware configurations, but the time and expertise required for programming increases
Solution Approach 1:
The system performs self-configuration by automatically generating source code and macros based on hardware connection definitions. This eliminates the need for programmers to manually modify source code for hardware changes, reducing both programming time and expertise requirements while maintaining full hardware configurability
Solution Approach 2:
The invention introduces an automated code generation intermediary that translates hardware connection specifications into executable source code and macros. This intermediary layer handles the complexity of source code modification automatically, allowing hardware changes to be implemented without direct programmer intervention
3Adaptability or versatility
If chipsets are made highly programmable to meet customer needs, then versatility increases, but the difficulty of managing complex programmable devices increases
Solution Approach 1:
The system automatically generates configuration macros, source code, and compilation commands based on hardware connection definitions. This self-service approach eliminates the need for manual configuration of complex programmable devices, making highly programmable chipsets easy to manage while maintaining full versatility
Solution Approach 2:
The invention pre-generates all configuration macros and source code necessary for programming complex chipsets before runtime. This preliminary generation of configuration data simplifies the management of highly programmable devices by automating the complex setup process
Data Source
AI summary
A method is provided for automatically generating code to define and control a system of connected hardware elements. The method comprises: accepting a system configuration macro with sub-macros for system elements, subsystem elements, and connections there between; accepting a plurality of tables with a plurality of system element behaviors, a plurality of subsystem element behaviors, and a plurality of connection options; defining the system of connected elements in response to selecting sub-macros; defining the physical links between the system elements and the behavior of the system and subsystem elements in response to populating the selected sub-macro parameters; expanding the selected sub-macros; generating executable code; and, accessing the tables in response to parameters in the executable code. Advantageously, the form and function of the system can be defined with programming, or writing application specific code.


