ICC—data setup
資料準備
ICC開始布局布線之前,應該檢查輸入資料準備是否完整,主要包括:
-
MilkWay參考庫
資訊是以被稱為“views”的形式存儲的,例如:
- CEL:完整的版圖資訊
- FRAM: 用于布局布線的抽象化的版圖實體資訊(隻有單元大小,端口名稱,端口位置等簡單的實體資訊)
-
LM: 帶有時序和功耗資訊的邏輯模型(可選*),該檔案對于後端布局布線不是必須的,ICC隻是通過link_library變量讀取指定的(.db)格式的邏輯庫。
對于那些标準單元庫,IO庫,Memory或者其他macro,如果設計中沒有CEL View以及FRAM view,則可以在Milkway軟體中通過簡單的read_def檔案的方式生成這些檔案。
-
工藝庫檔案(.tf file)
每種工藝對應一個唯一的工藝檔案,包含金屬層次對應的工藝參數:
- 每個層次/via對應的編号以及名字
- 工藝的介電常數
- 每個冗層次/via的實體和電學特性
- 每個層次/via的設計規則(最小線寬以及最小線間距等)
- 機關及精度
- 用于顯示的每層對應的顔色及模式
-
TLUplus檔案
寄生RC查找表,ICC使用網絡幾何形狀以及該檔案來計算互聯電阻電容。
若tluplus檔案沒有時,可由foundry給的.itf轉成tluplus。使用的是Synopsys公司的star_RC.
-
db檔案(.db file)
用于提供STD Cell,IO, Macro的時序.功耗.面積等資訊。
- 門級網表(.v file)
- 時序限制檔案(.sdc file)
-
管腳排列檔案(.tdf file)
該檔案主要用來定義設計中所有IO以及IO Corner的位置(上下左右的方位以及排列順序,也可以定義具體的坐标)。
該檔案可以參照ICC中的set_pad_physical_constraints指令的檔案文法進行編寫,也可以在ICC中導出一個該檔案進行手工修改。
-
庫設定檔案(.synopsys_dc.setup)
g該檔案可以放置在ICC軟體啟動目錄,軟體在啟動時會自動加載search_path,target_library,link_library這些庫,或者可以将這些設定單獨存為一個腳本,在每次打開ICC的時候都手動source該腳本,該腳本内容與DC中用的啟動檔案完全一樣.
參考庫的建立—Milkway軟體
在開始後端布局布線之前準備好各種參考庫檔案,所有的檔案均為Milkway格式。參考庫的建立可以使用synopsys的Milkway來實作。在Milkway中用read LEF檔案的方式建立Milkway參考庫。
首先,建立庫,在菜單欄中選中
“library”--->"Create"
,在“library Name”中填入建立參考庫的名字,“technology file name”中填寫工藝庫檔案的路徑,并選中“setCase Sensitive”區分大小寫。
菜單欄中選擇“Cell Library”⟶“LEF In”,“Library Name”後邊通過點選“Browse”選擇剛才建立的參考庫,“Tech LEF Files”選擇工藝的LEF檔案路徑,“Cell LEF Files”選擇Cell的LEF檔案。其他選項預設即可。點選OK之後就會在參考庫目錄内生成CEL和FRAM兩個檔案夾,這兩個便是建立的CEL View和FRAM View。
OK之後,将會在參考庫目錄下生成CEL和FRAM兩個檔案夾,這兩個檔案夾便是建立CEL View和FRAM view。
随後,進行電源地端口的聲明,即輸入指令:dbSetCellPortType “libname” “cellname” ‘({(“portName” {“type”}..)…}) append ?
下面以一個SRAM為列子提供建立參考庫的腳本:
################################################
cmCreateLib
setFormField"Create Library" "Library Name" "sram_lib"
setFormField"Create Library" "Technology File Name""scc40nll_hd_8lm_2tm.tf"
setFormField"Create Library" "Set Case Sensitive" "1"
formOK "CreateLibrary"
read_lef
formButton "ReadLEF" "browse..."
setFormField "ReadLEF" "Library Name" "sram_lib"
setFormField "ReadLEF" "Tech LEF Files" "scc40nll_8lm_2tm.lef"
setFormField "ReadLEF" "Cell LEF Files""sadslsck41p1568x32m8b1w0c0p0d0t0.plef"
formOK "ReadLEF"
dbSetCellPortTypes"sram_lib" "sadslsck41p1658x32m4b1w0c0p0d0t0"'(("VDD""Power")("VSS" "Ground"))
常用檔案格式說明
-
GDSII:
它是用來描述掩模幾何圖形的标準,是二進制格式,内容包括層和幾何圖形。
-
CIF:
(Caltechintermediate format),叫caltech中介格式,是另一種基本文本的掩模描述語言。
-
LEF:
(Library exchangeformat),叫庫交換格式,它描述了庫單元的實體屬性,包括端口位置、層定義和通孔定義。它抽象了單元的底層幾何細節,提供了足夠的資訊,以便允許布線器在不對内部單元限制來進行修訂的基礎上進行單元連接配接。它包含了工藝的技術資訊,如布線的層數、最小的線寬、線與線之間的最小距離以及每個被選用cell,BLOCK,PAD的大小和pin的實際位置。cell,PAD的這些資訊由廠家提供的LEF檔案給出,自己定制的BLOCK的LEF檔案描述經ABSTRACT後生成,隻要把這兩個LEF檔案整合起來就可以了。
-
DEF:
(Design exchangeformat),叫設計交換格式,是ASCII格式的檔案,它描述的是實際的設計,對庫單元及它們的位置和連接配接關系進行了清單,使用DEF來在不同的設計系統間傳遞設計,同時又可以保持設計的内容不變。DEF與隻傳遞幾何資訊的GDSII不一樣。它可以将設計的邏輯資訊和實體資訊傳遞給布局布線工具。邏輯資訊包括邏輯連接配接關系(由網表表示)、grouping資訊以及實體限制。實體資訊包括布局規劃、布局位置及方向、繞線幾何資料。
-
SDF:
(Standard delayformat),叫标準延時格式,是IEEE标準,它描述設計中的時序資訊,指明了子產品管腳和管腳之間的延遲、時鐘到資料的延遲和内部連接配接延遲。
-
SDC:
(Synopsys delayconstraint),叫Synopsys延時限制檔案。
-
DSPF、RSPF、SBPF和SPEF:
DSPF(detailed standard parasitic format),叫詳細标準寄生格式,屬于CADENCE公司的檔案格式。
RSPF(reducedstandard parasitic format),叫精簡标準寄生格式,屬于CADENCE公司的檔案格式。
SBPF(synopsys binary parasitic format),叫Synopsys二進制寄生格式,屬于SYNOPSYS公司的檔案格式。
SPEF(standard parasitic exchange format),叫标準寄生交換格式,屬于IEEE國際标準檔案格式。
以上四種檔案格式都是從版圖中提取出來的寄生RC資訊,是在寄生參數提取工具與時序驗證工具之間傳遞RC資訊的檔案格式。
-
ALF:
(Advanvedlibrary format),叫先進庫格式,是一種用于描述基本庫單元的格式,它包含電性能參數。
-
PDEF:
(Physical designexchange format),叫實體設計交換格式。它是SYNOPSYS公司用在前端和後端工具之間傳遞資訊的檔案格式。描述了與單元層次分組相關的互連資訊。這種檔案格式隻有在使用SYNOPSYS公司的Physical Compiler工具才會用到,而且130 nm以下工藝基本都會用到該工具。
Milkway資料庫
Milkway庫檔案包括
- 技術檔案 technology file
- CLF (Cell library Format)
- TDF檔案,通常包括pin和port
- GDSII檔案
- 網表檔案,verilog, VHDL,EDIF
- SDC檔案(Synopsys design Constraints),時序限制檔案
- 設計資料庫檔案,标準的Synopsys.db檔案,包括網表,時序和設計規則限制
- 綜合庫檔案.lib或.db,包含單元時序和功能資訊
Milkway庫目錄
Lib二進制檔案,可以通過geCreateLib指令或Library>Create來産生,這個檔案包括了該資料庫中其它元素的目錄。工具可以通過這個檔案來跟蹤庫結構和内容。該檔案不能夠被編輯但是可以通過Milkyway指令來加載和去除檔案,如技術檔案和CLF檔案。
Milkyway庫可分為以下幾類
1. 幾何實體資料 :
- CEL 實體資料,該目錄包含所有導入到該資料庫中的實體資料,或者是有Astro産生的實體資料
- FRAM 從CEL中提取出的Placement和routing的資料
- SMASH 打平的CEL實體版圖資料
- HTV CEL的層次時序資訊,類似于其它Synopsys工具中的接口邏輯模型
2. 時序, 功耗和邏輯
- LM 時序,功耗和邏輯資訊
- PWR 功耗資訊
- TIM 時序資訊
3. 網表
- LOGIC 時序限制時鐘定義,來自于DC綜合的網表資訊
- NETL 階層化的網表資訊輸入進來的Verilog網表中的每個子產品被以二進制檔案的形式存儲在NETL目錄中,或是等效于VHDL或EDIF網表
- EXP 打平的flattened,網表資料
- HNET 階層化的網表資訊
4. 其它
- PARA 寄生RC資料來自于Astro ,Star-RCXT或第三方的提取工具的RC寄生參數
- CONN 内部宏單元電源和地的互連資訊。
- ERR 來自于DRC和LVS的結果檔案
- FILL 布線填充fill資料
- GAP 布線間隙gap資料
- NOTC 布線槽資料
- ROUTE astro分布式布線産生的布線結果資料
IO庫與标準單元庫中特殊單元
- 填充單元 Fill Cell IO Filler是用來填充I/O單元和I/O單元之間的間隙。 對于 标準單元則同樣有标準填充單元(STD fillercell),它也是單元庫中定義的與邏輯無關的填充物,它的作用主要是把擴散層連接配接起來滿足DRC規則和設計需要,并形成電源線和地線軌道(power rails)。
- 電壓鉗位單元 TIE Cell 數字電路中某些信号端口,或閑置信号端口需要鉗位在固定的邏輯電平上,電壓鉗位單元按邏輯功能要求把這些鉗位信号通過鉗高單元(tie-high)與Vdd相連,或通過鉗低單元(tie-low)與Vss相連使其維持在确定的電位上。用來對那些需要接到固定邏輯電平上的MOS管的栅極進行ESD保護。
- 二極管單元 為避免晶片加工過程中的天線效應導緻器件栅氧擊穿,通常布線完成後需要在違反天線效應規則的栅輸入端加入反偏二極管,這些二極管可以把加工過程中金屬層積累的電荷釋放到地端以避免器件失效。
- 去耦單元 當電路中大量單元同時翻轉時會導緻充放電瞬間電流增大,使得電路動态供電電壓下降或地線電壓升高,引起動态電壓降(IR-drop),為避免動态電壓降對電路性能的影響,通常在電源和地線之間放置由MOS管構成的電容,這種電容被稱為 去耦電容或去耦單元(decap cell),他的作用是在瞬态電流增大、電壓下降時給電路補充電流以保持電源和地線之間的電壓穩定,防止電源線的電壓降和地線電壓的升高。去耦單元是與邏輯無關的附加單元。
- 時鐘緩沖單元 時序電路設計的一個關鍵問題是對時鐘樹的設計,晶片中的時鐘信号需要傳送到電路中的所有時序單元。為了保證時鐘沿到達各個觸發器的時間偏差(skew)盡可能地小,需要插入時鐘緩沖器減小負載和平衡延時,在标準單元庫中專門設計了供時鐘樹選用的時鐘緩沖單元(clock buffer)和時鐘反向器單元(clock inverter),時鐘樹綜合工具根據指定的時鐘緩沖單元去自動建構滿足時序要求的時鐘網絡。時鐘緩沖單元是專用的邏輯單元。
- 延時緩沖單元 延時緩沖單元的作用與時鐘緩沖單元相類似,它是為了調節電路中的一些路徑的延時以符合時序電路的要求而設計。例如:在同步電路設計中通常采用添加延時緩沖單元的方法來保證複位信号到達各個觸發器的時間相同,避免因複位信号不一緻而導緻系統邏輯的混亂。同時在後端設計中如果存在保持時間的違反,也可以插入該單元來解決。
- 阱連接配接單元(well-tap cell)阱連接配接單元屬純實體單元,沒有任何邏輯功能和時序限制,主要用于限制電源或地與襯底之間的電阻大小,減小闩鎖效應。它是近年來在130 nm或更加先進的工藝低功耗設計中新增加的一種特殊單元。
- 電壓轉換單元 電壓轉換單元(level shifter)是近年來在90 nm或更加先進的低功耗設計中新增加的一種特殊單元,用于低功耗多供電電壓設計中晶片不同電壓域子產品之間信号電壓轉換。種類包括低到高、高到低以及雙向電壓轉換三種,一般低到高電壓轉換單元有高電壓和低電壓兩個供電端口,此外該單元放置在電壓域的邊界處。
- 隔離單元(isolation) 隔離單元專門用于低功耗設計,它可以和上述的電平轉換單元結合在一起,做成具有雙重功能的單元。
- 開關單元 開關單元專門用于低功耗的,當電路中的某些子產品不需要工作時将其電源關掉,進而消除該子產品的靜态功耗。它有精細結構和粗制結構兩種,前者目前較少用,形狀上有環狀和列狀兩種。環狀開關單元由SRPG(StateRetention Power Gating)單元來實作,列狀開關單元可以用門控單元實作。
-
備用單元(Spare cell)
Foundry提供一種服務,允許客戶在量産工藝加工進行到某個階段的時候,讓部分wafer暫時停止,而部分wafer繼續加工。這樣的話,客戶可以在加工到poly層以及M1層時(後面的金屬層還沒有做),停止大部分wafer的程序,而讓少量wafer繼續加工到完成,然後對這些已完成的wafer上的die進行測試,如果發現有功能或時序上的問題,就可能通過預先布在die上的Spare cell來解決。隻是改動幾層金屬層光罩就可以完成std cell重新連接配接,而不用改動std cell的布局(即,不用改poly層之前的所有光罩)。那些暫停加工的wafer這時就可以用新的金屬層光罩往後加工,于是在silicon和光罩兩方面都降低了成本。流片過程是先光刻base層和M1層的片子,這個是最貴的,這個需要一兩個星期。這段時間,要是驗證過程中發現了功能和metal error,就改變M2以及以上金屬層的連線,連接配接備用cell去修。代工廠再繼續做M2以及以上金屬層的片子。這樣就可以不需要修改place隻改指定metal的routing就可以了。
RC抽取的幾種工藝檔案
ICC與Encounter所需檔案的差別以及檔案之間的轉換
ICC與Encounter所需檔案的差別以及檔案之間的轉換
Data Library | ICC | Encounter |
---|---|---|
Physical Library | Milkyway | Lef |
Logic Library | db | Lib |
RC Extraction | Tluplus | Itf |
Technology File | Tf | Lef |
Cadence | Synopsys | ||
---|---|---|---|
ict | <——> | icf | process file |
captable | <—–> | tluplus | rc model for APR tools |
qrcTech file | <——> | nxtgrd | rc model for standard alone RC Ext,tool |
互相之間的轉換:
1. lib轉換成db
2. itf轉換為tluplus
3. cell.lef轉換為Milkway,同時tech.lef轉換為tech.lef轉換為tf