Floorplan
Floorplan
What is floorplan?
Inputs of floorplan
Objectives of floorplan
Types of floorplan techniques?
Steps of floorplan
Outputs of floorplan
Checks after floorplan
Some important commands
Venkatesh.G
PHYSICAL DESIGN
FLOORPLANING
Floorplaning is the art of any physical design. The good floorplan decides the quality of
design with higher performance and optimum area.
In floorplan we deals with creation of core area , calculation of Aspect ratio , specifying
core to die boundary spacing ( core offset) ,std cell rows , placing of I/O ports , macro
placement, creating halos , adding placement blockages.
Aspect ratio: Aspect ratio will decide the size and shape of the chip. It is the ratio between
horizontal routing resources to vertical routing resources (or) ratio of height and width.
Aspect ratio = width/height
Core utilization:- Utilization will define the area occupied by the standard cells, macros,
and other cells. If core utilization is 0.8 (80%) that means 80% of the core area is used for
placing the standard cells, macros, and other cells, and the remaining 20% is used for
routing purposes.
core utilization = (macros area + std cell area +pads area)/ total core area
Inputs of floorplan:
1. Gate level netlist(.v)
2. Logic library or timing library(.lib)
3. Physical library(.lef)
4. Technology file(.tf for synopsys and .techlef for cadence)
5. Synopsys design constraints or Standard design constraints(.sdc)
6. TLU+ file
7. Unified power format(upf file for multi-voltage design block)
8. Multi mode multi corner(mcmm)
Objectives of floorplan
• minimize the area
• minimize the timing
• minimize the power
• minimize congestion
• reduce the wirelength
• optimize dataflow
Types of floorplan techniques:
• Abutted:- When the chip is divided into blocks in the abutted design there is no
gap between the blocks.
• In block level there is no channel spacing between macros.
• Non abutted:- In this design there is a gap between blocks. The connection
between the blocks is done through the routing nets.
• The mix of both: This design is a combination of both abutted and non- abutted .
Steps of floorplan
• Perform sanity checks
• Create a floorplan
• Placing the I/O ports
• Placing macros by following macro placement guidelines
• Set the keepout margin and fix the macros
• Add Endcap cell
• Add Tap cells
• Check Legality
Sanity Checks :
We need to perform some sanity checks before we start our physical
design flow, to ensure that inputs received from various team such as synthesis
team, library team etc are correct. If we missed this checks than it can create
problem in later stage.
Below are input fies which we are mainly checking
1.check_design or check_netlist
2.check_ timing
3.check_library or report_design_mismatch
• Check_design:
It checks the current design for consistency and It checks the internal
representation of the current design forconsistency and issues error and warning
messages as appropriate.
• It checks the quality of netlist and identifies:
- Floating pins
- Multidriven nets
- Black box module
- Undriven input ports
- Unloaded output ports
- Unconstrained pins
• Check_timing:
PNR tool wont optimize the paths which are not constrained. So, we have
to check if any unconstrained paths are exist in the design.
This checks:
- Clock reaching all the clock pins of flops or not
- Ports missing input/output delay
- Multiple clocks driving same register
- Unconstrained end points
- Combinational loops
• Check_library:
It performs consistency checks between logical and physical libraries. Suppose, if
designer forgot to load either HVT, LVT or .lib, then there will be inconsistency. It checks
library qualities in three main areas:
- Physical library quality
- Logic versus physical library consistency
- Logic versus logic library consistency
- Missing pin information
- Missing cell information
- Duplicate cells
To create floorplan, given
a. Core Utilization
b. Aspect ratio
c. Space between die area and core area
• ICC2 Command:
initialize_floorplan –core_utilization value -core_offset{value}
• Types of macros:
Hard macros: The circuit is fixed. We can’t see the functionality information about
macros. Only we know the timing information.
Soft macros: The circuit is not fixed and we can see the functionality and which type
of gates are using inside it. Also we know the timing information.
4. Avoid notches while placing macros, if anywhere notches is present then use hard
blockages in that area
6. Avoid placing macros in the centre of the core area. Else, it may lead to detours and
congestion.
7. See the macro pin face core side
8. Avoid placing macros near to I/O ports which might block the routing for I/O ports
If you place macros where more I/O ports are present, provide enough space
between I/O and macros to avoid routing congestion
9. Make sure the macros are oriented to match the std-cell poly orientation
10. Have keepout margin/ Halo, usually 0.5um-1um around macros as a protection
Command:
create_keepout_margin -type hard -outer {boundary values} [get_cells –physical_context
-filter design_type==macro]
We need more empty space around macros, and in channel area to provide
sufficient routing space to route the macro pins.
• Apply placement blockages between macros to avoid congestion
Blockages used in Physical Design mainly for two purpose, Placement and
Routing.
Placement Blockages: There are mainly three types.
1. Hard Blockage
2. Soft Blockage
3. Partial Blockage
• Hard Blockage- any type of net is not allowed to route through specified region.
• Signal Blockage- any type of data and clock signal net is not allowed to route through
specified region, but power net is allowed to route.
• Difference b/w halo and blockages
Halo:
Halo is the region around the boundary of fixed macro in the design in which no other
macro or standard cells can be placed. Halo allows placement of buffers and inverters in its area.
Blockages:
Blockages are specified locations where placing cells are prevented or blocked. These act as
guidelines for placing standard cells in the design.
• If macro are moved from one place to another place, halos will also be moved. But in case of
blockages if the macros are moved from one place to another place the blockages can't be
moved.
Automatically also we can place macros in core area by using command with congestion, timing
efforts.
• Command to place macros:
create_placement -floorplan -congestion_driven –timing_driven
But here placement also happening to remove placement, we have command
reset_placement
• Well tap cells are generally placed in a straight column in the alternate row as shown in
figure and such a pattern is called checkerboard pattern to provide maximum coverage for
well tap. If a macro comes in the path of vertical columns, then the placement of vertical
column shifted alongside macro as shown in the figure.
Latch-up issue:
• It is the condition when low impedance path gets formed between POWER and GND terminal and
there is direct current flow from VDD to GND which might result in a complete failure of chip.
• While the formation of CMOS INVERTER we saw the formation of PN junctions and because of
these PN junctions there may be formation of parasitics elements like diode and transistors.
• In the fig shown above, the value of Rnwell and Rpsub resistance is quite high, if the values
of these resistances will reduced then what will happen? The current flowing from the
collector of PNP transistor will flow from these resistance paths, i.e current find the low
resistance path to reach from VDD to VSS and NPN transistor will never get turn on and in this
way, latchup problem will not occur.
• Solution for latch-up problem:
Reducing the resistance values: tap the n-well to VDD and p-substrate to GND externally.
fig: tapping the VDD with n-well and VSS with p-sub
externally