问题描述
对项目而言,有时会有工艺转换的需求(process porting)即将整个项目从一个工艺移植在另一个工艺上。
例如,从「SMIC180」工艺转成「TSMC180」的工艺,我们则需要:
- 把当前 SMIC 设计库的电路使用的器件,替换成 TSMC 对应的器件
- 更新器件参数,如修改 MOS 管的长宽比
- ……
以上两点,基本上是移植工艺所需要的步骤。
在实现方法上,你可能首先想到的一个通用的方法就是手动进行替换,但这种方式比较耗时,也容易出错。
所以,有没有办法实现自动更改替换呢?
解决方案
下面就来介绍一种利用 SKILL 脚本,快速实现整个库的电路设计转换方法。
1)公众号后台回复关键词「porting」,下载 SKILL 文件

⇨ PS:此代码来自_Cadence 官方_非原创
2)在 CIW 窗口中输入以下命令,加载 SKILL 文件

⇨ PS:引号内的内容修改成 .il 文件所在的路径
3)在 CIW 窗口中继续输入命令,打开 migration 选项卡

4)在弹出的选项卡中,设置转换信息

4.1 Target library:
下拉菜单选择要进行移植的设计库
4.2 Target cells:
选择一个或多个 Cell 进行迁移,点击「+」确定
4.3 Target libs and cells:
列出了所有待转换的库和单元
4.4 mapping file:
指定移植转换的「.Map」映射文件
4.5 Choose view type:
选择转换的视图类型,提供 Schematic 和 Layout 两种类型
4.6 Backup original:
是否需要自动备份原始的视图
4.7 Recreate inst:
是否需要重新调用器件以使用默认参数值
在这里我们需要编写一个「.map」文件,来映射转换库之间的对应关系。
格式如下:
oldLib oldCell oldView oldProp ... oldProp99 # newLib newCell newView newProp1 ... newProp99格式介绍:
编写 Map 文件时,主要需要填写转换的 Library 名称、Cell 名称、视图名称以及器件参数名(可选)。其中,前面红色字体是转换前的信息,后面绿色字体部分则是转换后的,当中通过「#」隔开。
示例解析:
下面是以 SMIC 转成 TSMC 为例,编写的一个示例:

SMIC 库的各项信息写在前面,需要对其进行三个 symbol 的转换,即:
- n18e2r
- p18e2r
- pnp18
接着写上对应的 TSMC 库的信息,三个 symbol 分别对应:
- nmos2v
- pmos2v
- vpnp
由于两个库定义的器件属性名称不同,因此它们的转换关系也需要列出。其中 MOS 管的属性「w」对应「wf」,「fw」对应「w」......
另外,你可以通过 CIW 窗口,选择「Tools」-「CDF」-「Edit...」来查看器件的各项参数的名称定义。
就像这样,很容易找出两者的区别:

5)完成上述设置后,点击「OK」开始转换
电路经过转换后,可能会出现器件参数显示的值与实际参数值不一致的问题,所以还需要通过以下步骤对 CDF 进行更新。
6)返回 CIW 窗口中输入命令,加载第二份 SKILL 文件

7)在 CIW 窗口中继续输入命令,执行更新操作

注:引号中的内容是转换库的 Library 名称
以上,是对不同工艺间进行原理图转换的一个流程介绍。
更多文章

打造个性化的 Virtuoso 工作界面:自定义窗口大小
介绍如何通过 .Xdefaults 和 .cdsinit 自定义 Virtuoso 中 CIW、Library Manager、Schematic 与 Layout 窗口的默认尺寸,让常用工作界面打开后更符合个人使用习惯。

Layout EAD 实时提取版图寄生参数(三):EMIR 检查
延续前两篇 EAD 参数提取流程,介绍如何结合 Spectre/APS 仿真数据完成 EMIR 检查,包括创建 Electrical Dataset、运行 EM 分析、查看 IR Drop 并将结果反标到电路中。

从想法到可用脚本:一次 AI 辅助 SKILL 开发实践
分享我是如何从一个最简单的想法出发,通过与 AI 的不断对话、迭代和调试,一步步将“批量 DRC一键验证”的工具从 0 到 1 搭建起来的。
邮件列表
加入我们的社区
订阅邮件列表,及时获取最新消息和更新