cadence virtuoso 批量导出gds方法
期待······
用来做什么,可以调到一个layout里,再导出
以前一个网友碰到和你同样的问题,我帮他写了个skill 程序解决了,现在把源码share 给你
“先说一下用处,小编的公司在做分离器件device,1k多个cell,要out出1k多个gds.每个cell一个gds,手动out有点不现实,,保证敲错名字...写了个简单的一个程序,仅仅一个while循环而已.运行前先开streamout的窗口设一下其他值的话,下面的程序的下半部分也可以删了,前面几句话就可以了......(out的gds在./gds下面)
procedure( pppp()
geSelectAllFig()
selset=geGetSelSet()
celNam=selset~>cellName
i=0
while( i < length(celNam)
a=nth(i celNam)
hiiSetCurrentForm('transStreamOutForm)
transStreamOutForm->pipoPrimaryCell->value = a
transStreamOutForm->pipoLibName->value = "lib33"
transStreamOutForm->pipoOutFile->value = strcat("./gds/" a".gds")
streamOutKeys = list(nil
'runDir"."
'viewName"layout"
'scale0.001000
'units"micron"
'compression"none"
'hierDepth32
'convertToGeonil
'maxVertices200
'refLibnil
'libVersion"5.0"
'checkPolygonnil
'snapToGridnil
'simMosaicToArrayt
'caseSensitivity"preserve"
'textCaseSensitivity"preserve"
'lineToZeroPath"path"
'convertDot"ignore"
'rectToBoxnil
'convertPathToPolynil
'keepPcellnil
'replaceBusBitCharnil
'useParentXYforTextnil
'reportPrecisionnil
'runQuietnil
'comprehensiveLognil
'ignorePcellEvalFailnil
'errFile"IPO.LOG"
'NOUnmappingLayerWarningnil
'techFileChoicenil
'pcellSuffix"DbId"
'respectGDSIILimitsnil
'dumpPcellInfonil
'genListHiernil
'cellMapTable""
'layerTable""
'textFontTable""
'convertPin"geometry"
'pinInfo0
'pinTextMapTable""
'propMapTable""
'propSeparator","
'userSkillFile""
'rodDir""
'refLibList""
hiFormDone(transStreamOutForm)
)
i++
)
)
忘记问了,你这1k多个cell是调到同一个cell里了吗?如果是,这个程序就可以了,
请问,这个怎么使用呢?是不是在CIW窗口里load一个il文件,il文件内容就是您上面写的程序,然后回车就可以了?谢谢
这个程序需要1k多个cells在同一layout 中,打开这个layout,在ciw 窗口 load 这个il 文件,然后在ciw 窗口敲pppp就可以了。
源贴在:http://www.microe.cn/bbs/forum.php?mod=viewthread&tid=8714&page=1#pid27499
源文件中“lib33”的库名改成你的库名
谢谢你的热心回复啦,我的只是在一个lib里面,每一个cell都是一个单独的layout,看看能不能参考你的改一下程序哇
不在同一个layout 中那也简单,vi开你的库的文件夹,ls*** >> aa 命令做成一个文件,
然后在源程序里加infile 函数就可以搞定。
这个是模拟库诶,肿么vi,好像是二进制的
好像用virtuoso可以直接导出来,哈哈!
这个好。mark下。谢谢。
果然是高手啊,学习了
我也不知道
mark!
hiiSetCurrentForm('transStreamOutForm)这个函数是从哪里搞来的?好像文档里没有它的说明。
这个是模拟库诶,肿么vi,好像是二进制的
好,收藏了
有两种比较简单的方法
A 直接在virtuoso stream out,选择libary, top cell 那个地方空着,这样整个library里面的layout 都导出到一个GDS 里面了,比如说 lib.gds,如果是做lvs 或是 drc , GDS path 指定到这个liub.gds ,PRIMARY NAME 指定你要验证的cell name 即可
B 如果你是每个cell 都要单独导出gds,这是做什么用呢?给你提供一个思路
1 如果懂skill ,查查自带的函数,很容易能够获得这个library 的cell list,(在家里没有文档,记不住了) ;在 CIW 里写个循环,可以批量导出每个cell GDS
2 如果不懂skill, 懂shell的话更简单
在terminal 里进入这个library, 然后 ls > cell_list 也能获得 cell list
然后在里的工作目录下查看 si.log (ic51 下,记不太清了,应该就是 si 开头的一个文件),写个shell 脚本,替换里面的cell name ,循环执行一下,就能导出每个cell gds了
大神,能否详细说下第二种方法。目前还不懂shell(哭)。
好像很有用
很好,继续关注。
为什么这个有语法错误呢?
导入不成功
难道我抄错了?
检查了好几遍了
我有这么一个脚本可以帮你解决这个问题,不知道你还需要不?
需要 61下gds的脚本 我就不去查了 有现成的吗
收藏了
用的第一种方法,帮了我大忙,非常感谢!
导gds时需要什么设置吗
大家用skill得到cell列表的方法有进展吗?