天天看點

ICC學習——LAB0A

ICC學習——LAB0A

文章目錄

    • ICC學習——LAB0A
    • Task1 啟動ICC
    • Task2 layout視圖導航
    • Task3 控制圖層的可見性
    • Task4 選擇和查詢對象
    • Task5 得到關于指令和變量的資訊

從今天開始學習ICC lab guide,記錄學習過程的一些小的細節,防止遺忘。内容以lab guide2010.12為主,穿插一些學習感悟。

學習目标:

1.熟悉ICC GUI

2.學習如何得到關于變量和變量的help資訊

預期效果

1.打開并退出ICC

2.打開一個已儲存的設計

3.配置layout視窗

4.浏覽layout視圖

5.選擇并查詢layout對象

6.使用help,printvar和man擷取有關指令和變量的幫助和附加資訊

Task1 啟動ICC

1.登入linux(可以忽略)

2.啟用ICC之前,删除GUI視窗配置檔案window configuration。(這個檔案儲存了之前的ICC設定)

rm ~/.config/Synopsys/icc_shell.conf
           

rm:删除指令

cd ~:打開代碼主目錄,互相于目前登入的使用者目錄

比如我的伺服器路徑,~代表/home/soc/使用者名

Note:删除視窗配置并不是必須的

3.從home目錄更改到lab0_gui目錄下

cd lab0_gui
           

4.在linux指令行下啟動icc

icc_shell
           

5.檢視目前目錄下檔案。在ICC shell中鍵入ls -la

icc_shell > ls -la
           

運作完後可以看到兩個檔案,一個是icc_shell.cmd,一個是.log

cmd包含所有ICC指令包含啟動icc的指令。

log記錄開啟ICC後的指令和指令的輸出。

Note:log檔案的名字可以通過在.synopsys_dc.setup中定義。

ICC學習——LAB0A

6.打開ICC可視化界面

icc_shell > start_gui
           
ICC學習——LAB0A

短暫的等待後,一個ICC主視窗(Main Window)被打開。設計載入後,這個視窗可以展示原理圖和邏輯層次。

Note:除了通過ICC_shell 鍵入指令,還可以直接在終端輸入icc_shell -gui。

7.從risc_chip.mw(MilkWay的設計庫)載入被放置的單元,分為以下幾步:

a.在主視窗,點選黃色圖示(左上方)或者使用菜單指令File —> Open Design

ICC學習——LAB0A

b.在Open Design視窗點選黃色檔案夾,“Select Library”對話框被打開。MilkWay庫倍一個橘黃色的“L”圖示标記。選擇庫檔案risc_chip.mw,并點選“choose”。

ICC學習——LAB0A

c.在“Open Design”對話框中展示了被存儲的CELs。僅有一個單元放在清單中,已經被選中(藍色高亮)。點選“OK”打開。一個新的layout視窗被打開了。

ICC學習——LAB0A
ICC學習——LAB0A

關于Cell View

MilkWay資料庫包含同一單元的不同表示,稱之為單元格的視圖。

1.CEL view:諸如通孔,标準單元,宏或整個晶片實體結構的完整布局圖,包含單元格的布局布線引腳和網表資訊。

2.FRAM view:用于布局和布線的單元抽象表示。包含金屬封鎖,允許通過區域和單元格引腳。

3.Fill view:ICC中sign_off_metal_fill指令建立的金屬填充視圖,用于晶片實體實作,無邏輯功能。

4.CONN view:由PrimeRail或由ICC建立并由PrimeRail工具用于IR drop和EM的電源和地網絡。

5.ERR view:ICC中驗證指令發現的實體設計規則違規,如verify_zrt_route或signoff_drc

存儲在MilkWay庫中的實體設計至少包含CEL視圖,CEL視圖包含布局、布線和掩碼生成所有的單元設計的資訊。每個宏單元(macro)都具有CEL和FRAM view,FRAM用于布局布線,CEL視圖用于晶片制造的掩模資料。

TLU+ <=> TLU plus

8.将main視窗放在前面,看視窗底部的指令文本,回答以下問題

問題1:打開placed cell時,執行了什麼指令

(提示:向上翻動,知道找到它——在指令行内按上下鍵,檢視之前輸入的指令)

答案1:open_mw_cel placed

ICC學習——LAB0A

順便看到了打開risc_chip.mw指令。open_mw_lib /位置/risc_chip.mw

ICC學習——LAB0A

檢視指令文本對初學ICC指令很有幫助。也可以通過terminal視窗得到指令的執行和響應。

9.将“layout”視窗前置并且最大化視窗

ICC學習——LAB0A

10.點選小寫的[F]鍵,使layout視圖适應視窗

你現在看的是叫作placed的layout CEL視圖,屬于risc_chip.mw設計庫的一部分。

在layout的外部,IO pad單元(淺藍色矩形)

ICC學習——LAB0A

在core區域的四周。core是色彩鮮豔的。

ICC學習——LAB0A

在core和IO pad區域之間有綠色和紅色的金屬環,叫作power ring,一個VSS,一個VDD。

ICC學習——LAB0A
ICC學習——LAB0A

為了更好進行供電,在core區域有垂直和水準的VDD/VSS straps。

ICC學習——LAB0A

核的底部有兩個RAM macro。

ICC學習——LAB0A

在設計規劃階段确定了核心和外圍布局以及電源布線

core,io cell,power routing

在placement階段,标準單元放置到水準放置行内(RAM上面的深藍色區域)

ICC學習——LAB0A

利用Task2中的zoom 操作可以看到标準單元

ICC學習——LAB0A

藍色區域是由狹窄水準走向的金屬線組成,叫作VSS/VDD rails,主要作用将power傳到标準單元上。

ICC學習——LAB0A
ICC學習——LAB0A

power ring:一周的電源

power straps:類似于ring但是在core内,垂直和水準電源。

power rail:将電源供到單元上,VSS,VDD交替排列,形成水準放置列,中間擺放标準單元。

Note:Layout window有自己的菜單,一些與主視窗共享,其它的一些由Layout Window獨有。大多數的實體設計都通過Layout window來形成。

Task2 layout視圖導航

1.花幾分鐘熟悉zoom(縮放)和pan(平移)按鈕,當縮放和平移時觀察Overview Window中的黃色矩形變化。

Overview Window:在layout window的左上角。

ICC學習——LAB0A
ICC學習——LAB0A

提示:layoutwindow有快捷zoom,pan工具,選擇工具進行不同的操作,點選白色箭頭或ESC退出zoom和pan模式。

ICC學習——LAB0A

問題2:帶有2的放大按鈕和帶有+的放大按鈕的不同,

回答:2是放大兩倍,+是正常放大。

2.“快捷鍵/熱鍵”是可獲得的,當layout視窗運作時。

小寫字母[F]/[Ctrl + F]:相當于zoom fit all(全景圖)

Z:相當于zoom in放大功能。

zoom in模式下可以拉一個橘黃色的矩形,放大此區域。

3.可以找到其他熱鍵,通過以下兩種方式:

方式1:懸停滑鼠在按鈕上,出現一個“幫助氣泡”,氣泡力會介紹功能名和鍵盤快捷鍵。

ICC學習——LAB0A

方式2:可以在菜單中找到,路徑:Help —> Report Hotkey Bindings。一個新的視圖出現,列出熱鍵的定義。關閉這個view可以通過Windows —> close view / [Ctrl + W]

ICC學習——LAB0A
ICC學習——LAB0A
ICC學習——LAB0A

4.滑鼠手勢操作,個人用的比較少。更喜歡用GUI的按鈕和鍵盤熱鍵。

介紹滑鼠手勢操作方法:點選滑鼠中鍵并按住,同時上下移動指針,手勢操作菜單就會出現在指針附近。

ICC學習——LAB0A

上左/右45°,放大選中的矩形區域

5.鍵盤上的上/下/左/右也可以用來平移操作

6.如果滑鼠有滾輪,也可以用zoom in/out,在滑鼠指針附近的區域。

Task3 控制圖層的可見性

在view setting視窗,可以控制/檢視對象是可視的/可選擇的

ICC學習——LAB0A

以下步驟,将一次打開打開關鍵對象的可見性,清楚看到他們代表的内容。首先需要在設定的下拉菜單中選中“Auto apply”(保證選擇立刻生效,而不用等待)

ICC學習——LAB0A
ICC學習——LAB0A

a.在Vis列(可視化),取消所有的對象,僅保留Cell。

隻有标準單元,Macro,IO pad被展示

ICC學習——LAB0A
ICC學習——LAB0A
ICC學習——LAB0A

b.選擇Pin。輸入輸出電源連接配接引腳被展示

ICC學習——LAB0A
ICC學習——LAB0A

c.檢視Route。所有金屬線可視化

因為設計還沒有布線,隻有電源/地的預布線(在Floor階段做的電源布線),應該可以看到power ring和水準垂直的power straps 也可以看到power rail

ICC學習——LAB0A

d.檢測Labels(标簽)。單元和執行個體的名字變得可見。通過點選左側的“+”将Labels展開。利用Z檢視标準單元,會發現它的引腳名字變得可見。按[F]将視窗置于中間

ICC學習——LAB0A
ICC學習——LAB0A

e.選擇Layer選項,通過一層層微調可視性,在METAL(14)行和shape的交界處點選帶有對角線的藍色正方形,随後藍色的水準金屬rail消失。(METAL(14)就是metal 1)

ICC學習——LAB0A
ICC學習——LAB0A
ICC學習——LAB0A

f.再點選一次,使得metal1可見(即rail 可見)

g.選擇Objects選項,重新應用起始的設定。

問題3:上面的Vis和Sel列有什麼差別?

回答:Vis:可視,使對象可以被看到。SEl:可選擇,當點選是可以選中的。

不可視的不可被選中。

7.選擇Layer選項,使用顔色和填充圖案回答以下問題:

ICC學習——LAB0A

問題4:紅色水準電源strapes位于哪一層?它的名字和編号

回答:METAL3(22)

點選完後紅色strap消失

ICC學習——LAB0A

問題5:綠色垂直電源strapes位于哪一層?名字和編号

回答:METAL4(26)

ICC學習——LAB0A

8.通過滑鼠懸停在straps上,出現一個query視窗,并核對你的答案。query:查詢,query視窗有相關Layer圖層。

ICC學習——LAB0A
ICC學習——LAB0A

query:包含單元名,引腳數,是否被fix(什麼叫fix),形狀,所在層,寬度,長度,endcap等。

Task4 選擇和查詢對象

1.選擇對象

想要選擇對象,滑鼠必須是一個箭頭,代表選擇模式。

可以通過點選箭頭按鈕,或者[ESC]鍵。

2.用滑鼠左鍵選擇不同的單個對象。選擇對象以白色高亮顯示,直到取消選中或者選中其它對象,白色消失。

3.取消所有選擇的對象,有3種方法。

a.點選Layout空白處(常用這種方法,簡單實用)

b.菜單Select —> clear

c.鍵盤快捷鍵[Ctrl + D]

4.選中一個區域的多個對象。用左鍵拖放一個矩形,選中矩形的單元。

ICC學習——LAB0A

5.保持目前被選擇的對象,增加其它對象。按住Ctrl,滑鼠左鍵選擇其它對象,類似Windows

ICC學習——LAB0A

6.多個對象疊加時,通過左鍵不斷點選,直到所需對象高亮。可以嘗試通過點選紅色的straps和綠色straps交叉位置。

ICC學習——LAB0A

7.放大藍色核心區域。通過在周圍拖動選擇框選擇一些标準單元。

8.增加選擇單元和未選擇單元的對比度,可以調節Brightness到50%,增加對比度。亮度位于視圖面闆頂部,或者view setting中。

ICC學習——LAB0A
ICC學習——LAB0A
ICC學習——LAB0A

9.查詢對象

滑鼠懸停,對象被輕微高亮,左下角出現一個查詢視窗。

顯示對象的一些關鍵屬性。

想要獲得一個完整查詢,選擇一個單元有兩種方法。

a.小寫字母q

b.菜單Select —> Query Slection

會打開一個視窗列出所有特征值。

ICC學習——LAB0A

10.點選右上角的隐藏按鈕關閉查詢視窗。

11.關閉Layout視窗。從Main Window或Layout視窗點選File —> Close design,關閉目前的layout。然後點選對話框中的Discad All,關閉界面并不儲存。

12.關閉GUI指令

stop_gui或gui_stop
           

Task5 得到關于指令和變量的資訊

1.ICC可以通過[Tab]鍵補全變量名,指令名,檔案名和指令選項。ICC shell嘗試以下指令:

h[Tab]e[Tab] -v[Tab] help[Enter]

help -verbose help

ICC學習——LAB0A

2.想要檢視指令和變量的manpage(手冊頁),需要完整的指令或者變量

在不清楚指令或變量精确名字時使用help結合*通配符。help查指令,printvar查變量

如:假如正在尋找某個優化指令的更多資訊。不記得确切的名稱,但知道syn字元(synthesis),使用下面指令列出所有包含syn指令,

help *syn*
           

從展示的指令中選取一個,如psynopt

ICC學習——LAB0A

3.help -verbose psynopt

或help -v psynopt

help選項,-verbose,指詳細選項

ICC學習——LAB0A

4.使用man指令,檢視指令和它的選項

“man psynopt” or “man psyn[Tab]”

ICC學習——LAB0A

5.printvar 查找變量

printvar *library*
           

從包含library清單找到想找的變量target.library

printvar也會列出變量值

ICC學習——LAB0A

6.man檢視指令manpage

man target_library 
man target_l[Tab]
           
ICC學習——LAB0A

7.man可以查詢錯誤資訊

man PSYN-025
           
ICC學習——LAB0A

工具報錯編号PSYN-025

8.退出ICC_shell:

exit
quit
           

至此Lab0A完成。