Design Rule Checking 2 - PowerPoint PPT Presentation

1 / 12
About This Presentation
Title:

Design Rule Checking 2

Description:

Corner-Based Pattern DRC. Corner patterns. match at each ... can discard edges perpendicular to scan line. coalesce colinear edges - avoid spurious errors ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 13
Provided by: duncanm4
Category:
Tags: checking | design | rule | scan

less

Transcript and Presenter's Notes

Title: Design Rule Checking 2


1
Design Rule Checking 2
  • Outline
  • Corner-Based Pattern DRC
  • Edge-Based Pattern DRC
  • Edge-Based DRC
  • Hierarchical DRC
  • Goal
  • Understand DRC algorithms

2
Corner-Based Pattern DRC
  • Corner patterns
  • match at each rectangle corner
  • check corresponding rule
  • rule compiler to convert from boolean operations
  • difficulty with multiple non-coincident edges

Polysilicon Contact Enclosure
Error
3
Edge-Based Pattern DRC
  • Edge rules - Magic design rule checker
  • match at corner and edges
  • apply at matching tile edge - corner-stitched
    rectangle database
  • more natural than corners
  • edge patterns match gt check B along edge
  • predicate P matches gt check A at corner
  • need rule compiler

2
P
2
P
A
C
B
P
Layer Type 1
Layer Type 2
PC
C
2
4
Edge DRC
  • Scan chip
  • sort edges that intersect scan line
  • keep edges for max. design rule past scan line
  • check rules against each edge
  • rule Met-Met spacing gt 3
  • check Met edges gt 3 apart
  • O(NlogN) time for N edges
  • Issues
  • have to track which is interior side of edge
  • which edges belong to same polygon
  • top and bottom edges of object
  • object implicitly defined by edges
  • can discard edges perpendicular to scan line
  • coalesce colinear edges - avoid spurious errors

5
Hierarchical DRC
  • Designs are specified hierarchically
  • to handle complexity
  • Designs often have high regularity
  • e.g. RAM, datapath
  • typically 1-10 of a design is unique
  • rest is replicated
  • Only check unique geometry
  • avoid rechecking replicated instances
  • filter to unique geometry
  • apply regular DRC algorithm

c
b
b
array - 9 unique symbol neighborhoods a - 1
interior instance b - 4 corner instances c - 4
side instances
a
c
c
b
c
b
6
Hierarchical DRC
  • Benefits
  • 10-100X faster
  • less memory
  • sensible error messages - no duplicates
  • Symbol interaction
  • design rule checks between symbol instances
  • instances within maximum design rule distance
  • overlapping instances

A
B
Check A Check B Check AB interaction
7
Hierarchical DRC
  • Issues
  • interaction analysis might cost more than flat
    DRC with error filtering
  • interaction area might be most of chip area
  • small symbols vs. interaction distance
  • e.g. memory, datapath
  • chip might have little regularity
  • e.g. routing in standard cells
  • most of chip is unique geometry
  • automatically-generated flat symbols

8
Hierarchical DRC Filter Algorithm
  • Check each symbol definition once
  • symbol - collection of elements
  • Check each unique element pair interaction once
  • element - primitive element or symbol instance
  • primitive element - geometry, indivisible objects
  • pairwise check is suboptimal
  • ideally check instance with all neighbors at once
  • but pairwise might be faster
  • Use symbol bounding boxes to speed comparison
  • Write out primitive elements to be checked

9
DRC Filter Algorithm
check_symbol(symbol) if checked(symbol)
note symbol bounding-box else if
leaf(symbol) write_out_all_geometry(symbol)
note symbol bounding-box else for each
element if symbol(element) if
!checked(element) check_symbol(element)
note symbol bounding-box else note symbol
bounding-box check_interactions_between_symb
ol_elements(symbol) mark symbol checked
10
DRC Filter Algorithm
check_interactions_between_symbol_elements(symbol)
sort elements in x and y for each pair of
elements (a, b) if design_rule_exists(a, b)
if bloated_bounding_box_overlap(a, b)
check_element_interactions(a, b) else
design_rule_check(a, b)
check_element_interactions(e1, e2) if
(symbol(e1) or symbol(e2)) e1 element
which is symbol e2 other element for
each e1 element e if bloated_bounding_box_
overlap(e, e2) check_element_interactions(
e, e2) else design_rule_check(e1, e2)
11
DRC Filter Algorithm
design_rule_check(geometry1, geometry2) if
design_rule_exists(geometry1, geometry2)
write out geometry1 write out geometry2
bloated_bounding_box_overlap(e1, e2) bb1
grow(e1.bbox, MAX_DESIGN_RULE/2) bb2
grow(e2.bbox, MAX_DESIGN_RULE/2) if
intersect(bb1, bb2) return(TRUE) else
return(FALSE) main() mark all symbols checked
that are prechecked check_symbol(top-level-symbo
l)
12
Example
  • Check A
  • check C
  • check g1-C.1 and g2-C.1 interactions
  • DRC check g1-g2
  • Check B
  • check g4-C.2 interaction
  • Check interaction between A and B
  • check C.1-g3 interaction
  • check C.1-g4 interaction
Write a Comment
User Comments (0)
About PowerShow.com