在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: Lolia1217

[原创] 【已解决】替换工艺库后默认的value也被替换成新工艺的默认value

[复制链接]
 楼主| 发表于 2016-6-17 18:38:08 | 显示全部楼层
回复 14# wowmin


   你加我qq 763303761 ,我截图给你看error
 楼主| 发表于 2016-6-17 18:42:59 | 显示全部楼层
回复 18# wowmin


   

这是error

这是error
发表于 2016-6-17 20:37:28 | 显示全部楼层
回复 19# Lolia1217


   我没太懂你的意思, 想请问下原来的code是你写的吗?如果是的话 你会很容易看懂我的skill, 没多少代码。其实你可以请教你们公司的cad帮忙解决,这些都不是你做的。 再跟你说下 , 你照抄上面的代码, load进CIW, 然后执行replace_dev("myLib"  "PDKLIB_A"  "mn5"  "PDKLIB_B"  "mn3"), 我再解释下, 这是把myLib这个library里面所有的schematic里面含有libName是PDKLIB_A, cellName是“mn5”的instance全部转为libName是PDKLIB_B, cellName是mn3。不知道是不是你想要的需求?先要有一定skill基础以及对virtuoso CDBA或者OA的tool 比较熟悉再练习去写会好多了,再贴一遍, code肯定没有问题的
procedure(replace_dev(myWorkLib source_lib source_dev target_lib target_dev)
let((cell_list sch_cv targetId w l)
cell_list=ddGetObj(myWorkLib)~>cells~>name
foreach(cell cell_list
   sch_cv = dbOpenCellViewByType(myWorkLlib cell "schematic" "schematic" "a")
   if(sch_cv then
      foreach(inst sch_cv~>instances
        if(inst~>cellName == source_dev && inst~>libName == source_lib then
          targetId=dbOpenCellViewByType(target_lib target_dev "symbol"  ""  "r")
          if(targetId then
             w=inst~>w
             l=inst~>l
             inst~>master=targetId
             inst~>w=w
             ;;need trigger callback for "w"
             inst~>l=l
            ;;need trigger callback  for "l“
            dbClose(targetId)
          );if
        );if
        );foreach
     dbSave(sch_cv)
     dbClose(sch_cv)
   );if
);foreach
);let
);procedure
发表于 2016-6-17 20:54:39 | 显示全部楼层
不知道为什么我之前的回帖被删了,里面讲了可能的错误是哪,还给出了解决方案。
只是不是完整的code,因为信息不足。

如果是po主不喜欢,我也就不再打了。

wowmin,你的程序没有问题,都是根据po主的信息写的。

只是说一句,

inst~>w 的返回值可能是nil
因为property的信息都存在
inst~>prop里面。

但是prop的name因工艺各异,这个不是po主,也获得不了。
发表于 2016-6-17 21:17:15 | 显示全部楼层
回复 24# fatcat1205

Inst~>w返回是nil是有可能的, 没有w这个CDF param就可能,  楼主说了她的cell是有w l这2个参数的。
发表于 2016-6-17 23:42:40 | 显示全部楼层
回复 25# wowmin


这个就需要楼主自己确认了。

在我的经验里,除非是特殊工艺,不然按照在schematic中定义的数据结构。
器件的参数(property)是保存在 inst~>prop中的。
没记错的是DPL(Disembodied Property List)类型
发表于 2016-6-18 09:19:03 | 显示全部楼层
回复 26# fatcat1205


    1. 兄弟我给你更正一下, 不过你可以先去试试看我说的对不对,你说的我明白, 不同的PDK不一定所有的mos device都有w l这个参数, 所以inst~》w是可能返回nil的。但是楼主在开始就说了有w l。
    2. 关于你说的去inst~>prop~>name去查看参数名字,这里是有一些误区的。 因为修改过inst的值保存在inst的property中,你可以用inst~>prop~>name来查看, 但是你试试调用的device只使用默认值,你再试试看? 你会发现inst~>prop~>name少了很多param, 比如w l这些都可能没有的, 这时候你试试cdfGetInstCDF(inst)~>parameters~>name, 你会发现这里是可以查看所有的parameter,  你也可以用图形界面的CDF editor去看。


    如果有说的不对的地方请指正 ^_^
发表于 2016-6-18 22:39:59 | 显示全部楼层
""回复 27# wowmin

wowmin谢谢你的回复了。大家相互交流一下,谈不上什么指正

对于有没有“w” 和 “l”,这些parameter的定义,完全是看工艺了。
我查看了不同项目使用的两个工艺,一个里面是使用“w” 和 “l”,另一个是“w_nom” 和 “l_nom”。

我也并不是否认楼主说他那有“w”和“l”

我的观点是,按照cadence定义的数据结构,在inst下面通过~>来获取跟他相关的参数,一般为:  (inst~>?的返回值)
cellView objType prop bBox children
    groupMembers isAnyInst isShape matchPoints net
    parent pin purpose textDisplays assocTextDisplays
    markers figGroup baseName cellName instHeader
    instTerms libName master name numInst
    viewName conns mag orient status
    transform xy cluster blockages physOnly
    source

我不是对所有参数都了解,因为cadence也没有专门的文档。各个参数的意义也都是我慢慢观察和试出来的。例如:
cellview:   instance 所在的cellview id
objType: object Type
prop:     property list
xy:        x and y coordinate
transform:    tramsform list, 用来显示被调用后在cellview的相对坐标和orientation
master:      instance的master cell,也就是这个器件是从哪调用的。


因此,我觉得mos管的栅长和栅宽不会在 inst~>  中的了。这些应该属于更底层的信息
这也是我为什么建议楼主去参看下,查如inst~>w会返回什么。
因为这个检查只能他自己做。
而我也一直说wowmin 你的程序在根据楼主给出的信息下,是正确的。


关于你说的第二点,在放入MOS管,不做任何修改。“w”/"l"会不会在inst~>prop中。这个应该也是跟PDK/Pcell的编辑有关。在我所使用的工艺下,对于默认尺寸的MOS管,栅长和栅宽的信息已经在inst~>prop中了。
我也同意你的观点,在CDF里面会有更多的parameter定义。不是所有CDF parameter都会在"Edit Object Property" 窗口中显示的。
如果直接访问CDF parameter的确是可以获取全部。

我不太爱修改CDF parameter,也是因为一些不好的经历。因为CDF涉及到很多信息,而且这些信息也是被多个view共同使用的。此外CDF也有很多层base--> user --> effective。如果PDK或者techfile的访问权限没有控制好,不小心修改了base层的数据,会造成很麻烦的后果。

cdfGetInstCDF()返回的是effective layer的信息。因此用这个函数获得CDF并修改也是相对安全的。


对我个人而言,我现在对CDF还没有一个很全面的了解,因为我一般只会去访问CDF的赋值,尽量不去直接修改。
发表于 2016-6-19 18:33:29 | 显示全部楼层
回复 28# fatcat1205

嗯, 你说的有可能,对于默认尺寸的MOS管,栅长和栅宽的信息已经在inst~>prop中了,我忽略了有的PDK会有可能把CDF paramter 比如w l  的storeDefault选项设定为yes ,   但是说实话一般主流PDK都不会吧!这样设定有一些很不好的地方。
    顺便赞下你, 回答很用心仔细,也比较系统。
发表于 2016-6-19 20:17:59 | 显示全部楼层
本帖最后由 fatcat1205 于 2016-6-19 20:25 编辑

回复 29# wowmin

每个公司的习惯会不一样吧。貌似我们公司使用的工艺(库文件都是经过内部调整,从而达到较好的一致性)都会把w和l保存到inst~>prop中的。
在几个不同工艺下运行脚本,没有因为这个原因报错过。
一般从别人那获得的脚本都要能自己调试下。
特别是跟工艺相关的。

我们公司里要写各种文档,写着写着就这样了。

有机会多交流。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-10 15:41 , Processed in 0.037054 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表