Uploaded by sivasuryam0000

Netlist to GDSII flow new

advertisement
PHYSICAL DESIGN
(GATE LEVEL NETLIST TO GDSII)
WHAT IS SYNTHESIS? & GOALS OF SYNTHESIS
Synthesis: It is the process of converting RTL code to Gate Level Netlist
Synthesis is process of converting RTL (Synthesizable Verilog code) to technology specific
gate level netlist (includes nets, sequential and combinational cells and their connectivity).
Goal of synthesis:
1. To get a gate level netlist
2. Inserting clock gates
3. Logic Optimization
4. Inserting DFT (Design for Testability)
5. Logic Equivalence Check B/W RTL to Netlist should be maintained
SYNTHESIS INPUTS
INPUTS FOR SYNTHESIS
1. RTL(.V)
2. LIBRARAY LIFES(.LIB)
3. SYNOPSYS DESIGN CONSTRAINTS (.SDC)
4. UNIFIED POWER FORMAT (UPF)
5. SCAN CONFIGURATION FILE
6. TECHNOLOGY FILE(.TF )
INPUT FILES REQUIRED
Tech related:
1.
.tf- technology related information.
2.
.lib-timing info of standard cell & macros
Design related:
1.
.v- RTL code.
2.
SDC- Timing constraints.
3.
UPF- power intent of the design.
4.
Scan config- Scan related info like scan chain length, scan IO, which flops are to be considered in the scan
chains.
For Physical aware:
1.
RC co-efficient file (tluplus).
2.
LEF/FRAM- abstract view of the cell.
3.
Floorplan DEF- locations of IO ports and macros.
SYNTHESIS FLOW STEPS
1)Analyze
Checks syntax on RTL and generates immediate files.
SYNTHESIS FLOW
2)Elaborate
1.
Brings all lower level blocks into synthesis tool.
2.
All the codes and arithmetic operators are converted into GTECH and DW (Design Ware)
components. These are technology independent libraries.
I.
GTECH- contains basic logic gates &flops.
II.
Design Ware- contains complex cells like FIFO, counters.muxs
Elaborate performs following tasks;
Analyses design hierarchy. Removes empty switches and dead branches. Executes initial commands.
Detects asynchronous reset. Converts decision trees to mux. Converts synchronous to D Latch/DFF.
FSM pass
1.
Detects FSM logic and extracts the no of input, output bits and state bits.
2.
Converts FSM logic to basic logic.
SYNTHESIS FLOW
Memory pass
Merging DFF to memory write(memwr) and memory read (memrd)
Consolidating memwr/memrd cells
Generate memory (mem) cells
Mapping mem cells to basic logic
3)Import constraints and UPF
1. Once the design is extracted in the form of technology independent cells, timing constraints are
imported from the SDC file.
2. If the design consists of multiple power domains, then using the UPF power domains, isolation
cells, level shifters, power switches, retention flops are placed.
4.CLOCK GATING
 Due to high switching activity of clock ,a lot of dynamic power is consumed. One of the techniques to lower
the dynamic power is clock gating. In load enabled flops, the output of the flops switches only when the
enable is on. But clock switches continuously, increasing the dynamic power consumption.
 By converting load enable circuits to clock gating circuit, dynamic power can be reduced. Normal clock
gating circuit consists of an AND gate in the clock path with one input as enable. But when enable becomes
one in between positive level of the clock a glitch is obtained
SYNTHESIS FLOW
1.To remove the glitches due to AND gate, integrated clock gate is used. It has a negative level
sensitive latch and an AND gate.
2.Clock gating makes design more complex. Timing and CG timing closure becomes complex. Clock gating
adds more gates to the design. Hence min bit width (minimum register bit width to be clock gated) should be
wisely chosen, because the overall dynamic power consumption may increase.
SYNTHESIS
5)Compile
 Performs Boolean optimization.
 Maps all the cells to technology libraries.
 Performs logic and design optimization.
SYNTHESIS FLOW
Optimization
Logic optimization
Design optimization
1. Detect identical cells
1.Reduce TNS and WNS
2. Optimize mux(dead branches in mux)
2.Power Optimization
3. consolidate mux and reduce inputs(many to single )
3. Area Optimization
4. Remove DFF with constant value
4.Meet the timing DRV’s
5. Reduce word size of the cells
5. incremental clock gating
6.
Remove unused cells and wires
7.
Constant folding
SYNTHESIS
7)DFT (Design for Testing) insertion
1. DFT circuits are used for testing each and every node in the design.
2. More the numbers of nodes that can be tested with some targeted pattern, more is the coverage.
3. To get more coverage the design needs to be more controllable and observable.
4. For the design to be more controllable we need more control points (mux through which alternate
path is provided to propagate pattern).
5. For the design to be more observable we need more observe point (A scan-able flop that
observes the value at that node).
6. Scan mode is used to test stuck at faults and anufactured devices for delay.
SYNTHESIS
7)DFT (Design for Testing) insertion
Scan mode is done using scan chains
1. Scan chains are part of scan based designs to propagate the test data.
2. By having scan chains, the design can be more controlable and observable.
3. Each scan chain inputs the pattern through scan input and outputs the pattern through scan
output.
4. Scan chain consists of scan flops where the output of scanflops is directly connected to scan inputs
of the flops
SYNTHESIS
7)DFT (Design for Testing) insertion
Stages of scan mode
1. Inputs the pattern through scan input port.
2. Scan shift- Scan enable is set to 1. Then inputs the pattern through the scan input, shifts the pattern
through the scan flops and load all the flops with test pattern.
3. Scan capture- Scan enable is set to 0. In one clock cycle the loaded value in the flops propagates
through combinational circuit and reaches the D pin of the next flop.
4. Scan enable is set to 1 and outputs the pattern through scan output port.
SYNTHESIS
1.
The scan chain length and number of scan chains has to be properly chosen, as having more scan
chain length increases the pattern propagation time and having more scan chains increases the
number of scan IO ports.
2.
Scan chain
Compile incremental
1.
Technology mapping of DFT circuit
2.
Optimization of the design
SYNTHESIS OUTPUTS
Outputs of synthesis
1. synthesized netlist
2. Modified constraints (.sdc)
3. Modified UPF
4. Timing reports
5. Scan DEF: Information of scan flops and their connectivity in scan chain
SYNTHESIS CHECKS
1.Check if the RTL and Netlist are logically equivalent (LEC)
2.Check if SDC and UPF are generated after synthesis and also check their completeness.
3.Checks Timing - Command: check_timing
4. Checks Design - Command: check_design
SYNTHESIS CHECKS
• SDC Checks: ICC command: check_timing
1. If any unconstrained paths exist in the design then PNR tool will not optimize that path, so these checks are used to report unconstrained
paths
2.
Checks whether the clock is reaching to all the clock pin of the flip-flop.
3.
Check if multiple clock are driving same registers
4.
Check unconstrained endpoints
5.
Port missing input/output delay.
6.
Port missing slew/load constraints.
You can correct unconstrained paths by adding new constraints using commands such as
create_clock, set_input_delay, and set_output_delay. check_timing
[-overlap_tolerance minimum_distance]
[-override_defaults check_list]
[-include check_list]
[-exclude check_list]
[-multiple_clock]
[-retain]
SYNTHESIS CHECKS
Design checks: ICC command: check_design
Check if current design is consistent or not
It checks the quality of netlist and identifies:
1.
Floating pins
2.
Multidriven nets
3.
Undriven input ports
4.
Unloaded outputs
5.
Unconstrained pins
6.
Pin mismatch counts between an instance and its reference
7.
Tristate buses with non-tristate drivers
8.
Wire loops across hierarchies
TOOLS FOR PNR
SYNOPYSIS TOOL:1. ICC2 (New),
DC compiler (logic synthesis)
2.DC Topo (physical synthesis)
3.Fusion compiler (combo of both)
CADENCE TOOL: 1.RC Compiler (logic synthesis),Genus innoves (Physical synthesis)
OVERVIEW OF PHYSICAL DESIGN FLOW
1.Physical Design is a part in ASIC design flow.
2.It is the process of converting Gate Level Netlist Into Transistor level GDSII layout. Which can
be physically manufacturable with best QOR (Quality of Results ) and without changing the
functionality.
Thus Physical Design flow is also called as Netlist to GDSII Flow.
3.Most Commonly Used Tools presently in the industry for physical design ,
ICC2 From Synopsys
&
Innovus From Cadence.
PNR/NETLIST TO GDSII/PHYSICAL DESIGN FLOW
DESIGN IMPORT
• The first step is Design Import all required Inputs
files for PD
• Like
1.Netlist(.v) ………..given by synthesis people
2.Synopsys Design Constraints (.sdc)……given by
synthesis people
3.Logical /Timing library's (.lib)…... given by vendors
4.Physical Library (.lef)……given by vendors
5.TLU+ files …..given by fabrication people
6.Technology File (.tf)…… given by fabrication people
DESIGN IMPORT
Netlist: Format is .V
1.
It contains Logical connectivity Of all Cell(Std cells, Macros).
2.
It contain List of nets.
3.
In the design for Knowing connectivity by using Fly lines.
SDC :Format is .SDC :
1. CLOCK DEFINITIONS: Create Clock Period.
2. Generated Clock Definitions
3. Input Delay
4. Output Delay
5. I/O delay
6. Max delay
7. Min Delay
DESIGN IMPORT
-------------->Exceptions<------------------------9. Multi cycle path
10. False path
11. Half cycle path
12. Disable timing arcs
13. Case Analysis
Multi cycle path, False path are Exceptions /contraints
DESIGN IMPORT
• Physical libraries: format is .lef:
1. Physical information of std cells,macros,pads.
2. Pin information.
• Define unit tile placement.
• Minimum Width of Resolution.
• Hight of the placement Rows .
• Preferred routing Directions.
• Pitch of the routing tracks.
8. Antenna Rules.
9 Routing Blockages
In physical info height,area,width, are present. and also it contains two views
• 1)Cell View: In this all layout information is present,it is used at the time of tapeout
• 2)FRAM view: is abstract view, it is used at the Place & Route
DESIGN IMPORT
Logical libraries :format is .lib
1. Timing information of Standard cells,Soft macros,Hard macros.
2. functionality information of Standard cells,Soft macros.
3. And design rules like max transition ,max capacitance, max fanout.
4. In timing information Cell delays ,Setup,Hold time are present.
5. Cell delay is Function of input transition and output load.
6. Cell delay is calculated based on lookup tables.
7. Cell delays are calculated by using linear delay models, Non linear delay models,CCS models.
8. functionality is used for Optimization Purpose.
9. And also Contain Power information.
10. And contains Leakage power for Default cell,Leakage Power Density for cell,Default Input voltage , Out put voltage.
DESIGN IMPORT
And PVT contains
------->Cell leakage Power
-------->Internal Power
--------->Rise Transition
----------->fall transition
---------->>Setup rise
----------->setup fall
-------------->Hold rise
------------->Hold fall
----------------->cell rise
---------------->cell fal
-------------------->Pin Capacitance
And it contains A view(sub directory) i.e. LM(Logical Model view)view.
It contains logical libraries
DESIGN IMPORT
Technology file: format is .tf:
1. It contains Name,Number conventions of layer and via
2. It contains Physical,electrical characteristics of layer and via
3. In Physical characteristics Min width,area,height are present.
4. In Electrical characteristics Current Density is present.
5. Units and Precisions of layer and via .
6. Colors and pattern of layer and via .
7. Physical Design rules of layer and via
8. In Physical Design rules Wire to Wire Spacing,Min Width between Layer and via are present.
DESIGN IMPORT
TLU+ files: format is .TLUP:
1. R,C parasitics of metal per unit length.
2. These(R,C parasitics) are used for calculating Net Delays.
3. If TLU+ files are not given then these are getting from .ITF file.
4. For Loading TLU+ files we have load three files .
5. Those are Max Tlu+,Min TLU+,MAP file.
6. MAP file maps the .ITF file and .tf file of the layer and via names
SANITY CHECKS
Before going to floor plan we will do some sanity checks ,so after reading the inputs (Design Import
input files) sanity checks performs to make sure the correctness of the given inputs ,
So to avoid any mistakes and issues for further stage and verify the inputs by these checks
1.Check design –Netlist file command: check_design
2.Check timing -.sdc timing constraints command: check_timing
3.Check library –Connectivity b/w logical and physical librarys consist or not command: check_library
This command shows the name of the library, library type & its version, units of time, capacitance, leakage power, and
current.
It shows the number of cells missing, the number of metal or pins missing in the physical and logical library
4.Design Data –Import Design feeding the all required inputs
FLOOR PLANNING
 Before going to FP ,we have to estimate the die size, After Estimating the Die size for floorplan, first will placed the IO ports /Pins a as per the
information given by the full chip engineer. Then we have to analyze by using fly lines.
WHAT IS FLOOR PLAN ?
Primary aim of the FP, is place the macros into the core area towards the
boundary. with sufficient area available for standard cells and routing.
standard cell row:
The area allotted for the standard cells on the core is divided into
rows where standard cells are placed.
The height of the row is equal to the height of the standard cell and width
varies. The height varies according to multiple standard cell row height.
there may be double-height cells, triple-height cells, etc.
The standard cells will sit in the row with proper orientation
GOALS OF FLOORPLAN
FLOOR PLAN INPUTS
FLOOR PLAN STEPS
1. Decide core width and height for die size estimation.
2.IO pad sites are created for placement of IO pad placement.
3.Placement of macros.
4.The standard cell rows created for standard cell placement.
5. Power planning (pre routing)
6.Adding physical only cells
• apart from this aspect ratio of the core, utilization of core area, cell orientation, and core to IO
clearance are also taken care of during the floorplan stages.
FLOORPLAN CONTROL PARAMETER:
• core area depends upon :
• 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.
•
(macros area + std cell area +pads area)
Core utilization : ================================
•
total core area
• : Ex: check: Initialize_floorplan –side_ratio {2 2} –core_offset {10}
MACRO PLACEMENT GUIDELINES(MPG)
Macros may be memories, analog blocks. Proper placement of macros has a great impact on the quality and performance
of the ASIC design. Macro placement can be manual or automatic.
 placing the macros are near to boundary for easily communicate with other blocks of macros through IO pins
 place similar macros together
 avoid criss cross connections
 pin direction towards the core
 provide the enough space around the macro for IO routing
 fix the macro locations , so that tool wont alter during optimization
 apply the keep out margin around the macro because cells disturb the macro.
 macro orientation is 180 degrees .for
(No of pins to be routed * pitch of the routing layer *2 )
 Spacing between macros = ------------------------------------------------------------------------Available routing layers in the preferred direction
MACRO PLACEMENT GUIDELINES(MPG)
Avoid notch formation
 Notch are is not utilized effectively, so it will increase the placement density of the core and will
rise the congestion
CONGESTION: means available resources are lesser than the required resources.
Reasons for Congestion.
 High standard cell density in small area,
 Placement of standard cells near macros,
 High pin density at the edge of macros
 Bad floorplan
 During IO optimization tool does buffering, so lot of cells placed in the core area.
HOW TO CONTROL THE CONGESTION
High cell density can cause the congestion.by default the cell density can be up to 95%.
We can reduce the cell density in congested areas by using coordinate option
 check: Set_congestion_options –max_util 0.45 –coordinate {x1 y1 x2 y2}
Here we set the maximum cell density up to 45% and given the coordinates for the particular area.
BLOCKAGES
 Blockages can be used for avoiding congestion
Two types of blockages:
1. placement blockage: check: Create _placement_blockage -type …
2
.Routing blockage :check: Create_routing_blockage –type..
placement blockage again can be divided into 3 types
1.Hard ,2.soft And,partial blockage
1.Hard blockage : No std cells are allowed
2.Soft blockage : only inverters /buffers are allowed and std cells are not allowed
3.Partial blockage
only std cells are allowed
partial std cell blockage is used to avoid congestion
we can block the std cells as per the required percentage value.
MACRO PLACEMENT GUIDELINES
 Placement of macros are the based on the fly-lines ( its shows the connectivity b/w macro to macro and macro to pins)
so we can minimize / reduce the interconnect length between IO pins and other cells.
fly lines: macros are placed manually using fly lines. fly lines are a virtual connection between macros and
macros to IO pads. , fly lines are of two types
1.macros to IO pin:
2. macros to macros fly lines
 Avoids notches while placing macros, if anywhere notches is present then use hard blockages in that area
Between two macros at least one pair of power straps (power and Ground) should be present.
• Note: lots of iterations happen to get optimum floorplan. the designer takes care of the design parameter such
as power, area, timing and performance during floor planning.
HALO/KEEP KEEP-OUT MARGIN MPG:
 The region around the four sides of macros, so no standard cells will not sit near to Macro pins. This
technique avoids the congestion. Check:Create_keepout_margin –outer {10 10 10 10} my_lib_macro
 This is the region around the fixed macros so that no other macros and standard cell can be placed
near to macros boundary
 The width of the keep out margin on each side of the fixed cell can be the same or different
depending on how you define keep out margin.
 keeping the placement of cells out of such regions avoids congestion and produce better QOR
 Halo of two adjacent macros can be overlap.
 If the macros moved from one place to another place, the halo will also move.
TYPES OF FLOORPLAN TECHNIQUES
2 Types of Floor Plan Techniques
1. Abutted:- When the chip is divided into blocks in the
abutted design there is no gap between the blocks.
2.Non abutted:- In this design there is a gap between blocks.
The connection between the blocks is done through the
routing nets.
OUTPUTS OF FLOORPLAN
1. Die/Block area
2. I/O pad/placed
3. Macro placed
4. Power grid design
5. Power pre-routing
6. Standard cell placement areas.
POWER PLANING
Power planning means to provide power to the every macros, standard
cells, and all other cells are present in the design.
 Power planning is also called Pre-routing as the Power Network
Synthesis (PNS) is done before actual signal routing and clock
routing.
Power ring is designed around the core.
Power rings contains both VDD and VSS rings.
 power mesh is nothing but horizontal and vertical lines on the chip.
 Objective of power planning is to meet IR drop budget.
POWER PLANING
LEVELS OF POWER DISTRIBUTION
1. Power Rings: Carries VDD and VSs around the chip
2. Power Straps: Carries VDD and VSS from rings across the chip
3. Power Rails: Connect VDD and VSS to the standard cells.
4.Trunks :Connects Ring to Power Pad
INPUTS FOR POWER PLANNING
1. Netlist(.v)
2. SDC
3. physical and logical libraries (.lef & .lib)
4. TLU+
5. UPF
6. Power rings and power straps width..
7. Power budget.
8. Spacing between the VDD and VSS straps.
METAL LAYERS FOR POWER PLANNING
M1-Metal layer
M8-Metal layer
M2 -Metal layer
M9 -Metal layer….For power
M3 -Metal layer ….For Routing
M10 -Metal layer (AP)
M4 –Metal layer
M11 -Metal layer
M5 –Metal layer
M12 -Metal layer…..For power Planing
M6 –Metal layer
M7 -Metal layer…..For signal and clock Routing………Note: Only for Understandings Purpose
For Higher metal layers used for to avoid the EM and IR Drop.
Electromigration: Movement of molecular transfer of electrons in the metal from one area to another, that
caused by high density electric current flows in the metal. It can creates shorts b/w wires
IR Drop: Reduction in supply voltage ,that occurs power supply networks in IC,due to increasing current
density ,this causes the voltage available at Standard cells to be a lower than the what is desired .
IR=IR(V=IR VOLTAGE DROP)
There are two types of IR drop
• Static IR drop
• Dynamic IR drop
Static IR drop:
• This drop is independent of cell switching
Dynamic IR drop :
. This drop is calculated with the help of the switching of cells.
Methods to improve static IR drop
Methods to improve dynamic IR drop
1.
We can go for higher layers if available
1.Use de-cap cells
2.
Increase the width of the straps.
2. Increase the number of straps
3. Increase the number of wires.
4. Check if any via is missing then add more via.
ELECTROMIGRATION
Methods to solve EM:
1.Increase the width of wire
2.Buffer insertion
3.Downsize the driver
4.Switch the net to higher metal layers.
5.Adding more vias
6.Keep the wire length short
LOW POWER DESIGN
Power Dissipations :
Static (During stable condition)
1.
Leakage current /Sub-threshold current
2.
Gate oxide leakage current
Dynamic ( During Switching activity)
1.
Switching power dissipation
2.
Short Circuit (SC) Power Dissipation
Low power Design Cells
1. Level shifters
2. power switches
3. Isolation cell
4. Retention registers /cells These are Used in Power Management Techniques
POWER MANAGEMENT TECHNIQUES
1.Clock Gating Method: (Place the ICG (integrated clk gate cells )) it makes particular ckt. is active
2.Multi Vth Design: (LVT & HVT cells)
3.Multi voltage Design: (when 2 dffnt. Voltage domains contains in chip we will use Level Shifters)
4.Power Gating Method: It is similar to Clock gating
power switches : It makes to always turned on in specific time)
Isolation cells: It ll work isolate nets b/w gated domain and always on block ,means it will be
clamped either 0 or 1
Retentions cells:If gated domain off state ,system consist of flip-flops we will lose the data we need to
retain the data so we will be use this cells
OUTPUT OF POWER PLANNING /CHECKS
Outputs:
1. Design with power structure.
2. Floorplan with synthesized power mesh.
Checks:
1. check_pg_missing_vias
2. check_pg_drc
3. check_pg_connectivity
4. (Report_power)
5. (Analyze_powerplan…)
6. (Check_design –checks pre_placement_stage)
PHYSICAL ONLY CELLS
These are Typically invented for chip finishing
(Tie Cells (these are used for preventing damage of cells) not a pre-placed cells
Pre-placed cells
1.EndCap cells (Before placing the standard cells )
These are added to end of the cells rows and around the boundaries (core area,macro,blockages ,voltage area and corner cells)
2.Well tap cells ( To avoid the latch-up: low impedance path gets formed between VDD and GND terminal and there is direct current flow
from VDD to GND)
To reduce the resistance values tap the N well to VDD and P substrate VSS
3.Decap cells (To avoid the dynamic IR Drop)
It will provide instantaneous current to driveres to reduce IR drop
4.Filler Cells (after placement ,to cover the any gab )
We can fill empty space in the standard cells rows and it will provide continuity in the rows for VDD and VSS Nets
5.Spare cells ( after Routing any violations appear. It is reducing time & cost )
PLACEMENT
 placement is the process of finding the suitable physical location for each standard cell in the
design
standard cells are placed on placement tracks with automatically at placement stage
Steps:
1. Pre Placement
2. Initial Placement / Course Placement / Global Placement
3. Legalization
4. HFNS (High Fanout Net Synthesis)
5. Iteration for Congestion, Timing, DRV, and Power Optimization
6. Timing optimization iterations
7. Scan-Chain Reorder
PLACEMENT
Goals of Placement:
1. Timing,area,and power optimization
2 . Routable Design
3 . Min.cell density ,pin density (Reduce the congestion due to cells and pins)
4. Minimum timing DRC’s
Inputs To Placement Stage:
1. Netlist
2. Mapped and Floor planed Design
3. Logical and Physical Libraries
4. Design Constraints
PLACEMENT STAGES
1. Pre Placement:
 Before starting the actual placement of the standard
cells present in the synthesized netlist, we need to
place various physical only cells like end-cap cells,
well-tap cells, IO buffers, antenna diodes, and
spare cells
 Once the pre Placement stage has been
completed, We can start the placement of standard
cells
 but before that, we have to provide all the correct
placement and optimization settings that we want to
be applied while the tool does the placement and
optimization.
PLACEMENT STAGES
2.Global placement/Coarse placement:
 The std cells can be placed into the core region
 cells are overlapped , cells does not have legalized
locations
 it is rough placement
3 Legalization :
 The global placement stage, the instances are left with
overlap. In this step, the tool will move the instances in nearby
places to overcome the overlap. To match the proper power
pins like the VDD pin of a standard cell should be on the VDD
rail and VSS on VSS rail and for that if the flipping of instance
is required tool also do the flipping. This process is called
legalization.
PLACEMENT
4.( high fan out net synthesis :
Initially, there are some nets which have very high numbers of fanout.
We have a constraint of maximum fanout, so we need to distribute the sinks on nets
to different drivers.
The process of adding buffers and splitting the fanout is called high fanout net
synthesis (HFNS). So In this step, all high fanout nets get synthesize
 The buffering of high fan out nets to balance the load.
If you are not balance the load , transition time and delay is more
PLACEMENT STAGES
5.Iteration (the repetition of a process):for Congestion, Timing, DRV, and Power Optimization:
 In this step tool first, do an early global route and estimate the routing overflow/congestions in the design.
 The tool tries to initially minimize the congestion in this stage.
 Next, the tool starts the RC extraction to calculate the delay for setup analysis.
 The tool tries to minimize the setup WNS(Worst –Ve Slack) and TNS(Total –Ve Sack) in this step.
 Similarly, the tool also tries to minimize the DRV and Power in this stage.
6.Timing optimization iterations:
 This is a long step in which the tool tries to minimize the WNS and TNS of each path group in various iterations .
 There are several iterations required to get a minimum WNS and TNS depending upon the effort set and initial WNS number .
 In case the result is not good after this stage,
 we can further run incremental optimization for timing. Similarly, for congestion,
 we can run congestion repair followed by incremental optimization to get a better result. But these additional steps will increase the run
time
7.Scan chain reordering
This is nothing but scan-chain reordering.
 Scan-chain reordering helps to Reduce congestion and Total wire-length
Before
After
PLACEMENT
1.Placement Can be Done as
1.Timing Driven: Tool tries to place the standard cells along timing critical path close together to reduce net RC and meet setup timing.
check: create_placement -timing
2.Congestion Driven: when path for routability, Tool tries to spread the cells where the density of cells are more for the reduction of congestion.
Check: create_placement -congestion
3.Power Driven: In a library contains multiple-threshold- voltage cells,
 The LVT cells have higher leakage current but better performance.
 The HVT cells have lower leakage current but worst performance.
 Percentage low threshold voltage optimization tries to find a balance between power and performance goals restricted the
use of LVT cells.
 During low power placement, the tool tries to minimize the length of high switching nets to improve the power QOR.
 During Dynamic power-driven placement, the tool tries to improve both the timing and power of the critical nets and
the power QOR without affecting the timing QOR.
PLACEMENT BOUNDS
 It is a constraint , that controls the placement of groups of leaf cells and hierarchical cells.
 When our timing is critical during placement then we create bounds in that area where two
communicating cells are sitting far from another
 By using the bounds ,we can place the same group the cells into a bound.
 The wire length can be reduced
 It can be used for avoiding the congestion also.
Types of bounds
i)Hard bound (In this tool must place the cells in the move bound within a specified region.)
ii)Soft bound (In this tool tries to place the cells in the move bound within a specified region, however,
there is no guarantee that the cells are placed inside the bounds.)
iii)Exclusive bound:(In this tool tries to place the cells in the group bound within a floating region,
however, there is no guarantee that the cells are placed inside the bound)
OUTPUTS OF PLACEMENT & CHECKS
Outputs:
1.
Physical Layout Information
2.
Cell placement location
3.
Physical Layout Timing and Technology information of logical librarys
Checks:
1.
Check legalization command: Check_legality and report_congestion
2.
Check PG connections for all the cells.
3.
Check congestion, density screens & pin density maps all these should be under control
4.
Timing QOR, there should not be any high WNS violations.
5.
Minimum max Tran and max cap violations.
6.
Check whether all don’t touch cells & nets are preserved.
7.
Check the total utilization of design after placement
PLACEMENT STEPS PRACTICAL
• Create_placement – will perform coarse placement of std. cells in core area
• Legalise_placement – will place std. cells in their appropriate std. cell rows
• ‘Place_opt’ – This command will follow through a order of steps and places the std. cells in their
respective rows and attempts to legalise them as well as optimising the timing
• By default place_opt runs through 5 stages:
• 1. initial_place
• 2. initial_drc
• 3. initial_opto
• 4. final_place
• 5. final_opto
PRE -CTS OPTIMIZATION PLACEMENT OPTIMIZATION
Cell Sizing
Sized up/ down to meet optimizing for timing and area
Up sizing will give timing advantage and Down sizing will give area advantage
VT Swapping
To optimize for leakage power (HVT, RVT, LVT)
Cloning
Is to distribute the load , To reduce fan out
Buffering
Long nets are buffered or remove buffers to bring the timing advantage
Logical Restructuring
To optimize timing and area without changing the functionality of the design
Breaking complex cells into simpler cells or vice versa
Pin Swapping
PRE CTS OPTIMIZATION
Set Non-Default Rule (NDR): Clock nets are very sensitive and impacts timing if it changes a
little.
 NDRs make the Clock Routes less sensitive to Crosstalk or EM effects
 Double/ Triple Width for avoiding Electro migration
 Double/ Triple Spacing for avoiding Crosstalk
 NDRs will improve Insertion Delay
Set the target skew and target latency
(Ex: set_clock_tree_options –clocks [get_clocks {clk}] –target_latency 0.450 –target_skew 0.150
Check legality : (check_legality)
BEFORE GOING TO CTS CHECKS
 It should meet the following requirements:
 The clock source are identified with the create clock or create_generated_clock commands.
 The placement of standard cells and optimization is done. {NOTE: use check_legality –verbose
command to verify that the placement is legalized. If cells are not legalize the qor is not good and it
might have long run time during CTS stage}
 Power ground nets- pre-routed
 Congestion- acceptable
 Timing – acceptable
 Estimated max Tran/cap – no violations
 High fan-out nets such as scan enable, reset are synthesized with buffers.
CLOCK TREE SYNTHESIS (CTS)
 Clock is not propagated before CTS so after clock tree build in CTS stage we consider hold timings and
try to meet all hold violations..
 CTS is the process of connecting the clocks to all clock pin of sequential circuits by using
inverters/buffers in order to balance the skew and to minimize the insertion delay. All the clock pins
are driven by a single clock source. Clock balancing is important for meeting all the design constraints
 . Effect of CTS: Clock buffers are added congestion may increase non-clock cells may have been
moved to less ideal locations can introduce timing and tran/cap violations

before the clock tree is not build
CTS structure after clock tree build
CLOCK TREE SYNTHESIS (CTS)
CTS Quality Checks:
 Minimize Insertion Delay.
 Skew Balancing
 Duty Cycle
 Pulse Width
 Clock Tree power consumption
 Signal Integrity and Crosstalk
INPUTS REQUIRED FOR CTS:
1.Placement DB : (Netlist, DEF, LIB, LEF, SDC, UPF )
2. CTS Spec File:
 Target latency and skew if specify (SDC)
 Buffer or inverters for building / balance the clock tree
 The source of clock and all the sinks where the clock is going to feed (all sink pins).
 Clock tree DRC (max Tran, max cap, max fan-out, max no. of buffer levels)
 NDR (Nondefault routing) rules (because clock nets are more prone to cross-talk effect)
 Routing metal layers info. VIA's information used for clocks
CTS TARGET & CTS GOAL:
CTS target:
• To make Skew Zero. For this we this reason we will need to synthesize the clock tree
• To Balance Insertion Delay
CTS goal:
• Max Tran
• Max cap
• Max fan-out
• A buffer tree is built to balance the loads and minimize skew, there are levels of buffer in the clock tree
between the clock source and clock sinks.
• To fix the setup and after CTS you should meet all the Hold Violations
CLOCK TREE SYNTHESIS (CTS)
If clock is divided then separate skew analysis is necessary.
Skew: This phenomenon in synchronous circuits. .
The Difference in arrival of clock at two consecutive pins of a sequential element..
Global skew: the difference between max insertion delay and the min insertion delay
Local skew : Difference in arrival of clock at two consecutive pins of sequential element.
it can be positive and negative local skew also
Useful skew: If the clock is skewed intentionally to resolve setup violations
Positive skew: if the capture clock comes late than the launch clock.
Negative skew: if the capture clock comes early than the launch clock.
Zero skew: when the capture clock and launch clock arrives at the same time. (ideally, it is not possible)
CLOCK TREE SYNTHESIS (CTS)
Insertion delay: Time taken to reach clk source to leaf point is called
Latency: The delay difference from the clock generation point to the clock endpoints.
ON-CHIP CLOCK SOURCE
There are two types of latency:
Source latency: Source latency is also called insertion delay. The delay from the clock source to the
clock definition points. Source latency could represent either on-chip or off-chip latency.
Network latency: The delay from the clock definition points (create_clock) to the flip-flop clock pins
CLOCK TREE SYNTHESIS (CTS)
Advantages of the low Latency:
 Less buffer, hence less power consumption. As we know clock paths are the heaviest power dissipated path.
 Cell area reduction as less buffer in the clock path.
 Less runtime since less buffer need to be inserted in the design, which saves optimization as well
Duty Cycle : The on time and off time totally depends upon the rise transition and fall transition.
Due to transition differences, duty cycle changes and hence the calculation becomes bad. Practically, rise and fall
transition are not same.
Pulse Width: If we have variation in rise and fall transition from the input transition of rise and fall, then the
threshold (50%) will go worse. Hence the pulse width will decrease.
If pulse width decreases, then we might lose data which was about to be captured at some time.
CLOCK TREE SYNTHESIS (CTS)
Clock Uncertainty: the difference between the arrivals of clocks at registers in one clock
domain or between domains.
Timing Uncertainty of clock period is set by the command (set_clock_uncertainty ) at the synthesis stage to
reserve some part of the clock period for uncertain factors (like skew, jitter, OCV, CROSS TALK, MARGIN or any
other pessimism) which will occur in PNR stage
Clock uncertainty for setup effectively reduces the available clock period by the specified amount
• Pre CTS uncertainty = clock skew + jitter + margin
• CTS uncertainty = jitter + margin
CLOCK TREE SYNTHESIS (CTS)
• Clock Buffers:
 are designed with some special property like high drive strength and less delay.
 Clock buffers have equal rise and fall time.
 This prevents duty cycle of clock signal from changing when it passes through a chain of clock
buffers.
Normal buffers:
 are designed with W/L ratio such that sum of rise time and fall time is minimum.
 They too are designed for higher drive strength.
CLOCK TREE SYNTHESIS (CTS)
• Clock Tree Exceptions :
 Stop Pin: No buffer/inverter insertion beyond this point (Don't touch scenario)
 Ignore Pin : (Float Pins) No DRV, No Balance
 Exclude Pin : DRV Fixing but no balancing
 Through Pin : DRV Fixing as well as Balancing
 Don’t buffer nets :
 Don’t size cell :
CLOCK TREE SYNTHESIS (CTS)
What is Signal Integrity : The nets routed that even nets are at their track but impacted by the noise from
other nets. This unwanted element is called Signal Integrity
Crosstalk?: Crosstalk is the undesirable electrical interaction between two or more physically adjacent nets due to
capacitive cross-coupling.
Crosstalk noise: During the transition on aggressor net causes a noise bump or glitch on victim net. This noise
is known as crosstalk noise..
Reasons for Crosstalk:
.How To fix Crosstalk Issue
 Increasing number of metal layers,
1. Double spacing=>more spacing=>less capacitance=>less cross talk
 Routing congested Design
2. Multiple vias=>less resistance=>less RC delay
 Thin and long metal layer routed
3. Shielding=> constant cross coupling capacitance =>known value of crosstalk
 Faster waveform due to higher frequencies- 4. Buffer insertion=>boost the victim strength
 Low voltage design
CTS(CLOCK TREE SYNTHESIS
Types of Clock Trees:
1.
1.
H-Tree
2.
Balanced Fanout Clock Tree
3.
Binary Clock Tree
4.
Mesh tree
5.
Fish-bone tree 2. Balanced Fanout TREE
6.
X-tree
3. Binary Clock Tree
4. X-tree
Outputs: Database with properly build clock tree in the design
Checks:
1)report_timing -delay_type min
2)report_timing -delay_type max
3)report_clock -skew
Clock tree synthesis is performed using command clock_opt. Here clock tree is built keeping in
mind skew and hold time .
Clock_opt undergoes 3 stages by default i.e
1.
build_clock
2.
route_clock
3.
final_opto
ROUTING
Before going to routing we need to check
1.Target skew ,Target Latency should be met in CTS stage
2.We Should check Setup and Hold Violations met or not
3.DRV (Design Rule Violations)
4.No of Clock buffers and Inverters added should be in control
ROUTING
• Routing: creating physical connection to all logical connection present in the design with the help of
metal layers is known as routing
Objectives
 minimize the total wire length
 minimize the vias
 Routed paths must meet setup and hold timing margin
 minimizing the congestion hotspots.
 Complete the connections with out increasing the total area of the block.
 Reduction in cross talk noise.
 meeting the timing DRC’s and obtaining a good timing QOR
 minimize the critical path delay
ROUTING CONSTRAINTS
 setting the maximum length for the routing wires
 Blocking routing in specific regions
 set straighten guidelines for minimum width and minimum spacing.
 set preferred routing directions to specific metal layers during routing
 constraining the routing density
ROUTING FLOW
1.Global routing
 Does not consider DRC rules ,which gives an overall view of routing and congested nets.
 Assign layers to the nets
 Avoid congested areas and long detours.
 Avoid routing for Blockages
 Avoid routing for pre route nets. such as Rings/stripes/Rails
 Identify and assign the net segments over the specific routable window called Global route
cell(GRC).
ROUTING FLOW
2)Track Assignment
 Assign tracks both Horizontal and vertical direction
 It does not follow the physical DRC rules.
 It will do the timing aware Track assignment.
 It helps in via minimization.
3)Detail Routing
 It performs the complete DRC aware and timing driven routing.
 It is the final routing.
 Detail routing is done after analyze the cause for congestion in the design
TIMING ANALYSIS:
Timing analysis is necessary to calculate the design’s system performance, describes the chips
specification.
Types of timing analysis: Static timing analysis (STA) and Dynamic timing analysis
1.Dynamic timing analysis (DTA) (Gate level Simulation):
A series of vectors over a time are applied during a simulation run, simulation calculates the logic value
and delays over that time. So, in that manner we check the design’s functiality with time. on
TIMING ANALYSIS:
2.Static Timing Analysis:
Static timing analysis is a method of validating the timing performance of a design by checking all
possible paths for timing violations under worst-case conditions.
. So, it validates the design for desired frequency of operation, without checking the functionality
of the design
Dynamic timing
STA COMPARISON DTA
1.
Requires exhaust set of vectors
2.
Checks for both functional and timing problems
3.
Requires more resources (like run time, CPU memory, etc.)
4.
Can work with any type of Logic either synchronous or asynchronous
5.
Slower as compared to STA.
6.
Easy to learn and all corners cases are not covered
Static timing
1.
Doesn't requires any set of vectors.
2.
Checks for timing only.
3.
Requires fewer resources than DTA.
4.
Restricted to synchronous part of the design only.
5.
Faster as compared to DTA.
6.
Difficult to learn
STA( STATIC TIMING ANALYSIS)
What is STA ?:
Static timing analysis is one. of the techniques used to verify the timing of a digital design.
Why Static timing Analysis?
1. To analyze the timing relationships of a given circuit to verify that the circuit works at the specified
frequency (verification).
2. You can’t achieve the clock speed without it.
3. All paths are assumed critical.
4. Process variation across die can be modeled.
5. Constraints and reports are concise and easy to interpret.
6. It can detect other serious problems like glitches, slow paths and clock
INPUT AND OUTPUT FILES OF STA :
INPUTS:
Netlist (.v): The gate level netlist, having circuit description.
Constraints (.sdc): Synopsys Design Constraint file. It contains all the timing related information about the
design. Includes the Clock definition (Created clock, generated clock, Virtual clock), Uncertainty (Jitter, Skew,
Extra margin), IO Delays, False paths, Multi-cycle paths, Max trans, Max fanout, Max cap, Fanout load.
SDF (.sdf): Standard Delay Format File containing back-annotated delays.
OR
Standard Parasitic Exchange Format (.spef): These are the parasitic of the design extracted from physical design
tools.
Liberty File (.lib): The delay model of every cell in the library.
OUTPUTS
Reports: Different timing paths reports, which can be used for debugging.
STATIC TIMING ANALYSIS
STA involves three main steps:
1.
Break the design into sets of timing paths
2.
Calculate the delay of each path
3.
Path delays are checked to see if timing constraints have been met.
But first some Basic STA concepts: Timing Paths:
Each path has a start point and an endpoint
Start points:
Input ports (A, Q)
Clock pins of sequential devices (CLk)
Endpoints:
Output ports (D, Z)
Data input pins of sequential devices (D) by sing these points we can identify the Path
STATIC TIMING ANALYSIS
1. STA TOOL Break the design into sets of timing paths
2.Calculate the propagation Delay along with each path
3.Check for timing violations (depending on the constraints eg: clock) on different paths and also inputs
/outputs interface.
Timing paths:
1.Data path,
2.Clock Path,
3.Clock Gating path.
4.Asynchronous path.
5.Critical path
6.Short path
STATIC TIMING ANALYSIS
1.Data path: We have 4 data paths
1.In to Reg ( Start Point (i/p), End Point (D1 ff )
2.Reg to Reg (start point ( D1 ff of clk) , end point (D2 ff
3.Reg to Out (start point (d2 ff of clk) , end point (o/p 1)
4.In to Out
(start point ( input ) ,end point (output2)
By using these points we can analyze
It timing reports
STATIC TIMING ANALYSIS
2.Clock Path: It is generated from PLL (Phased Lock Loop) In b/w start and end points there may
be lot of buffers and inverters
3.Clock Gating Path:
This is used in may synchronous ckts
For Reducing the dynamic power dissipation
STATIC TIMING ANALYSIS
4. Asynchronous Path:
1. A path from an input port to an asynchronous set or clear pin of a sequential element
2. We know that the functionality of set/reset pin is independent from the clock.
3.
Its level triggered pins and can start functioning at any time of data. We can say that this path is not in
synchronous with the rest of the circuit and so such type of path is called Asynchronous path.
STATIC TIMING ANALYSIS
 In a STA ,the entire chip we are dividing into 4 paths because ,analyze better way and we can debug it easily
Suppose we have any violations internally in those paths(In to reg ,reg to reg ,reg to out and In to out) ,we can fix
and close the block. By using Setup and Hold Timing Violations:
Some basic Definitions:
: Is a signal that oscillates between high and low logic. Clock controls timing in
the design there can be multiple clocks in the design.
1. Clock
2. Setup Time: the amount of time the Synchronous input (D) data must be stable before the active edge of the
Clock.
3.
Hold Time :The amount of time the synchronous input (D) data must be stable after the active edge of clock.
4. Slack : The difference between arrival time and required time is called slack
STATIC TIMING ANALYSIS
Clock skews (timing skew):
Clock signal in synchronous circuits ,arrives at different components(generally latches or FFs) at different times.
STATIC TIMING ANALYSIS
1. Launch Path
Launch path is launch clock path which is responsible for launching the data at launch flip flop
2. Capture Path
Capture path is capture clock path which is responsible for capturing the data at capture flip flop
3. Arrival Time
Launch path and data path together constitute arrival time of data at the input of capture flip-flop
4. Required Time
Capture clock period and its path delay together constitute required time of data at the input of capture flop
STATIC TIMING ANALYSIS
1. Positive Slack indicates that the design is meeting the timing and still it can be improved.
2. Zero slack means that the design is critically working at the desired frequency.
3. Negative slack means , design has not achieved the specified timings at the specified frequency.
4. Slack has to be positive always and negative slack in
STATIC TIMING ANALYSIS
There are 3 basic paths where the Set-up/Hold violations may occur:
inputs-to-register path -- actually if there is any violation in this path then first you have to see the
"set_input_delay" setting. By changing the value you can fix this path. setup and hold can be fixed by
constraining input delay and clock period
register-to-outputs path -- same with this case.. yo can do concentrate on set_output_delay setting.
So basically these 2 can be managed by timing budgetting of a particular block. if you want to fix
these inside the block, you can also use buffer/delay inside the block, else add these delay and all
outside the block. And for the block the effective value of the delay changes and that can be fixed by
setting different value of set_input_delay/set_out_put delay.
register-to-register path .. all the general ways like delay insertion/swapping/resizing ..etc will be
the part for this path in case there is any violation.
STATIC TIMING ANALYSIS
• Setup Slack: Required time > Arrival time [RT-AT]
Setup Equation: [Tlaunch+Tck2q+Tpd]<[Tcap+Tclk-Tsetup]
• Reasons for violations :
Capture clock comes early than launch clock,
Because of high delay in the data path or When data and clock are routed in opposite direction then it is negative skew.
To Fix The Setup Violations:
1 Reduce the amount of delay in data path, this can be done by reducing the necessary buffers
2.VT swapping, means you swap HVT cell with SVT or LVT cells
[size_cell instancename(present cell) referencename(replacing cell]
3. Buffering:
Use of two inverters in place of buffer ,if a cell is driving an exceptionally long net. considering that the driver cell
already has good driving strength, buffering helps to split the net which in turn reduces the total capacitance. Hence the
data path delay will be reduced, and arrival time reduces. [ insert_buffer netname referencename (buffer)]
4. Readjusting the position of cells
STATIC TIMING ANALYSIS
5.Skewing:
Positive skew is good for setup and negative skew is good for hold
6. Gate Sizing: Upsizing cell
If a low driving strength cell is driving a higher load, it results in higher cell delay.
To fix this, one can upsize the cell which will reduce cell delay and helps to meet the setup time. 3. How upsize will help
for fixing the setup violations?
Upsizing means increasing the drive strength, if drive strength increases the width of the
gate increases, if width increases the resistance reduces, as resistance and delay are directly
proportional to each other if resistance reduces the delay also reduces in this way upsizing
will help in fixing setp violations.
7. Cloning:
Cloning refers to creating the same driver cell with the same functionality and giving it the same inputs as the original
cell.
If gate sizing and buffering are not possible, then cloning can be helpful as this will split the load between the original
cell and the newly cloned cell
STATIC TIMING ANALYSIS
Hold Slack check= Required time < Arrival time [AT-RT]
Hold Equation : :[Tlaunch+Tck2q+Tpd]>[Tcap+Thold]
Reasons for Hold Violations :
If capture clock comes late than launch clock then it is called +ve skew
If data comes early or due to positive skew.
When data and clock are routed in same direction then it is Positive skew.
It is possible to have a flip flop with 0 hold time or negative hold time.
For example, if the hold time is -3 ns then it complies that we should not have any change in the input
data before 3ns of the clock event trigger
Minimum Time Period (T minimum) or Maximum clock operating frequency (F maximum)
1.
To decide the speed of a chip design clock cycle frequency is the main parameter.
2.
We all want a high-speed chip or processor which means the clock frequency must be as high as possible.
3.
But we also know that clock frequency is inversely proportional to clock time period. So here we will have to constrain
on the minimum time period to be decided.
STATIC TIMING ANALYSIS
• To Fix Hold Time Violations:
1.
Vt swapping from LVT to HVT cell
2.
Pushing the launch clock
CLOCK PUSH –INSERT_BUFFER
3.
Pulling the capture clock
CLOCK PULL –REMOVE BUFFER
4.
Inserting Buffer at D pin
5.
Metal width decreases
6.
Net deteriorate
7.
Using spare cells after BTO (Base Tape Out)
8.
Inserting metal buff's after BTO
9.
Voltage can be reduced.
10. Downsizing the cell
11
Skewing:
• Either we can late skew i.e. increase the clock network delay of launch flop making data to launch late or we can early skew
i.e. reduce the clock network delay of capture flop so that data will be reaching faster at the endpoint.
STATIC TIMING ANALYSIS
• Hold time constraint
•
Thold_time <= Tclock_Q + delay
The hold time must be less than or equals to the sum of the clock to Q delay and other delays such as clock
jitter
• Setup time constraint
Tsetup_time + Tclock_Q + delay <= Tminimum
• Which says the overall sum of flop setup time and clock to Q delay and other delays such as jitter must be
less than or equals to the minimum clock time period.
• Note:
• If a situation comes to have a choice between setup violation fix and hold violation fix after the chip design
is completed and fabricated, then it is a better option to chose hold violation fix.
• The reason is to fix the setup time violation we need to modify Tminimum.
• As we saw above setup time constraint involves clock time period parameter which decides the overall
chip speed which cannot be modified after the chip come from the foundry.
STATIC TIMING ANALYSIS
Delays
Time taken by a signal to propagate through a Cell or Net
1. Gate Delay/Propagation Delay
Amount of delay from the input to the output of a logic gate. It is calculated based on 2 parameters.
Input Transition Time
Output Load Capacitance
2. Net Delay:
Amount of delay from the output of a gate to the input of the next gate in a timing path. It depends on
the following parameters.
Parasitic Capacitance.
Resistance of net
Insertion Delay : The delay between the clock root pin and clock sink pin of the flip flop
STATIC TIMING ANALYSIS
Jitter: Jitter is the variation of the clock period from edge to edge. It can vary +/- jitter value.
OR Variation in period from clock source (PLL)
Critical Path
• The path which creates longest delay
• Also called worst path/ late path/ max. path
Shortest Path
• One that takes the shortest time; this is also called the best path or early path or a min path
STATIC TIMING ANALYSIS
Timing Exceptions: Timing exceptions are nothing but constraints.
Single Cycle Path
 Timing path that is designed to take only one clock cycle for the data to propagate from the start point to the endpoint
 Start point and endpoint are flops clocked by the same clock
 By default tool will consider all timing paths as single cycle paths
Multi-Cycle Path
 Timing path that is designed to take more than one clock cycle for the data to propagate from the start point to the endpoint
 Start point and endpoint are flops clocked by the same clock This is usually a large combinational block between two registers.
Half Cycle Path
 Timing path that is designed to take half clock cycle (both of the clock edges) for the data to propagate from the start point to the endpoint
 Start point and endpoint are flops clocked by the same clock( hold edge of capture flop can be earlier than the hold edge of launch flop)
False Path
 Physically exist in the design but are Logically/ Functionally inactive/ incorrect path
 Means no data is transferred from Start Point to End Point
STATIC TIMING ANALYSIS
Recovery and Removal Time:
• These are timing checks for asynchronous signals similar to the setup and hold checks
• Recovery time: Recovery time is the minimum amount of time required between the release of an asynchronous signal from the active state
to the next active clock edge.
• Removal time: Removal time specifies the minimum amount of time between an active clock edge and the release of an
asynchronous control signal.
Design Rule violations (DRV’s
Maximum Transition Time (Max Tran)
1. Time required by a pin to change logic values ( 0 to1 or 1to 0) is called Transition time
2. the longest time required by a pin to change logic values is called Maximum Transition time.
3. Due to this , large dynamic power dissipation can happen.
4. To reduce the maximum transition time by adding buffers on the net
fixes:
1)replace hvt to lvt
2)replace net length by adding buffers
3)increase driver size
STATIC TIMING ANALYSIS
Design Rule violations (DRV’s
Maximum capacitance (Max Cap.)
1. It is the capacitive load on output pin can drive.
2. the output pin of cell can drive the inter connect capacitance of net and input
capacitance of cell.
3. If large capacitance load is there , it will take more time to charge or discharge.
4. to avoid this ,high drive strength cells are used , then it can drive the more load
capacitance.
fixes:
1)upsize driver cell
2)adding buffer in mid of long route
STATIC TIMING ANALYSIS
• Maximum fan out (Max Fanout)
1. output can drive other inputs without any degradation
2. If load increases ,current will be degraded
3. cloning and load splitting can be used to reduce the fanout
fixes:
1.
Reduce fanout by load splitting by buffering
2.
Cloning :Cloning is a good method to distribute the load and to improve the signal
strength.
STATIC TIMING ANALYSIS
• Min pulse width violation:
1. If we have variation in rise and fall transition from the input transition of
rise and fall, then the threshold (50%) will go worse. Hence the pulse width
will decrease.
2. If pulse width decreases, then we might lose data which was about to be
captured at some time.
STATIC TIMING ANALYSIS
Virtual clock:
1.Virtual clock as the name suggests doesn't exist physically in the design at all, its just used for the specifying
the input / output delay values ( if no clock is existing )
2. Virtual clock can be created same as Create_clock, except that the port/pin name must not be specified !
incase if u have a purely combination path and if u want to specify a
set_input_delay
or
set_output_delay
for that path, then the virtual clock is used
STATIC TIMING ANALYSIS
• Signal Integrity :Signal Integrity is the ability of an electrical signal to carry information reliably
And TO resist the effects of high-frequency electromagnetic interference from nearby signals.
Effects: CrossTalk, EM, Antennae Effects.
CrossTalk:
Crosstalk is the undesirable electrical interaction between two or more physical adjacent nets due to cross coupling capacitance
or
The switching activity in aggressor net overlaps (or) going to affect the victim net
. Crosstalk can lead to crosstalk-induced delay changes or static noise.
• There are two types of crosstalk:
1) crosstalk noise
2) crosstalk delay
Glitch- A glitch is a short-lived fault in a system.
An electrical pulse of short duration that is usually the result of a fault or design error, particularly in a digital circuit
STATIC TIMING ANALYSIS
Crosstalk noise: If one net is switching & another neighbouring net is at constant logic.
If they have mutual capacitance between them, other net may be affected & that net may have a
sudden raising or falling bump or spike.
such a spike on victim net is called crosstalk noise/glitch
STATIC TIMING ANALYSIS
Crosstalk Delay:
It occurs ,when both aggressor & victim nets switching together. which may violate setup time/hold time
violations
How timing will effect with crosstalk delay?
1.When both the nets are switching in the same direction due to crosstalk the delay reduced in the victim due to this we get
hold violations in data path and setup violations in clock path.
2. When both the nets are switching in the opposite direction due to crosstalk the delay increases in the victim due to this we
get setup violations in the data path and hold violations in clock path
STATIC TIMING ANALYSIS
• PVT: PVT is abbreviation for process, Voltage and Temperature. In order to make our chip to work in all possible conditions,
• Process:
• Process variation is the deviation in attributes of transistor during the fabrication.
Process variation is gradual . It can not be abrupt.
Process variation is different for different technologies but is more dominant in lower node technologies (<65nm).
Below are few important factors which can cause process variation;
1.
Wavelength of the UV light
2.
Manufacturing defects
The affects of process variation are listed below;
1.
Oxide thickness variation
2.
Dopant and mobility fluctuation
3.
Transistor width, length etc.
4.
RC Variation
STATIC TIMING ANALYSIS
These variations will cause the parameters like threshold voltage to change its value from expected.
Threshold voltage depends on oxide thickness, source-to-body voltage and implant impurities.
Consider the drain current equation for NMOS;
ID = (1/2)μnCox (W/L)(VGS – VTh)2
As we are talking about process variation, it deals with physical properties of MOSFET. So, current
flowing through the channel directly depends upon mobility (μn), oxide capacitance Cox (and
hence thickness of oxide i.e. tox) and ratio of width to length.
Any of these parameters change, it will result in changing the current. In other words, it will affect
the delay of the circuit. Delay decreases with increase in current.
STATIC TIMING ANALYSIS
Voltage:
There are multiple reasons for voltage variation. These are discussed below.
The important reason for supply voltage fluctuations is IR drop. IR drop is caused by the current flow over
the parasitic resistance of the power grid. IR drop reduces the supply voltage from the required value.
The second important reason for voltage variation is supply noise caused by parasitic inductance in
combination with resistance and capacitance. The current through parasitic inductance causes the voltage
bounce. Both these effects together can not only lead to voltage drops but also voltage overshoot.
Supply voltage that any chip works on is given externally. It can come from DC source or some voltage
regulator. Voltage regulator will not give same voltage over a period of time. It can go above or below the
expected voltage and hence it will cause current to change making the circuit slower or faster than
earlier.
STATIC TIMING ANALYSIS
Temperature:
The temperature variation is with respect to junction and not ambient temperature. The temperature at
the junction inside the chip can vary within a big range and that’s why temperature variation need to
be considered. Figure 3 shows the variation of delay with respect to temperature.
Delay of a cell increases with increase in temperature. But this is not true for all technology nodes.
For deep sub-micron technologies this behavior is contrary.
This phenomenon is called as temperature inversion.
The delay depends on the output capacitance and ID current (directly proportional to Cout and
inversely proportional to ID). When the temperature increases, delay also increases (due to the
variation in carrier concentration and mobility). But when temperature decreases, delay variation
shows different characteristics for submicron technologies. For technology nodes below 65nm, the
delay will increase with decrease in temperature and it will be maximum at -40°C. This phenomena is
known as “temperature inversion”.
STATIC TIMING ANALYSIS
Why Temperature inversion happens?
As temperature increases, mobility and threshold voltage start decreasing. The delay is inversely
proportional to the mobility and directly proportional to the threshold voltage.
So the resultant effect from both mobility and threshold voltage decides the value of delay.
Consider the current equation of a MOSFET for better understanding;
ID = (1/2)μnCox (W/L)(VGS – VTh)2
In the higher technology node, where the supply voltage is very high, the effect of VTh is very low as (VGS
– VTh) value is large. Hence mobility plays major role in deciding current. So at higher technology nodes,
when the temperature increases mobility decreases and as a result the delay will increase.
At the lower technology node (specifically, less than 65nm), the supply voltage is very low, so the (VGS –
VTh) difference is small and the square of this value is very small resulting reduced ID current, which
increases delay at lower temperature. Where at other end above 65nm delay decreases at lower
temperature.
STATIC TIMING ANALYSIS
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
Critical corners for Setup and Hold check
We always check our chip to work in worst scenarios. We should be very pessimistic about setup and hold checks. So consider worst case
scenarios.
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. Also because of temperature inversion at lower technology node, delay will increase as temperature decrease.
Hence lowest temperature results in more delay. It is not compulsory that the delay at lowest temperature is always less than delay at highest
temperature.
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.
STATIC TIMING ANALYSIS
OCV,AOC AND POCV
1.
During fabrication the chips on the same die may suffer from variations due to process, voltage or temperature
change, thus transistors can be faster or slower in different dies.
2.
To compensate the variation, static timing analysis(STA) introduces a concept called On Chip Variation(OCV).
3.
During design time, extra timing margins are added in timing analysis.
4.
OCV has been evolved to Advanced On Chip Variation(AOCV), or even Parametric On Chip Variation(POCV).
5.
On Chip Variation(OCV): This concept is related to fabrication process, these variation related to fabrication steps
first is Etching and second is oxide thickness.
There are two types of variation:
Global Variation: These variations are die to die or inter-chip variation. They depend on Pressure, voltage and
temperature.
Local Variation: These variation are intra-chip variations and local variation are taken by derates, timing derates are
multiplied by cell delays and wire delays to account OCV.
STATIC TIMING ANALYSIS
Etching:
Etching is one of the sources of variation, which is used the define the structure of a transistor. In practical
case the width and length of transistor is different from the expected W and L ratio. The small change for one
transistor will result in big impact on chain of billion of transistor
From the above figure we observe that ideal case is different from practical case.Let
us take W and L in Ideal case . lt is different from W and L in actual case.
Now we will see how this small change in W/L ratio affect the cell delay
As we know the formula of Drain current
STATIC TIMING ANALYSIS
As we know the formula of Drain current
Drain current (ld) = u Cox (W/L) [(Vgs-Vth)Vds-(1/2)VdsA2]
Where u is mobility of charge carriers,Cox is capacitance per unit area, W is width of channel,L is channel length,
Vgs is gate to source voltage, Vth is threshold voltage and Vds is drain to source voltage.
We can observe from drain current equation Id is directly proportional to (W/L),
when we think of a capacitor at the output of an inverter then capacitor charging depends on the
amount of current that is flowing it.
If drain current changes the amount of time taken by capacitor definitely.
If drain current (ld) is high then capacitor takes less amount of time to charge and
hence delay is minimum.
If drain current (ld) is low then capacitor takes huge amount of time to charge and
hence delay is maximum .
Hence we can say that delay decrease with increase in current and vice versa.
STATIC TIMING ANALYSIS
Oxide thickness:
Oxide thickness is another source of variation, In practical case the oxide thickness is not uniform along the
channel.
We know the drain current equation,
Drain current (ld) = uCox(W/L)I(Vgs-Vth)Vds-(1/2)Vds^2].
where Cox=Eox/tox , ld is inversely proportional to tox.
If the value of tox changes the value of drain current is also changes.
Now we will see how delay of cell is related to W/L and tox from formula point of view,
we know that delay of a cell depends on resistance(R) and capacitance(C)and from ohm's law
resistance varies as current changes.
Delay (tpd)=function(R,C)=f(ld)=f(tox,W,L)
STATIC TIMING ANALYSIS
As a result of OCV, some cells may be fast or slow than expected.
If these variations are not accounted, results maybe pessimistic and can lead to setup or hold
violations.
In order to model these, we introduce derates. Timing derates are multiplied with the net delay and
cell delay for the launch and capture clock paths.
STATIC TIMING ANALYSIS
How to calculate timing slack using OCV:
Setup Analysis: While calculating the setup analysis we need to take late derate along the launch path and early derate along the capture path.
Arrival Time:
Arrival time includes addition of cell and wire delays along the launch path.
Arrival Time(AT) = [wire1 delay late derate + clk to q *late derate + wire2 delay late derate inverter delay latederate+wire3 delay late
derate.]
Arrival Time(AT) =[ 0.1*1.1 +0.2*1.1+0.2*1.1+ 3*1.1 +0.4*1.1]
Arrival Time(AT) = 4.29 ns
Required Time:
Required Time(RT) = [Tclk-Tsetup+ [Twire delays'early derate+ Tcell delays'early derate]
RT [2-0.2+[0.3 0.9+2'0.9+0.4 0.9]
Required Time(RT) = 4.23 ns
Setup Slack RT-AT=4.23-4.29= -0.06 ns (-ve slack).Negative slack indicates setup violation
STATIC TIMING ANALYSIS
Hold Analysis: While calculating the hold analysis we need to take early derate along the launch path
and late derate along the capture path.
Arrival Time(AT) = wire1 delay early derate +clk to q early derate + wire2 delay early derate +
inverter delay early derate + wire3 delay *early derate.
Arrival Time(AT) = 0.1*0.9 +0.2*0.9 + 0.2*0.9 +3*0.9 0.4*0.9 3.51 ns
Required Time:
Required Time(RT) = T hold +Twire delays late derate+ T cell delays late derate
Required Time(RT) = 0.1+0.3*1.1+2*1.1 +0.4*1.1 3.07 ns
Hold Slack = AT-RT=3.51-3.07 0.44 ns(+ve slack) which shows hold condition is met
STATIC TIMING ANALYSIS
Without ocv
setup Analysis:
Arrival Time:
Arrival Time(AT) = wire1 + clk toq+ inv delay +wire3
Arrival Time(AT) = 0.1+0.2+0.2+3+0.4 3.9 ns
Required Time:
Required Time(RT) = Tclk-Tsetup + Twire delays + T cell delays
Required Time(RT) 2-0.2+0.3+2+0.4 = 4.5 ns
Setup Slack = RT-AT = 4.5-3.9 0.6 ns(+ve slack)
which shows setup condition is met.
Hold Analysis:
Arrival Time:
Arrival Time(AT) = wire1 + clk to q + inv delay + wire3
Arrival Time(AT) = 0.1+0.2+0.2+3+0.4 3.9 ns
Required Time:
Required Time(RT) = Thold + Twire delays + T cell delays
Required Time(RT) =0.1+0.3+2+0.4 2.8 nsHold Slack = AT-RT = 3.9-2.8 = 1.1 ns(+ve slack)
which shows hold condition is met.
From above two cases we conclude that we should always consider the derates and apply them to avoid timing violations
.
STATIC TIMING ANALYSIS
Advanced On chip Variation(AOCV):
In case of OCV constant derates are applied across the timing path. But in AOCV we multiply cell and wire delays with different
derate factors depending on the distance and depth.
AOCV is represented by a two dimensional table: the derate value of a cell is determined by logic depth and distance.
For smaller path depths OCV gives optimistic results when compared to AOCV. For larger path depths OCV tends to be more
pessimistic than AOCV(AOCV gives accurate values)
Parametric On Chip Variation(POCV):
Below 1Onm technologies AOCV cannot reduce pessimism hence to reduce the pessimism at lower technology nodes POCV
was introduced.
Here cell delay is calculated based on delay variation of cell, delay variation denoted by sigma and delay is denoted by u.
POCV models a cell delay using Gaussian distribution directly, instead of adding a derate value.
Cell delay is calculated from a parameter, which is extracted from either library, or POCV table.
Pocv-here the derates will be based up on the cell type and the special distance.
STATIC TIMING ANALYSIS
Different Modes
Function Mode
Scan Mode
Slowm40
Fastm40
Slow125
Fast125
Fastm40
Fast125
Corners
Slowm40…….(.lib+RC techfile Cmax
Slow125
Fastm40…….(.lib+RC techfile(Cmin|)
Fast125
STATIC TIMING ANALYSIS
Timing eco flow fixing order:
ORDER OF ECO FIXING STEPS
1. Before you attempt ECO fixing, ensure that the design is fully placed and routed, with generated
clock trees, and use physically aware ECO to ensure the best quality of results.
2. The Prime Time ECO commands and command option let the ECO fixing goals.
3. Setup or hold fixing does not degrade DRC (max_capacitance and max_transition) violations,
4. but DRC fixing can degrade setup or hold violations because DRC fixing has the highest priority.
5. Also, hold fixing preserves setup slack, but setup fixing is allowed to introduce some hold
violations, because setup is a harder problem to fix. Therefore,
6.
it is a good idea to fix DRC violations first, then setup violations, and finally hold violations
ECO FLOW
In the Primetime tool, an engineering change order (ECO) is an incremental change in a chip design to
reduce design rule constraint (DRC) violations, timing violations, or power.
The Primetime tool finds these design issues and corrects them by sizing cells, replacing cells, or inserting
buffers, and it writes out the changes in script format so that you can implement the changes in other tools.
The commands to perform ECO fixing are:
1.
fix_eco_drc
2.
fix_eco_timing
3.
fix_eco_power
After ECO fixing is complete, to implement the changes, use the write_changes command to write out the
changes, and run the script in the IC Compiler or IC Compiler II tool. After the changes are implemented,
you should perform parasitic extraction and run timing analysis again in the Primetime tool.
SETTING THE ECO OPTIONS
• Before you run any ECO fixing commands, follow these steps to set the ECO options:
1. Import the design into Primetime by reading the Verilog, SDC, and parasitic data files.
2. Set the timing_save_pin_arrival_and_slack variable to true.
3. Perform a full timing update (update_timing or report_timing).
4. Set the ECO variables that are relevant for your design or analysis conditions
ORDER OF ECO FIXING STEPS
Steps Commands Fixing
Step 3: Fix timing violations
Step1: Power recovery
fix_eco_timing Fixing mechanisms Buffer insertion, cell
fix_eco_powe Fixing mechanisms
Cell sizing, buffer removal sizing Setup fixing honors DRC and alters hold slack if
needed; hold fixing honors setup slack and DRC
Does not introduce new timing or DRC violations
Step 4: Final leakage recovery
Step 2: Fix DRC and noise violations
fix_eco_power Fixing mechanisms Threshold voltage
fix_eco_drc
Fixing mechanisms
Buffer insertion, cell sizing
swapping
Alters setup and hold slacks as needed
Does not introduce new timing or DRC violations; does not
change layout
STATIC TIMING ANALYSIS
• Bottleneck:
• NAME
report_si_bottleneck:
Identify the crosstalk bottlenecks in the design.
This is useful when the major sources of violations come from crosstalk effects.
SYNTAX
int report_si_bottleneck -cost_type type
Removing common clock buffer delay between launch path and capture path is CPPR. (common path pessimism
removal)
CPPR (CLOCK RE-CONVERGENCE PESSIMISM REMOVAL )
1. The delay difference along the common paths of the launching and capturing clock paths is called CRPR.
2. This common path delays are multiplied with different derates (early and late), resulting in different delays.
3.
These cells have max delay in launch path and min delay in capture path.
4. The same cell cannot have different delays at the same time.
5. This results in additional pessimism which has to be removed. Here comes the need for Clock Re-convergence Pessimism Removal
(CRPR) or Common Path Pessimism Removal (CPPR).
6. This pessimism value is the difference between the max and min delay at the common clock path.
7. To reduce pessimism, CRPR is added to required time in setup analysis and subtracted from required time in hold analysis.
8. CRPR = Max. value - min. value
9. In the CRPR process we are removing the derating to common buffer.
10. it is clear that with the CRPR method both setup and hold are benefited
11. some commands related to CRPR:
pt_shell>
set_operating_conditions -analysis_type on_chip_variation -min MIN -max MAX
set timing_remove_clock_reconvergence_pessimism TRUE
PT SHELL FLOW
1.
Starting from an RTL design.
2.
The Design Compiler tool generates a gate-level
design.
3.
From the gate-level netlist and physical library
information, the physical implementation tool (IC
Compiler or IC Compiler II) performs placement and
routing.
4.
The Star RC parasitic extraction tool extracts the
parasitic RC data from the chip layout database.
5.
The Prime Time tool reads the gate-level netlist and
parasitic data, and verifies the design timing using
information provided in the logic (.db) library.
6.
If the tool finds any violations, it can generate
engineering change orders (ECOs) that guide the
physical implementation tool to fix the violations and
optimize power.
PT SHELL
Compatibility With Galaxy Implementation Tools
The Prime Time static timing analysis tool is designed to work well with the Design Compiler synthesis tool and the IC
Compiler II place-and-route tool. These tools are compatible in the following ways:
1.
They use the same logic libraries and read the same design data files.
2.
They support the Synopsys Design Constraints (SDC) format for specifying design constraints, including the
timing and area constraints.
3.
They share many commands (such as create_clock, set_input_delay, and report_timing) that are identical or similar
in operation.
4.
They share the same delay calculation algorithms and produce similar delay results.
5.
They generate similar timing reports.
6.
Prime Time can provide engineering change order (ECO) guidance to IC Compiler II by generating change lists
that fix timing violations and optimize power.
Although the Design Compiler and IC Compiler II tools have their own built-in static timing analysis capabilities
The Prime Time tool has better speed, accuracy, capacity, and flexibility for static timing analysis.
PT_SHELL COMMANDS
Getting Help on the Command Line
To get help when running the Prime Time tool, use the following resources:
• Command help
❍ To list all Primetime commands, organized by command group, enter
pt_shell> help
❍ To show a brief description of a command, enter
pt_shell> help command_name
❍ To show all options and arguments for a command, enter
pt_shell> help -verbose command_name
• Man pages
To display the man page of a command, variable, or message, enter
pt_shell> man command_variable_or_message_nam
PT_SHELL COMMANDS
PT_SHELL COMMANDS
PT_SHELL COMMANDS
command fixes setup violations throughout the design:
pt_shell> fix_eco_timing -type setup
The following command fixes hold violations throughout the design using both cell sizing
and buffer insertion, and using exhaustive path-based analysis for reduced timing pessimism:
pt_shell> fix_eco_timing -type hold -pba_mode exhaustive \
-buffer_list {BUFX2 DLY1X2 DLY2X2
STATIC TIMING ANALYSIS
STA Checks:
1 Setup and Hold Violations
2.Recovery and Removal Timings
3.Mean Pulse width Violations
4.Design Rule Violations
PHYSICAL VERIFICATION
Physical Verification : It is a process whereby an integrated ckt layout design is verified via EDA
software tools to ensure correct electrical and logical functionality
EDA electronic design automation tool such a ic validator from synopsis an caliber tool by mentor
graphics
After routing your pnr tool should give you zero drc/lvs violations
The major checks are
1.DRC
2.LVS
3 ERC
PHYSICAL VERIFICATION
Design Rule Check (DRC)
Design Rule Check (DRC) is the process of checking physical layout data against fabrication-specific rules specified by the
foundry to ensure successful fabrication.
Process specific design rules must be followed when drawing layouts to avoid any manufacturing defects during the
fabrication of an IC.
Process design rules are the minimum allowable drawing dimensions which affects the X and Y dimensions of layout and not
the depth/vertical dimensions.
As Technology Shrinks Number of Design Rules are increasing Corsplexity of Routing Rules is increasing Increasing the
number of objects involved More Design Rules depending on Width, Halo, Parallel Length
PHYSICAL VERIFICATION
Design Rule examples:
Maximum Rules: Manufacturing of large continuous regions can lead to stress
cracks. So wide metal' must be slotted' (holes)
Angles: Usually only multiples of 45 degree are allowed
Grid: Al corner points must lie on a minimal grid, otherwise an "off griderror"
is produced
Minimum Spacing: The minimum spacing between objects on a single layer
Minimum Width: The min width rule specifies the minimum width of individual
shapes on a single layer
Minimum Enclosurel Overlap: Implies that the second layer is fully enclosed
by the first one Notch: The rule specifies the
minimum spacing rule: for objects on the same net, including defining the
minimum notch on a single-layer, merged object
Minimum Cut: the minimum number of cuts a via must have when it is on a
wide wire
PHYSICAL VERIFICATION
Order of fixes in signoff 1PO w.r.t To Intel:
1 Trclvs and Onlinelvs
2 Density Violation (Denallpheml)
3 Antenna Violations (Drc_IPHALL)
4 Drc_m1base
5.Drc_dv1up
6 Dfi_intergra (boundary violations)
7 Drc_sk (via stack violation) ..In 10nm tech more than 3vias can not be placed one above the other
PHYSICAL VERIFICATION
Layout Versus Schematic (LVS): DRC only verifies that the
given layout satisfies the design rules provided by the
fabrication unit. It does not ensure the functionality of
layout. Because of this, idea of LVS is originated.
• It is the method of verifying the layout of the design is
Functionally equivalent to the schematic of design.
Layout Versus Schematic (LVS) verifies the connectivity of a
Verilog Netlist and Layout Netlist (Extracted Netlist from
GDS) . Tool extracts circuit devices and interconnects from
the layout and saved as Layout Netlist (SPICE formats LVS
performs comparison between 2 Netlist, it does not
compare the functionalities of both the Netlist.
LVS FLOW
PHYSICAL VERIFICATION
• Inputs Requirements
1.
LVS Rule deck
2. Verilog Netlist
3. Physical layout database (GDS)
4. Spice Netlist (Extracted by the tool from GDS)
LVS rule deck : is a set of code written in Standard Verification Rule Format (SVRF) or TCL Verification Format (TVF).
It guides the tool to extract the devices and the connectivity of IC’s.
It contains the layer definition to identify the layers used in layout file and to match it with the local on of layer in
GDS. It also contains a device structure definitions
LVS checks:
Short Net Error, Open Net Error, Extract errors, Compare errors (Malformed Devices Pin Errors Device Mismatch
Net Mismatch)
PHYSICAL VERIFICATION
• Steps of LVS
• Extraction:
1.
The tool takes GDSII file containing all the layers and uses polygon based approach to determine the
components like transistors, diodes, capacitors and resistors and also connectivity information between
devices presented in the layout by their layers of construction.
2.
All the device layers, terminals of the devices, size of devices, nets, vias and the locations of pins are
defined and given an unique identification.
Reduction:
1.
All the defined information is extracted in the form of netlist.
Comparison:
1.
The extracted layout netlist is then compared to the netlist of the same stage using the LVS rule deck. In
this stage the number of instances, nets and ports are compared.
2.
All the mismatches such as shorts and opens, pin mismatch etc.. are reported.
3.
The tools also checks topology and size mismatch
PHYSICAL VERIFICATION
LVS Checks :
No of devices in schematic and its layout
Type of devices in schematic and its layout
No of nets in schematic and its layout
Errors occur
Shorts: Shorts are formed, if two or more wires which should not be connected together are connected
Opens: Opens are formed, if the wires or components which should be connected together are left floating or
partially connected.
Component mismatch: Component mismatch can happen, if components of different types are used (e.g., LVT cells
instead of HVT cells)
Missing components: Component missing can happen, if an expected component is left out from the layout
Parameter mismatch: All components has it's own properties, LVS tool is configured to compare these properties
with some tolerance. If this tolerance is not met, then it will give parameter mismatch.
PHYSICAL VERIFICATION
Electrical Rule Check (ERC):
Electrical Rule Check (ERC) is used to analyze or confirm the electrical connectivity of an IC design
ERC checks are run to identify the following errors in layout.
1. To locate devices connected directly between Power and Ground
2. To locate floating Devices, Substrates and Wells
3. To locate devices which are shorted
4. To locate devices with missing connections
Well Tap connection error: The Well Taps should bias the Wells
Well Tap Density Error: If there is no enough Taps for a given area then this error is flagged Taps need
to be placed regularly which blases the Well to prevent Latch-up
Tools: Mentor Graphics Calibre, Synopsys Hercules, Cadence Assura, Magma Quartz
PHYSICAL VERIFICATION
Onlinelvs: check_lvs
Trclvs: Internally generated from Diagram ,so we need to laod this IC
Validator with respect synopsis after loading IC Validator this report we
need to open ,while popup will happens like : shorts and opens ,device
mismatch.
Difference b/w onlinelvs and Trclvs is
In Trclvs hierarchical shorts are visible
In Onlinelvs hierarchical shorts are not visible
PHYSICAL VERIFICATION
Antenna effect Definition:
During the fabrication of MOS integrated circuits, especially at the time of plasma etching, there will be a chance of collecting
more charges at the gate and causes damage to the gate oxide layer since it is very thin. This condition is known as Antenna
effect.
Antenna Violation : The ratio of the gate area to the gate oxide area is known as Antenna ratio.
Solutions for Antenna Violation:
1 Metal Jumper insertion /metal jogging: Breaks the long wire which is connected gate and route to upper metal layer. So it
becomes short and less capable of collecting charge. If the antenna violation happens at a metal layer, always use higher metal
layers as metal jumper ,since all the lower layers are already fabricated at that moment .
2. Diode insertion: Connect reverse biased diodes near gate input where violation occurs on a net provides a discharge path to
the substrate which saves the gate of the transistor. it can protect the gate oxide
Adding diode increases the area and also the capacitance which leads to increase in delay,
3.IPN( Inter Process Node)
Add vias: near the gate(s), to connect the gate to the highest layer used. This adds more vias, but involves fewer changes to
the rest of the net.
1.INTERVIEW QUESTIONS
1. What is uncertainty values for hold time
2. What is skew values for setup and hold which one is violating
3. Where do you check set up & hold violations in multicycle paths?
4. Hold fixing for reg to out path?
5. How to reduce propagation delay ?
6. What are retention registers?
7. In a circuit, for reg to reg path ...Tclktoq is 50 ps, Tcombo 50ps, Tsetup 50ps, tskew is 100ps.
Then what is the maximum operating frequency?
8. How R and C values are affecting time?
9. How do u calculate insertion delay.
10. what are effects OCV on insertion delay and skew
11. setup is checked in which clock cycle and hold is checked in which clock cycle
2.INTERVIEW QUESTIONS
why to reduce insertion delay what are its impact
1.
which is better for insertion delay more low drive strength buffers or less high drive strength buffers
2.
Why do we use buffer for fixing violations instead of AND and NAND gates?
3.
What setup analysis and how to fix setup violations ?if you tried all the setup methods, still violations
are there, what you do ?
4.
What is clock pulling and clock pushing?
5.
What is clock budgeting ? How much percentage will you provide to the design?
6.
What is insertion delay ? In your design, insertion delay is more, how do you fix it? Whether it will
effect on the timing
7.
How do you fix timing violations after routing?
8.
How do you fix DRC violations after routing?
9.
Explain multi voltage design?
10. How you worked on multi voltage design?
Download