请问如何用skill语言把cadence中的单个器件参数提取出来
这不是WL大神么?咋跑这儿来了?
。。。。。。
哪个参数啊?calculator-info-op里选,然后就得到对应skill语句
比如说我想得到mos管的长度L,具体怎么做呢?非常感谢
居然还是做模拟的。。。
打开你所需要找器件的sch window
在CIW的命令输入框中:
(getq (getEditRep) ?)
得到窗口所有属性。
然后 (getq (getEditRep) cellName) ~>??
上面的cell是举个例子,用这种方法一层层往下找看看能不能找到你需要的。
第一句话输入就有错误,谢谢啦,让我再看看
有个问题,为什么我不编辑schematic的话,直接在CIW的命令框输入geGetWindowCellView()会报错?
不需要编辑吧,记不清了
你试试zoom一下,动动你的窗口
手头没有工具验证,差不多是那个样子
这个,我需要不做任何改动作就能仿真啊!
我的本意是写个OP函数显示电阻的参数,所以要用到电阻segment的值,但是在程序中使用cdfgData–>segments->value,那么如果不动一次器件的参数的话,那么得到的值就是nil。。。
我看有个geGetEditRep函数,可是也是需要动一下window才能取值。。。
动一下只是为了在CIW中调试用的,这样可以顺利的得到cvID
如果你在具体的skill程序中,不需要动一下,因为:
(setq cvID (dbOpenCellViewType ... ))
已经可以得到cvID, 后面的程序将直接使用cvID,而不是getEditRep函数。
(getq cvID cellName)~>...
PS:不保证上面的函数名正确,只凭印象写,差不多是那个意思
这样啊,我试试,非常感谢!
也就是说打开schematic和spectre并且不做任何动作的话,用dbOpenCellViewBYyType是可以得到初始值的?
对了,麻烦一下。这个dbOpenCellViewByType()函数需要lib,cell和view name,但是我现在做的是PDK,所以不能单独对一个lib取值,这怎么办。。。
没太明白,要对所有的lib以及lib中所有的cell操作?
用foreach方式行吗?从cds.lib中读出所有的lib list,再foreach 到每个lib。。。
我现在的问题是,如果不在schematic中apply一下器件的参数(Edit Object Properties),那么使用cdfgData->l->value得到的值是nil,如果apply一下器件参数
对了,怎么从cds.lib中读取lib呢?
粗略地查了一下manual,用这个吧
(schHiSelectByProperty "select" "instName" "==" "I1" )
(schHiObjectProperty)
(hiiSetCurrentForm 'thisObjForm)
(setq thisObjForm->l->value 0.8)
如果0.8的数据类型不对你就转换一下,不确保是string还是int的
(setq FILEH (infile ".../cds.lib"))
(while (fscanf FILH "%s" field1)
(when field1 == "DEFINE"
(fscanf FILH "%s" libname)
)
(setq libList (append1 libList libname))
....
)
大概是这个意思吧,很久不编,手生的很,你再调试一下吧
嗯,非常感谢啊,太麻烦您了!
额,我看了一下,这行代码是设l的值吧?我想要的是取出l的值,谢谢了
其实就是电阻不是有segment和串并联吗?我想仿照tsmc写个tsmcOpParamList()函数把各segment的电阻值加起来显示出来,所以要取segment这个值。但是使用cdfgData->segment->value发现取不出来这个值,所以想请教一下