editors l21 l24

47
Editors: HDL Design Captures circuit connectivity (text) Captures circuit connectivity (text) Libraries of components (subroutines) Schematic Editor i i ii ( hi l) Capture circuitry connectivity (graphical) Libraries of components (Cells) Layout Editor Capture physical structure Libraries of components (Cells) Procedural layout: The designer expresses the design in a Procedural layout: The designer expresses the design in a programming language with procedural calls to make graphical objects.

Upload: neha-pachauri

Post on 27-Jul-2015

56 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Editors l21 l24

Editors:HDL Design

•Captures circuit connectivity (text)•Captures circuit connectivity (text)•Libraries of components (subroutines)

Schematic Editori 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 aprogramming language with procedural calls to make graphicalobjects.

Neha
Note
schemtic editor is a tool for schemtic capture of electrical circuits
Page 2: Editors l21 l24

Mode Editor:

Modeless Editor:

Neha
Note
A normal, "modeless" editor is like Notepad on Windows: there is only one mode, where you input text. Vi, and it's successor Vim, are modal: there are two primary modes1, insert mode where you type text into the editor and it is committed to the document, and normal mode where you enter arguments via the keyboard that perform a variety of functions, including: moving the cursor around the document, searching, and manipulating the text in the document (for example, cutting and pasting).
Page 3: Editors l21 l24

Schematic Editor:

Page 4: Editors l21 l24

Schematic View:•Schematic view define the connectivity of modules (cells) in termsof other cellsof other cells.•Schematic view show how larger functional units are defined interms of smaller functional units.

i f f ll i b i l•It consist of following basic elements:Cell instances appear as symbolsWires connect cell instances to one anotherPorts/pinsAnnotation Objects (for documentation) Node labels Node labels

Page 5: Editors l21 l24

Symbol View:

•A symbol defines the appearance of the cell when instanced in aschematic.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, PDPin names for other symbols

The different views of a cell can be edited by opening different views.

Page 6: Editors l21 l24

Library of circuit elements: schematic editor has a library of circuitelements. 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.

Page 7: Editors l21 l24

End Points:

Terminals: Input and output of logic functions are called terminalsNet: Any wire which connects two or more terminals will be called a

tnet.Connector end points can be identified when instanced in higherlevel.

Page 8: Editors l21 l24

Netlist: Unique format or language for representing connectivity information of logic elementsinformation of logic elements.

Page 9: Editors l21 l24

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.

Page 10: Editors l21 l24

GRIDS:

•The elements are placed in workspace.•The workspace is divided into grids to help the designer tovisualize schematic bettervisualize schematic better.•These grids are useful for alignment.

Page 11: Editors l21 l24

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.

Page 12: Editors l21 l24

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

Page 13: Editors l21 l24

(B) Display oriented commands: Transformations•Grid ON/OFF•Set Grid•Zoom-in and Zoom-out•Pan•Pan•Snapping or smooth cursor type

Page 14: Editors l21 l24

(C) Drawing related commands:C i d•Creating new record

•Pick/place•Wires•Port/pins•Instance

(D) Edit related commands:• Modifying existing recordU d f / lti l l l•Undo of one/multiple level

•Redo•Delete•Move/dragging•Modify/Change/Rename•OrientationOrientation•Cut & paste, copy & paste

Page 15: Editors l21 l24

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}

Page 16: Editors l21 l24

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 ofwhich 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.

Page 17: Editors l21 l24

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;};

Page 18: Editors l21 l24

struct node* build_123()

{struct node* head=NULL;struct node* second=NULL;struct node* third=NULL;

head =(struct node*)malloc(sizeof (struct node));second=(struct node*)malloc (sizeof ( struct node));third =(struct node*)malloc (sizeof (struct node));third =(struct node*)malloc (sizeof (struct node));

head->data=1;head->next=second;head >next second;

second->data=2;second->next=third;

third->data=3;third->next=NULL;return head;

}

Page 19: Editors l21 l24

main(){

struct node *abc= build_123();

i tf(" Add f h d i t %d\ " b )printf(" Address of head integer %d\n", abc );printf(" Address of head in hexadecimal %x\n", abc );printf("Head_data %d\n", abc->data);return 0;return 0;

}

Page 20: Editors l21 l24

Record for library element:

Page 21: Editors l21 l24

Layout Editor:Cell View: LayoutCell View: Layout•Layout editor allows a user to specify graphically the shapes thatdefines his/her chip.G hi l h i l d•Graphical shape includes:box (rectangles)circle,arcs,polygon.

Page 22: Editors l21 l24

(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 GridMajor spacingMajor spacingMinor spacingX–snap spacingY snap spacingY–snap spacing

•Zoom-in and Zoom-out•Panl ON/OFF•layer ON/OFF

•Snapping or smooth cursor type

Page 23: Editors l21 l24

(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/RenameO i t ti•Orientation

•Cut & paste, copy & paste•Merge (two adjacent geometries on same layer)

Page 24: Editors l21 l24

Bounding box:Bounding box of a cell layout view is the smallest rectangle alignedBounding box of a cell layout view is the smallest rectangle alignedon the x-y axes that includes all layout information.

Page 25: Editors l21 l24

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):

Page 26: Editors l21 l24

Using array of layers: Switching off layers would be easier.

Page 27: Editors l21 l24

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.

Page 28: Editors l21 l24

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

Page 29: Editors l21 l24

Adding & Deleting geometry• Inserting or removing rectangles from the data collection.g g g

Uses•Interactive layout editing:•Interactive layout editing: Cadence Virtuoso MAGICIC S iIC StationL-edit

• Global and detailed routing.g• Local rip-up and reroute.• Placement “legalization”

Page 30: Editors l21 l24

Linked List

•‘Pick' operation: Entire list must be examined at each search.•Region search:gAny node whose rectangle intersects the region are recordedAt the end of the pass through list, a list of all rectangles foundintersecting the given region is availableintersecting the given region is available.

Page 31: Editors l21 l24

Complexity:Time:Time:

• Find O(N)

• Insert O(N)

• Delete O(N)

Memory:• O(N) one link for each data item• O(N) - one link for each data item.

Page 32: Editors l21 l24

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 ytouch.

Page 33: Editors l21 l24

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

Page 34: Editors l21 l24

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

Page 35: Editors l21 l24

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

Page 36: Editors l21 l24

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

Page 37: Editors l21 l24

Quad Tree Tree data structure with four children

ULURURLLLR

Page 38: Editors l21 l24

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

Page 39: Editors l21 l24
Page 40: Editors l21 l24

Quad Tree Example

Perfect quad tree: bisect till number of rectangle in a region is one.

Page 41: Editors l21 l24

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

Page 42: Editors l21 l24

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 newregions down tree ie recursively call region query 4 times onregions down tree, ie, recursively call region query 4 times onchild trees

Page 43: Editors l21 l24
Page 44: Editors l21 l24

Insert and deleteInsert: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.

Page 45: Editors l21 l24

•Perfect quad tree: O lOne rectangle

•Adaptive quad tree:Not less than K rectanglegWe 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

Page 46: Editors l21 l24

Problem with the basic quad tree

D b kDrawback:If there are a few spots of fine detail those areas suffer from the sameslow search problems as with bins.p

Page 47: Editors l21 l24

Summaryy•Good for non-uniformly distributed data.

Complexity:Complexity:•Time:Find :

(l )•O(log N) Insert

•O(log N)( g ) Delete

•O(log N)

Memory:O(N)