VLSI - PD
1. Insertion Delay
โ
Definition
Insertion delay is the time taken for the clock signal to travel from the clock source (root) to a particular register (sink).
๐ง Key idea
It measures how long the clock takes to reach a specific endpoint.
Formula
Insertion Delay = Time(clk arrives at flip-flop) โ Time(clk leaves source)
includes:
Buffers
Clock tree routing
โ ๏ธ Insertion Delay
Not dangerous if balanced
Problem if:
Too high โ affects clock period
Uneven โ creates skew
Fixing Insertion Delay
Clock Tree Synthesis (CTS optimisation)
Buffer insertion
Reduce clock path length
Use higher metal layers
Shield clock nets
๐ Tools:
CTS engines (ICC2, Innovus)
2. Latency
โ
Definition
Latency refers to the overall delay of the clock network, and it can be:
Source Latency โ outside the chip (PLL, clock generation)
Network Latency โ inside the chip (clock tree)
๐ง Key idea
It represents the total delay from clock generation to reaching the registers.
Formula
Latency = Source Latency + Network Latency
โ ๏ธLatency
Context dependent
Data latency โ โ setup violation
Not inherently dangerous
Fixing Latency
Data Path:
Logic optimization
Pipelining
Gate sizing
Retiming
Clock Path:
CTS improvements
3. Skew
Skew (Clock Difference)
Difference in clock arrival time between two flip-flops
Types:
Positive skew: Capture clock arrives later โ helps setup
Negative skew: Capture clock arrives earlier โ hurts setup
Formula
Skew = FF1 โ FF2
โ ๏ธMost Dangerous โ Skew
๐ Why?
Directly affects: Setup violations, Hold violations
Even small skew โ large timing failure
Fixing Skew (Very Important)
Balanced clock tree
H-tree / X-tree structures
Useful skew optimization
Buffer tuning
Clock mesh (advanced nodes)
๐ Key concept:
โBalance clock arrival across all FFsโ
Bounds in VLSI Physical Design
In VLSI Physical Design, Bounds are used to control placement of cells within a specific region of the chip. They are very important for floorplanning, congestion control, and timing optimization.
๐น What are Bounds?
๐ A bound is a logical constraint region that restricts where certain cells can be placed.
โ
It defines a rectangular area
โ
You assign specific instances (cells) to that area
โ
The tool tries to keep those cells inside the bound
๐น Why Bounds are Used?
1. Timing Optimization
โบ๏ธ Keep related cells close โ reduces wirelength โ improves timing
2. Congestion Control
โบ๏ธ Spread cells across regions to avoid routing congestion
3. Hierarchical Design
โบ๏ธ Maintain block-level grouping
4. Physical Constraints
โบ๏ธ Keep interface logic near macros or IO pins
๐น Types of Bounds
1. Soft Bound
๐ Tool tries to keep cells inside, but can violate if needed
โช๏ธ Flexible
โช๏ธ Used when timing is more important than strict placement
2. Hard Bound
๐ Tool strictly enforces placement inside the region
โช๏ธ No movement outside allowed
โช๏ธ Used for strict floorplan requirements
3. Partial Bound
๐ Controls density inside a region
โช๏ธ Limits how much area can be occupied
โช๏ธ Example: only 70% utilization allowed
in Innovus :
createBound -type soft B1 100 200 500 400
createBound -type hard B2 600 100 900 500
createBound -type partial -density 0.7 B3 100 600 500 900
addInstToBound B1 [get_cells U1 U2 U3]
๐ Interview Tip:
Bounds = guidance + grouping
Regions = strict placement control
Click here to claim your Sponsored Listing.
Category
Contact the business
Website
Address
Bangalore