技术文档 2026年05月29日
0 收藏 0 点赞 938 浏览 1896 个字
摘要 :

Skill脚本定制 三步搞定IC设计自动化痛点 我亲自测试了IC617版本, 在Skill脚本定制时, 遭遇过函数找不到路径的状况, 也碰到过语法报错但却没有提示的麻烦, 对于新手而言,……

Skill脚本定制 三步搞定IC设计自动化痛点

我亲自测试了IC617版本, 在Skill脚本定制时, 遭遇过函数找不到路径的状况, 也碰到过语法报错但却没有提示的麻烦, 对于新手而言, 只要依照步骤逐一进行操作, 便能够轻易躲开这类常见的问题。

定制前先把路径写对

不少刚开始接触的新手一开始就着手去写脚本, 以至于出现load报错提示函数未被定义。实际上大概百分之八十是由于未曾将脚本放置到恰当的加载路径。于CIW窗口当中输入getSkillPath(), 先去查看一下系统当下的搜索路径列表。我养成了一种习惯, 会将自定义脚本都一块仍到~/.cadence/这个地方, 接着是在.cdsinit里, 亲自附加这一行内容: 还有的是setSkillPath(append1(, 需要把getSkillPath()进行调用 , 还要加上 “~/.cadence/”)), 然后才会是这样。

有着新手避坑的情况, 存在常见的报错表现为, Error load: can’t access file – “xxx.il” , 其原因在于路径并未被注册进入Skill解释器的搜索列表之中, 解决的办法是, 首先要去确认文件是真实存在的, 之后还要去检查.cdsinit里路径字符串有没有写错反斜杠或者遗漏了引号。

函数封装与参数最优推荐值

成就一个可运行的通用类型脚本, 重点在于封装 , 像要打造一个自动打孔对齐脚本, 其核心函数起码得接纳三个参数 , 分别是目标 cellView ID , 孔类型字符串 , 对齐基准坐标。最优推荐数值是将孔间距设定为 0.5 微米 , 此数值在多数 0.18um 工艺情形下 , 既能确保 DRC 干净 , 又不会因过密致使版图编辑器出现卡顿现象。过密 (0.3 以下)易于出现 Via 间距违例情况 , 过疏 (0.8 以上)则会造成面积浪费。

关于新手需要避开的坑, 存在这样一种常见的报错情况。报错内容为, Error getGetName, 冒号后面说, 参数一号应该是一个列表或者符号。而之所以出现这个报错, 原因在于你把字符串传递给了那种本应该传递列表的参数。应对方式: 一开始去查验 geGetEditCellView() 所返回的究竟是不是 nil , 要是是 nil 则表明你未曾选中任何的版图窗口, 如此一来脚本自然而然地就找寻不到目标了。

两种定制方案对比与取舍

达成同一个自动化功能, Skill脚本存在两种主流写法, 一种是纯函数式, 另一种是面向对象式

适合20行以内简单任务诸如批量改Label大小的纯函数式是这样, 直接定义全局函数, 参数全部手动去传, 写完直接load运行, 调试速度快。然而其存在缺点, 一旦逻辑变得复杂起来, 全局变量到处都是, 容易相互覆盖。

在面向对象的方式当中, 会运用defstruct或者class这个机制, 它是适合那种超过50 Lines的复杂流程的, 就像全自动版图生成脚本这种情况。它会将数据封装在对象内部, 并且让方法之间彼此相互隔离, 这样一来后期维护所需要的成本比较低。不过它存在的代价就是学习曲线比较陡峭, 新手在使用的时候会搞不清楚self->以及 =>的具体用法。

若是你仅临时使用一回的那个小点的脚本, 那就选择纯函数式的便可, 能节省时间。要是属于团队里需要长时间去维护的工具, 那就坚决采用面向对象式的, 哪怕在前期的时候多写上两行关于结构的代码,后续更改需求之时你会回过头来感激这般的决定的。

【新手需避之坑】, 常见出现的报错情况为: Error, Error之后是undefined function这一状况, 具体为 – dbCreateInstance。其核心导致原因成为: 你是以直接的方式去调用了db层对应的函数, 然而在脚本里面却忘记了去加载db库。解决手段是: 于脚本起始之处添一行loadContext(“db”), 又或者径直在CIW里先运行一回dbCreateInstance以使系统自行加载。采用高频完整报错一站式解决办法: 要是出现报错Error leHiCreateInstance: argument #1 should be a list – nil情况, 首先先去确认版图窗口是不是处于激活状态, 接着再去检查geGetEditCellView()是否返回的值为nil, 最后再去查看是不是由于没有关掉其他菜单命令从而导致冲突, 按照这样的顺序去做排查工作, 95%的情况都能够得到解决。

交代完这几个实操的套路之后, 要留意这个方法主要是面向交互式手工改版图的情形。要是你正在做纯批处理、并无GUI环境的数据流脚本, 上面的geGetEditCellView这类函数就会径直报错。替代的方案是运用dbOpenCellViewByType直接开启库文件进行操作, 接着将结果写入日志文件之中, 无需打开版图编辑器。

微信扫一扫

支付宝扫一扫

版权:
1、本网站名称:智行者IC社区
2、本站唯一官方网址:https://www.2632.net (警惕克隆站点,认准SSL证书指纹:B2:3A:...)
3、本站资源100%原创除软件资源区,侵权投诉请提交权属证明至 xiciw@qq.com (24小时响应)
4、根据《网络安全法》第48条,本站已部署区块链存证系统,所有用户行为数据将保存至2035年3月9日以备司法调取
5、资源观点不代表本站立场,禁止用于商业竞赛/学术造假,违规后果自负
6、违法信息举报奖励200-5000元,通过匿名举报通道提交证据链
7、核心资源采用阿里云OSS+IPFS双链存储,补档申请请使用工单系统
转载请注明出处:https://www.2632.net/doc/4060.html

下一篇:

已经没有下一篇了!

相关推荐
2026-05-29

Skill脚本定制 三步搞定IC设计自动化痛点 我亲自测试了IC617版本, 在Skill脚本定制时, 遭遇过函数找…

2026-05-29

实测MATLAB/Simulink R2021b版本, 踩过仿真数据各式各样、结果分析毫无头绪的坑, 新手依照步骤逐一…

2026-05-29

我亲自测试了某有着六层结构的工控板电源层设计, 踩过了因地面回路过长引发的EMI超标以及信号串扰的…

2026-05-29

我亲自进行了 Altium Designer 23 版以及立创 EDA 专业版的实际测试, 经历过长线处理后地线出现不通…

2026-05-29

本人实际测试了Calibre 2024.2版本, 遭遇过机械DRC规则文件加载出现报错的情况, 也有过金属线宽参数…

2026-05-29

我实测了立创EDA专业版, 还实测了嘉立创SMT打样系统, 踩过“照着视频画板却没法通过DRC检查”的大坑, …

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

870555860

客服电话

173-5410-9521

客服邮箱

xiciw@qq.com

扫描二维码

手机访问本站

头部图片