2016年3月29日 星期二

Calibre 安裝與設定

#2020/04/16 更新

Calibre 是用來作 Design Rule Check - DRC 以及 Layout V.S. Schematic - LVS 驗證的工具,在古時候 DRC/LVS 驗證用的工具是 Cadence 的 Dracula。到了深次微米製程 (0.35 um 以下) 後變成以 Calibre 來作為 DRC/LVS 驗證工具。截至 2020/04 為止,CIC 所提供的 Calibre 版本是 2020.2,下載完畢後會出現

calibre_2020.2_14.12_linux_1of3.tgz
calibre_2020.2_14.12_linux_2of3.tgz
calibre_2020.2_14.12_linux_3of3.tgz
CIC.tar

這四個檔案,其中第 1-3  個檔案為安裝檔,第 4 個檔案為安裝說明。下載後請執行:

tar xfva calibre_2020.2_14.12_linux_1of3.tgz -C /opt/EDA
tar xfva calibre_2020.2_14.12_linux_2of3.tgz -C /opt/EDA
tar xfva calibre_2020.2_14.12_linux_3of3.tgz -C /opt/EDA


指令以便解壓縮。解開之後檔案會出現在 /opt/EDA/calibre 目錄,此時要進行環境設定,請編輯一般使用者 ~/.bashrc 加入底下設定:

Calibrebin="/opt/EDA/calibre/cur/bin"

export PATH=$PATH:$Calibrebin

export LM_LICENSE_FILE=1717@lsncku

export CALIBRE_HOME=/opt/EDA/calibre/cur
export MGC_TMPDIR=/tmp
export USE_CALIBRE_VCO=aoi

設定好之後重新啟動終端機載入環境設定,然後執行:

calibre -gui&

此時應該可以看到 calibre 的視窗。

 Calibre 與其它軟體的連結

Calibre 是屬於後端驗證的工作,在使用上有命令式及圖形介面兩種操作模式,圖形介面要與 virtuoso 整合在一起,因此要特別設定 virtuoso 的起始檔案,也就是 ~/.cdsinit 這個檔案,請在此檔中新增底下片段:

load( strcat( getShellEnvVar("CALIBRE_HOME")
"/shared/pkgs/icv/tools/queryskl/calibre.skl" ))

新增完畢後再重新啟動 virtuoso,此時應該可以在 virtuoso 的主視窗中看到底下訊息:


//
//  Calibre Skill Interface * (v2020.2_14.12) *
//
//                 Copyright Mentor Graphics Corporation 2005
//                             All Rights Reserved.
//         THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
//            WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
//              OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
//
//

如果出現底下錯誤的話,表示要設定 MGC_TMPDIR 環境變數如前面所示:

*WARNING* Calibre: The Calibre temp directory doesn't not exist. Check the $MGC_HOME/tmp directory or set the environment variable MGC_TMPDIR to a writable directory to fix this.


如果出現底下錯誤的話,那表示要把 /opt/EDA/calibre/cur/tmp 目錄打開寫入權限。

Can't open Calibre menu creation output file /opt/EDA/calibre/cur/tmp/virtInp.20677.customMenu for writing

請先切換至 /opt/EDA/calibre/cur 目錄,並觀看目錄權限,如底下所示:

# cd /opt/EDA/calibre/cur

/opt/EDA/calibre/cur # ls -l
lrwxrwxrwx  1 herman herman     29  8月 26  2015 docs -> ../docs_cal_2015.3_17.12/docs
lrwxrwxrwx  1 herman herman      8  8月 26  2015 tmp -> /usr/tmp

上面兩個連結檔都有問題,因此要刪掉重建:

/opt/EDA/calibre/cur# rm tmp
/opt/EDA/calibre/cur# ln -s /tmp .

至於 docs 目錄因為沒有提供,所以就算了。

作完之後,再重啟 virtuoso 看看還有沒有錯誤訊息。

2016年3月28日 星期一

Laker 下載與安裝

#2020/04/09 更新


Laker 原本是思源科技 (SpringSoft) 的產品,是標準台灣之光,後來被新思科技併購,因此目前 Laker 已畫入新思科技的產品中,在全客式流程中,Laker 有兩個產品,其中:

Laker Advanced Design Platform 是用來畫電路 schematic 用的,官方說明如下:

https://www.synopsys.com/TOOLS/IMPLEMENTATION/CUSTOMIMPLEMENTATION/Pages/laker-custom-design-ds.aspx

另一個為:

Laker Custom Layout Automation System 是用來畫佈局圖,目前 (2020/04) 的最新
版本是 2020.03,下載完畢後會出現 laker_2020.03_linux.tgz 這個檔案。

下載完畢後請執行

# tar xfva laker_2020.03_linux.tgz -C /opt/EDA

執行完畢後會出現 /opt/EDA/laker 目錄。之後請設定 .bashrc,新增底下內容:

Laker="/opt/EDA/laker/cur/bin"

export PATH=$PATH:$Laker

至於 Laker 的 License 設定如 .bashrc 中之:

export LM_LICENSE_FILE=5229@lsncku

啟動 laker:

請執行

laker&

即可看到 laker 畫面。如果出現底下錯誤訊息的話要另外處理:

/opt/EDA/laker/cur/platform/LINUX64/bin/laker: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory


上述問題是 laker 找不到 libpng12.so.0,「理論上」要安裝 libpng12 的套件,但是因為現在的 Debian 10 已經是 libpng16 版,因此我們要手動作連結,請以 root 權限執行底下指令:

# cd /usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu# ls -l libpng
lrwxrwxrwx 1 root root     19  4月  8  2019 libpng16.so.16 -> libpng16.so.16.36.0
-rw-r--r-- 1 root root 227248  4月  8  2019 libpng16.so.16.36.0
/usr/lib/x86_64-linux-gnu# ln -s libpng16.so.16.36.0 libpng12.so.0
/usr/lib/x86_64-linux-gnu# !ls -l
ls -l libpng* -l
lrwxrwxrwx 1 root root     19  4月  9 11:24 libpng12.so.0 -> libpng16.so.16.36.0
lrwxrwxrwx 1 root root     19  4月  8  2019 libpng16.so.16 -> libpng16.so.16.36.0
-rw-r--r-- 1 root root 227248  4月  8  2019 libpng16.so.16.36.0

此時你會看到 libpng12.so.0 已經連結到新版的 libpng16.so.16.36.0,此時再重新啟動 laker 看看能不能執行。

==================================

設定 laker 製程,請至 CIC 的製程目錄複製 laker.tf 回自己家目錄的 ~/model,指令如下:

cp /opt/PROCESS/CIC0181P6M/laker/laker.tf ~/model

之後即可建立新的元件庫,並建立新的 inv layout 圖來編輯 layout。

2016年3月22日 星期二

Cosmos Scope 安裝流程

#2020/04/09 更新

Cosmos Scope 原本是 Avanti 這間公司的產品,因為種種因素賣給了 Synopsys。此套軟體的目的很簡單,就是觀看 SPICE 模擬結果,因此它的容量很小,安裝也不難,截至目前 (2020/04) 為止,CIC 所提供的 Cosmos Scope 版本為 2019.06,下載後會出現

cosmos_scope_2019.06_linux.tgz

這個檔案,由於 Cosmos Scope 與 HSPICE 都是 Synopsys 的產品,因此 License Server 的設定是一樣的。請執行

# tar xfva cosmos_scope_2019.06_linux64.tgz -C /opt/EDA

此時會在 /opt/EDA 目錄解開 cosmos_scope 目錄,裡面有相關檔案。

設定 Cosmos Scope 路徑

請在 .bashrc 中新增底下幾行:

CosmosScope="/opt/EDA/cosmos_scope"
CosmosScopebin="/opt/EDA/cosmos_scope/cur/ai_bin"

export PATH=$PATH:$CosmosScope:$CosmosScopebin

之後可以載入此設定,並執行

$cscope&

來執行 cosmos scope,萬一遇上底下錯誤訊息的話,請確認網路設定是否有錯。

eecs@120:~$ /opt/EDA/cosmos_scope/cur/ai_bin/cscope
couldn't open socket: invalid argument
    while executing
"dp_MakeRPCClient $s_host $s_port"
    (procedure "AimSession" line 78)
    invoked from within
"AimSession 120 41865 localhost,eecs"
    while
evaluating -c supplied command

上述錯誤訊息是你的 /etc/hosts 及 /etc/hostname 沒有設定好所造成的訊息,請確認完全沒有問題後,再重新開機才能執行。


利用 Cosmos Scope 來觀看波形

請使用 virtuoso 轉出 netlist 檔,在 Ananlog Design Environment 中選擇 Simulation -> Netlist -> Create,此時會出現一個 netlist 視窗。在此視窗中執行 File -> Save As 把此檔存成 inv.sp (視你的電路而定),其內容如下:

** Generated for: hspiceD
** Generated on: Mar 22 11:43:44 2016
** Design library name: cic018
** Design cell name: not
** Design view name: schematic.2
.GLOBAL vdd!


.TRAN 1e-9 200e-9 START=0.0

.OP

.TEMP 25.0
.OPTION
+    ARTIST=2
+    INGOLD=2
+    PARHIER=LOCAL
+    PSF=2
.INCLUDE "/home/herman/model/1p6mcic018.include"

** Library name: cic018
** Cell name: not
** View name: schematic.2
m0 vdd! in out vdd! P_18 L=180e-9 W=720e-9
m1 0 in out 0 N_18 L=180e-9 W=360e-9
v0 vdd! 0 DC=1.8
v1 in 0 PULSE 0 1.8 0 100e-12 100e-12 50e-9 100e-9
.END

執行 hspice inv.sp 可以得到 inv.tr0 這個檔案,但是因為我們還沒有設定要觀看的波形,所以這個檔案沒辦法用 Cosmos Scope 來觀看波形。此時會出現錯誤,因此要修改inv.sp 檔,在 .OPTION 區段加上 + POST,結果如下:

.OPTION
+    ARTIST=2
+    INGOLD=2
+    PARHIER=LOCAL
+    PSF=2
+    POST               <--- 此行為新增的設定。

接著再執行一次

hspice inv.sp

此時再打開 inv.tr0 看看有沒有波形可以觀察。

HSPICE 安裝

安裝 HSPICE 及模擬

SPICE 是電路模擬程式,在 1970 年代由柏克萊大學開始研發,之後發展出許多分支,其中 HSPICE 可算是電路模擬的工業標準,在完成電路設計後,必須以 HSPICE 來進行模擬以驗證電路功能是否正確無誤,符合我們的要求,模擬完後才能進行下線,沒有經過  HSPICE 驗證的電路其可靠性會受到質疑。

要安裝 HSPICE,請至 CIC 下載 HSPICE 之檔案,以 2016/3 月為例,目前最新版之 HSPICE 為 2015.06 版,下載完後會出現

hspice_2015.06_linux.tgz
installation_guide_synopsys.txt

這 2 個檔案,其中第一個是 HSPICE 的安裝檔,第二個是安裝說明,我們主要是看 HSPICE 的 License Server 設定埠為

26585@lsncku

HSPICE 的安裝路徑一樣整理到 /opt/EDA/hspice,首先下底下指令來安裝

# tar xfva hspice_2015.06_linux.tgz -C /opt/EDA

此時會自動在 /opt/EDA 底下將 HSPICE 安裝到 /opt/EDA/hspice 目錄下。HSPICE 安裝完畢後進行設定,否則無法對應到正確目錄,之後模擬會出問題。請在

/opt/EDA/hspice/cur/hspice/bin

目錄下執行 ./config 程式,請依目前安裝目錄來進行設定並退出,退出時注意看其訊息是否為 sucessed。完成此步驟後,接下來要設定執行路徑及 License Server。

設定執行路徑

請在 ~/.bashrc 中新增底下設定:

Hspice="/opt/EDA/hspice"
Hspicebin="/opt/EDA/hspice/cur/hspice/bin"

export PATH=$PATH:$Hspice:$Hspicebin

LM_LICENSE_FILE=26585@lsncku

作完後,以一般使用者的權限執行

$ hspice

看看能不能正常呼叫這個檔案,沒問題後,可以設定 HSPICE 環境,請將 CIC 的虛擬製程模擬檔 cic018.l 複製至 ~/model 目錄下,再編譯 ~/model/1p6mcic018.include 檔案,其內容只有一行:

.lib '/home/herman/model/cic018.l' TT

接下來可以在 virtuoso 中測試 HSPICE 是否能執行並跑出模擬波形,請依老師操作測試。

2016年3月15日 星期二

CIC 虛擬製程檔安裝及設定

EDA 工具安裝完畢後,要設定製程檔,如此一來才能進行電路模擬與晶片設計。我們把製程檔的目錄設定在 /opt/PROCESS,目前由於智財權的關係,CIC 僅提供本身的虛擬製程下載,請將檔案解壓縮在 /opt/PROCESS 目錄中,其位置是:

/opt/PROCESS/CIC0181P6M

其中會有底下檔案:

drwxrwxrwx  5 root root 4096 Mar  4  2009 calibre
drwxr-xr-x  2 root root 4096 Mar 14  2009 doc
drwxrwxrwx  2 root root 4096 Mar  4  2009 laker
drwxrwxrwx  2 root root 4096 Mar 14  2009 model
drwxrwxrwx  2 root root 4096 Mar  4  2009 virtuoso

其說明如下:

calibre    -> 提供 Mentor Graphics (明導國際) calibre 驗證之檔案,可以用來作  DRC、LVS 以及 PEX 驗證流程
doc        -> CIC 虛擬製程文件
laker      -> 提供 Synopsys laker 電路繪製之檔案
model      -> 提供 HSPICE 模擬之檔案
virtuoso   -> 提供 Cadence virtuoso 電路繪製之檔案

理論上,解壓縮完後,製程就安裝完畢,接下來要進行設定使用者家目錄,以使執行 EDA 工具時載入。我們預先定義的目錄如下:

~/         -> 使用者家目錄
~/model    -> 存放 SPICE model、DRC/LVS 命令及製程檔
~/lib      -> 存放所有自建 virtuoso 之元件庫
~/lklib    -> 存放所有自建 laker 之元件庫
~/simulation -> 存放所有模擬資料

目前為止,我們還沒有這些目錄,因此請先在使用者家目錄中建立這些目錄:

~$ mkdir model lib lklib simulation

複製相關檔案:

~/display.drf - Cadence 之 EDA 工具在顏色方面之設定檔,用來顯示 schematic
        view 或是 layout view 顏色。要複製此檔,請執行:
       
~$ cp /opt/PROCESS/CIC0181P6M/virtuoso/display.drf ~

~/model/cic18.tf - CIC 018 虛擬製程之技術檔,要複製此檔,請執行:
~$ cp /opt/PROCESS/CIC0181P6M/virtuoso/cic18.tf ~/model

~/model/cic018.l - 這是 CIC 0.18 製程的 SPICE 模型檔,此檔位於
/opt/PROCESS/CIC0181P6M/model/cic018.l,要複製此檔,請執行:

~$ cp /opt/PROCESS/CIC0181P6M/model/cic018.l ~/model




接著請自行使用 virtuoso 建立新元件庫及建立一個最簡單的 not 閘,來觀察其功能是否正確。並且要測試存檔功能,看看存檔後,能不能再次打開 not 閘這個檔案。



*** /etc/skel 目錄設定 ***