Configurable Module Editor Preserving RTL Macro Dependencies

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveEase of RTL processingVSAvoidConfigurability of IP modules
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
ImproveCustomization capabilityVSAvoidTime for modification
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
ImproveIP module qualityVSAvoidTime to re-apply modifications
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #26Copying

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
ImproveUniversal compatibilityVSAvoidComplexity of modification management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9547735B2System and method for viewing and modifying configurable RTL modules
Publication Date: 2017.01.17 SYNOPSYS INC
  • US9547735B2 patent drawing
  • US9547735B2 patent drawing
  • US9547735B2 patent drawing

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.