本人实际测试了Cadence 17.4版本, 经历过DRC报错不间断如雪花般纷飞、无法跑出GDS的困境, 只要新手严格依照步骤逐个进行操作, 便能够轻易避让开这类极为常见的问题。 第……
本人实际测试了Cadence 17.4版本, 经历过DRC报错不间断如雪花般纷飞、无法跑出GDS的困境, 只要新手严格依照步骤逐个进行操作, 便能够轻易避让开这类极为常见的问题。
第一步 工艺文件导入与规则绑定
点开菜单 File , 然后选择 New项目下的 Library, 去新建出一个库。随后对着库名点右键操作, 选 Technology里的 Attach Technology, 于弹出的窗口之中找寻你代工厂所给的.tf 工艺文件路径。务必得选对文件, 不然的话所有规则都会陷入混乱状态。完成这些操作之后, 库便会自动加载设计规则, 其中包住最小线宽、最小间距这类基础参数。
【新手需防蹈的坑】, 好多新手在点击Attach Technology之后, 没有出现任何反应, 通常出现这种状况的缘由是, .tf文件的路径当中包含有中文或者空格,Cadence进行读取时会直接弹出“Technology file not valid”的提示。处理方式为: 将文件放置于全然英文的目录之中, 举例来说, 像D:/tech/tsmc018.tf这样的, 然后再度开展一次操作。
第二步 关键DRC参数手动校准
通过按下快捷键 CM 将 Constraints Manager 打开, 于 Physical 标签所处的界面里, 寻觅 Default 规则集。将这里的 Min Line Width 设置成 0.18um , 把 Min Spacing 设置为 0.18um。这两个数值是 0.18um 工艺下的最优推荐数值, 若过小会致使流片的时候金属线短路 , 要是过大则会造成面积浪费。处于Same Net Spacing的环境当中, 把那个Min Via Spacing设定为0.22um, 以此防止在打孔这个行为发生的时候, 出现密度过高这样的情况, 进而避免相关问题产生。
【新手需防入坑】, 在设置完参数之后去运行 DRC, 出现了“Spacing < 0.18”这种情况不断地冒出来。经过检查发觉是因为 M1 层电压不一样致使间距所需要求变得更大。其缘由在于: 在 Constraints Manager 里面没有专门去设置 M1 层的 Diff Net Spacing。解决办法是: 进入到 Electrical 标签, 去建立全新的 Voltage 约束组, 把 M1 的 Net 进行分类, 还得指定间距偏置为 0.22um, 还要注意这些操作的先后顺序, 不能弄错了。
第三步 跑DRC与常见报错修复
当处于 Assura 菜单状态或者 PVS 菜单状态之下的时候, 去点击 Run DRC 选项, 从中选中 Standard 模式类型, 在适宜位置输入规则文件.rul 的路径信息。然后点击 Start 按钮, 在这个操作全部完成之后, 去查看 DRC Error 窗口情况。倘若出现报错“M1_M2_Via overlap insufficient”, 那就意味着通孔覆盖短缺。通过手动操作去拖动M1层金属或者M2层金属, 使得通孔能够完全被金属所包裹, 并且至少要多出0.05um的余量。
【新手需防】在进行DRC的时候, 于“Checking connectivity”这个步骤出现卡死情况, 产生报错“ERROR: Unconnected terminal in hierarchy”。其缘由是, 顶层Cell当中存在一个pin, 此pin未连接到任何的线。一种解决的办法是, 于 Schematic 之中去检查与之对应的端口的 Net 名, 要保证 Layout 里面同样存在着相同名称的 Label, 不然的话就断开然后重新进行连接。单单直接去更改 Layout 的 Text 文本, 有可能不会产生预期效果, 必须要先把原来的 Pin 给删去, 接着运用 Create Pin 命令重新进行操作。
第四步 GDS导出规则检查
当处于准备流片的阶段时, 点击 File , 接着选择 Export , 再选择 Stream , 然后选择 GDSII 格式。在 User-Defined Data 当中勾选 Merge Pcells , 以免多边形数据有所丢失。层映射文件, 一定要使用代工厂所提供的那个.map, 要是自己随意乱写, 那么在厂里就会收到“层编号不匹配”这样的邮件。
有一种新手需要避开的坑, 在导出GDS之后, 使用Calibre进行验证时, 会发现M1层全部变成了M2。经过检查, 原因是Layer Map里的数字对应有误。对此有个常见的情况, 新手从网上下载了一个通用的.map, 却没有按照代工厂的规格进行修改。正确的做法是, 将代工厂所提供的.tf 文件打开以后, 去寻找到 layerNumber 与 datatype 之间的对应关系, 而后手动把它写入到.map 里面, 就像 M1 31 0 这样来进行书写, 最后再重新进行导出。
实操方案对比
针对规则检查, 存在Assura以及Calibre这两种方案 , Assura集成于Cadence里面, 操作上手速度快, 适宜于小规模芯片进行快速迭代 , Calibre则更为稳定, 运行大设计时不容易崩溃, 厂端收取数据时基本上都认可Calibre的DRC结果。要是你仅仅是自己进行验证, 采用Assura会比较省事 , 要是数据需要交给代工厂, 最好在最终导出之前用Calibre再检查一遍, 防止对方因报错而打回来。
多电压域混搭的高端芯片, 像电源管理IC里高低压层交错的情形, 这个方法并不适用, 这时DRC规则得单独去写脚本扩展。简易的替代办法是直接借助手动规则对逐层予以检查, 然而效率很低, 仅适用于极少量的版图。
微信扫一扫
还没有评论呢,快来抢沙发~