Configurable Module Editor Preserving RTL Macro Dependencies
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modifying configurable IP modules in integrated circuit designs is a difficult, error-prone, and time-consuming task due to the need to ensure compatibility with various configuration options, and existing design tools simplify RTL macros by removing pre-processor macros, making it challenging to preserve configurability during modifications.
Innovation Solution
A Configurable Module Viewer and Editor (CMVE) software tool constructs a database of all configuration options from the RTL description, allowing users to view and edit configurable modules, automatically propagating changes while maintaining consistency across all configurations, and preserving configurability by handling macro dependencies and 'ifdef/undef statements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If existing design tools treat RTL macros as pre-processing directives and simplify the RTL by propagating macro values, then the RTL is simplified and processing is easier, but all reference to the macros is effectively removed and configurability is lost
Solution Approach 1:
The system performs preliminary analysis of macro dependencies and configuration options before simplifying the RTL. It constructs a database of macro definitions and usage contexts in advance, allowing it to intelligently propagate only the necessary macro values while preserving references to other configuration options, thus maintaining configurability during simplification.
Solution Approach 2:
The system introduces an intermediary database layer that stores macro definitions, usage contexts, and configuration options. This intermediary structure allows the tool to propagate macro values for simplification while maintaining a record of all configuration options, enabling users to access and modify them later without losing configurability.
2Adaptability or versatility
If SOC designers make significant modifications to IP modules to customize functionality and replace generic components, then the design is optimized for specific requirements, but the modification process becomes difficult, error-prone, and time-consuming
Solution Approach 1:
The system enables self-service modification by automatically analyzing macro dependencies and propagating changes throughout the RTL codebase. When a user modifies a macro definition or configuration option, the system automatically updates all references and maintains consistency across the entire design, eliminating manual search-and-replace operations and reducing errors.
Solution Approach 2:
The system provides feedback mechanisms that track macro usage across the RTL codebase and notify users of potential conflicts or inconsistencies during modification. This feedback loop helps users make informed customization decisions and automatically adjusts the design to maintain integrity, reducing the time and effort required for error-free modifications.
3Reliability
If IP module developers supply periodic updates to improve IP modules, then the design quality is improved, but SOC designers have to re-make all their changes
Solution Approach 1:
The system creates a copy of the modification context by storing the database of macro definitions, usage patterns, and customization decisions. When an IP module update is applied, the system uses this stored copy to automatically re-apply all customizations to the updated module, preserving the SOC designer's work while benefiting from the latest IP module improvements.
Solution Approach 2:
The system performs preliminary documentation of all customization decisions and macro configurations in a persistent database before IP module updates are applied. This preliminary recording allows the system to automatically restore customizations after updates, eliminating the need for SOC designers to re-make changes and maintaining a link between IP module versions and customization states.
4Adaptability or versatility
If designers need to ensure modifications work with all possible configuration options, then the design is universally compatible, but the complexity of verifying and maintaining modifications increases
Solution Approach 1:
The system segments the analysis and verification process by breaking down the RTL codebase into discrete macro dependency chains and configuration option groups. This segmentation allows the tool to systematically verify modifications against each configuration option independently, managing complexity through structured analysis rather than holistic manual verification.
Data Source
AI summary
A configurable module editor and viewer (CMVE) reads the RTL description of a configurable module keeping track of all possible configuration options. Configuration options include pre-processor macros that are normally removed by RTL parsers. The CMVE allows users to view multiple configurations simultaneously. The CMVE assists users in editing the configurable module by presenting a simplified view of interest, while automatically propagating changes and maintaining consistency in the configurable module. The CMVE outputs updated RTL that maintains all configuration options.


