模擬IC設(shè)計(jì)實(shí)踐入門(mén)

1. Linux下的基本操作
Linux之Kernel、shell、bash:
- Kernel是核心,直接控制硬件
- shell將用戶的指令與Kernel溝通,shell有很多種
- Linux使用的shell是Bourne Again Shell,簡(jiǎn)稱bash
- 詳細(xì)參考:https://www.cnblogs.com/z-x-p/p/11571569.html
桌面右鍵,點(diǎn)開(kāi)Terminal 類似于windows的cmd
快捷操作:
- 輸入文件名后按TAB,會(huì)自動(dòng)補(bǔ)充后綴
- 闊選一段文本,按鼠標(biāo)中鍵,會(huì)將其復(fù)制到命令
常用命令:
- ls 當(dāng)前目錄文件夾列表
- ll -a 列出當(dāng)前目錄所有文件及其屬性,包括隱藏文件等
- vi FilenName:vi是文本編輯工具,對(duì)該文件進(jìn)行文本編輯
INSERT(鍵盤(pán)上的插入鍵,我這是FN+INSERT)進(jìn)入文本修改模式
ESC 退出編輯模式
:wq! 保存并退出文本編輯工具
- 文件權(quán)限修改 chmod命令 略
- cd 跳轉(zhuǎn)當(dāng)前目錄
???cd .. 返回上一級(jí)目錄
???cd 文件夾名 進(jìn)入當(dāng)前目錄的下一級(jí)
???cd 路徑 進(jìn)入某路徑
???cd ~和cd /,~相當(dāng)于/home/用戶名,/表示根目錄
- mkdir FilenName 創(chuàng)建名為FilenName的文件夾
- rm -R FilenName 刪除名為FilenName的文件夾
- source FilenName 在當(dāng)前bash環(huán)境下讀取并執(zhí)行FilenName中的命令
- pwd 顯示當(dāng)前目錄路徑
進(jìn)入cadence
//前兩行打開(kāi)terminal 在~目錄下運(yùn)行RFIC.cshrc文件,該文件是cadence的配置文件,第三行啟動(dòng)cadence
cd ~
source RFIC.cshrc
icfb
//顯示如下界面,是cadence最底層的操作界面

介紹cadence菜單
后面使用時(shí)候再留意吧
2. 初識(shí)Composer和ADE
創(chuàng)建電路圖
- Tools→Library manager
- 左側(cè)Library選擇設(shè)計(jì)庫(kù)(這里選了RFIC_sin)
- File→Cell View:Tool為Composer,Composer是Cadence的電路圖編輯工具
繪制原理圖
- 快捷鍵i,調(diào)用元器件。點(diǎn)Browse選擇元器件,在原理圖中,View只能選擇symbol,選好后回車(chē)載入器件,ESC退出元器件載入

- 快捷鍵q,選中元器件后按Q可以顯示參數(shù)值
- 快捷鍵f,圖紙自適應(yīng)縮放
- 快捷鍵[ ],放大和縮小
- 快捷鍵w,wire,左鍵放置節(jié)點(diǎn)
仿真界面(ADE, analog Design Environment)
- ADE是virtuoso對(duì)schematic的仿真工具,514版本里是analog environment,617版本里變成了ADE縮寫(xiě)
- 在原理圖中打開(kāi),Tools→analog environment

- Design:原理圖信息;analyses:選擇仿真類型;Design Variables:選擇仿真變量,如容值、信號(hào)幅度;Outputs:仿真結(jié)果
- Session→SAVe State存儲(chǔ)仿真狀態(tài)
//選擇Directory則存儲(chǔ)在當(dāng)前目錄(工作區(qū));點(diǎn)擊Apply進(jìn)行存儲(chǔ),會(huì)顯示在Existing States
//選擇Cellview則可以在Library看到(選擇Cell后顯示在View列表中),在不同工程間轉(zhuǎn)移設(shè)計(jì)時(shí)方便
- Session→Load State加載仿真狀態(tài)
- Session→Options
//WAVeform Tool波形查看的工具,WAVeScan和AWD功能差不多,主要是界面差異
- Setup→Design對(duì)哪個(gè)電路進(jìn)行仿真(對(duì)哪個(gè)Cell)
- Setup→Simulator/Direc...設(shè)置仿真環(huán)境
//simulator設(shè)置仿真器(aps并行計(jì)算,計(jì)算瞬態(tài)快;數(shù)?;旌弦玫絪pectreVerilog這些仿真器,默認(rèn)采用spectre)
//Project Directory仿真存儲(chǔ)位置
//Host Mode仿真模式,
- Setup→Turbo/Paras...用于加快仿真速度的選項(xiàng)
//復(fù)雜電路后仿真開(kāi)啟Turbo 后仿真是綜合、布線布局后的仿真
//Parasitic Reduction去除細(xì)微的,幾乎無(wú)影響的寄生參數(shù)
- Setup→Libraries模型庫(kù)(? 不理解
- Setup→Temperature仿真溫度設(shè)置
- Setup→environment后仿真可能會(huì)用到,仿真環(huán)境的設(shè)置
//Switch View List仿真順序
- Outputs→To Be SAVed→Select On Schematic選擇需要保存數(shù)據(jù)的網(wǎng)絡(luò)和節(jié)點(diǎn),會(huì)顯示在Outputs框圖
- Outputs→To Be Plot同理
- Outpus→SAVe All保存設(shè)置,只有在這里把sAVe設(shè)置成selected(默認(rèn) allpub),To Be SAVe的設(shè)置才有效
- Simulation→Options仿真設(shè)置(仿真精度、溫度、收斂方法等)
- Simulation→Netlist→Creat只生成網(wǎng)表而不進(jìn)行仿真
- SImulation→Convergence Aids收斂助手,設(shè)置節(jié)點(diǎn)電壓,初始條件,通常在大型電路難收斂時(shí)進(jìn)行設(shè)置
- Tools→Parametric analysis設(shè)置參數(shù)掃描,類似COMSOL
- Tools→Corners工藝偏差設(shè)置
- Tools→Monte Carlo蒙特卡洛仿真,通過(guò)大量失配條件下的仿真,觀察結(jié)果跟設(shè)計(jì)指標(biāo)差多少,表現(xiàn)良率、魯棒性
- Tools→Calculator計(jì)算器
通常直接在右側(cè)的圖標(biāo)選擇
- Choosing Design
- Choose analysis選擇仿真類型,通常默認(rèn)設(shè)置中等精度(moderate),此處設(shè)置后會(huì)顯示在analyses框圖內(nèi)
- Edit Variables
- Setup Output設(shè)置輸出,可以編輯公式,設(shè)置后顯示在Outputs框圖內(nèi)
- Delete 刪除框圖內(nèi)的內(nèi)容
- Netlist and Run建立網(wǎng)表并運(yùn)行
- Run用之前的網(wǎng)表運(yùn)行
- Plot Output畫(huà)圖
- Plotting mode:通常選Append
3. 原理圖設(shè)計(jì)和仿真(CMOS反相器)
CMOS RF工藝庫(kù)基本特性
- 工藝庫(kù)SPICE模型說(shuō)明文檔目錄:/home/EDA/kit/PDK13mmrf_1P6M_30k/docs
TD-MM13-SP-2001v8P.pdf:.13um工藝,混合信號(hào),1V2/3V3 SPICE模型
- 主要看第七章,MOS、BJT、電阻電容等器件的模型參數(shù)
刪除已有Cell:右鍵長(zhǎng)按選則delete,復(fù)雜的確認(rèn)機(jī)制避免誤刪
繪制CMOS反相器原理圖
- 建立名為INV的原理圖
- 放置NMOS:在smic13mmrf_1233(.13um工藝庫(kù))中找到mosfets→n12(1V2的NMOS)→symbol(原理圖只能選這個(gè))
//快捷鍵i
- 放置PMOS:同上,選p12,器件如下圖

//紅字NM0是器件唯一的標(biāo)識(shí)符
- 查看和修改晶體管參數(shù):Length設(shè)置.13um,F(xiàn)inger數(shù)設(shè)置2,PMOS Finger Width設(shè)置2um,NMOS設(shè)置1um(遷移率比值通常設(shè)置2,以達(dá)到相同的導(dǎo)通電阻)
//快捷鍵q
//Multiplier設(shè)置并聯(lián)個(gè)數(shù),同一個(gè)器件可以設(shè)置為多個(gè)并聯(lián)
//Length溝道長(zhǎng)度
//Total Width晶體管整體寬度=Finger Width(柵寬)*Fingers(柵極數(shù)量)
//Gate Connection柵極連接方式,和版圖相關(guān)的設(shè)置
//Switch S/D交換源漏極
//主要的修改就是溝道寬長(zhǎng)
- 檢查和保存:點(diǎn)擊左側(cè)圖標(biāo)Check and SAVe
//快捷鍵x
//有懸空電極,報(bào)warning
- 連線:Gate相連、Pdrain連Nsource,把Psource和nDrain引出來(lái),Pbulk連到電源(Psource),Nbulk連sub(模擬電路)或Ndrain(數(shù)字電路),這里作模擬電路處理,先引出來(lái)
//快捷鍵w
//雙擊結(jié)束連線
- 添加端口:左側(cè)圖標(biāo)pin,設(shè)置輸入端IN,Direction為in;輸出端OUT,Direction為out;添加電源VDD,地GND、襯底SUB,Direction設(shè)置inout
//快捷鍵F3:調(diào)出添加pin窗口
//把pin放在連線上,拉動(dòng)pin會(huì)自動(dòng)補(bǔ)充連線
//批量設(shè)置端口,多個(gè)Pin Name用空格隔開(kāi),點(diǎn)Hide后按順序放置即可
//端口用大寫(xiě):有的工藝在DRC等檢查時(shí)默認(rèn)不區(qū)分大小寫(xiě),但有的工藝庫(kù)會(huì)把所有小寫(xiě)認(rèn)成大寫(xiě),都用大寫(xiě)避免混淆
//快捷鍵shift+m:移動(dòng)位置(和直接拖動(dòng)相比,不改變連線)
//快捷鍵right click:旋轉(zhuǎn)

- 再次保存,這時(shí)無(wú)warning
- 建立仿真用的symbol:Design→Create Cellview→From Cellview→彈出創(chuàng)建CellView的對(duì)話框→OK→彈出Symbol Generation Options窗口,可以設(shè)置Pins的布局等→OK,生成symbol如下圖

- 保存symbol:左側(cè)選項(xiàng)欄sAVe
- 關(guān)閉原理圖和symbol,觀察Library Manager中INV這個(gè)Cell的內(nèi)容,有schematic和symbol兩個(gè)view
建立仿真用的testbench(測(cè)試平臺(tái))
- FIle→New→CellView→Name改成INV_testbentch
- 調(diào)入之前畫(huà)好的symbol
- 添加仿真用的電壓源和gnd:analogLib→Everything→vdc(gnd)→symbol
//Cell為gnd,注意GND≠gnd,gnd是絕對(duì)地電平,GND是芯片引腳,是相對(duì)地,GND和gnd之間也要放一個(gè)可控電壓源
//直接在原來(lái)的Add Instance窗口把Cell改成gnd就可以放置了
- 復(fù)制操作:框選器件→按c
- 添加電源封裝引線的電感:Cell為ind,連接在電源上,電感大小2nH,阻抗設(shè)置100mΩ
//常規(guī)QFN、QFP封裝,1um引線電感為1nH左右,長(zhǎng)度通常有2um
- 添加gnd封裝引線的電感:連接在地線,電感大小1nH,阻抗50mΩ
//gnd通常bounding到芯片背面的大片金屬地上,引線電感會(huì)小,引線長(zhǎng)度在1mm以內(nèi)(?)
- 添加引線,用網(wǎng)絡(luò)命名來(lái)設(shè)置節(jié)點(diǎn)對(duì)應(yīng)關(guān)系(讓原理圖更簡(jiǎn)潔):把線引出來(lái)→左側(cè)選項(xiàng)Wire Name,給wire添加label→對(duì)話框中Name設(shè)置為VDD→選中VDD引出的線,完成命名→復(fù)制該引線,放置到其他節(jié)點(diǎn)上,這些連接到具有相同名稱的wire的節(jié)點(diǎn)之間是互連的
//快捷鍵l:添加引線label(wire name)
- 對(duì)SUB的處理:也是連接到地,但和GND是并聯(lián)的接地關(guān)系

- 設(shè)置VDD=1.2V,GND=gnd(設(shè)置地電源為0)
- 設(shè)置脈沖波形輸入:analogLib→Everything→vpulse,設(shè)置DC=0V,V1=0V,V2=1.2V,Delay time=100ns,Rise time=Fall time=0.5us,Pulse Width不設(shè)置則默認(rèn)為0.5*Period,Period=1/F(F是頻率變量)
- 設(shè)置輸出負(fù)載電容,cell為cap,容值設(shè)置0.1pF

- 保存
進(jìn)行仿真操作
- 打開(kāi)ADE,Tools→analog Envir
- 調(diào)用變量,添加剛剛設(shè)置的變量頻率F:右側(cè)圖標(biāo)Edit Variables→Copy From(從原理圖調(diào)入)→在Table中選中F→Value設(shè)置為100k
- 添加直流仿真類型:右側(cè)圖標(biāo)Choosing analysis,dc(直流仿真),SAVe DC Operating Point保存直流工作點(diǎn)
- Netlisit and Run建立網(wǎng)表和仿真
- 生成仿真信息框
- 查看symbol外部仿真結(jié)果
//Result→Annotate→DC Node Voltage,所有節(jié)點(diǎn)的電壓都會(huì)顯示在原理圖上
//Result→Annotate→DC Operating Points直流工作點(diǎn),所有電流都會(huì)顯示在原理圖上
- 查看symbol內(nèi)部電路仿真結(jié)果:選中symbol,按快捷鍵e(進(jìn)入下一層),選擇schematic(原理圖子電路)
//快捷鍵e:進(jìn)入下一層原理圖
- mosfet粗略工作狀態(tài):查看DC Operating Points時(shí),會(huì)在原理圖顯示vgs、vds、跨導(dǎo)gm、過(guò)飽和電壓vdsat(vgs-vth)
- 器件詳細(xì)工作狀態(tài):Results→Print→DC Operating Points→鼠標(biāo)選中器件→彈出結(jié)果Results Display Window
//region:0 cut-off;1 triode(線性區(qū));2 saturation;3 subthreshold;4 breakdown
//ron:溝道電阻
- 返回上一層原理圖:Composer中Design→Hierarchy→Return
//快捷鍵CTRL+e:返回上一層原理圖
- 添加瞬態(tài)仿真類型:ADE的Choosing analysis,選擇tran,Stop Time選擇50us,精度選中等
//之前設(shè)置周期為10us,因此可以查看五個(gè)周期的瞬態(tài)
- 直接Run,不用重新生成網(wǎng)表,產(chǎn)生的仿真信息框內(nèi)包含直流仿真和瞬態(tài)仿真
- 用波形查看器查看瞬態(tài)仿真結(jié)果:Result→Direct Plot→Main Form,先查看電壓→在原理圖上click要查看的網(wǎng)表
//在ADE的Session→Options選擇波形查看器為WAVeScan或AWD,AWD可視化更好,可以按a和b添加游標(biāo),右鍵選中區(qū)域可以放大,shift+f復(fù)原
//快捷鍵a,b:在AWD波形查看器放置游標(biāo)a和游標(biāo)b
//快捷鍵shift+f:在AWD波形查看器復(fù)原視圖

NMOS和PMOS寬長(zhǎng)比不同設(shè)置下的工作狀態(tài)
- 進(jìn)入symbol內(nèi)部電路,此時(shí)電路是只讀,Composer中Design→Make Editable恢復(fù)可編輯模式
- NMOS和PMOS寬長(zhǎng)比比值=1:1(把PMOS Finger Width由2um改成1um),保存后在ADE中Netlisit and Run,
- 再次添加輸出網(wǎng)表為觀察對(duì)象,對(duì)比修改前后的輸出波形的變化

//翻轉(zhuǎn)電壓變低了,要翻轉(zhuǎn)電壓在中間,通常要設(shè)置PMOS的NMOS寬長(zhǎng)比比值為2:1
4. 版圖設(shè)計(jì)
virtuoso版圖界面
- 從原理圖導(dǎo)出版圖:Tools→Design Synthese→Layout XL,View Name是類型Layout,Tool用Virtuoso
//Virtuoso是cadence的版圖設(shè)計(jì)工具
- 彈出LSW窗口(層屬性)
//drw是可以畫(huà)的層
//AA層:有源層
//NW層:N阱
//DNW層:柵阱工藝,在Psub上制作一個(gè)深N阱,襯底隔離
//GT層:柵
//SN層:N型注入
//SP層:P型注入
//M1~M8層:金屬層1~8,工藝安裝時(shí)選擇的是1層p-Si,6層金屬互聯(lián)層(1p6f),因此只用得到M1~M6,M6采用的是30ke-10的厚金屬(RF領(lǐng)域需要)
//V1~V7層:過(guò)孔層,V1是M1~M2的過(guò)孔
//標(biāo)識(shí)層(?):PSUB等
//text層
//TM層:頂層厚金屬
繪制版圖
- 將用到的元器件從原理圖導(dǎo)入到版圖:在原理圖選中器件,在版圖Create→Pick From Sche,彈出對(duì)話框采用默認(rèn)設(shè)置,在版圖上點(diǎn)擊可以放置器件版圖
//按住shift可以選中多個(gè)器件
//快捷鍵shift+f:顯示版圖所有層次
//快捷鍵ctrl+f:只顯示版圖label外框
- 版圖層次打散:選中器件→Edit→Hierarchy→flatten,選中flatten Pcell→選中某一層,按Q查看
//Pcell是參數(shù)化單元,不用每次都重新畫(huà),參考:https://www.sohu.com/a/430596399_120873246
- NMOS包含哪些層

//藍(lán)綠色:SN層,N型注入
//紅色:AA層,有源層
//深藍(lán)色:GT層,p-Si制作的兩個(gè)柵極
//黑色:M1,金屬1層
//綠色:CT,過(guò)孔層,連接AA和M1,GT和M1之間也用CT
- PMOS包含哪些層

//紫色:NW N阱
//黃色:SP P型注入
//其余和NMOS相同
- 網(wǎng)格精度設(shè)置:virtuoso的Options→Display,Snap Spacing改成0.005,單位是um
- 重新導(dǎo)入NMOS和PMOS版圖,之前打散了不方便
- 移動(dòng)晶體管:選中晶體管后按m
//快捷鍵m:版圖中移動(dòng)器件
- 版圖中顯示連線關(guān)系:virtuoso的Options→DIsplay,Display Controls中選中Nets
- 源漏極金屬連線:在LSW選擇層M1→按p→點(diǎn)擊CMOS的Drain(設(shè)置起始端),選擇M1層→引線下拉到NMOS的Drain→回車(chē),完成連線;選中引線按q修改寬度等設(shè)置,按m移動(dòng)引線進(jìn)行對(duì)齊;需要將PMOS和NMOS的Drain連到一起,Source分別引出(到GND和VDD)
//快捷鍵p:版圖連線
//快捷鍵p→F3:按設(shè)置的尺寸進(jìn)行連線
- 柵極金屬連線:放置過(guò)孔將兩個(gè)柵極一起連到M1,Create→Contact,M1_GT,1×2;再通過(guò)M2把NMOS和PMOS的Gate連到一起
//過(guò)孔和Source保持一定距離,按k調(diào)出尺子,預(yù)留0.3um的距離
//快捷鍵k:尺子
//快捷鍵shift+k:清除尺子

//過(guò)孔和柵對(duì)不齊,畫(huà)一個(gè)矩形對(duì)齊它,在LSW選擇GT層,按r畫(huà)矩形
//快捷鍵r:畫(huà)矩形

//快捷鍵shift+z:逐步縮小視圖
//快捷鍵c:拷貝
//M2可以用金屬線,也可以用矩形,要添加M1和M2之間的過(guò)孔

- 只顯示某一層:在LSW選中層→上方NV按鈕→選中virtuoso窗圖按f;按AV按鈕重新顯示所有層
- 繪制襯底接觸環(huán):防止閂鎖效應(yīng);NMOS繪制M1-SUB的過(guò)孔,PMOS繪制M1-NW的過(guò)孔,圍成一個(gè)環(huán),其中內(nèi)測(cè)邊用AA層(有源層)連接,有源層要用摻雜層包圍,否則DRC報(bào)錯(cuò),注意PMOS中N阱要比保護(hù)環(huán)大
//同時(shí)修改兩個(gè)圖案的參數(shù):選中一個(gè)后按shift選中另一個(gè),按q,選中選項(xiàng)框右上角的Common
- 圖案拉伸:Select左邊顯示(F)標(biāo)識(shí)器件完整選擇,按下F4,會(huì)變成字母P,器件可以部分選中;框選要拉伸、移動(dòng)的部分(只選中一端則拉伸,全選中則移動(dòng))→按s→點(diǎn)擊剛剛框選的器件,可以移動(dòng)

- NMOS的保護(hù)環(huán)和Source短路了,把Source連接的金屬層改為M2

- 添加PIN:Create→Label,名字為IN、OUT...,放置Label后將其所在層改為對(duì)應(yīng)層,如IN在M2層,OUT在M1層,把Label圖標(biāo)最中間的十字標(biāo)對(duì)準(zhǔn)PIN要放置的位置,以此確定對(duì)應(yīng)關(guān)系

- 保存
- 版圖驗(yàn)證:前面的版圖設(shè)計(jì)留了一些錯(cuò)誤