VLSI Full Custom Design 國立中山大學 資訊工程學系 溫家聖 Mar. 2012 E-mail:sheng@garfield.cse.nsysu.edu.tw Textbooks/Lecture Notes Textbooks 李博明、唐經洲, "VLSI設計概論/實論, "高立 圖書有限公司 , 2005/07, 中文 Additional Readings 趙敦華, "VLSI設計實習", 台科大, 2005/08/22, 中文 蔡明諭、莊作彬, ”全客戶式IC設計(ISBN: 986-7693-32-9)”, 學貫行銷股份有限公司出版, 書號P673 Lecture Notes available at http://vlsi.cse.nsysu.edu.tw/wen/vlsi/2012 超大型積體電路設計 製作流程(CAD 觀點) pre-layout simulation Hspice Model File Schematic editor Layout editor Technology On-line Check DRC Off-line Check LVS Layout Parasite Extract Cadence post- layout simulation Hspice LPE Model File INTRODUCTION 工作環境及工具介紹 Cadence的IC設計環境 ICFB (IC fabrication) Cadence-Opus Cadence公司設計的一套IC設計整合環境 包含數種IC設計時所需要的軟體 僅學習幾種就足以完成Full Custom Design Schematic editor Layout editor DIVA (on-line) DRC:Design Rules Check LVS:Layout V.s. Schematic Calibre (off-line) 具有公信力的驗証軟體 DRC、LVS LPE:除了電路本身外,把layout的一些寄生效應萃取出來成 為Hspice file供post-layout simulation Schematic Editor (Composer) 把可能可以符合規格的電路利用Schematic Editor畫出來,畫好的圖稱作 schematic view。 目的: 供之後畫好的layout作比對 對於Complexity高的電路,Hspice file不好寫,則可利用OPUS中的analog environment把schematic view轉成Hspice file。 Schematic editor (Composer) LVS Layout editor (Virtuoso) Layout Editor (Virtuoso) 先取得Technology file讓Virtuoso知道你有用到哪些光罩。 進行Layout。 利用Calibre幫我們作離線檢查看是否違反design rules。(DRC) 利用Calibre幫我們作離線檢查layout和schematic是否一樣。(LVS) Schematic editor (Composer) LVS Technology file Layout editor (Virtuoso) DRC Design rules Calibre Calibre是一套公信力高的驗証軟體,不包含在OPUS (在CADENCE的整體Design Framework叫OPUS)中,所 以要在外部執行。 通過Calibre的驗証是下線生產的必要條件 Calibre中我們需要的工具: DRC:比DIVA-DRC更細部的檢查程序 LVS:比DIVA-LVS更細部的檢查程序 LPE:供post-layout simulation使用 Calibre中的DRC和LVS都可利用下面兩種方式debug: 直接查看文字輸出檔,找尋錯誤位置 利用OPUS-Calibre Interactive把輸出檔叫進OPUS中debug HSPICE Pre-layout simulation: Specification circuit pre-layout simulation Hspice Hspice Model Post-layout simulation: LPE circuit + layout後之寄生效應 post-layout simulation Hspice Hspice Model 範例實作 Starting the OPUS 打開cadence 到userhome目錄下(Cadence) cd 個人帳號 建一個工作目錄名叫2p4m mkdir 2p4m copy必要檔案到2p4m中 display.drf 進入OPUS icfb& Cadence 範例實作 Schematic View Design Schematic Design 在這一部份我們要畫出欲layout之電 路圖,目的是要給之後的layout作比 對,以檢查是否有錯。 Schematic editor Create a Design Library(I) Schematic Design 輸入icfb之後見到的第一 個視窗叫作CIW (Commend Interpreter Window),我們常 常須要查看上面 的訊息。 建立Schematic view首先要叫 Manager 出Library CIW視窗 Create a Design Library(II) Schematic Design • 創造一個以台 積電TSMC 0.35um製程 為依據 的 library, 名 叫 MyLibrary Create a Design Library(III) Schematic Design Ok! 你已開出一個以 TSMC 0.35um製程為依據 的新library,這裏面將可 存放你之後要建立的cell。 在cell欄中是一些內定的 (default)cell。 Create a new schematic view(I) Schematic Design 我們產生一個名叫inv的 新cell。 Tool應注意要選擇 schematic editor – composer 才對。 確定資料正確點<OK> <本手冊以inverter為例> Create a new schematic view(II) Schematic Design 現在我們叫出了OPUS 的schematic editorComposer 等一下我們會使用到 1-bit wire,所以請注 意它的所在位置。 在它下面的是multi-bit wire,不要弄混了! Add Components (I) Schematic Design 也可直接按快速鍵“i” 我們要加入一顆有四 個接腳而W=1um, L=0.35um的pmos Hspice model選用 pch,並輸入W及 L 這時畫面出會出現你 要的pmos symbol Add Components (II) Schematic Design • 同上頁方式叫出有 四隻接腳並且 W=0.5um,L=0.35u m的nmos Add Power and Ground Schematic Design • • • 利用同樣方法把power及ground也加入到你的 schematic中。 利用1-bit wire工具把該連接的線連接起來 下一部我們要加入輸入及輸出埠 Add Pins Schematic Design 也可直接按快速鍵“p” Created an Invertor in Schematic View Schematic Design • Ok! 你現在已完成一個invertor的 schematic view。記得按下 Design/Check and Save,並到CIW下 看看有無錯誤。 • 接下來我們要把它做成symbol view。 Create an Invertor in Symbol View (I) Schematic Design • • 確定要從schematic view轉成的 symbol view 確定腳位正確後點選<OK> Create an Invertor in Symbol View (II) Schematic Design • • 你可利用Add/Shape/…那些工具去把symbol修改成你要的形狀,如inverter傳統 的形狀。 形狀修改滿意後選擇Design/Check and Save,並到CIW下看有無錯誤 範例實作 Pre-Layout Simulation Pre-Layout Simulation 本部份原本應該要最早做的,但若 我們先利用Schematic editor畫好電路 圖,進而直接轉出hspice file,就可免 除人工撰寫hspice file的麻煩。 本部份是為了要確定電路可達到規 格要求。 pre-layout simulation Hspice SPICE circuit simulation Mn1 15 17 20 20 NMOS W=5U L=0.5U <AD=…> Mp1 15 17 12 12 PMOS W=10U L=0.5U <AD=…> Rgnd 20 0 1K Cload 15 0 100F .MODEL NFET NMOS <parameters> (from technology files) .MODEL PFET PMOS <parameters> (from tech. files) Vin 17 0 PULSE(V1 V2 TD TR TF PW PER) .DC Vin 0 VDD VSTEP .TRAN TSTEP TSTOP 12 17 15 20 0 0 CDL out (1/2) CDL out (2/2) Inv.net 修改 netlist 檔 移掉subckt與 pin腳宣告,加上PULSE波形輸入與測 量Delay指令 Modify netlist file Execute & Result CosmosScope 在提示符號下打scope &的指令即可開啟波形 Scope Introduction Commend: scope & 3 6 VLSI Design Laboratory 選擇File -> open -> plotfiles 來加入所要看之波形檔-圖a 其中的files of type 選擇所需要的格式,因為是選擇 HSPICE 模擬,所以選擇 HSPICE(*.tr*,.)-圖b 圖a 3 7 VLSI Design Laboratory 圖b 選擇所需要的波形圖檔 檔案名稱 訊號名稱 3 8 VLSI Design Laboratory 在訊號名稱中選擇我們所要觀查的訊號, 概可產生我們所模擬的波形 3 9 VLSI Design Laboratory 範例實作 Layout Design Layout Design 本部份真正開始製作光罩。 強烈建議同學們有時間的話就把 basic VLSI Design再拿出來看一看,確 定自己了解光罩和下線出來的chip之 間的關係。 Layout editor Inverter layout vs. circuit VDD + a tub ties out transistors a GND out Create a new Layout View Layout Design Layout Editor (Virtuoso) Layout Editor Introduction Layout Design 1) 你目前工作中的layer 2) Library Name 3) 設定Instant與Pin可被 選擇嗎? 4) All Visiable(全部layer都 可看到) 5) Not all Visiable(只看到 工作中layer) 6) All Selectable(全部的 layer都可被選擇) 7) Not all Selectable(只 可選擇目前工作中layer) • 1 3 2 4 7 5 6 快速鍵務必要背下來, 以方便layout 1) 2) Save Zoom in,快速鍵按 (Ctrl+z) 3) Zoom out,快速鍵 按(Shift+z) 4) Stretch伸縮,快速 鍵按’s’ 5) Copy複製,快速鍵 按’c’ 6) Move移動,快速鍵 按’m’ 7) 加入Instant,快速 鍵按’i’ 8) Global Path layout專 用,快速鍵按’p’ 9) 打text2時用 10) Rectangular,畫四邊 形,按’r’ 11) 尺規,按’k’;消 除尺規,按’K’ 1 2 3 4 5 6 7 8 9 10 11 Make your Layout Editor Friendly to You Layout Design • • 第一次用Layout Editor時設 定這兩項可讓你工作較順 手。 設定完後save起來。 Design Rules(I) Layout Design • 我們的目的是要完成右 圖之inverter layout view。 • 你首先要先做出此圖中 幾個重要的layout,如: Contact of Metal1 to ThinOxide Contact of Metal1 to PolySilicon • • 總括來說,你得做出下 頁幾個重要的layout。 或按快速鍵O直接呼叫 元件 CMOS inverter的Layout ( 上圖 ) 及 Cross section View ( 下圖 ) 比較 Design Rules(II) Layout Design • Cellname: Metal1_Poly Poly • Cellname: Metal1_Metal2 Cellname: Metal1_Thin CONT Thin Metal1 • Cellname: Metal2_Metal3 • VIA1 VIA3 Metal1 Metal3 Metal2 Metal4 VIA2 Cellname: Metal3_Metal4 Draw Your First Layout Layout Design • 當你把上頁的關鍵layout都畫好 之後,請依指定名稱存好檔案。 • 接下來你就可以開始畫右圖的 layout了。也許你對2p4m的 design rules都不熟,沒關係,你 可以: 先大概畫出右圖的樣子 再用Calibre的DRC馬上check你 違反了哪些rule,進而一一修 正。 下一節就教你如何用Calibre Something to Mention Layout Design • 你可以切換你的layout圖,以方便你觀看分辨哪些是你add進來的 instance而哪些是你這張layout才畫入layer。 Shift+f Ctrl+f 或直接按快速鍵L Finish Latch-up CMOS ICs have parastic silicon-controlled rectifiers (SCRs). When powered up, SCRs can turn on, creating low- resistance path from power to ground. Current can destroy chip. Early CMOS problem. Can be solved with proper circuit/layout structures. add subtract-contact (well-contact, or tub-tie) properly Parasitic SCR structure Latch-up to avoid latch-up minimize Rnwell and Rpsubs achieved by placing numerous well and subtract contacts closed to the source connections of nMOS/pMOS devices devices carrying a lot of current (such as transistors in the I/O drivers) should be surrounded by guard rings Substrate/Well/Tub Contact/Tie/Tap Top-view and cross-view of Inverter CMOS NAND gate (2 nMOS in serail, 2 pMOS in parallel) + out b a 範例實作 Offline Check - Calibre Offline Check Dracula 若要下線生產,一定要經過公信力 高的驗証軟體檢查layout是否有問題, Calibre就是這樣的一套軟體。 Off-line Check Add Pin(I) Online Check-DIVA • 把Metal1用於pin的layer加入到LSW面版中,以便下頁使用。 Add Pin(II) Online Check-DIVA vdd!/input Vin/input Vout/output gnd!/input Start Using Calibre Offline Check - Dracula 準備一個基本檔案: drc 自己知道上述檔案在什麼路徑位置即可 Pre-work source calibre source /usr/mentor/cic_setup/calibre.csh .cdsinit setSkillPath(" . ~ /usr/mentor/Calibre_ss/cur/shared/pkgs/icv/tools/queryskl ") load("calibre.skl") 將此檔擺在執行目錄 71 VLSI_LAB 2015/4/13 How to run calibre From Virtuoso view calibre -gui 72 VLSI_LAB 2015/4/13 From Virtuoso view 73 VLSI_LAB calibre -gui 74 VLSI_LAB DRC Design Rule Check Example for Design Rules (not TSMC 0.35um 2p4m)- Min Width Min Width:每一層的最小寬度 例如規定:Poly1最 小寬度為0.5μm Min Space Min Space:相同層之間的最小距離 例如規定:Poly1與Poly1最小距離為0.5μm Min Clearance Min Clearance:不同層之間的最小距離 例如規定: Poly1與Poly 2最小距離為0.8μm Min Extension Min Extension:不同層之間的最小延伸距離 例如 規定:Poly1延伸出Field的最小距離為0.55μm Min Overlap Min Overlap:不同層之間的最小函蓋區域 例如規 定:Poly1 overlap Poly2的最小區域為0.7μm。請注 意,單位是長度而非面積。也就是外圈與內圈的距 離。 Max area Max area:最大容許面積 例如規定:Poly 2最大電 容面積100 μm*100 μm TSMC 0.35μm 2p4m Design Rule TSMC 0.18μm 1p6m Design Rule TSMC 0.18μm Design Rule 0.86 0.1 0.1 0.22 0.22 0.26 0.25 0.1 Minimum space from PMOS to NMOS is greater than 0.43 um 0.23 0.18 0.16 0.22 0.43 0.1 0.22 0.26 DRC Design Rule Check 實際操作 DRC Runset 86 VLSI_LAB 2015/4/13 DRC Input Rule Input rule Where do you want exe calibre 87 VLSI_LAB 2015/4/13 DRC Input Check File Calibre will create this file automatically 88 VLSI_LAB 2015/4/13 DRC Output Files 按Run DRC 89 VLSI_LAB 2015/4/13 result 過濾不必要的訊息 After run calibre DRC DRC RVE view Error area coordinates error check text 92 VLSI_LAB 2015/4/13 可以省略的error & DRC ok LVS Layout versus schematic 實際操作 94 VLSI_LAB 2015/4/13 LVS Runset 96 VLSI_LAB 2015/4/13 LVS Input Rule Input the rule Where do you want execute LVS 97 VLSI_LAB 2015/4/13 Input netlist LVS Input Check File (1/2) Calibre will create this file automatically 99 VLSI_LAB 2015/4/13 LVS Input Check File (2/2) Calibre will create this file automatically 100 VLSI_LAB 2015/4/13 LVS Output File 101 VLSI_LAB 2015/4/13 LVS ok LVS error 範例實作 Post-Layout Simulation Post-Layout Simulation 此部份利用Calibre的PEX產生Hspice 檔,供我們作最後驗証。 Layout Parasite Extract 電路模擬 在電路設計過程中有兩個階段需要進行電路模擬。 一般在進行佈局前先進行電路功能之分析(PreLayout Simulation, PreSim)。在完成佈局後由軟體萃取 出寄生效應,再進行一次模擬(Post-Layout Simulation, PostSim),以研判實際晶片可能的性能。 Load Runset Rules Inputs Outputs PEX後產生的三個檔案 Post-Layout Simulation Post-Layout Simulation 好不容易產生了我們要的SPICE檔, 不過它不能直接拿來使用。 我們得加入test pattern和一些condition 等等才能正確跑出我們要的模擬結 果。 post- layout simulation Hspice Modifying the Hspice file Post-layout simulation Awaves Design ->open 選擇要觀看的腳位 window->Stack/overlay mode Post-layout simulation post-layout simulation是由完整的佈局圖中萃取出電氣 參數(如MOS 的W、L 值,BJT,diode 的area, perimeter,node 的parasticcap.),並以HSPICE netlist方 式表示電路。而這個萃取的動作叫PEX,PEX是在 做佈局資料之元件與電路萃取,包含雜散電容及電 阻的計算,若雜散電容及電阻越大,則會影響到輸 出的正確性。 因此,電路在加入了更精確的雜散電容及電阻的計 算後,由於考量的條件變多了,結果會更趨近真實 晶片的情況,所以通常post-layout simulation所得到的 結果會比pre-layout simulation的結果還要差。 Comparing the Results Post-Layout Simulation • 比較一下pre-layout simulation和post-layout simulation的差異吧! • 一般在此時你得要檢查 你的post-layout simulation 是否符合規格,若不合 就得再作進一步修正。 Pre-Layout Post-Layout 加上I/O pad Introduction to 0.35um I/O PAD Cell Library I/O pad是IC內部電路與外界連繫的媒介,用於調整電壓準位、加大推動能力 等。 0.35的I/O pad Library中只有零散的pad cells,必須自己手工兜製。 Chip最大面積為1500um x 1500um,只要是在此範圍之內,pad的數目最使用36 組。 在此Library中的cells皆不完整,內部機密都已被拿掉,我們只能看到如metal等 layers. 因為不完整,所以也沒有提供cells的schematic,因此不能作LVS驗証;我們只須 對我們的core作DRC和LVS,最後要作post-layout simulation時我們得去參考我們 所使用的I/O pad cells的規格(CIC有提供)。 送下線時,CIC會幫我們把這些不完整的I/O pad cells換為真正的TSMC I/O pad cells。 Procedures of Making I/O pad frame 打開此layout view,並在1500um x 1500um範圍之內,製作I/O pad 確定你需要的I/O pad cells 加入I/O pad corner cells在四個 角落 加入你要的I/O pad cells到邊 邊上 加入pad feeders去填補缺口 feeder corner I/O pad cells 我們的目標就是完成上圖 Main Problem of Making I/O Pad Frame 如何去了解TSMC所提供的I/O pad cells並選擇你所需要的cells是最主要 的課題。 TSMC提供的I/O pad cells大致可分為 下列幾種 Input cells Output cells Power cells Corner cells Feeder cells 所需用到的IO Pad種類 PDIZ 輸出腳位,腳位ONE必須接地 (數字越大表能推動的負載越 大) 輸入腳位 PVSS3Z GND PVDD3Z VDD PDT16TZ PCORNERZ 轉向用的角落 PFEEDxZ 填補剩餘空間,x代表寬度 加入IO PAD 操作步驟 使用stream in 的方式 存放的位置 GDS的名稱 匯入的 Library 使用instanced 的方式加入剛剛匯 入的iopad Making I/O Pad Frame - Placing Corner Cells • 先用尺規量出 1500x1500的範圍 • 把pcornerz cell叫進 來。 Making I/O Pad Frame - Placing I/O Pads • 將選定的cell一一加入到 邊邊上。 • 無論你使用什麼cell,一 定要記得把Vdd和Vss cells加入。 pvdd1m及pvss1m是 專用於供給core電 源 pvdd2m及pvss2m是 專用於供給I/O pad 電源 pvdd3m及pvss3m是 通用於core和I/O pad的 Making I/O Pad Frame - Placing Feeders • 利用feeders把缺口補好, 這樣電源才能順利傳送 • Feeders的寛度由1u到20u 都有提供,取適當寬度 以加速填補的動作。 • 注意:不要有重疊到 I/O pad cells上的狀況, 以免破壞到之後要替換 上的cells。 TSMC standard I/O library 使用注意事項 佈局時請使用Create Instance 的方式加入TSMC I/O PAD 之佈局,請勿使用直接複製I/O PAD內部佈局的方式加 入TSMC I/O PAD或將TSMC I/O PAD的佈局做flatten的動 作,以免發生無法替換TSMC I/O PAD 的問題。 使用TSMC I/O PAD 時,請將相鄰之TSMC I/O PAD 佈局 的邊緣貼齊,請勿任意將相鄰的兩個TSMC I/O PAD 的 佈局做部分重疊,以免在替換TSMC I/O PAD 之後造成 DRC Errors。 請勿使用”pad”做為設計者自行設計之pad 的cell name, 因設計者的pad 與TSMC之pad 的大小與佈局內之座標位 置不一定相同,在替換I/O PAD 時,將設計者的pad替換 成TSMC 的pad 後,可能造成開路、短路等問題。 建立如下的佈局 此處的IOPAD 和 CORE 使用同一 組VDD 和GND 會有雜訊的問題,請在你的設計中,使用分開的電 壓源提供給 PAD和 CORE 建議在output的腳位旁,加上 power和ground的pad 為了提供Output Pad良好的訊號輸出,建議在Output Pad兩側加上 vdd 和Gnd的pad 例如 pvdd3z pdt16tz pvss3z Power PAD的使用方式 約每7~8個PAD會使用一組power PAD(PVSS3Z& PVDD3Z)。 因此在最多使用36組PAD的情況下(教育性晶片面積 限制1500 * 1500 um2),約有8隻腳位(4組)是使用 power PAD,因此訊號腳只剩28隻 4~7pad 需要一組 VDD & GND pad Samples Vdd5V電源 內部電源 I/O pad電源 Connect Your Core to I/O pad It’s better not to overlap it 在iopad連結時 使紫色線剛好相鄰 (PAD長寬 84um 、 365 um) 可利用計算晶片總長寬來檢查 連結訊號時 只能連結到 下圖中的叉叉處,VIA也請 打在PAD的外側 連結出 power ring 注意不要短路 太寬的金屬線會出 現DRC錯誤,因此接到PAD上的超寬金屬線需要被 分割 Iopad可做 drc 的check 但是lvs的check 必須移除iopad DRC 一般驗証時可以Hierarchical進行驗証, 由於CIC只接受Flat方式的驗証結果,故繳交佈局 檔時請以Flat方式進行最後驗証! 做drc check時 遇到的 可忽視的錯誤 可忽略錯誤 http://www2.cic.org.tw/%7Eshuttle/drc/t35ms/index.ht ml [使用率問題是不能忽略的,pad的問題可忽略] 常見錯誤可看文件 [常見不受理原因_T035MMAP002_1_0.pdf] Core output super buffer 因為電路的output需要接到 pad的輸入端,因此會有 負載的問題,使用模擬的方式判斷需要多大的 buf Post-Layout Simulation Critical path delay 請確定加上I/O pad之後你的critical path delay是否有 改變 Critical path座落位置改變 or 原Critical path delay增加 Super buffer 引入 Dummy pattern 的方法-(高密度元 件:解決某一材質使用率不足的問題)