Task-Based Multi-Process IC Design Synthesis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional parallelization techniques in integrated circuit design face challenges in partitioning physical and logical synthesis, leading to long run times due to the difficulty in determining the effects of changes on the entire design, making it hard to efficiently parallelize these processes.
Innovation Solution
A task-based multi-process design synthesis methodology is introduced, where objects from an integrated circuit design are grouped into subsets and assigned to child processes that perform transforms and notify the parent process of successful candidates, allowing the parent to only perform transforms on successful objects, thereby reducing overhead and optimizing the design.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If conventional parallelization techniques are used to speed up synthesis operations, then processing speed should improve, but the difficulty in partitioning physical and logical synthesis and determining the effects of changes leads to increased complexity and long run times
Solution Approach 1:
The design is divided into discrete objects that can be independently processed. Each object represents a unit of work that can be evaluated and transformed separately, allowing the synthesis process to be partitioned into manageable subsets that can be processed in parallel without complex interdependencies.
Solution Approach 2:
Child processes perform preliminary evaluation of transforms on object subsets before the parent process commits to applying them. This preliminary action identifies candidate objects that are likely to benefit from transforms, allowing the parent process to focus computational resources only on promising candidates rather than all objects.
2Manufacturing precision
If transforms are performed on all objects to ensure thorough optimization, then design quality improves, but processing time increases significantly
Solution Approach 1:
Instead of performing transforms on all objects, the system performs transforms on a subset of candidate objects identified by child processes. This partial action approach maintains design quality by focusing on objects most likely to benefit from optimization while significantly reducing processing time by avoiding unnecessary transforms on non-candidate objects.
Solution Approach 2:
Child processes autonomously evaluate objects and identify which ones are candidates for transforms. This self-service mechanism allows the system to automatically filter objects based on their potential to benefit from optimization, eliminating the need for the parent process to evaluate every object and thereby reducing overall processing time while maintaining quality.
3Reliability
If the parent process performs all transforms directly, then control and quality assurance are maintained, but processing efficiency decreases due to overhead
Solution Approach 1:
The processing workload is segmented between child processes and the parent process. Child processes handle the evaluation and identification of candidate objects, while the parent process maintains control over the actual transform application. This segmentation allows parallel processing to improve efficiency while the parent process preserves reliability by maintaining ultimate control and quality assurance.
Solution Approach 2:
Child processes act as intermediaries that evaluate objects and communicate candidate information back to the parent process. This intermediary layer enables the system to leverage parallel processing for evaluation while the parent process remains the authoritative controller for transform application, thus maintaining both efficiency and control quality.
Data Source
AI summary
A task-based multi-process design synthesis methodology relies on a plurality of child processes to assist a parent process in performing optimizations on an integrated circuit design. Objects from an integrated circuit design are grouped into subsets and assigned to child processes, with each child process performing a transform on each of the objects in the subset assigned to that child process and determining which of the objects in the subset are candidate objects for which performance of the transform has been successful. The child processes then notify the parent process of those objects that qualify as candidate objects, so that the parent process only has to perform the transform on the candidate objects, thereby relieving the parent process from the overhead associated with performing the transform on non-candidate objects for which the transform has been determined by the child processes as not being successful.


