Parallel Clustering and Placement in CAD Circuit Design

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional computer-aided design (CAD) software for integrated circuits (ICs) faces inefficiencies in compile time due to the limitations of serial processing, as modern processors prioritize multi-threading over increased clock speeds, necessitating the parallelization of clustering and placement algorithms to optimize circuit design.

Innovation Solution

The implementation of multi-threading or parallelizing techniques in CAD software, where a computer forms clusters in parallel, performs legality checking and affinity updates in parallel, optimizes clusters, and determines placements by executing operations in parallel, utilizing multiple processors to create and improve cluster groupings and placements simultaneously.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If serial processing is used in traditional CAD software, then the software can maintain simplicity in processing logic, but the compile time increases significantly

Engineering Contradiction:
Improvecompile timeVSAvoidprocessing efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent divides the clustering and placement algorithms into multiple independent threads that can execute simultaneously. The netlist is partitioned into multiple segments, each processed by a separate thread, allowing parallel computation without requiring complex inter-thread communication, thus reducing compile time while maintaining processing simplicity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic thread management where the number and allocation of processing threads can be adjusted based on available computational resources and problem size. This dynamic approach allows the system to optimize processing efficiency adaptively, reducing compile time while maintaining manageable processing logic

Inventive Principle:
Principle #15Dynamics

2Productivity

If multiple processors are utilized for parallel processing, then resource utilization improves, but the system complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the computational workload into independent processing units that can be distributed across multiple processors. Each processor handles a distinct portion of the clustering or placement task with identical processing logic, avoiding the need for complex coordination mechanisms and maintaining system manageability while improving resource utilization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates multiple copies of the processing algorithm, one for each processor or thread. Each copy operates independently on its assigned data segment, eliminating the need for complex inter-processor communication and synchronization, thus improving resource utilization without significantly increasing system complexity

Inventive Principle:
Principle #26Copying

3Productivity

If parallel clustering and placement operations are implemented, then design efficiency improves, but the algorithm complexity increases

Engineering Contradiction:
Improvedesign efficiencyVSAvoidalgorithm complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the netlist into multiple independent partitions that can be processed in parallel. Each partition undergoes complete clustering and placement operations independently, allowing design efficiency to improve through parallel execution while keeping the algorithmic complexity of each individual partition manageable

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements parallel processing at the partition level rather than attempting to parallelize every individual operation within the algorithm. This partial parallelization approach improves design efficiency by utilizing multiple processors while avoiding the excessive algorithmic complexity that would result from fine-grained parallelization of all algorithmic steps

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9594859B1Apparatus and associated methods for parallelizing clustering and placement
Publication Date: 2017.03.14 ALTERA CORP
  • US9594859B1 patent drawing
  • US9594859B1 patent drawing
  • US9594859B1 patent drawing

AI summary

A system for parallelizing software in computer-aided design (CAD) software for circuit design includes a computer. The computer is configured to form or optimize a plurality of clusters in parallel. Each cluster in the plurality of clusters includes a set of nodes in a netlist in a design. The computer is configured to determine placements for blocks in a netlist in parallel, based on iterative improvement, partitioning, or analytic techniques.