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

时间:2024-03-26 13:04:07

目录
序言·········································3
    壱、 提图准备································4
    弐、 开始提图·······························27
    参、 回到Cadence····························32
    四、 获取电路功能···························35
后记········································36


序言
学习本流程必备条件:
CSMC 工艺库一套(本流程中采用st02),来源于eetop
Linux系统及Cadence IC5141平台,来源于eetop
Chipsmith(可百度下载)
以上均于网上下载获得,请读者合法使用,谢谢!
学习本流程的前提:
需要能够掌握cadence环境的启动和新建原理图这两项基本操作。


流程总框图

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


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

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

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

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


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

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


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

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

保存后并关闭即可。
5、

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

 

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

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

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

点击Browse ,

基于ChipSmith的逆向(反向)模拟IC设计流程
选择刚才生成的edif文件的View:symbol,用回车键Enter确定。
然后下面取个自己喜欢的名字

 

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

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

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

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

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

则表示导出EDIF文件顺利。

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

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

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

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

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

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


然后点击下方的箭头处

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

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

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

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

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

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

9、单击版图编辑

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

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

10、下面以触发器为例子,进行提图练习:
好,进入chipsmith的“版图编辑”后,我们开始对下面的这个版图进行提图,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

 

接下来就有点马拉松了。。。。耐心画。
好了,先设置下步进距离。这个是对于使用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的逆向(反向)模拟IC设计流程

对着上面的图,在前序步骤已经做好器件的条件下,一边对着版图(实际中是芯片的照片),一边在chipsmith中提图(在实际中,芯片照片将会代替chipsmith黑色的背景)

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

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

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


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

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

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

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

 

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

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

然后仔细填写如下:

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

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

三、回到Cadence
由于windows系统中得到的y.edf的文件格式与linux下的文件格式是不同的。
所以,我们把y.edf在终端中进行转化:
dos2unix y.edf
然后把它放入Cadence ic5141的启动路径下(此步骤必做),将我们的提图成果导入Cadence,在Cadence的启动界面中,选择File=>Import=> EDIF 200
出现如下界面

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

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

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

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

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

 

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

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

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

 

总结下流程:

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

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

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

4.Chipsmith的文件导入到Cadence,此时导入的文件已经包含了芯片中的所有器件和连接关系.

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

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

 

整理电路图遵循的原则:

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

 

消耗时间:

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

 


后记
完成前端工作后,需要配合工艺工程师讨论电路是否有可能在需要采用的工艺中实现,如果可能,将线路交给版图工程师,并且指导版图工程师关于版图的布局等操作,版图工程师完成版图后,需要对版图和线路图进行后端验证工作,必做的有LVS、DRC和ERC。同时根据实际需要决定是否对芯片进行后版图仿真。
    上述工作完成后,版图工程师生成芯片版图的GDSII格式的数据文件,并将数据发送给晶圆代工厂进行流片,流片完成后,将所得裸片,根据线路工程师设计的打线图,交由封装厂进行封装,并将封装完成后的芯片交回原IC设计公司的测试部门进行测试,良品率较高后,卖给芯片代理商。而芯片代理商则把芯片卖给PCB级别的应用工程师,应用工程师利用芯片,设计合适的外围电路,做成家电、军工等产品,最终卖给老百姓、军队等。