54
VLSI布局設計與實習講義 Ultimate (v1.3)

VLSI布局設計與實習講義eportfolio.lib.ksu.edu.tw/user/4/9/4960K181/repository... · 2010-04-27 · MM3 net8 B gnd! gnd! N_18 W=500.0n L=180.00n MM2 F A net8 net8 N_18 W=500.0n

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

VLSI布局設計與實習講義

Ultimate(v1.3)

Icfb(Schematic)製作及轉netlist檔

cadXXKsu!@#$

cd (自己資料夾)

Icfb

2

Icfb

Icfb

Icfb

輸入:檔名.sp

輸入:~/資料夾位置

Icfb

Icfb

hspice及Presim

修改剛才轉出的.sp檔(改到如下圖並存檔)

.protect

.lib '/home/shadow/cad25/cic018/model/cic018.l' tt

.unprotect

.GLOBAL gnd! vdd!

.vec 'input_nand2'vgnd gnd! 0 0vvdd vdd! 0 1.8v

x1 A B F invter.tran 0.2n 30n.option post.end

.SUBCKT invter A B F*.PININFO A:I B:I F:OMM3 net8 B gnd! gnd! N_18 W=500.0n L=180.00nMM2 F A net8 net8 N_18 W=500.0n L=180.00nMM1 F A vdd! vdd! P_18 W=600.0n L=180.00nMM0 F B vdd! vdd! P_18 W=600.0n L=180.00n.ENDS

注意cic018.l的位置是否正確

此處和老師提供的檔名相同(COPY此檔與本SP檔放同一位置)

注意是否已改為N_18 or P_18 (原始為NM or PM)

此處要 .SUBCKT (上方箭頭格)後方內容一樣除了檔名須放在最後(此處範例為 invter)並切記勿再x1前加任何符號

此處與 x1(下方箭頭格)後方內容一樣(由icfb轉出以這行為準)

這段由icfb轉出除了右方兩點要改外其餘勿動

Presim

1. 開啟終端機進入自己的資料夾下2. 輸入:

hshspice 檔名.sp > 檔名.out&(上方方框)

3. 如出現 info: ***** hspice job concluded (上方方框)表示hspice你已確定成功一半

4. 開啟hspice產生的 檔名.out 用Find功能找有無error等字元如沒有則表示hspice成功,可以準備作Presim

Presim

1. 同樣在終端機下2. 輸入:

csscope(上方方框)

3. 出現Scope後(如圖)點資料夾(A)4. 並點檔案類型(B)選ALL……..5. 選檔名.tr0的檔後即可開啟

A

B

Presim

此區如出現x1等輸出波形表示Presim已經成功(可以按兩下開啟此波形)

Presim

Laker 和 DRC 、 LVS

開啟終端機(Termina),請於進入自己的資料夾後,輸入lk 後按下enter,再輸入laker 按下enter

Laker

開啟後點下Library,之後選擇New

Laker

在Library Name 的空格處輸入你的資料夾名稱

輸入完後,在ASCII File的位置點下箭頭指的資料夾找.tf檔(詳見下頁)

Laker

以cad24帳號為例,開啟後會看到這些資料夾,找到cic018後點下去,裡面有Laker.tf檔,選後按OK。

Laker

在Library的地方找到你取的名稱(範例為123),點選後在Cell的地方輸入你要畫的檔案名稱,按下enter

Laker

按下enter後會出現下面的視窗,按下YES就會進入繪圖介面了。

Laker

快捷鍵:

C:複製 F:顯示全圖

Delete:刪除 A:對齊

K:尺規 L:標示vdd,gnd方塊

M:移動 O:呼叫contact方塊

P:劃線長短 Q:元件內部屬性

R:畫長方形 S:圖形延伸或縮小

U:還原 Shift+K:消除尺規

Shift+Z:縮小 Ctrl+Z:放大

ESC:取消所有功能

一開始先畫一個CONT

CONT上下都是0.23u,METAL1上下左右距離CONT是0.125u

OD + METAL1

CONT

0.23

0.23

0.125

Laker

PMOS(上) NMOS(下)

畫出一個invter

以下是invter反向器全圖,有PMOS和NMOS的尺寸截圖,此為示範例子,請依老師規格繪製

NWELL

NIMP

METAL1

PIMP

POLY

OD

OD

NIMP

PIMP

POLY

METAL1

0.2

0.5 0.03

L=0.18u

W=1u

L=0.18u

0.1

0.2

0.2

W=1u0.2

0.2

0.1

0.2

0.2

0.20.03

0.25

Laker

NMOS

PMOS

W = 1u

L = 0.18u

W = 1u

L = 0.18u

1. PIMP(NIMP)距離DIFF為0.1u

2. PIMP距離NIMP為0u

3. PIMP距離PIMP為0.45u

4. NIMP距離NIMP為0.45u

5. POLY超出DIFF距離為0.2u

6. MT1距離MT1為0.24u

7. MT2距離MT2為0.27u

8. DIFF距離DIFF為0.3u

9. NWELL距離NWELL為1.6u

PMOS

NMOS

W=1u

W=1u

L=0.18u

Laker右圖是通過DRC、LVS的INVTER反相器全圖(請依老師規格繪製)(注意:Laker的I/O與VDD,GND英文字母皆打在M1_text層)

1.Layout完成後點Verify

2.選擇Calibre

3.選擇Run DRC

DRC

1.把.Calibre刪除

2.改好後選擇Rules

DRC

點下去選擇rules檔

DRC

以cad24帳號為例,開啟後會看到這些資料夾,找到cic018後點下去,找到Calibre後點下去,找到Calibre_DRC,進入後點Rule.drc。

1.

2.

3.

4.

DRC

1.點下去選擇你要存放的位置

2.完成後選擇Run DRC

DRC

沒有如下圖的X號出現表示你已過DRC,可準備接下頁的sp檔修改及LVS DRC

在做LVS前請先回到之前做修改的.sp檔進行以下步驟1. 開啟.sp檔2. 將之前所增加的程式前方加上 * 號(如上圖)(因這兩段是給hspice建檔用,LVS無法辨識這兩段程式)

LVS

1.DRC及sp檔修改完成後點Verify

2.選擇Calibre

3.選擇Run DRC

LVS

1.先點Netlist

3.注意Top Cell名稱是否正確

2.在Files:的地方點下….(接下頁)

LVS

找檔名.sp檔案,沒有的話就無法跑LVS

LVS

2.把.Calibre刪除3.改好後選擇Rules

1.點Layout

LVS

點下去選擇rules檔

LVS

以cad24帳號為例,開啟後會看到這些資料夾,找到cic018後點下去,找到Calibre後點下去,找到Calibre_LVS,進入後點Rule.lvs。

1.

2.

3.

4.

LVS

1.點下去選擇你要存放的位置

2.完成後選擇Run LVS

LVS

出現笑臉就代表驗證成功沒有錯誤

LVS

PEX 和 hspice、Posim

PEX

1. 需先過DRC及LVS

2. 先找到/home/shadow/cadXX/cic018/calibre/Calibre_PEX/Rule.rce

3. 開啟後以Find找字串include

4. 將Rule_20KA.rc和Rule_08KA.rc兩個檔的完整路徑打上後存檔(如左圖)

1.修改完成後點Verify

2.選擇Calibre

選擇Run PEX

PEX

PEX

路徑看下頁

選擇存檔位址

以cad24帳號為例,開啟後會看到這些資料夾,找到cic018後點下去,找到Calibre後點下去,找到Calibre_PEX,進入後點Rule.lvs。

1.

2.

3.

4.

PEX

PEX找到你資料夾下的.db檔

確認Cell名稱(使用時這邊有個 …. 按鈕)

步驟10

PEX找到LVS跑完的.sp檔

確認Cell名稱(使用時這邊有個 …. 按鈕)

這裡顯示error nets = 0 時表示你已經完成PEX

PEX

PEX得出三個檔(以inv為例): inv.pex.netlistinv.pex.netlist.INV.pxiinv.pex.netlist.pex

PEX

1. 將 檔名.pex.netlist 改為檔名.pex.sp

2. 將內容改為如下,並存檔:* File: invterHW2.pex.netlist* Created: Tue Apr 13 05:39:27 2010* Program "Calibre xRC"* Version "v2009.2_36.21"*

.protect

.lib '/home/shadow/cad25/cic018/model/cic018.l' tt

.unprotect

.GLOBAL GND! VDD!

.vec'input_nand2'vgnd gnd! 0 0vvdd vdd! 0 1.8v

.include "invterHW2.pex.netlist.pex"

.subckt invterHW2 B A GND VDD F* * F F* VDD VDD* GND GND* A A* B BM0 N_4_M0_d N_A_M0_g N_GND_M0_s N_GND_M0_b N_18 L=1.8e-07 W=5e-07 AD=2.1e-13+ AS=3.3e-13 PD=8.4e-07 PS=1.82e-06M1 N_F_M1_d N_B_M1_g N_4_M1_s N_GND_M0_b N_18 L=1.8e-07 W=5e-07 AD=3.3e-13+ AS=2.1e-13 PD=1.82e-06 PS=8.4e-07M2 N_F_M2_d N_A_M2_g N_VDD_M2_s N_VDD_M2_b P_18 L=1.8e-07 W=6e-07 AD=2.52e-13+ AS=3.96e-13 PD=8.4e-07 PS=1.92e-06M3 N_VDD_M3_d N_B_M3_g N_F_M3_s N_VDD_M2_b P_18 L=1.8e-07 W=6e-07 AD=3.96e-13+ AS=2.52e-13 PD=1.92e-06 PS=8.4e-07*.include "invterHW2.pex.netlist.INVTERHW2.pxi"*.ends*

x1 gnd! A B vdd! F invterHW2.tran 0.2n 50n.option post.end *

這段由PEX自動轉出勿更改

這段由PEX自動轉出勿更改

此處和老師提供的檔名相同(COPY此檔與本.pex.sp檔放同一位置)

注意cic018.l的位置是否正確

此處與 x1(下方箭頭格)後方內容一樣(以這行為準)

此處要 .subckt(上方箭頭格)後方內容一樣除了檔名須放在最後(此處範例為 invterHW2)並切記勿再x1前加任何符號

Posim

1. 開啟終端機進入自己的資料夾下2. 輸入:

hshspice 檔名.pex.sp > 檔名.pex.out&(上方方框)

3. 如出現 info: ***** hspice job concluded (上方方框)表示hspice你已確定成功一半

4. 開啟hspice產生的 檔名.pex.out 用Find功能找有無error等字元如沒有則表示hspice成功,可以準備作Posim

Posim

1. 同樣在終端機下2. 輸入:

csscope

3. 出現Scope後(如圖)點資料夾(A)4. 並點檔案類型(B)選ALL……..5. 選檔名.pex.tr0的檔後即可開啟

A

B

Posim

此區如出現x1等輸出波形表示Posim已經成功(可以按兩下開啟此波形)

Posim

END

請盡速繳交作業