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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: yanpflove

[原创] skill脚本 处理CDF属性值 callback

[复制链接]
发表于 2022-7-16 10:48:40 | 显示全部楼层


就是只针对赋值的参数进行callback,加入我改了W,那我只callback W这个参数
发表于 2022-9-23 14:06:45 | 显示全部楼层
有点小格式错误,我改好了,可以用!

如下:
/*
Description??Update the schematics' callback.
Usage:
In CIW, load this file;
Type CallbackLib("library_name") to handle one library.
Type CallbackCell("library_name" "cell_name") to handle one cell.
*/
/*********************One library*********************************************/
procedure(CallbackLib(lib)
    foreach(cellID ddGetObj(lib)->cells
        cell=cellID->name
        CallbackCell(lib cell) ;This function is defined below.
    );end foreach cellID
    printf(" ^_^ Library \"%s\" is finished. \n" lib)
);end procedure CallbackLib
/*********************One cell***********************************************/
procedure(CallbackCell(lib cell)
    printf(" ^_^ Cell \"%s\" begins! \n" cell)
    when(cv=dbOpenCellViewByType(lib cell "schematic" "" "a")
        foreach(instID cv->instances
            cdfgData=cdfGetInstCDF(instID)
/* We can add the CDF parameters here for callback. */
            paramType=cdfFindParamByName(cdfgData "w")
            when(paramType~>callback evalstring(paramType~>callback))
            paramType=cdfFindParamByName(cdfgData "l")
            when(paramType~>callback evalstring(paramType~>callback))
            paramType=cdfFindParamByName(cdfgData "m")
            when(paramType~>callback evalstring(paramType~>callback))

            cdfUpdateInstParam(instID)
        );end foreach instID
        ;schCheck(cv)  ;check & save may output too many warnings.
        dbSave(cv)
        dbClose(cv)
    );end when cv
);end procedure CallbackCell

发表于 2022-9-23 15:33:58 | 显示全部楼层


yanpflove 发表于 2019-3-1 18:30
回复 3# huqy

哇哦,谢谢指点,通过遍历List来实现,真是方便简洁多了。


重写了一遍,load没有错,执行的时候报了下面的错误:
图片.png

代码如下:

/*
Description??Update the schematics' callback.
Usage:
In CIW, load this file;
Type CallbackLib("library_name") to handle one library.
Type CallbackCell("library_name" "cell_name") to handle one cell.
*/
/*********************One library*********************************************/
procedure(ZtCallbackCell(lib cell)
printf("^_^ Cell \"%s\" begins! \n" cell)
when(cv=dbOpenCellViewByType(lib cell "schematic" "" "a")
    foreach(instID cv~>instances
        cdfgData=cdfGetInstCDF(instID)
        foreach(param cdfgData~>parameters
            when(param~>callback evalstring(param~>callback))
        );end foreach param
        cdfUpdateInstParam(instID)
    );end foreach instID
;schCheck(cv)
    dbsave(cv)
    dbClose(cv)
);end when CV
);end procedure



发表于 2022-12-5 19:02:43 | 显示全部楼层
请问这句话是什么意思?cdfUpdateInstParam(instID)
发表于 2023-3-29 10:29:17 | 显示全部楼层
学习学习,谢谢大佬分享~
发表于 2023-3-30 12:28:47 | 显示全部楼层
感谢楼主分享
发表于 2023-4-10 16:52:05 | 显示全部楼层
谢谢大佬!!!!非常有用的分享
发表于 2023-4-20 16:33:05 | 显示全部楼层
学习一下
发表于 2023-4-27 11:21:49 | 显示全部楼层
亲测有效,感谢
发表于 2023-6-9 14:23:55 | 显示全部楼层


nanke 发表于 2020-1-17 17:23
楼主这个脚本亲测可以用,就是有3处格式错误
(1) cdfgData后面要有空格(2) schematic要加双引号变为“ ...


这几处确实有问题,麻烦楼主更新到最开始文件中去,以免其他人也踩坑
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-24 14:18 , Processed in 0.021707 second(s), 7 queries , Gzip On, Redis On.

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