Documente Academic
Documente Profesional
Documente Cultură
Module 6:
Sharifsab Nadaf
August 2019
Table of Contents
• Database?
• DFII
• Type - CDBA and OA
• Everything is object
• Accessing and modifying objects
• Basic functions – db, le, hi commands
• Understanding built-in functions and it’s arguments
• Object attributes and properties, Instance master
• Example programs
• Bindkeys
• Assignments
2
What is database?
• Database A structured set of data held in a computer, especially one that is accessible
in various ways.
• Ex: Database of all the employees covering role, address and salary info.
3
CDBA and OA
• dbGetDatabaseType()
• => CDBA / OpenAccess
4
Everything is object
5
Accessing and modifying objects
6
Accessing and modifying objects
• bbox=dbid~>bBox
• Layer_name = dbid~>layerName
• dbid~>layerName = “met2”
• dbid~>? Lists all the attributes and properties of the object
• Try dbid~>??
7
Basic functions
• geGetSelSet() Returns the list of IDs of the selected items(device, shapes, pins etc)
• css() Retunes the ID of the single selected item. If multiple are selected?
• geGetEditCellView() Returns ID of the currently opened cell view
• dbOpenCellViewByType() Opens the cellview in virtual mode and returns the ID. Cellview
details are given as arguments
• hiUndo Reverts the previous action
8
Understanding built-in fucntions
Prefix dbCreateInst(
d_cellView
t_orient
Optional [x_numInst]
arguments in [ ]
)
Function return value
=>d_inst/nil Success/Fail
9
Built-in functions - Arguments
10
Object attributes and properties, instance master
• Each object type has a predefined set of attributes that you can retrieve using type-
specific access functions.
• Attributes are predefined and managed by the database.
• An object property has a name and a value, such as a Boolean value, an integer, a floating
point number, a string, or a representation of time.
• Properties are defined and managed by applications built on top of the database.
• Instance master
• An original cellview which will be instantiated
11
Example codes
12 css()~>layerName "m1"
Example program -1
foreach(shape geGetEditCellView()~>shapes
if(shape~>layerName == "m1" then
shape~>layerName = "m2"
)
)
(db:0x4b86059a db:0x4b86059b db:0x4b86059c)
Example program -2
procedure(getSize()
cvid = geGetEditCellView()
box = cvid~>bBox
width = rightEdge(box)-leftEdge(box)
height = topEdge(box) - bottomEdge(box)
foreach(met metals
metNum = parseString(met~>layerName "m")
metNum = evalstring(car(metNum))
;println(metNum)
if(metNum > topMet then
topMet = metNum
)
)
printf("Top level metal present in this cellview is Metal%d", topMet)
)
Top level metal present in this cellview is Metal9
Bindkeys
• Binding a SKILL command string to a keyboard key or a mouse sequence for an application i.e.
Shortcuts to execute skill commands
• Function
hiSetBindKey(t_arg1, t_arg2, t_arg3)
hiSetBindKey("Layout" “Ctrl<key>g" “printCellInfo()")
t_arg1 – Application type where Bindkey needs to be set
t_arg2 – Bindkey
t_arg3 – Skill command for which Bindkey is to be set
• Bindkeys can be
• Any key i.e. a-z, A-Z, 0-9 etc
• Can be combination of keys Shift<Key>a, Ctrl Shift<Key>a
• Alt can also be used. But only with mouse as it is set as menu access key.
• Examples
hiSetBindKey("Layout" “<key>p" “hiLeCreatePath()")
hiSetBindKey("Layout" “Shift<key>9" “addReviewInputs”)
hiSetBindKey(“Schematic" “Shift<key>9" “checkAndSave”)
hiSetBindKey(“Command Interpreter" “Ctrl Shift<key>9" “closeDataAndRefresh”)
Assignments
• For a given std cell, create VSS and VDD label on the centre of the powerline. Set a
Bindkey to do the same in layout.
• Set a Bindkey to join 2 paths(1 is running in vertical direction and other one is
horizontal) in layout.
• For a given library, print the below info for all cells
• Cell name Area # of poly pitches