PNR Flow
PNR Flow
RC Variation
RC variation is also considered as corners for the setup and hold checks. RC variation can happen
because of fabrication process and the width of metal layer can vary from the desired one.
We always check our chip to work in worst scenarios. We should be very pessimistic about setup and
hold checks, so we consider worst case scenarios first.
Setup violation can be caused if data is coming very slow. So the condition when process is slow,
voltage is minimum and temperature is maximum is the worst case for setup check.
Hold violation is caused if data comes faster. So process should be faster,voltage should be
maximum and temperature should be minimum.
Now if setup and hold are checked in worst corners, then the chip should work in every scenario. Still
we check them in typical corners because we need to analyze power consumption. Refer following
table for the worst case scenarios for setup and hold.
In 90-nm technology and above, a timing path is predominantly governed by cell delays. And that’s
the reasons only below mentioned 2 RC interconnect corners are sufficient for all the timing analysis.
1. Cbest (Also known as Cmin) – minimizes C, maximizes R
2. Cworst (Also known as Cmax) – maximizes C, minimizes R
However below 90nm node, the contribution of interconnect delay in a timing path become significant
and the Coupling Cap component (Cc) in net delay can significantly alter slack values at an endpoint
of a timing path. So, RC corners have to be split up as per the contribution of each component
Ground Capacitance (Cg) and Coupling Capacitance (Cc). So on top of the 2 conventional RC
corners Cmax and Cmin, foundry came up with 2 more RC corners.
2.C-worst:
Includes corners which results maximum Capacitance. So also known as Cmax corner.
Interconnect resistance is smaller than at typical corner.
This corners results in largest delay for paths with shorts nets and can be used for max-path-analysis.
3.RC-best:
Includes corners which minimize interconnect RC product. So also known as RC-min corner.
Typically corresponds to smaller etch which increases the trace width. This results in smallest
resistance but corresponds to larger than typical capacitance.
Corner has smallest path delay for paths with long interconnects and can be used for min-path-
analysis.
4.RC-worst:
Includes corners which maximize interconnect RC product. So also known as RC-max corner.
Typically corresponds to larger etch which reduces the trace width. This results in largest resistance
but corresponds to smaller than typical capacitance.
Corner has largest path delay for paths with long interconnects and can be used for max-path-
analysis.
5.Typical:
This refers to nominal value of interconnect Resistance and Capacitance.
Note: No corner guarantees min or max delay for an arbitrary transistor driving an arbitrary wire
topology
Extraction
After completion of standard cell placement and power analysis, the next phase is to route the ASIC
design and perform extraction of routing and parasitic parameters for the purpose of static timing
analysis and simulation.
Parasitic extraction is the calculation of all routed net capacitance's and resistances for the purpose of
delay calculation, static timing analysis, circuit simulation, and signal integrity analysis.
Parasitic extraction is performed by analyzing each net in the design and taking into account the
effects (such as dielectric stack) of the net’s own topology and proximity to other nets.
For calculating the Delay, we should be aware about the Resistance/Capacitance of the
Network/Devices and we can extract this info (R/C) from a layout and "Parasitic Extraction do this job
efficiently".
It can be used
• During Static Timing analysis
• During Noise Analysis, Crosstalk Analysis, Signal Integrity Check
• In Logic Simulation
• During IR Analysis
• Substrate Noise Analysis
So there are several ways or say mode in every Parasitic Extraction tool provided by different
Vendors so that user can extract only required information. Few of them are:
• Extract Resistance(R) Only
• Extract Capacitance(C)Only
• Extract Resistance and Capacitance(RC) both
Capacitance also are of 2 types (or say "Mode") :
• Decoupled Capacitance
• Coupled Capacitance
So, we can use any combination to Decrease or Increase the Runtime. It depends on what you want
and at which stage. There are 2 type of network
• Lumped Network(Lumped-C and Lumped RC)
• Distributed Network
Lumped capacitance is a single order approximation and considers only the total capacitance value
of interconnection while ignoring the resistance value. This was used in the early days of process
technology as wire delay contributions were negligible.
Distributed RC Network
Distributed resistance and capacitance (or so-called pie model) is classified as a third order
interconnect delay approximation. In this model, interconnections are segmented into a series of
resistor and capacitor network resembling like the transmission line.
Apart of Above extraction mode, Runtime of each Extracted Tool also depends on several
parameters:
• Design Size
• Process or Technology Node
• Output format
• System Configuration (Or say available Machine Resource) like No of CPU, Memory,
Machine Type.
One of the most commonly used formats used to import and export distributed RC parasitic
capacitance and resistance values extracted per net based on their actual geometry and layer width
and spacing information, is the Standard Parasitic Extended Format (SPEF).
SPEF is an Institute of Electrical and Electronics Engineers (IEEE) standard.
Basics of Layout:
1. Layout can be very time consuming.
-Design gates to fit together nicely
-Build a library of std cells
-must follow a technology rule
Outputs of extraction
1. spef
Routing
After completion of standard cell placement and power analysis, Routing is the next phase. Extraction
of routing and parasitic parameters for the purpose of static timing analysis and simulation will be
followed.
As ASIC designs are getting more complex and larger,routing is becoming more difficult and
challenging. It is possible for routing to fail to complete, or to take an unacceptable amount of
execution run time.
Besides the routing algorithms, the factors which influence the routability of a given ASIC are the
layout of standard cells style, a well-prepared floorplan and the quality of standard cell placement as
discussed in previous chapters.
Due to the inherent complexity of ASIC designs and the very large numbers of interconnections
associated with them, the overall routing is performed in three stages: special routing, global routing
and detail routing.
1. Special Routing
Special routing is used for standard cells, macro power, and ground connections. Most special routers
use line-probe algorithms. The line-probe method uses line segments to connect standard cells,
macro power, and ground ports to ASIC power and ground supplies.
2. Global Routing
Global routing is the decomposition of ASIC design interconnections into net segments and the
assignment of these net segments to regions without specifying their actual layouts. Thus, the first
step of the global routing algorithm is to define routing regions or cells (i.e. a rectangular area with
terminals on all sides) and calculate their corresponding routing density.
These routing regions are commonly known as Global Routing Cells (GRC's).
Global routing algorithms generate a non-restricted route (i.e. not a detail route) for each net in the
design and use some method of estimation to compute wire lengths and extract their corresponding
parasitics.
After global routing is performed, the pin locations will be determined such that the connectivity
among all standard cells in the ASIC core area is minimal. Almost all global routers report the design
routability statistic using overflow or underflow for Global Routing Cells (GRC), which is the ratio of
routing cells’ capacity and the number of nets that are required to route a given routing cell for all
vertical and horizontal routing layers.
3. Detail Routing
The objective of detail routing is to follow the global routing and perform the actual physical
interconnections of ASIC design. Therefore, the detail router places the actual wire segments within
the region defined by the global router to complete the required connections between the ports.
Detail routers use both horizontal and vertical routing grids for actual routing. The horizontal and
vertical routing grids are defined in the technology file for all layers that are being used. The detail
router can be grid-based, gridless-based, or subgrid-based.
Grid-based routing imposes a routing grid (evenly spaced routing tracks running both vertically and
horizontally across the design area) that all outing segments must follow.
In addition, the router is allowed to change direction at the intersection of vertical and horizontal tracks
as indicated.
The advantage of grid-based routing is efficiency. When using a grid-based router, one needs to
make sure that the ports of all instances are on the grid.
Otherwise, they can create physical design rule errors and will be difficult to resolve with the router.
Gridless-based (or shape-based) routers do not follow the routing grid explicitly, but are dependent
on the entire routing area and are not limited by grid’s restrictions. They can use different wire widths
and spacing without routing grid requirements. The most fundamental problem with this type of router
is that they are very slow and can be very complicated.
The subgrid-based router brings together the efficiency of grid-based routers with the flexibility (of
varying the wire width and spacing) of the gridless-based routers. The subgrid-based router follows
the normal grid similar to the grid-based router. However, a subgrid-based router considers these
grids only as guidelines for routing and is not required to use them.
This procedure of detail routing is very similar to global routing. The only difference is that during
detail routing, physical wire segments will be used for connection rather than connectivity projections.
Thus, it is important to have strong correlation between the detail and global routers with regard to the
wire length approximation and actual wire connection.
The reason for the close correlation between global and detail routers is that one can determine
whether the ASIC design timing meets actual timing requirements by estimating the wire resistance
and capacitance early on in the physical design cycle.
CTS
Clock Tree Synthesis is a process of automatic insertion of buffers/inverters along the clock path to
balance the clock delay to all the clock inputs in the asic design.
Since some amount of delay is associated with every physical wire due to RC factor associated with
it, it will results into clock not reaching to the clock pin of all the flops at same time in the design. So
by adding buffers/inverters ,we try to maintain Zero skew (ideally impossible) and minimum insertion
delay by means of CTS.
Selecting a set of particular buffers and inverters plays a very important role ,which decides the
performance of design.
If clock buffers are not selected correctly they may cause the clock pulse width to degrade as the
clock propagates through them.
In most of the ICs clock consumes 30-40% of total power. So efficient clock architecture, clock gating
& clock tree implementation helps to reduce power.
CTS Goals:
a) Meeting the clock tree DRC's which includes
▪ Max. Transition: should not be too tight and too relaxed
The Transition of the clock should not be too tight or too relaxed.
If it is too tight then we need more number of buffers.
If it is too relaxed then dynamic power is more.
▪ Max. Capacitance
▪ Max. Fan-out
b) Meeting the clock tree targets.
▪ Minimal skew: For this this reason we will need to synthesize the clock tree
▪ Minimum insertion delay
CTS steps:
▪ Create clock spec file,
▪ Create clock tree, compile clock tree by (Create_clock)
▪ Fine tune clock tree,for meeting clock skew and insertion delay (ClockOpt)
1. Nonstop pins
2.Exclude pins
3. Float pins
4. Stop pins
Example :
The clock pin of sequential cells driving generated clock are implicit non-stop pins.
Clock pin of ICG cells.
2.Exclude Pin: CTS would exclude the pins from Skew analysis.
5. Leaf Pin:
CTS treats the pins as sinks, stops tracing further and balances clock skew.
Placement
It is the third step in Physical design flow. During Placement, all standard cells are placed automatically
on the chip core based on timing, die size and power constraints.
During Coarse placement design gets divided into small squared equal sized boxes, called GRC's (Global
Routing cells). And standard cells are just thrown inside randomly but not optimized at this stage. They
may not be placed over grids and may be overlapping .
During Legalization(second step), standard cells are placed properly over grids and any overlaps are
removed based on optimum timing and congestion.
If there would not be proper placement of cells than this would effect the chip performance.
Placements determines the die utilization . A typical utilization of 60% is reached after
placement(depends on technology and design size). The placement follows certain boundary conditions
while placing cells.They are :
1. Timing
2. Design Rule
OBJECTIVES OF PLACEMENT
• To minimize the all critical net delay.
• To minimize the total estimated interconnect length/wire length. This helps in
minimizing the cost and chip size.
• To minimize the power dissipation as possible. It involves distributing the locations of
standard cells components as to reduce the overall power consumption.
• To minimize the congestion. Congestion means excessive crowding. If there is less
space and the standard cells are more. This is one thing which always avoid while placing
standard cells.
• To minimize the power dissipation as possible. It involves distributing the locations of
standard cells components as to reduce the overall power consumption.
PLACEMENT OPTIMIZATION:
We must reserve placement space for more than 5% of targeted final design utilization to ensure that
there is room to add buffers and remap the network to meet timing requirement, before performing
placement optimization.
The method generally adopted by tool for optimizing.
• Adding/Deleting Buffers.
• Remapping logic.
• Resizing gate/Up sizing/Downsizing.
ADVANTAGES OF UP SIZING:
• Increases speed & Driving strength.
• Up sizing means increasing the width of the transistor that is increasing the width of
the diffusion. This helps to solve setup and hold violation in timing analysis.
• Because up sizing reduces the delay of the std cell. After doing up sizing standard
cell become faster and after doing downsizing standard cells become slower.
SWAPPING
involves replacing a kind of threshold voltage cell with another kind.
LVT → MVT → HVT
Advantage of LVT : Faster.
Advantage of HVT: less Leakage power.
Disadvantage: LVT's has more Leakage power. We prefer LVT at timing critical part.
TIMING :
Until the placement and placement optimization stage the clock is ideal, all the clock pins are connected to
the clock source, factors like skew , transition and the network delay assume a value 0.
Congestion Analysis:
After Placement first thing we check for Congestion ( local and global congestion) and then Timing
(DRV's = transition, capacitance and fanout), utilization etc.
Definition of Congestion: When number of available routing tracks are less than the required
number of tracks in particular area,it is said to be congested area.
Local congestion: when congested cells are localized in some particular area, it leads to the creation
of local Hotspots i.e. highly congested area. Which is called as local congestion
To do the analysis ,we need to open the congestion analysis in congestion tab over gui. Now we can
see the the whole design divided into GRC's (Global routing cell). Each GRC can be highlighted with
green ,red or yellow colors.
Here highly congested areas will be highlighted with red color.
Reason may be more cell density as well as Pin density. we need to move cursor on each and every
red colored GRC to know the type of cell (whether it is OAI or AOI cell) and no. of pins available on
each cell.
OAI and AOI cells has more no. Of pins than their area, so called complex gates too.
For more detailed analysis, we can further check how the paths are traveling over gui. There may be
the paths with single start point and multiple endpoints.
To do the cell padding we need to filter out the cells with no. of pins > 4 and then need to add padding
for them. We can use set_keepout_margin ( ) (manual way) or through custom script which will add
cell padding of 2 or 4 for filtered count of cells.
Global Congestion: when high density(cell/pin) regions are spread all over the design, it is called as
global congestion.
Reasons: When cells of particular modules are not placed all together due to any reason, like bad
macro placement etc.
Padding is a method to fool the tool, just to make room available next to particular cell during timing
optimization to add any buffer etc.
Posted by VLSI Blogger at 6:58 PM No comments:
Email ThisBlogThis!Share to TwitterShare to FacebookShare to Pinterest
Thursday, January 24, 2019
Power Planning
• Now it is time to plan and create power and ground structures for both I/O pads and
core logic.
• The I/O pads’ power and ground buses are built into the pad itself and will be
connected by abutment.
• For core logic, there is a core ring enclosing the core with one or more sets of power
and ground rings.
• A horizontal metal layer is used to define the top and bottom sides, or any other
horizontal segment, while the vertical metal layer is utilized for left, right, and any other
vertical segment.
• These vertical and horizontal segments are connected through an appropriate via
cut.
• The next consideration is to construct the standard cell power and ground that is
internal to the core logic.
• Each of these power and ground strips run vertically, horizontally, or in both
directions.
• If these strips run both vertically and horizontally at regular intervals, then the style is
known as power mesh.
• The total number of strips and interval distance is solely dependent on the ASIC core
power consumption. As the ASIC core power consumption (dynamic and static) increases,
the distance of power and ground strip intervals increases.
• This increase in the power and ground strip intervals is used mainly to reduce overall
ASIC voltage drop, thereby improving ASIC design performance.
• In addition to the core power and ground ring, macro power and ground rings need to
be created using proper vertical and horizontal metal layers.
• A macro ring encloses one or more macros, completely or partially, with one or more
sets of power and ground rings.
• It is strongly recommended to check for power and ground connectivity and/or any
physical design rule violations after construction of the entire power and ground network.
•
Goal of power Planning is to provide power to all macros and standard cells within the given IR-Drop
limit.
Power planning management can be divided in two major category :
• core cell power management
• I/O cell power management.
In core cell power planning power rings are formed around the core and macro.
In IO cell power planning power rings are formed for I/O cells and trunks are created between core
power ring and power pads.
Power planning is part of floor plan stage.
Input Required In Power Planning
Floorplan is a critical and important step in PNR. A bad floor plan can cause all kind of issues related
to timing, congestion, EM, IR, routing and noise.
Basic understanding of design, data-flow and module interactions is must to come up with a optimum
floorplan.
Adding Physical cells, special cells , blockages and power mesh is part of flow. Placement of IO and
macro is crucial and it needs thorough understanding and analysis.
for Top-down approach, we gets block size and shape from Top level. Where as in Bottom down, we
need to come up with best block size based on instance count and other design requirements by our-
self.
Important Formulas:
• Aspect Ratio = Height/Width
• Total Utilization = (Area of standard cells + macros + IO)/ Total area of die
2. Utilization:
Core utilization: is the ratio of area occupied by standard cell, macros and blockages to the total
core area. i.e.
Core utilization = (standard cell area+ macro cells area+blockages)/ total core area
A core utilization of 0.8 means that 80% of the area is available for placement of cells, whereas 20%
is left free for routing.
STD Cell utilization: ratio of area occupied by std cells to the total core area and channel area.
Std cell utilization = std cell area/ (total cell area + channel area)
Technology Inputs:
Gate Density per sq. mm = D
Number of Horizontal Layers = H
Number of Vertical Layers = V
Design Inputs:
Gate count (excluding memories, macros & subchips) = G
IO area, in sq. mm = I
Memory + Macros + Subchips area, in sq.mm = M
Target Utilization, in percentage = U %
Additional gate count for CTS, timing closure etc, in percentage = T %
Additional gate count for ECOs, in percentage = E %
Die area calculation:
Die Area in sq.mm = {[(Gate count + Additional gate count for CTS & ECO) / Gate density] + IO area
+ Mem, Macro area} / Target utilization
Die Area = {[(G + T + E) / D] + I + M} / U
Aspect ratio, width, height calculation:
Aspect Ratio: AR = width / height
= Number of horizontal resources / Number of vertical resources
AR = H / V
Height : AR = W / H
W = H * AR ----- (1)
Area = W * H
= H * H * AR (Expressing W in terms of H from (1)
H2 = Area / AR
H = SQRT (Die Area / AR)
Width: W = H * AR
Correct I/O pad placement and selection is important for the correct function of any ASIC design.
• For a given ASIC design there are three types of I/O pads. These pads are power,
ground, and signal.
• It is critical to functional operation of an ASIC design to insure that the pads have
adequate power and ground connections and are placed properly in order to eliminate
electromigration and current-switching noise related problems
BOND PADS
Pad placements are of two types.
▪Inline Bonding:
• All pads are of same height.
• Generally used in most of the designs.
• Can be used when design is not pad limited.
▪Staggered Bonding :
• Pads are of different heights.
• Can be used when design is pad limited.
• An area-bump bonded chip (or flip-chip), the chip is turned upside down and solder
bumps connect the pads to the lead frame.
MACRO PLACEMENT
Manual macro placement is a preferred method for memory placement with the help of
• Fly-line analysis
• Data flow diagram
• Grouping (Macro Grouping, logic hierarchy)
Though we have Auto-placement option also available on tool .We can use it for initial memory
placement when number of macros are huge and can refine it later.
• Fly-line analysis:
By enabling Fly lines during macro placement, with the help of GUI, we can check and analyze how
various modules/standard cells and IO's are communicating to each other.
• Grouping
in GUI under hierarchy tab we can get all necessary information required to know before memory
placement by highlighting different modules with different colors for different depths.
Here available metal layers are, only effective routing layers. usually vertical layers after excluding
M1,since it is dedicated for standard cells.
Qualifying floorplan:
Level Shifter:
▪ Purpose of this cell is to shift the voltage from low to high as well as high to low. Generally buffer
type and Latch type level shifters are available
• There are 2 types of isolation cells (a) Retain “0′′ (b) Retain “1
▪ Retention Flops:
• These cells are special flops with multiple power supply. They are typically used as a
shadow register to retain its value even if the block in which its residing is shut-down. All
the paths leading to this register need to be ‘always_on’ and hence special care must be
taken to synthesize/place/route them.
▪ AON cells:
• Generally these are buffers, that remains always powered irrespective of where they
are placed.
• They can be either special cells or regular buffers. If special cells are used, they have
their own secondary power supply and hence can be placed any where in the design. And
when regular buffers are used they are placed such that they gets regular power supply.
for e.g. placing them inside always on voltage island.
Voltage Island
Blockage guides the tool for the placement of different kind of cells in different regions of the design,
based on the type of blockage.
Types: Hard, Soft, Partial, Placement, Routing, Halos, Keep-Out regions
Hard Blockage: is the kind of blockage which strictly don't allow placement of any kind of standard-
cell/buffer or inverter inside the hard blockage.
=>Usually used in highly congested regions to prevent congestion.
=> it will cause abrupt increase in the utilisation factor. So needs to make its use only on the critical
basis or when we have enough margin.
Soft Blockage: allows only buffers and inverters to get placed. It does not impact total utilization of
design.
Partial Blockage: Based on the blockage factor, we can guide tool to control the placement of
standard cells for particular module in specific locations. It is a best method to control cell density
Congestion. With the help of blockage factor we can provide the percentage factor by which we want
to control the std cell placement.
Placement Blockage:
A placement blockage is an area that cells must avoid during placement, optimization and
legalization, including overlapping any part of the placement blockage. A placement blockage can be
hard or soft.
•A hard blockage prevents cells from being placed in the blockage area.
•A soft blockage restricts the coarse placer from putting cells in the blockage area, but optimization
and legalization can place cells in a soft blockage area.
If you define both hard and soft placement blockages in a block, the hard placement blockages take
priority over the soft placement blockages in places where they overlap.
Routing Blockage:
Routing blockages blocks routing resources on one or more layers. It can be created at any point in
the design. A routing blockage defines a region where routing is not allowed on specific layers. Zroute
considers routing blockages to be as hard constraints.
• Abhishek Nair
• VLSI Blogger
Blog Archive
• ▼ 2019 (9)
o ▼ March (3)
▪ RC Variation
▪ Extraction
▪ Routing
o ► February (1)
o ► January (5)
Ethereal theme. Powered by Blogger.