Jump to content

User:Brunasunagai/Placement (electronic design automation)

From Wikipedia, the free encyclopedia

Placement is an essential step in integrated circuit (IC) design where logic components or standard cells are assigned to allowed positions within the chip's layout area. The primary goal is to optimize metrics such as timing, power consumption, congestion, and routability. Due to the increasing complexity of modern circuits, this step completely relies on electronic design automation (EDA) tools to complete the physical design flow. A poor placement affects the chip's performance, potentially making it non-manufacturable or using excessive wire routing resources. Consequently, this step must fulfill the placing assignment while optimizing several objectives to ensure that a circuit meets its performance demands. Placement is followed by routing, and these steps are often referred to as place and route (PnR), however routing information is not yet available during placement step.

The placement tool takes a synthesized circuit netlist and the technology library to produce a valid layout. Clock tree synthesis and routing follow, completing the main physical design process. In many cases, parts of, or even the entire, physical design flow are repeated multiple times until a design closure is achieved. The layout is verified to ensure that all performance, area, and manufacturability constraints are satisfied before tape-out. As a final result, the GDSII or OASIS file is generated, and the design is sent for fabrication.

Constraints and objectives

[edit]

Placement is formulated as a constrained optimization problem. From a performance specification, the placer must assign exact spatial coordinates to all components while ensuring that the given constraints are satisfied and the design objectives are optimized.

Placement design constraints

[edit]

The main constraints[1] considered by the placement tool are:

  • Timing constraint (critical path): the clock period of a digital circuit is limited by the delay of the critical path hence the placer must ensure that no path exists with a delay exceeding the maximum specified delay[1].
  • Boundary constraint: all components must be placed within the chip's core area, which was determined in the floorplan step.
  • No overlaps: there should not exist any overlap between circuit components.
  • Alignment constraint: all standard cells must be placed into predefined spaces, called sites, which are discrete spaces defined by the technology.

Placement optimization objectives

[edit]

There are usually multiple optimization objectives[1], including:

  • Total wire length: the sum of the lengths of all the wires in the design should be minimized.
  • Signal delay: related to wire length, as signal propagation is affected by wire resistance and capacitance.
  • Routing congestion: the placement tool must balance local routing demand with the available routing resources. Local congestion metrics can be aggregated in several ways, such as by summing the top 10% of highest local congestion values.
  • Power: dynamic switching power depends on wire lengths and signal activity, so the components with higher switching activity have priority to use shorter connections.
  • Assignment of I/O pads: the I/O pads are typically assigned during the floorplan step, however during the placement refinement their locations might be adjusted, since it directly affect the routing path between I/O and internal logic blocks.

Additionally to these design requirements, it is important to finish the placement process quickly and efficiently. The tool must be runtime-efficient as this step is repeatedly used in the physical flow.

Total wire length is typically the primary objective of most existing placers and acts as a precursor to other optimizations. Minimizing the routing throughout the circuit design often improves timing and power, however it may cause local congestion[1]. Congested regions may need extra routing detours, increasing delays and wire length itself. Total wire length determines the routing demand and whether it can be satisfied by the routing supply defined by available routing tracks. Therefore, the tool must balance the optimization of total wire length and routing congestion.

Power minimization typically considers wires with greater switching activity factors and assigns greater priority to making them shorter. When many "hot" components are placed nearby, a thermal hot spot may arise and lead to harmful temperature gradients. In such cases, components may be spread out to mitigate temperature gradients.

Placement techniques

[edit]

The placement step is divided into global placement, legallization, and detailed placement.

  • Global placement distributes all the cells to appropriate locations across the global layout area with a focus on optimizing overall density distribution. In this step, it is allowed limited overlaps as it is still a coarse optimization[1].
  • In legalization, the cells are aligned to the row boundaries[2] and power rails. The tool should make sure there are no more overlaps.
  • Detailed placement moves each cell to adjust it locally to a legal location (site). These changes cause a very moderate layout change compared to the global placement results.

Placement and overall design quality are most dependent on the global placement performance. Due to runtime limitations (since one IC can have millions of gates[3]), the placement step is usually performed using heuristics algorithms[2], where a good enough and optimized solution is found to place the standard cells through the layout.

Stochastic placement methods

[edit]

Early placement techniques for integrated circuits were primarily based on combinatorial optimization, that was suitable for designs up to thousands or tens of thousands of components. Among them, stochastic methods such as simulated annealing[4], implemented in the early tool called TimberWolf[5], achieved strong results by randomly moving components to minimize a cost function - typically for wire length or congestion. This method is able to escape local minima, as there is a probability of accepting a worse solution.

Partitioning-based placement methods

[edit]

As designs grew to millions of components, partitioning-based approaches appeared as a more scalable alternative. Then algorithms that employ minimum-cut placement and hypergraph partitioning[6] emerged, using multilevel nested partitioning frameworks such as Capo.[7] These methods may directly prevent component overlaps but struggle with interconnect optimization at a large scale.

Analytical placement methods

[edit]

Analytical methods for global placement model the wire length as a continuous optimization problem and minimize this function directly subject to density constraints. These methods run faster and scale better than combinatorial methods, but do not prevent component overlaps and must be post-processed by combinatorial methods for detailed placement later.

Quadratic placement[8] models wire length by a quadratic function and uses high-performance quadratic optimization techniques. When it was developed, it demonstrated a competitive quality of results and also stability, unlike combinatorial methods. GORDIAN[9] formulates the wire length cost as a quadratic function while still spreading cells apart through recursive partitioning. The algorithm[10] models placement density as a linear term in the quadratic cost function and solves the placement problem by pure quadratic programming. A common enhancement is weighting each net by the inverse of its length on the previous iteration. Provided the process converges, this minimizes a linear objective in the wire length.[11] The majority of modern quadratic placers (KraftWerk,[12] FastPlace,[13] SimPL[14]) follow this framework, each with different heuristics on how to determine the linear density force.

Nonlinear placement methods

[edit]

Nonlinear placement models wire length using exponential (nonlinear) functions and density by local piece-wise quadratic functions, in order to achieve better accuracy thus quality improvement.[15] Follow-up academic work includes APlace[16] and NTUplace[17], which introduced local density penalties to improve routability and timing. ePlace[18] algorithm spreads cells apart by simulating an electrostatic field and treating the components as charged particles, which minimizes quality overhead, thus achieving good performance.

Machine learning and AI-based placement

[edit]

Some recent research has started an investigation to integrate AI, particularly reinforcement learning, into the physical design flow. In 2021, Google Brain reported good results from the use of AI for the placement problem, modeling it as a sequential decision making problem and using policy optimization to generate floorplans with improved power, performance, and area[19]. By using this method, the results showed faster turnaround times than traditional tools, for some designs. However, this research received criticism, [20][21][22] as the paper does not contain comparisons to other academic placers, and there were difficulties in replicating the experiments. Still, one initially favorable review has been retracted upon further analysis.[23]

Placement for application specifics

[edit]

In the case of application-specific integrated circuits (ASICs), the chip's core layout area is divided into rows with fixed height, that may have horizontal spacing between them. Each row contains a sequence of discrete sites, which define the allowed positions for placing the circuit components (cells). A site that is not occupied is considered a free site.[24] The circuit components include standard cells, macro blocks, and I/O pads.[25]

The standard cells are designed to match the height of a row, but have variable widths. The width of a cell is an integer multiple of the site widths. In contrast, macro blocks are typically larger than cells and can span more than one row, with variable dimensions that can occupy a multiple number of rows and sites.[24] Some blocks can have preassigned locations — say from a previous floorplanning process — which limit the placer's task to assigning locations for just the cells. In this case, the blocks are typically referred to as fixed blocks. Alternatively, some or all of the blocks may not have preassigned locations. In this case, they have to be placed with the cells in what is commonly referred to as mixed-mode placement.

In addition to ASICs, placement retains its prime importance in gate array structures such as field-programmable gate arrays (FPGAs). Here, prefabricated transistors are typically arranged in rows (or “arrays”) that are separated by routing channels.[26] Placement maps the circuit's subcircuits into programmable FPGA logic blocks in a manner that guarantees the completion of the subsequent stage of routing.

See also

[edit]

References

[edit]
  1. ^ a b c d e Kahng, Andrew B.; Lienig, Jens; Markov, Igor L.; Hu, Jin (2011-01-27). VLSI Physical Design: From Graph Partitioning to Timing Closure. Springer Science & Business Media. ISBN 978-90-481-9591-6.
  2. ^ a b Monteiro, Jucemar (2022-12-31). "VLSI Placement Optimization Algorithms". Journal of Integrated Circuits and Systems. 17 (3): 1–15. doi:10.29292/jics.v17i3.645. ISSN 1872-0234.
  3. ^ "Standard cell", Wikipedia, 2025-05-25, retrieved 2025-06-06
  4. ^ S. Kirkpatrick, C. D. G. Jr., and M. P. Vecchi (1983). "Optimization by Simulated Annealing". Science. 220 (4598): 671–680. Bibcode:1983Sci...220..671K. doi:10.1126/science.220.4598.671. PMID 17813860.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  5. ^ C. Sechen and A. Sangiovanni-Vincentelli (1986). "TimberWolf3.2: A New Standard Cell Placement and Global Routing Package.". Proceedings of the Design Automation Conference. ACM. pp. 432–439.
  6. ^ George Karypis, Rajat Aggarwal, Vipin Kumar, and Shashi Shekhar (1997). "Multilevel Hypergraph Partitioning: Applications in VLSI Domain". Proceedings of the Design Automation Conference. ACM. pp. 526–529.{{cite conference}}: CS1 maint: multiple names: authors list (link)
  7. ^ Caldwell, A.E.; Kahng, A.B.; Markov, I.L. (June 2000). "Can recursive bisection alone produce routable placements?". Proceedings of the 37th Design Automation Conference. pp. 477–482. doi:10.1109/DAC.2000.855358.
  8. ^ Luo, Tao; Pan, David Z. (2007), Nam, Gi-Joon; Cong, Jason (eds.), "DPlace: Anchor Cell-Based Quadratic Placement with Linear Objective", Modern Circuit Placement: Best Practices and Results, Boston, MA: Springer US, pp. 39–58, doi:10.1007/978-0-387-68739-1_3, ISBN 978-0-387-68739-1, retrieved 2025-06-18
  9. ^ Kleinhans, J.M.; Sigl, G.; Johannes, F.M.; Antreich, K.J. (March 1991). "GORDIAN: VLSI placement by quadratic programming and slicing optimization". IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 10 (3): 356–365. doi:10.1109/43.67789. S2CID 15274014.
  10. ^ H. Eisenmann and F. M. Johannes (1998). "Generic Global Placement and Floorplanning". Proceedings of the Design Automation Conference. ACM. pp. 269–274.
  11. ^ Sigl, Georg, Konrad Doll, and Frank M. Johannes (1991). "Analytical placement: A linear or a quadratic objective function?". Proceedings of the 28th ACM/IEEE design automation conference. ACM. pp. 427–432.{{cite conference}}: CS1 maint: multiple names: authors list (link)
  12. ^ P. Spindler, U. Schlichtmann, and F. M. Johannes (2008). "Kraftwerk2 - A Fast Force-Directed Quadratic Placement Approach Using an Accurate Net Model". IEEE Transactions on Computer-Aided Design. 27 (8): 1398–1411. doi:10.1109/TCAD.2008.925783. S2CID 16054185.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  13. ^ N. Viswanathan, M. Pan, and C. Chu (2007). "FastPlace3.0: A Fast Multilevel Quadratic Placement Algorithm with Placement Congestion Control". Proceedings of the Asia-South Pacific Design Automation Conference. pp. 135–140.{{cite conference}}: CS1 maint: multiple names: authors list (link)
  14. ^ Kim, M.-C.; Lee D.-J.; Markov I.L. (January 2011). "SimPL: An Effective Placement Algorithm". IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 31 (1): 50–60. CiteSeerX 10.1.1.187.1292. doi:10.1109/TCAD.2011.2170567. S2CID 47293399.
  15. ^ USA 6301693, W. C. Naylor, R. Donelly, and L. Sha, "Non-Linear Optimization System and Method for Wire Length and Delay Optimization for an Automatic Electric Circuit Placer" 
  16. ^ A. B. Kahng, S. Reda and Q. Wang (2005). "Architecture and Details of a High Quality, Large-Scale Analytical Placer". Proceedings of the International Conference on Computer-Aided Design. pp. 891–898.
  17. ^ T.-C. Chen, Z.-W. Jiang, T.-C. Hsu, H.-C. Chen, and Y.-W. Chang (2008). "NTUPlace3: An Analytical Placer for Large-Scale Mixed-Size Designs with Preplaced Blocks and Density Constraint" (PDF). IEEE Transactions on Computer-Aided Design. 27 (7): 1228–1240. doi:10.1109/TCAD.2008.923063. S2CID 11912537.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  18. ^ J. Lu, P. Chen, C.-C. Chang, L. Sha, D. J.-S. Huang, C.-C. Teng and C.-K. Cheng (2014). "ePlace: Electrostatics Based Placement Using Nesterov's Method". Proceedings of the Design Automation Conference. ACM. pp. 1–6.{{cite conference}}: CS1 maint: multiple names: authors list (link)
  19. ^ Azalia Mirhoseini, Anna Goldie, Mustafa Yazgan (2021). "A Graph Placement Methodology for Fast Chip Design". Nature. 594 (7862): 207–212. arXiv:2004.10746. Bibcode:2021Natur.594..207M. doi:10.1038/s41586-021-03544-w. PMID 34108699. S2CID 235395490.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  20. ^ Cheng, Chung-Kuan, Andrew B. Kahng, Sayak Kundu, Yucheng Wang, and Zhiang Wang (Mar 2023). "Assessment of Reinforcement Learning for Macro Placement". Proceedings of the 2023 International Symposium on Physical Design. pp. 158–166. arXiv:2302.11014. doi:10.1145/3569052.3578926. ISBN 978-1-4503-9978-4.{{cite book}}: CS1 maint: multiple names: authors list (link)
  21. ^ Igor L. Markov (2023). "The False Dawn: Reevaluating Google's Reinforcement Learning for Chip Macro Placement". arXiv:2306.09633 [cs.LG].
  22. ^ Agam Shah (October 3, 2023). "Google's Controversial AI Chip Paper Under Scrutiny Again".
  23. ^ Kahng, Andrew B. (2021). "RETRACTED ARTICLE: AI system outperforms humans in designing floorplans for microchips". Nature. 594 (7862): 183–185. Bibcode:2021Natur.594..183K. doi:10.1038/d41586-021-01515-9. PMID 34108693. S2CID 235394411.
  24. ^ a b A. Kahng, J. Lienig, I. Markov, J. Hu: "VLSI Physical Design: From Graph Partitioning to Timing Closure", Springer (2022), doi:10.1007/978-90-481-9591-6, ISBN 978-3-030-96414-6, pp. 10-13.
  25. ^ Sherwani, Naveed A. (1993). "Algorithms for VLSI Physical Design Automation". SpringerLink. doi:10.1007/978-1-4757-2219-2.
  26. ^ A. Kahng, J. Lienig, I. Markov, J. Hu: "VLSI Physical Design: From Graph Partitioning to Timing Closure", Springer (2022), doi:10.1007/978-90-481-9591-6, ISBN 978-3-030-96414-6, pp. 14-15.
[edit]