SKILL 脚本实现工艺库迁移

最近要将一些设计移植到新的工艺,花了一个晚上的时间查资料,学着用 SKILL 语言写出一个简单的脚本,顺利地实现了所需的功能。然后这段代码也成了我放到 github 上的第一个文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
libName = "libname"
lib = ddGetObj(libName)
oldProcess = "oldprocess"
newProcess = "newprocess"
cells = lib~>cells
foreach( cell cells
foreach( view cell~>views
when( cv = dbOpenCellViewByType(libName cell~>name view~>name "" "a")
insts = cv ~> instances
foreach( inst insts
when( (inst~>libName==oldProcess)
newMaster = dbOpenCellViewByType(newProcess inst~>cellName inst~>viewName)
when( newMaster
inst~>master = newMaster
dbClose(newMaster)
) ;; when
) ;; when
) ;; foreach inst
dbCheck(cv)
dbSave(cv)
dbClose(cv)
) ;; when
) ;; foreach view
) ;; foreach cell