Step By Step Use Abstract 提取LEF File
- 2019 年 10 月 4 日
- 筆記
Advance Node的需要使用ICADV12.3版本的Abstract,28nm以上的需要使用IC61X

Session #1:準備階段
設置Virtuoso的環境變數:
setenv CDSHOME /IC123的安裝路徑/ if ( -x $CDSHOME/tools/bin ) set path=($CDSHOME/tools/bin $path) if ( -x $CDSHOME/tools/dfII/bin ) set path=($CDSHOME/tools/dfII/bin $path)
在工作目錄下,用「abstract &」 命令來啟動Abstract. cmd>abstract &
正常啟動後,介面如下:

Menu->File->Library->Open 或者下圖的圖標,出現「OpenLibrary」介面,會列出所有的庫。打開你的版圖所在的庫。比如「Test_16nm」


當你打開庫以後,庫裡面的所有Cell,預設都會在Core這個Bin裡面。可以和LEF的使用者確認一下,最後的LEF文件里,這個Cell希望在那個Bin里,然後通過下面的方法,調整Cell所在的Bin.

選擇相應的Cell,然後通過菜單Menu->Cells->Move… 來把這個Cell調整到其他的Bin。下圖演示了吧lef_test這個Cell調整到Block這個Bin里。



Session #2:Pin Flow (抽取Pin)
這是抽取工作的第一步,工具會根據設置,在版圖上生成相應的Pin,然後產生一個abstract.pin的view。
選擇菜單 Menu->Flow->Pins 或者下圖的圖標,打開Pin這個抽取對話框。


第一個」Map」是設置工具是如何判別Pin的。如果沒有特殊需求,可以按下圖的預設值填寫。Power/Ground這裡的設置是讓工具根據名字來判斷是否是Power/Ground,如果不是,工具就認為是普通走線。

第二個「Text」是如何進行Pin的名字轉換的。可以全用下圖的預設值,不需要修改。

「Boundary」 是告訴工具如何生成Boundary,最後在LEF文件里的SIZE這一項,就是基於這個結果的。需要注意的是,SIZE欄位只能支援RECT的坐標,也就是PRBoundary相應的BBOX的範圍。如果需要指定非RECT的PRBoundary,請參看後面的Abstract中」Overlap」設置。

「Create boundary」有三個選項,分別為:
- 「off」:工具不生成PRBoundary而直接使用版本里的PR Boundary。如果版圖裡沒有PRBoundary,工具會報錯。
- 「as needed」:如果版圖裡有PRBoundary,那麼工具就使用這個PR Boundary。如果版圖裡沒有,工具會根據下面列表裡的層次來自動生成。
- 「always」:不管版圖裡是否有PR Boundary,工具都會根據列表裡的層次來自動生成。
Session #3:Extract Flow (抽取走線)
這是從版圖中按要求抽取走線的工,工具會根據設置,在版圖中抽取需要的走線,生成Metalxxx.net的覆蓋層,然後產生一個abstract.ext的view。
選擇菜單 Menu->Flow->Extract 或者下圖的圖標,打開Extract這個抽取對話框。


第一個是」Signal」,設置對於普通訊號線是否抽取。工具判斷「普通」走線和「Power/Ground」的標準是根據Pin抽取流程中的設置。

如果不勾選」Extractsignal nets」(如上圖),那麼工具不會抽取任何訊號線。 如果勾選」Extractsignal nets」,那麼工具會從Pin開始,抽取訊號線,而抽取的連接情況是根據下面列表裡的層次。比如,如果有Metal2,那麼所有的Metal2.drawing會作為聯通層,同時在上面會覆蓋一層Metal2.net,屬性就是這根訊號線名。
第二個是」Power」,設置對於Power/Ground線是否抽取。

如果不勾選」Extractpower nets」(如上圖),那麼工具不會抽取任何Power/Ground線。 如果勾選」Extractpower nets」,那麼工具會從Pin開始,抽Power/Ground線,而抽取的連接情況是根據下面列表裡的層次。比如,如果有Metal2,那麼所有的Metal2.drawing會作為聯通層,同時在上面會覆蓋一層Metal2.net,屬性就是這Power/Ground線名。
第三/第四一般不需要修改,按預設就可以。一般不用抽取Antanna,如果需要抽取,可以查閱具體的手冊。


Session #4:Abstract Flow (生成Blockage等其他資訊)
這是最後生成Blockage以及其他的資訊。工具會以extract.ext為基礎,只保留所有的Pin和在Extract(抽取)這一步生成的Metalxxx.net資訊,然後根據設置生成Blockage及其他內容,最後產生一個abstract的view。
選擇菜單 Menu->Flow->Abstract 或者下圖的圖標,打開Abstract這個抽取對話框。


第一個是調節Pin的位置,預設不需要修改。如果想要把Pin都放在周圍的話,勾選上,」SignaNets」下的」Createboundary pins」來對普通訊號線進行操作,或」Power Nets」下的」Createboundary pins」來對Power/Ground進行操作。

設置Blockage的生成方式。預設是所有的金屬層次都會生成Blockage,也就是除了Pin和Metalx.net的地方,其他地方都覆蓋這個Metal層的Blockage,同時在Pin的周圍流出一定的空間(」PinCutout」打勾)給外部走線的連接。如果某層不想生成Blockage,那麼選上這層,然後點擊下面的」Delete」按鈕。Blockage最後在LEF裡面會成為OBS裡面的內容。

「Fracture」這裡設置是否要讓工具做Fracture這一步,也就是是否要把所有的Polygon圖形(Pin/Net/Blockage)轉換成Rectangle的。如果需要通用性,那麼把這個選項選上,最後的所有圖形都是Rect組成,後繼使用LEF的工具一般都是會支援RECT的。但是這個切割的過程會比較緩慢。 如果不勾選,那麼最後輸出的LEF會含有Polygon圖形,如果後繼工具確定能支援Polygon的輸入,則沒有問題,如果後繼工具不支援Polygon,則LEF的讀入會有問題。

「Overlap」這個選項是指示工具是否在LEF中生成特殊的OVERLAP欄位。 LEF的Size欄位只能是RECT圖形,也就是整個PRBoundary所在的BBOX框,比較大。 而LEF通過OVERLAP欄位來指示POLYGON圖形的PRBoundary,這個用來精確描述這個LEF的使用範圍。

- 「off」:不生成OVERLAP欄位。
- 「Always::用列表中的層次計算出PR Boundary,然後生成OVERLAP欄位。
- 「As needed」:如果有PR Boundary就用PR Boudary,如果沒有,就用列表中的層次生成,然後生成OVERLAP欄位。
另三個」Density」 , 「Site」 , 「Grids」一般不需改動,用下圖的預設設置就可以。



Session #5:Verify Flow (驗證)
這是驗證的過程,不是必須的流程,可以略過不做。如需操作,則按下面步驟。
選擇菜單 Menu->Flow->Verify 或者下圖的圖標,打開Verify這個對話框。


按照下面的預設值設置,運行即可。如果結構中有問題,請按需求解決。

Session #6:LEF out (產生LEF文件)
這是最後生成LEF文件的步驟。
選擇菜單 Menu->File->Export->LEF打開ExportLEF這個對話框。

如下圖設置,填入想要生成的LEF文件的名字到LEFFilename。 注意LEFVersion需要選擇5.8。因為5.8的版本才能支援TSMC16nm的DoublePattern的定義。

選擇OK後,工具會從前面步驟產生的abstractview來生成最終的LEF文件。