基于ChipSmith的逆向(反向)模拟IC设计流程
概述
| 工具 | 本實驗指定 | 下載來源 |
| PDK | CSMC 工藝庫一套(本流程中采用st02) | eetop |
| 反向提取工具 | Chipsmith | 百度上有 |
| 系統(tǒng) | ①Windows系統(tǒng),運行Chipsmith ②Linux系統(tǒng),運行Cadence | |
| 仿真工具 | Cadence ic5141 | eetop |
學(xué)習(xí)本流程的前提
需要能夠掌握cadence環(huán)境的啟動和新建原理圖這兩項基本操作。
反向提取的目標(biāo):一個D觸發(fā)器的物理實物版圖照片
流程總框圖
一、提圖準(zhǔn)備
我們使用上華的csmc PDK其中的st02庫(可以不按照官方說明安裝PDK,直接在library manager里面導(dǎo)入st02即可)
1、將st02的所有元件的symbol放入一個新建的schematic(這里取名叫edif)中,如下:
放完后,點擊左邊的check and save(或者用快捷鍵shift+x)然后上圖中各個器件的引腳的邊框都會變黃,同時,會有警告(warning)窗口出現(xiàn),因為我們只需要器件的符號圖,所以對警告不予理會。
2、依次點擊Design=>Creat Cellview => From Cellview后出現(xiàn)如下對話框:
3、不予理會,什么都別動,直接選擇OK,然后出現(xiàn)下面的對話框:
4、還是什么都不做,直接選擇OK,出現(xiàn)如下對話框:
保存后并關(guān)閉即可。
5、
檢查上圖中edif是否在右邊多了一種View:symbol
如果還是只有schematic一種view,請返回到前續(xù)步驟檢查是否有操作遺漏。
6、接下來依次選擇Cadence啟動界面中的File => Export =>EDIF200
點擊Browse ,
選擇剛才生成的edif文件的View:symbol,用回車鍵Enter確定。
然后下面取個自己喜歡的名字
我想說的是,上面的Technology File最好指定一下,如果沒有,就自己制作一個,放到Cadence啟動路徑下,然后指定明確的自己制作的tf,否則,使用這個default.tf文件,在后期可能會有莫名其妙的問題如下填寫效果最佳:
之后便可在Cadence的啟動目錄路徑下找到chongming.out
注意,此步結(jié)束不代表就真的結(jié)束了,必須查看Cadence啟動路徑下的edifout.log,如果log不報錯,顯示類似如下:
則表示導(dǎo)出EDIF文件順利。
7.回到Windows,打開Chipsmith軟件(軟件在網(wǎng)上有下載)
我們依次選擇“文件=>新建工程”
然后取名為Chongming_Dff_learn
單擊上、下兩個“確定“即可。
8、還記得我們從Cadence里面導(dǎo)出的EDIF 200文件嗎?
現(xiàn)在立刻就要用到了
依次選擇“工具=>導(dǎo)入EDIF符號圖庫”
然后點擊下方的箭頭處
選擇我們的勞動果實:chongming.out(即之前提到的EDIF文件)
單擊打開。
然后選定庫,再選擇確定,就會出現(xiàn)如下提示:
操作完st02后,也要對basic庫選中后,繼續(xù)重復(fù)如上步驟,操作一遍(不可偷懶省略),直到出來上方的成功導(dǎo)入的提示為止。?
然后點擊右上方的“X”,關(guān)掉整個大對話框即可。
9、單擊版圖編輯
?
這里解釋下,實際工作中是不會出現(xiàn)這個的,因為會有芯片照片作為背景,此處我們由于沒有芯片照片,故采用書上的版圖照片來代替,以方便學(xué)習(xí)逆向流程。
10、下面以觸發(fā)器為例子,進行提圖練習(xí):
好,進入chipsmith的“版圖編輯”后,我們開始對下面的這個版圖進行提圖,
說明下:實際工作中,背景是實際的芯片照片,不會像現(xiàn)在這樣漆黑一片的。我們的核心任務(wù)就是:依葫蘆畫瓢。
11、以下是METAL2、METAL1、POLY和Subtrate(襯底以及肼)的位置,務(wù)必精確記憶,層與層之間的接觸孔的叫法都是行業(yè)規(guī)矩,不得肆意更改叫法,平時就要養(yǎng)成習(xí)慣。
12、制作符號器件(這是為了后續(xù)操作讓Cadence可以識別)
首先設(shè)置好右邊的控制面板(右邊的許多黑色橢圓,自己如果理解不透徹的話,請先按照我說的設(shè)置),如下,可用鼠標(biāo)改變控制面板的大小,方便觀看。
我們選擇BLACKBOX這一層來制作器件,首先回顧和復(fù)習(xí)常用操作:
Ctrl+Z放大
Shift+Z縮小
P 畫長條矩形(常用來畫連線)
R 用來畫矩形
U 撤銷上一步操作
C復(fù)制對象(可以是chipsmith里面的任何東西)
F 使視圖大小適中
Ctrl+D取消選定
Ctrl+S選定對象
Shift+L根據(jù)名字搜索器件
Shift+N創(chuàng)建新器件
Shift+D擺放器件
關(guān)于快捷鍵編輯:
選擇工具=>編輯=>熱鍵設(shè)置
上圖中自己設(shè)置時,是可以直接全部小寫輸入的。
好,下面我們開始制作MOS管,按R鍵,畫好四個方塊(因為mos有四個電極,對于其余器件也是一樣,有幾個電極就做幾個方塊)
按下R,之后一起按下Shift+N,此時
在左上方的A點鼠標(biāo)左鍵單擊一下,然后松手就會發(fā)現(xiàn)有邊框隨著鼠標(biāo)的移動而變化,把鼠標(biāo)移動到右下方,記住把4個小框框都圈住,(此步操作的含義是表示這四個小方框,也就是四個電極都屬于整個器件?;疑拇蠓娇虼砥骷挠行Х秶?#xff09;然后再在B處再鼠標(biāo)左鍵單擊一下,出現(xiàn):
選擇導(dǎo)入,選擇要做的器件的名字:
如果我要做電阻就選rhr1k.1或者rhr2k.1,然后選擇打開,這時,下圖的右上方就會出現(xiàn)圖形,圖形有時候會很奇怪,比如少了電極之類的,此時要檢查前面的步驟是否誤操作。
然后在庫單元輸入與符號圖名稱完全一致的名字mn,注意不要偷懶粘貼復(fù)制符號圖名稱中的東西,最好手動輸入,否則可能會導(dǎo)致莫名其妙的錯誤。然后選好左邊每個小方框(也就是電極)對應(yīng)的名稱,這個自己想怎么選就怎么選,別重復(fù)就好,無論何種電路,引腳類型一律Bidir,最后選擇確定。
不小心做得有點拉風(fēng)了。。。。其實我在公司里做得是很好看的。。。
然后重復(fù)上述步驟做出pmos。
由于我們提取反相器只需要mos管,所以不再做更多的器件。
也許讀者會問,既然只用兩種管子,讓讀者當(dāng)初把所有的元器件放到一個schematic里面,然后導(dǎo)出EDIF文件,那么麻煩干什么?既然我們提圖只用兩種mos,為什么不只放兩種器件,然后直接導(dǎo)出EDIF就了事了呢?
來日方長嘛,以后讀者說不定就會提取別的電路,要用到除了mos管以外的器件,第一次就把EDIF文件做大做全,以后就不需要再次導(dǎo)出EDIF文件了,進入chipsmith就可以果斷開始提圖,不需要切換到linux系統(tǒng)了,省時省力。
?
打開曾慶貴老師的《集成電路版圖設(shè)計》246頁圖9-13
這里有人會有疑問,我為啥要照著書本畫版圖???
因為我們沒有實際的芯片(當(dāng)前其實我是有的,不方便放出來,會被起訴的)
所以下面的插圖中你會看到背景都是黑色的(實際中都是芯片剖面),實際情況中,你是按照芯片剖面來放置器件和連接的,這個過程就稱為"提圖"。
完全手動操作,因此不適用于大規(guī)模數(shù)字集成電路。
接下來就有點馬拉松了。。。。耐心畫。
好了,先設(shè)置下步進距離。這個是對于使用rl+Z和Shift+Z的大、縮小倍數(shù)感到不舒適時所需要調(diào)節(jié)的。
方法如下,選擇上方的“選項=>顯示=>設(shè)置窗口步進距離”
然后記得設(shè)置好想用的快捷鍵,翻轉(zhuǎn)器件之類的,這個在chipsmith的用戶手冊中第20頁有詳細(xì)記載,這里不再贅述。
提圖時,由于這里我們只有一張紙,我們看不見襯底,為了方便,我們假定所有MOS的S、B短接,而在實際中,對于Power類IC在(本流程的第11步驟中有詳細(xì)框圖),注意,實際中要看得很仔細(xì),是不能輕易認(rèn)為S、B短接的,要仔細(xì)判定。這里是由于條件所限,所以我們才做如此假定。
二、開始提圖
明確概念:多晶硅跨越有源區(qū)形成MOS管。(哪怕是寄生的,也是MOS管)
由于我們沒有實際的芯片照片,只好一邊看書一邊提圖了,大概說些提圖的重點:
我們知道,MOS的器件制作中,有四個小方塊,表示四個電極,當(dāng)金屬條或者多晶硅連到這些方塊時,
即表示該電極被金屬條連接。對于不同的金屬條之間的連接,要用不同的接觸孔,比如M2和M1的接觸孔是VIA1,M1和POLY的接觸孔為CONTACT,如果M2和POLY連接,那么就只能設(shè)法先和M1連接,M1再和POLY連接了,也就是說此時需要兩個接觸孔和多添加一個M1,才能讓M2和POLY連接了。
如果M1和M1粗心交叉,即使初衷并不認(rèn)為他們是短接的,軟件也會認(rèn)為他們短接。所以畫交叉的兩個金屬條時要小心。
下圖中,深灰色的為POLY,黑色方框的為金屬條,方塊為接觸孔,灰色方框的為有源區(qū)。
請仔細(xì)提圖,否則會導(dǎo)致后續(xù)整理線路時的混亂。
可以先放置器件再連線,或者先連線后放置器件,也可以一邊放器件,一邊連線。
提圖時,器件種類的判斷不要搞錯。
另外,由于我們練習(xí)條件有限,提圖中的管子的寬、長不做測量要求。
對著上面的圖(假設(shè)這個是真實芯片版圖,因為我只是寫個流程,不可能真的把芯片版圖照片放出來,會有法律問題),在前序步驟已經(jīng)做好器件的條件下,一邊對著版圖(實際中是芯片的照片),一邊在chipsmith中提圖(在實際中,芯片照片將會代替chipsmith黑色的背景)
提完后,我們選擇后邊的控制板中的WORKUNIT
按R,然后對整個提圖畫一個大方框(必須包含所有自己的成果),即比原來多了一個很大的黃色方框
然后同時按Ctrl+D,然后同時按下Ctrl+S,進行如下操作選中黃色框:
如上操作,即可選中框圖(這個操作代表選中了所有東西),然后同時按下Ctrl+E(這個需要在快捷鍵中提前設(shè)置好,本流程的前面有詳細(xì)說明)
然后仔細(xì)填寫如下:
然后在上圖的E:\Chongming_Dff_learn處我們得到y(tǒng).edf
三、回到Cadence
由于windows系統(tǒng)中得到的y.edf中包含有回車鍵(行末結(jié)束符)
而Linux下面的回車鍵的行末結(jié)束符的ASCII編碼與windows下面的不同,所以導(dǎo)入y.edf后,在linux中打開會發(fā)現(xiàn)一大堆^M,需要進行清理,
所以,我們把y.edf在終端中進行轉(zhuǎn)化:
dos2unix y.edf
然后把它放入Cadence ic5141的啟動路徑下(此步驟必做),將我們的提圖成果導(dǎo)入Cadence,在Cadence的啟動界面中,選擇File=>Import=> EDIF 200
出現(xiàn)如下界面
填寫如上,然后點擊OK,如果導(dǎo)入失敗,查看edifin.log
注意,本流程的前序步驟里也有個與EDIF文件相關(guān)的操作,請進行比較:
前面是:File=>Export=>EDIF 200
現(xiàn)在是:File=>Import=>EDIF 200
還記得我們在下面的填寫嗎?
我們在上面中寫了a,那么到Cadence下的library就叫a,我們在上面寫了y,那么到了Cadence中的原理圖就叫y了。
然后我們復(fù)制y的東西到另外一個原理圖(如下),可以看到它是零散的一堆器件。
但是其實它是有連接關(guān)系的(仔細(xì)點看可以發(fā)現(xiàn)下面圖中每個引腳都有一條短線)
四、獲取電路功能
請設(shè)置好Cadence快捷鍵,令大鍵盤的數(shù)字9高亮同名線網(wǎng),0取消同名線網(wǎng)。
之后需要憑借我們的電路知識、高亮網(wǎng)絡(luò)標(biāo)號相同的連線(也就是前面提過的,利用大鍵盤上的數(shù)字0和數(shù)字9),將整理線路圖為合理的形式,如下:
最后,不斷對電路進行分析、仿真和參數(shù)的調(diào)整,我們可以得到:
這是一個CP上升沿有效觸發(fā)的主從D觸發(fā)器;
R=1時,清零;
CP下降沿時,主觸發(fā)器讀取數(shù)據(jù),而從觸發(fā)器進行數(shù)據(jù)鎖存
至此,IC逆向工程的前端工作已經(jīng)全部完成。
總結(jié)下流程:
1.一個芯片賣的很好,我想反向它,我交給第三方機構(gòu)把照片(這里我們是純黑背景)拍出來,導(dǎo)入ChipSmith.
2.工藝庫的器件從cadence導(dǎo)入到Chipsmith
3.照著chipsmith背景中的照片放置器件,連接所有器件之間的連線(教程中是以D觸發(fā)器為例)
4.Chipsmith的文件導(dǎo)入到Cadence,此時導(dǎo)入的文件已經(jīng)包含了芯片中的所有器件和連接關(guān)系,這些連接關(guān)係都是你在上一步驟中的chipmisth連接完成的.
5.猜測和整理哪些晶體管會組成哪些模塊,根據(jù)用戶手冊給你的信息,調(diào)試各個模塊。
例如,NPN/PNP出現(xiàn)的地方,極有可能是帶隙基準(zhǔn)模塊BandGap。
整理電路圖遵循的原則:
從VDD開始整理到GND,一定是從上往下原則,而不是從左往右原則。
整理電路需要最基本的數(shù)電模電知識,如果連數(shù)模電都沒學(xué)習(xí)過,基本的電路模塊都不認(rèn)識,是不可能整理線路圖的.
消耗時間:
5000數(shù)量晶體管左右的PowerIC一般單人提圖需要耗時一到兩周。
實際提圖中采用兩到三人提取線路圖,然后各自網(wǎng)表導(dǎo)出,利用Calibre的LVS功能進行SVS功能的校對。
SVS的意思就是原本是LVS的功能,把版圖網(wǎng)表替換為電路網(wǎng)表,這樣就能對照兩個人提取線路圖的差異了。
違法問題:
主要是版圖不能完全按照原來的畫,如果完全按照原來的畫,是會有訴訟的。
但是powerIC因為沒有太多市場價值,所以自己畫得隨意些,也不會對量產(chǎn)成品率有太大影響。
如果是RFIC,那盡量還是照著原來的畫.
工藝辨別問題:
你最終用的是自己 的pdk,
對方使用的是自己選擇的pdk.
你可以在chipsmith用軟件中自帶的尺子去量多晶硅的寬度是多少,
例如是0.5um,那么就是0.5um工藝.
但是即便如此,0.5um的半導(dǎo)體工藝多了去了,不同的工藝摻雜不同, IV曲線也就不同,需要你自己調(diào)試.
該流程適用范圍
①RFIC
②模擬IC
③數(shù)?;旌闲盘朓C
0.18um以上比較適合.
該流程不適用
純數(shù)字電路,這種一般需要HDL去電路綜合,超過一萬晶體管的電路不要自己瞎搞.提取出來的電路的時序極大概率是錯誤的.
注意事項
不要迷戀所謂的芯愿景公司去給你的數(shù)字芯片提圖,花一大筆錢,提圖效果不保證的.
這里的效果特指數(shù)字電路的時序.
如果你經(jīng)驗豐富,你會知道有些數(shù)字電路的信號就是窄脈沖,控制的非常好,
這些窄脈沖在你提取線路圖以后很可能因為延時問題而消失,你查都查不出來.
(因為你用的pdk和生產(chǎn)該芯片所用的pdk不是一個pdk,每個器件的延時都會不一樣,直接導(dǎo)致整個時序電路失效.)
反向一個芯片前一定要找有經(jīng)驗的老手做好最基本的最起碼的判斷再下手.
后記
完成前端工作后,需要配合工藝工程師討論電路是否有可能在需要采用的工藝中實現(xiàn),如果可能,將線路交給版圖工程師,并且指導(dǎo)版圖工程師關(guān)于版圖的布局等操作,版圖工程師完成版圖后,需要對版圖和線路圖進行后端驗證工作,必做的有LVS、DRC和ERC。同時根據(jù)實際需要決定是否對芯片提取PEX寄生參數(shù)、進行后版圖仿真。
? ? 上述工作完成后,版圖工程師生成芯片版圖的GDSII格式的數(shù)據(jù)文件,并將數(shù)據(jù)發(fā)送給晶圓代工廠進行流片,流片完成后,將所得裸片,根據(jù)線路工程師設(shè)計的打線圖,交由封裝廠進行封裝,并將封裝完成后的芯片交回原IC設(shè)計公司的測試部門進行測試,良品率較高后,賣給芯片代理商,如果良率不夠,那么需要檢查工藝角仿真(SS,TT,TS,ST,NN等工藝角,不同PDK的工藝角會略有區(qū)別)。而芯片代理商則把芯片賣給PCB級別的應(yīng)用工程師,應(yīng)用工程師利用芯片,設(shè)計合適的外圍電路,再配合機械工程師設(shè)計合適的塑料外罩模具,最終做成家電、軍工等產(chǎn)品,最終賣給老百姓、軍隊等。
總結(jié)
以上是生活随笔為你收集整理的基于ChipSmith的逆向(反向)模拟IC设计流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第4章-机器学习基础
- 下一篇: fit,fit_generator的使用