基于ChipSmith的逆向(反向)模拟IC设计流程

概述

工具本实验指定下载来源
PDKCSMC 工艺库一套(本流程中采用st02)eetop
反向提取工具Chipsmith链接:https://pan.baidu.com/s/1n-rrjaf09idBpV4dGrQJhw?pwd=k7pi
提取码:k7pi
系统

①Windows系统,运行Chipsmith

②Linux系统,运行Cadence

仿真工具Cadence ic5141eetop



学习本流程的前提
需要能够掌握cadence环境的启动和新建原理图这两项基本操作。

反向提取的目标:一个D触发器的物理实物版图照片


流程总框图


一、提图准备
我们使用上华的csmc PDK其中的st02库(可以不按照官方说明安装PDK,直接在library manager里面导入st02即可)
1、将st02的所有元件的symbol放入一个新建的schematic(这里取名叫edif)中,如下:

放完后,点击左边的check and save(或者用快捷键shift+x)然后上图中各个器件的引脚的边框都会变黄,同时,会有警告(warning)窗口出现,因为我们只需要器件的符号图,所以对警告不予理会。
2、依次点击Design=>Creat Cellview => From Cellview后出现如下对话框:


3、不予理会,什么都别动,直接选择OK,然后出现下面的对话框:


4、还是什么都不做,直接选择OK,出现如下对话框:

保存后并关闭即可。
5、

检查上图中edif是否在右边多了一种View:symbol
如果还是只有schematic一种view,请返回到前续步骤检查是否有操作遗漏。

6、接下来依次选择Cadence启动界面中的File => Export =>EDIF200

点击Browse ,


选择刚才生成的edif文件的View:symbol,用回车键Enter确定。
然后下面取个自己喜欢的名字

我想说的是,上面的Technology File最好指定一下,如果没有,就自己制作一个,放到Cadence启动路径下,然后指定明确的自己制作的tf,否则,使用这个default.tf文件,在后期可能会有莫名其妙的问题如下填写效果最佳:

之后便可在Cadence的启动目录路径下找到chongming.out
注意,此步结束不代表就真的结束了,必须查看Cadence启动路径下的edifout.log,如果log不报错,显示类似如下:

则表示导出EDIF文件顺利。

7.回到Windows,打开Chipsmith软件(软件在网上有下载)
我们依次选择“文件=>新建工程”
然后取名为Chongming_Dff_learn

单击上、下两个“确定“即可。

8、还记得我们从Cadence里面导出的EDIF 200文件吗?
现在立刻就要用到了
依次选择“工具=>导入EDIF符号图库”


然后点击下方的箭头处

选择我们的劳动果实:chongming.out(即之前提到的EDIF文件)

单击打开。
然后选定库,再选择确定,就会出现如下提示:

操作完st02后,也要对basic库选中后,继续重复如上步骤,操作一遍(不可偷懒省略),直到出来上方的成功导入的提示为止。 
然后点击右上方的“X”,关掉整个大对话框即可。

9、单击版图编辑


 
这里解释下,实际工作中是不会出现这个的,因为会有芯片照片作为背景,此处我们由于没有芯片照片,故采用书上的版图照片来代替,以方便学习逆向流程。

10、下面以触发器为例子,进行提图练习:
好,进入chipsmith的“版图编辑”后,我们开始对下面的这个版图(注意下面其实是芯片解剖后的实物照片,因为会有版权纠纷问题,所以我只好在这里放了一个书上的版图代替)进行提图,

说明下:实际工作中,背景是实际的芯片照片,不会像现在这样漆黑一片的。我们的核心任务就是:依葫芦画瓢。
11、以下是METAL2、METAL1、POLY和Subtrate(衬底以及肼)的位置,务必精确记忆,层与层之间的接触孔的叫法都是行业规矩,不得肆意更改叫法,平时就要养成习惯。

12、制作符号器件(这是为了后续操作让Cadence可以识别)
首先设置好右边的控制面板(右边的许多黑色椭圆,自己如果理解不透彻的话,请先按照我说的设置),如下,可用鼠标改变控制面板的大小,方便观看。

我们选择BLACKBOX这一层来制作器件,首先回顾和复习常用操作:
Ctrl+Z放大
Shift+Z缩小
P 画长条矩形(常用来画连线)
R 用来画矩形
U 撤销上一步操作
C复制对象(可以是chipsmith里面的任何东西)
F 使视图大小适中
Ctrl+D取消选定
Ctrl+S选定对象
Shift+L根据名字搜索器件
Shift+N创建新器件
Shift+D摆放器件
关于快捷键编辑:

选择工具=>编辑=>热键设置

上图中自己设置时,是可以直接全部小写输入的。
好,下面我们开始制作MOS管,按R键,画好四个方块(因为mos有四个电极,对于其余器件也是一样,有几个电极就做几个方块)

按下R,之后一起按下Shift+N,此时

在左上方的A点鼠标左键单击一下,然后松手就会发现有边框随着鼠标的移动而变化,把鼠标移动到右下方,记住把4个小框框都圈住,(此步操作的含义是表示这四个小方框,也就是四个电极都属于整个器件。灰色的大方框代表器件的有效范围。)然后再在B处再鼠标左键单击一下,出现:

选择导入,选择要做的器件的名字:

如果我要做电阻就选rhr1k.1或者rhr2k.1,然后选择打开,这时,下图的右上方就会出现图形,图形有时候会很奇怪,比如少了电极之类的,此时要检查前面的步骤是否误操作。


然后在库单元输入与符号图名称完全一致的名字mn,注意不要偷懒粘贴复制符号图名称中的东西,最好手动输入,否则可能会导致莫名其妙的错误。然后选好左边每个小方框(也就是电极)对应的名称,这个自己想怎么选就怎么选,别重复就好,无论何种电路,引脚类型一律Bidir,最后选择确定。

不小心做得有点拉风了。。。。其实我在公司里做得是很好看的。。。


然后重复上述步骤做出pmos。
由于我们提取反相器只需要mos管,所以不再做更多的器件。

也许读者会问,既然只用两种管子,让读者当初把所有的元器件放到一个schematic里面,然后导出EDIF文件,那么麻烦干什么?既然我们提图只用两种mos,为什么不只放两种器件,然后直接导出EDIF就了事了呢?
来日方长嘛,以后读者说不定就会提取别的电路,要用到除了mos管以外的器件,第一次就把EDIF文件做大做全,以后就不需要再次导出EDIF文件了,进入chipsmith就可以果断开始提图,不需要切换到linux系统了,省时省力。
 

打开曾庆贵老师的《集成电路版图设计》246页图9-13

这里有人会有疑问,我为啥要照着书本画版图???

因为我们没有实际的芯片(当前其实我是有的,不方便放出来,会被起诉的)

所以下面的插图中你会看到背景都是黑色的(实际中都是芯片剖面),实际情况中,你是按照芯片剖面来放置器件和连接的,这个过程就称为"提图"。

完全手动操作,因此不适用于大规模数字集成电路。

接下来就有点马拉松了。。。。耐心画。
好了,先设置下步进距离。这个是对于使用rl+Z和Shift+Z的大、缩小倍数感到不舒适时所需要调节的。
方法如下,选择上方的“选项=>显示=>设置窗口步进距离”
然后记得设置好想用的快捷键,翻转器件之类的,这个在chipsmith的用户手册中第20页有详细记载,这里不再赘述。
提图时,由于这里我们只有一张纸,我们看不见衬底,为了方便,我们假定所有MOS的S、B短接,而在实际中,对于Power类IC在(本流程的第11步骤中有详细框图),注意,实际中要看得很仔细,是不能轻易认为S、B短接的,要仔细判定。这里是由于条件所限,所以我们才做如此假定。


二、开始提图


明确概念:多晶硅跨越有源区形成MOS管。(哪怕是寄生的,也是MOS管)
由于我们没有实际的芯片照片,只好一边看书一边提图了,大概说些提图的重点:
我们知道,MOS的器件制作中,有四个小方块,表示四个电极,当金属条或者多晶硅连到这些方块时,
即表示该电极被金属条连接。对于不同的金属条之间的连接,要用不同的接触孔,比如M2和M1的接触孔是VIA1,M1和POLY的接触孔为CONTACT,如果M2和POLY连接,那么就只能设法先和M1连接,M1再和POLY连接了,也就是说此时需要两个接触孔和多添加一个M1,才能让M2和POLY连接了。
如果M1和M1粗心交叉,即使初衷并不认为他们是短接的,软件也会认为他们短接。所以画交叉的两个金属条时要小心。
下图中,深灰色的为POLY,黑色方框的为金属条,方块为接触孔,灰色方框的为有源区。
请仔细提图,否则会导致后续整理线路时的混乱。
可以先放置器件再连线,或者先连线后放置器件,也可以一边放器件,一边连线。
提图时,器件种类的判断不要搞错。
另外,由于我们练习条件有限,提图中的管子的宽、长不做测量要求。

对着上面的图(假设这个是真实芯片版图,因为我只是写个流程,不可能真的把芯片版图照片放出来,会有法律问题),在前序步骤已经做好器件的条件下,一边对着版图(实际中是芯片的照片),一边在chipsmith中提图(在实际中,芯片照片将会代替chipsmith黑色的背景)

提完后,我们选择后边的控制板中的WORKUNIT


按R,然后对整个提图画一个大方框(必须包含所有自己的成果),即比原来多了一个很大的黄色方框

然后同时按Ctrl+D,然后同时按下Ctrl+S,进行如下操作选中黄色框:

如上操作,即可选中框图(这个操作代表选中了所有东西),然后同时按下Ctrl+E(这个需要在快捷键中提前设置好,本流程的前面有详细说明)

然后仔细填写如下:

然后在上图的E:\Chongming_Dff_learn处我们得到y.edf

三、回到Cadence


由于windows系统中得到的y.edf中包含有回车键(行末结束符)

而Linux下面的回车键的行末结束符的ASCII编码与windows下面的不同,所以导入y.edf后,在linux中打开会发现一大堆^M,需要进行清理,
所以,我们把y.edf在终端中进行转化:
dos2unix y.edf
然后把它放入Cadence ic5141的启动路径下(此步骤必做),将我们的提图成果导入Cadence,在Cadence的启动界面中,选择File=>Import=> EDIF 200
出现如下界面

填写如上,然后点击OK,如果导入失败,查看edifin.log
注意,本流程的前序步骤里也有个与EDIF文件相关的操作,请进行比较:
前面是:File=>Export=>EDIF 200
现在是:File=>Import=>EDIF 200
还记得我们在下面的填写吗?

我们在上面中写了a,那么到Cadence下的library就叫a,我们在上面写了y,那么到了Cadence中的原理图就叫y了。
然后我们复制y的东西到另外一个原理图(如下),可以看到它是零散的一堆器件。
但是其实它是有连接关系的(仔细点看可以发现下面图中每个引脚都有一条短线)

四、获取电路功能


请设置好Cadence快捷键,令大键盘的数字9高亮同名线网,0取消同名线网。
之后需要凭借我们的电路知识、高亮网络标号相同的连线(也就是前面提过的,利用大键盘上的数字0和数字9),将整理线路图为合理的形式,如下:

最后,不断对电路进行分析、仿真和参数的调整,我们可以得到:
这是一个CP上升沿有效触发的主从D触发器;
R=1时,清零;
CP下降沿时,主触发器读取数据,而从触发器进行数据锁存
至此,IC逆向工程的前端工作已经全部完成。

总结下流程:

1.一个芯片卖的很好,我想反向它,我交给第三方机构把照片(这里我们是纯黑背景)拍出来,导入ChipSmith.

2.工艺库的器件从cadence导入到Chipsmith

3.照着chipsmith背景中的照片放置器件,连接所有器件之间的连线(教程中是以D触发器为例)

4.Chipsmith的文件导入到Cadence,此时导入的文件已经包含了芯片中的所有器件和连接关系,這些連接關係都是你在上一步驟中的chipmisth連接完成的.

5.猜测和整理哪些晶体管会组成哪些模块,根据用户手册给你的信息,调试各个模块。

例如,NPN/PNP出现的地方,极有可能是带隙基准模块BandGap。

整理电路图遵循的原则:

从VDD开始整理到GND,一定是从上往下原则,而不是从左往右原则。

整理电路需要最基本的数电模电知识,如果连数模电都没学习过,基本的电路模块都不认识,是不可能整理线路图的.

消耗时间:

5000数量晶体管左右的PowerIC一般单人提图需要耗时一到两周。

实际提图中采用两到三人提取线路图,然后各自网表导出,利用Calibre的LVS功能进行SVS功能的校对。

SVS的意思就是原本是LVS的功能,把版图网表替换为电路网表,这样就能对照两个人提取线路图的差异了。

违法问题:

主要是版图不能完全按照原来的画,如果完全按照原来的画,是会有诉讼的。

但是powerIC因为没有太多市场价值,所以自己画得随意些,也不会对量产成品率有太大影响。

如果是RFIC,那尽量还是照着原来的画.

工艺辨别问题:

你最终用的是自己 的pdk,

对方使用的是自己选择的pdk.

你可以在chipsmith用软件中自带的尺子去量多晶硅的宽度是多少,

例如是0.5um,那么就是0.5um工艺.

但是即便如此,0.5um的半导体工艺多了去了,不同的工艺掺杂不同, IV曲线也就不同,需要你自己调试.

该流程适用范围

①RFIC

②模拟IC

③数模混合信号IC

0.18um以上比较适合.

该流程不适用

大规模纯数字电路,这种一般需要HDL去电路综合,超过一万晶体管的电路不要自己瞎搞.提取出来的电路的时序极大概率是错误的.

注意事项

不要迷恋所谓的芯愿景公司去给你的数字芯片提图,花一大笔钱,提图效果不保证的.

这里的效果特指数字电路的时序.

如果你经验丰富,你会知道有些数字电路的信号就是窄脉冲,控制的非常好,

这些窄脉冲在你提取线路图以后很可能因为延时问题而消失,你查都查不出来.

(因为你用的pdk和生产该芯片所用的pdk不是一个pdk,每个器件的延时都会不一样,直接导致整个时序电路失效.)

反向一个芯片前一定要找有经验的老手做好最基本的最起码的判断再下手,诸如,在显微镜下面观察裸片(可以浓硫酸+浓硝酸腐蚀芯片外面的黑色封装)中的器件是否常见,如果不常见,一般不推荐继续反向,成功概率小,容易造成亏损。

实际芯片中并非所有电路的原理都在你手边的教科书上可以找到,有些需要自己分析。

原始芯片往往支持多种PCB应用方案,不同客户会选择不同的应用方案,由于反向后得到的芯片支持的应用方案数量较少,因此必须提前沟通、知道客户的PCB电路(可以把客户的PCB产品买来自己反向一遍),并且在原理图中进行仿真确保实现,否则可能会Cadence ic5141原理图中支持一种电路,结果批量生产后客户想支持另外一种电路,导致亏损。这是因为,原始芯片提供的pdf中的信息是极其有限的,即使反向设计的芯片(静态、动态)参数吻合该pdf中所有参数,也不一定会支持原始芯片所能支持的所有PCB应用电路,因为原始芯片的pdf是没有必要有利于反向的。(这一点非常重要)

做好电路模块储备(类似于数字的单元库),对于芯片中常用模块及其参数,要以正向的心态分析和学习明白,以便于在以后得到复用、减少设计成本。

成本控制

一块5000晶体管的PowerIC芯片需要的逆向解剖(也就是你得到chipsmith能导入的文件)大概是2000-3000块

人工成本大概是3000多(两个大专生即可,经过培训后,各自两周能提取完),一般至少两个,因为反向提取所需要的细致程度和人的观察能力、做事情的态度、责任心息息相关。

大批量流片前首先进行MPW(样片)没啥问题再大批量流片。

多芯片封装,因为PowerIC的输入或者输出端往往是大功率MOS,是通过其他途径购买得到的裸片,和主体芯片进行焊接封装。


后记


        完成前端工作后,需要配合工艺工程师讨论电路是否有可能在需要采用的工艺中实现,如果可能,将线路交给版图工程师,并且指导版图工程师关于版图的布局等操作,版图工程师完成版图后,需要对版图和线路图进行后端验证工作,必做的有LVS、DRC和ERC。同时根据实际需要(RFIC重度依赖寄生参数)决定是否对芯片提取PEX寄生参数、进行后版图仿真(PEX寄生RC导入cadence原理图再次方针)。
       上述工作完成后,版图工程师生成芯片版图的GDSII格式的数据文件,并将数据发送给晶圆代工厂进行流片,流片完成后,将所得裸片,根据线路工程师设计的打线图,交由封装厂进行封装,并将封装完成后的芯片交回原IC设计公司的测试部门进行测试(直流点测试和动态功能测试),良品率较高后,卖给芯片代理商,如果良率不够,那么需要检查工艺角仿真(SS,TT,TS,ST,NN等工艺角,不同PDK的工艺角会略有区别)。而芯片代理商则把芯片卖给PCB级别的应用工程师,应用工程师利用芯片,设计合适的外围电路,再配合机械工程师设计合适的塑料外罩模具,最终做成家电、军工等产品,最终卖给老百姓、军队等。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值