1. Editors:
HDL Design
•Captures circuit connectivity (text)•Captures circuit connectivity (text)
•Libraries of components (subroutines)
Schematic Editor
i i i i ( hi l)•Capture circuitry connectivity (graphical)
•Libraries of components (Cells)
Layout Editory
•Capture physical structure
•Libraries of components (Cells)
Procedural layout: The designer expresses the design in aProcedural layout: The designer expresses the design in a
programming language with procedural calls to make graphical
objects.
4. Schematic View:
•Schematic view define the connectivity of modules (cells) in terms
of other cellsof other cells.
•Schematic view show how larger functional units are defined in
terms of smaller functional units.
i f f ll i b i l•It consist of following basic elements:
Cell instances appear as symbols
Wires connect cell instances to one another
Ports/pins
Annotation Objects (for documentation)
Node labels Node labels
5. Symbol View:
•A symbol defines the appearance of the cell when instanced in a
schematic.
U th b l li i l d t t l t t ll•Uses the box, polygon, line circle, and comment tools to create cell
graphic-representation.
Property Tool:
•It specify how the cell is to describe in the output netlist.
L,W, AD, AS, PS, PDL,W, AD, AS, PS, PD
Pin names for other symbols
The different views of a cell can be edited by opening different views.
6. Library of circuit elements: schematic editor has a library of circuit
elements. A cell is the basic design object.
A Cell contains:
Primitives: Geometrical objects created with the drawing tools.
Instances: Copies of cells linked to their originals.s ces: Cop es o ce s ed o e o g s.
7. End Points:
Terminals: Input and output of logic functions are called terminals
Net: Any wire which connects two or more terminals will be called a
tnet.
Connector end points can be identified when instanced in higher
level.
8. Netlist: Unique format or language for representing connectivity
information of logic elementsinformation of logic elements.
9. Why to flatten netlist?
(1) For layout generation(1) For layout generation
(2) For Simulation
h i hi i fl h i b kOnce the entire thing is flatten there is no way to get back.
Hierarchies are made for assistance of designer.
Composite schematic:Composite schematic:
Drawing schematic by picking elements from a library.
Derived schematic:
Schematic generated from a netlistSchematic generated from a netlist.
10. GRIDS:
•The elements are placed in workspace.
•The workspace is divided into grids to help the designer to
visualize schematic bettervisualize schematic better.
•These grids are useful for alignment.
11. Level of gates:
Gates closure to primary inputs are level 1 gatesGates closure to primary inputs are level 1 gates.
Application:
d f i•Order of storing,
•Static timing analysis.
12. A schematic editor needs following commands for various jobs.
(A) File oriented commands( )
•Load a design from a file.
•Save a design to a file.
•Exit•Exit
(save and terminate)
•Quit
(d ' d i ) (don't save and terminate)
•Flatten, DRC
•Import/Exportp p
•Plot/print
13. (B) Display oriented commands: Transformations
•Grid ON/OFF
•Set Grid
•Zoom-in and Zoom-out
•Pan•Pan
•Snapping or smooth cursor type
14. (C) Drawing related commands:
C i d•Creating new record
•Pick/place
•Wires
•Port/pins
•Instance
(D) Edit related commands:
• Modifying existing record
U d f / lti l l l•Undo of one/multiple level
•Redo
•Delete
•Move/dragging
•Modify/Change/Rename
•OrientationOrientation
•Cut & paste, copy & paste
15. Data structure:
Arrays:
Collection of similar elements stored in adjacent locations.
int num[ ]= {23 34 12 44 56 17}int num[ ]= {23, 34, 12, 44, 56, 17}
16. Linked list:
(1) Linked list is a most common data structure used to store( )
similar data in memory.
(2)Linked list s a collection of elements called 'nodes', each of
which stores two items of informationwhich stores two items of information.
•An element of list (Data)
•A link i.e. pointer or address of next node.
17. Each node contains a single client data element and a pointer to the
next node in the listnext node in the list.
struct node
{{
int data;
struct node* next;st uct ode e t;
};
19. main()
{
struct node *abc= build_123();
i tf(" Add f h d i t %d " b )printf(" Address of head integer %dn", abc );
printf(" Address of head in hexadecimal %xn", abc );
printf("Head_data %dn", abc->data);
return 0;return 0;
}
21. Layout Editor:
Cell View: LayoutCell View: Layout
•Layout editor allows a user to specify graphically the shapes that
defines his/her chip.
G hi l h i l d•Graphical shape includes:
box (rectangles)
circle,
arcs,
polygon.
22. (A) File oriented commands
•Load a design from a file.
•Save a design to a file.Save a design to a file.
•Exit (save and terminate)
•Quit (don't save and terminate)
•Flatten DRCFlatten, DRC
•Import/Export
•Plot/Print
(B) Display oriented commands:(B) Display oriented commands:
•Grid ON/OFF
•Set Grid
Major spacingMajor spacing
Minor spacing
X–snap spacing
Y snap spacingY–snap spacing
•Zoom-in and Zoom-out
•Pan
l ON/OFF•layer ON/OFF
•Snapping or smooth cursor type
23. (c) Drawing related commands
•Box Polygon Arc CircleBox, Polygon, Arc, Circle
•Select layer
• Stretch/ rubber banding
•Instance•Instance
•Mirror/Flip (Vertical, Horizontal)
•Wire
(D) Edit related commands(D) Edit related commands
•Undo of one/multiple level
•Redo
•D l t•Delete
•Move/dragging
•Modify/Change/Rename
O i t ti•Orientation
•Cut & paste, copy & paste
•Merge (two adjacent geometries on same layer)
24. Bounding box:
Bounding box of a cell layout view is the smallest rectangle alignedBounding box of a cell layout view is the smallest rectangle aligned
on the x-y axes that includes all layout information.
25. Data structures :
B i ffi i f IC l d i•Box type geometry is sufficient for IC layout design.
•The data structure for layout (assuming only box type geometries):
26. Using array of layers: Switching off layers would be easier.
27. Data structure queries
•A “pick” operation: Given (x,y), tell me what I touch
•A “region query” operation: Given a bounding box, tell me what’sA region query operation: Given a bounding box, tell me what s
inside it.
28. Uses
•Checking DRC-type layout interactionsChecking DRC type layout interactions
• Printing masks.
• Extracting electrical circuits from layout.
S hi th i hb h d f i d i i it• Searching the neighborhood of a given device or circuit.
•No inserting or deleting data is done -- just asking where things are
29. Adding & Deleting geometry
• Inserting or removing rectangles from the data collection.g g g
Uses
•Interactive layout editing:•Interactive layout editing:
Cadence Virtuoso
MAGIC
IC S iIC Station
L-edit
• Global and detailed routing.g
• Local rip-up and reroute.
• Placement “legalization”
30. Linked List
•‘Pick' operation: Entire list must be examined at each search.
•Region search:g
Any node whose rectangle intersects the region are recorded
At the end of the pass through list, a list of all rectangles found
intersecting the given region is availableintersecting the given region is available.
32. Bins
Di id f f h hi i l bi ( l ll d•Divide up surface of the chip into rectangular bins (also called
buckets)
• Inside each bin, you have a linked list of all the rectangles you, y g y
touch.
33. Queries
• Pick: go to the bin with the (x y) you want look at all the rectanglesPick: go to the bin with the (x,y) you want, look at all the rectangles
• Region query: go to all the bins that touch the region, look at all the
rectangles
34. How does it really work
•Need a pointer to a “rectangle object” from every bin it touches.p g j y
• May have to walk thru lots of bins to insert/delete a big rectangle
35. How big should the bins be?
•Let A = average object size and A = bin size•Let, Ao = average object size and Ab = bin size.
If you have many, small bins...If you have many, small bins...
• Memory use is large, insert and delete times are long.
• But “pick” operations are really fast (few objects per bin)
• Need to be careful to tune bin granularity to problem• Need to be careful to tune bin granularity to problem
36. Summary
• Good for evenly distributed objects of similar sizeGood for evenly distributed objects of similar size.
Complexity
Time:
•Find O(1)
•Insert O(1)
•Delete O(1)
Memory:Memory:
• O(N)
-- - if number of bins is < number of objects
small linked list per bin--- small linked list per bin
38. Objects that hit either of the bisector lines…
• These cannot be entirely inside the UL, UR, LL, LR regions
• So they go on the ‘bisector list” at the top• So, they go on the bisector list at the top.
Objects that don’t hit either of bisector lines
•These live entirely inside one of the UL, UR, LL, LR regions
• So, they get passed down to the quad tree for that regionSo, ey ge p ssed dow o e qu d ee o eg o
• Just repeat this recursion
41. Pick:
Just walk down the treeJust walk down the tree...
• Going into the region that holds your x,y, till the tree ends
• Look at the rectangles you find
42. Region Query:
•Assume your region box hits a bisectory g
•Look on bisector list first for all rectangles there
•Then, chop up region box into (at most 4 pieces) and pass 4 new
regions down tree ie recursively call region query 4 times onregions down tree, ie, recursively call region query 4 times on
child trees
43.
44. Insert and delete
Insert:Insert:
Walk down tree to find appropriate quad.
Create child if necessary.
D l tDelete:
Remove object from the list and child from tree if necessary.
45. •Perfect quad tree:
O lOne rectangle
•Adaptive quad tree:
Not less than K rectangleg
We don’t do quad division if number of geometries are
less than K.
Smaller trees but lists may be longSmaller trees but lists may be long.
•Not less than area A.
W d ’t d d di i i if i i t llWe don’t do quad division if region is too small;
Use linked list of objects at leaves.
Another adaptive sort of a tree.
Smaller trees but lists may be long.
Use these ideas to tune the tree to the problemUse these ideas to tune the tree to the problem
46. Problem with the basic quad tree
D b kDrawback:
If there are a few spots of fine detail those areas suffer from the same
slow search problems as with bins.p