In
electronic design automation
Electronic design automation (EDA), also referred to as electronic computer-aided design (ECAD), is a category of software tools for designing Electronics, electronic systems such as integrated circuits and printed circuit boards. The tools wo ...
, a floorplan of an
integrated circuit
An integrated circuit (IC), also known as a microchip or simply chip, is a set of electronic circuits, consisting of various electronic components (such as transistors, resistors, and capacitors) and their interconnections. These components a ...
consists of a schematic arrangement of its major functional blocks on the chip area and the specification of high-level parameters such as the aspect ratio or core utilization.
The design step in which floorplans are created is called floorplanning, an early stage in the
design flow
Design flows are the explicit combination of electronic design automation tools to accomplish the design of an integrated circuit. Moore's law has driven the entire IC implementation RTL to GDSII design flows from one which uses primarily sta ...
for
integrated circuit design
Integrated circuit design, semiconductor design, chip design or IC design, is a sub-field of electronics engineering, encompassing the particular Boolean logic, logic and circuit design techniques required to design integrated circuits (ICs). A ...
.
[
]
Various mathematical abstractions of this problem have been studied.
[
]
Floorplanning design stage
The floorplanning design stage consists of various steps with the aim of finding floorplans that allow a
timing
Timing is the tracking or planning of the spacing of events in time. It may refer to:
* Timekeeping, the process of measuring the passage of time
* Synchronization, controlling the timing of a process relative to another process
* Time metrolo ...
-clean routing and spread power consumption over the whole chip.
*Chip Area Estimation: The dimensions and aspect ratio of the chip area are determined. The estimation considers the space required to place macros, standard cells and I/O ports while also leaving enough space for routing resources to enable a successful
place and route design flow. Usually a core utilization
of 60%-70% is targeted.
*I/O Pad Positioning: Input/Output Pads usually need to be positioned along the periphery of the chip. Near the I/O Pads space for
line drivers needs to be reserved to minimize delay and signal degradation.
[
]
*Macro Placement: During macro placement large functional blocks with a fixed size and fixed pins such as
memory arrays,
clock generators or custom components need to be placed within the floorplan's outline. Effective macro placement minimizes the length of timing critical paths, avoids routing congestion and ensures thermal balance.
*Standard Cell Row Creation: Areas where
standard cells should be placed are determined and divided into standard cell rows. During the placement stage standard cells are forced to align with standard cell rows
although they might be of multi-row height. The height of the standard cell rows determines the available routing resources per row while also influencing the power
[
]
*Power / Ground Structures: Obtaining a power/
ground network is not always included in the floorplanning stage. There are however approaches to cosynthesize floorplans and P/G networks based on the idea that if macros and I/O pads are fixed a power grid analysis is possible.
[
]
Mathematical models and optimization problems
In mathematics floorplanning refers to the problem of packing smaller rectangles with a fixed or unfixed orientation into
a larger rectangle. The dimensions of the larger and smaller rectangles might be fixed (hard constraints) or must be optimized (soft constraints). Additionally, a measure modelling the quality of routing that the floorplan allows might be optimized.
Since various variants of
rectangle packing are
NP-hard
In computational complexity theory, a computational problem ''H'' is called NP-hard if, for every problem ''L'' which can be solved in non-deterministic polynomial-time, there is a polynomial-time reduction from ''L'' to ''H''. That is, assumi ...
, the existence of a polynomial-time algorithm for the general floorplanning problem would imply
.
[
]
Integer Programming
One can model rectangle packing problem for fixed sizes and orientations as an integer linear program. Further, constraints and variables can be added to minimize the
bounding-box-netlength. Given small rectangles
with widths
, heights
and nets
as well as a larger rectangle with width
and height
, the
integer program looks as follows:
* Objective minimizing bounding-box-netlength
::
* Non-overlap constraints
:
::
* Relative placement disjunction
:
::
*Net bounding box coverage constraints
:
::
*Binary variables
:
::
*Rectangle position variables
:
::
*Net bounding box variables
:
::
For fixed relations
the above integer program is the
dual of a
maximum flow problem
In Optimization (mathematics), optimization theory, maximum flow problems involve finding a feasible flow through a flow network that obtains the maximum possible flow rate.
The maximum flow problem can be seen as a special case of more complex ...
and therefore solvable in polynomial time.
[
]
Not all choices for these spatial relation variables correspond to a feasible placement. A set of relations that contains all feasible placements is called complete. The best known upper bound on the size of a complete set of relations was proved by Silvanus and Vygen, who showed that
with
spatial relations suffice. They also gave a lower bound of
with
[
]
Heuristics
Using different representations such as O-trees,
[
] B*-trees
[
] or sequence pairs
[
] for the spatial relations between rectangles, various heuristic algorithms have been proposed to solve floorplanning instances in practice. Some of them restrict the solution space by only considering sliceable floorplans.
Sliceable and non-sliceable floorplans
A sliceable floorplan is a floorplan that may be defined recursively as described below.
["The Electrical Engineering Handbook", Richard C. Dorf (1997) ]
*A floorplan that consists of a single rectangular block is sliceable.
*If a block from a sliceable floorplan is cut ("sliced") in two by a vertical or horizontal line, the resulting floorplan is sliceable.
Sliceable floorplans have been used in a number of early
electronic design automation
Electronic design automation (EDA), also referred to as electronic computer-aided design (ECAD), is a category of software tools for designing Electronics, electronic systems such as integrated circuits and printed circuit boards. The tools wo ...
tools
[ for a number of reasons. Sliceable floorplans may be conveniently represented by ]binary tree
In computer science, a binary tree is a tree data structure in which each node has at most two children, referred to as the ''left child'' and the ''right child''. That is, it is a ''k''-ary tree with . A recursive definition using set theor ...
s (more specifically, ''k''-d trees), which correspond to the order of slicing. More importantly, a number of NP-hard problems with floorplans have polynomial time
In theoretical computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations p ...
algorithms when restricted to sliceable floorplans.[Sarrafzadeh, M,]
Transforming an arbitrary floorplan into a sliceable one
, Proc. 1993 IEEE/ACM International Conference on Computer-Aided Design (ICCAD-93), pp. 386-389.
File:Flo-01.png, A sliceable floorplan
File:Flo-02.png, A non-sliceable floorplan
Further reading
by Kahng, Lienig, Markov and Hu, , 2022
by Lienig, Scheible, Springer, , 2020
References
{{reflist
Electronic design automation
Electronics optimization
Combinatorial optimization
Rectangular subdivisions