賀愷華 ,丁學偉 ,2
(1.深圳市中興微電子技術有限公司IP設計部,廣東 深圳 518055;2.移動網絡和移動多媒體技術國家重點實驗室,廣東 深圳 518055)
隨著芯片工藝的發展,數模混合芯片中的數字和模擬模塊(Block)已經沒有明顯的區分界限,很多情況下,模擬模塊的內部會包含數字模塊,隨之而來的問題是需要大量時間和精力解決在數字和模擬模塊之間數據交互的問題和彼此database的兼容性。同時先進工藝下隨著double pattern 等特性的引入,模擬版圖的實現變得更加復雜,而如何提高效率,保證數據準確性也變得更加重要。
5 nm工藝下模塊之間數據交互難度更大,需要的步驟和潛在的問題會越來越多。
1.1.1 數據的傳遞和管理
(1)5 nm設計模塊在物理實現時,對模塊的形狀和pin
5 nm 模擬設計中需要用到越來越多的自定義數字模塊,同時Boundary cell、Filler 和Dcap 等physical 種類繁多,在使用時,不同的物理位置需要填充不同的physical cell,因此需要版圖設計工程師花費大量的時間在自定義數的擺放有更多DRC 等要求,而且GDS stream in 和out 需要更長的時間。
(2)由于Virtuoso 和Innovus工具所需要的techfile 文件不同,同時5 nm 存在double patten 等現象,使得數模交付時使用的LEF 和DEF 文件在import 和export的過程的復雜度和難度都有增加,需要設計人員花費大量時間進行debug。
(3)即便是很小的改動,交付數據的版本必須保留Innovus 和Virtuoso 兩個版本,而數模芯片多層次數字模擬block 嵌套會導致版本追蹤困難。
1.1.2 自定義數字模塊集成字模塊的集成以及physical cell 添加等重復性問題上。
1.1.3 模擬頂層繞線
5 nm 數模芯片設計復雜性和芯片面積的增加都會導致模擬頂層有很多繞線需求,而使用傳統的手動方式實現繞線會降低版圖實現效率,加大工作難度。
1.2.1 傳統flow
(1)數模工具所需的TechFile 不同:Innovus 調用的是foundary 提供的tlef 文件,而Virtuoso 調用的是foundary 提供的basicPDK。
(2)難度明顯增加:和以往的工藝相比,模擬電路的layout 實現需要更多的資源和精力。
(3)數模在前期設計階段RC 抽參方式不同:對于模擬design,RC 抽參只能在layout LVS Pass 后進行,數字design 可以在LVS pass 前,進行門級抽參。
1.2.2 MSOA flow
(1)相同的TechFile:無論Innovus 還是Virtuoso 都使用OAdb 進行數據保存,調用的techfile 都是MSOA RapidPDK。
(2)提高效率:Innovus engin 可以協助模擬工程師實現大規模低要求的繞線,同時通過腳本完成大量重復性工。
(3)模擬設計通過數字Innovus工具可以對版圖進行門及RC 抽參,此種情況下不需要LVS Pass。
添加Innovus 相關設置:

添加Virtuoso 相關設置:

相同OAdb Innovus 和Virtuoso 保存目錄需要一致,使用相同的library name、cell name 和view name。
MSOA flow 需要Innovus 和Virtuoso 都調 用MSOA RapidPDK 進行設計和數據保存,因此MSOA RapidPDK 需要同時包含Techlef 和Basic PDK。
(1)生成RapidPDK
5 nm工藝可以使用Cadence lef2oa工具快速將兩者結合生成新的MSOA RapidPDK。


(2)生成MSOA 格式stdcell 和Macro abstract
MSOA flow 不僅需要調用MSOAPDK,同時需要對design 中所有用到的lib cell 進行OA的轉換。

(3)MSOA RapidPDK 生成過程中遇到的所有的error和warning 都要留意,WARNING:(OALEFDEF-23174)已經和Cadence 確認可以忽略。
3.2.1 Innovus dumped techlef驗證
(1)在Innovus 中分別對OAdb 和傳統的LEF-DEF db使用如下命令生成tlef,并進行tkdiff 比較驗證。
write_lef_library -tech_only -ordered 1 xxx.tlef
下述幾種mismatch 已經和cadence 確認可以忽略
①VIA 尺寸不同:如果比較時發現VIA的高度坐標不同,但VIA shape的高度值是相同的,則可以忽略,兩者實際只是相對坐標不同而已。②USEVIA 不同:USEVIA是Innovus工具自動生成的屬性,只要后續DRC 檢查中VIA 沒有violation 則可以忽略。③SPACING 缺失:MSOA 生成的tlef 中會有spacing 缺失,但在tlef的其他地方有對SPACING的定義,因此可以忽略。
3.2.2 Virtuoso QA驗證
使用MSOA RapidPDK Re-attach design library,和傳統方式下attachPDK的library 進行LVS 和DRC 結果比較,發現兩種方式結果一致。
3.2.3 Innovus QA驗證
(1)分別使用傳統LEF-DEF 方式和MSOA flow的方式進行init 到postroute 階段的數字模塊設計。(2)對兩種方式生成的數據進行DRC 和LVS驗證,并比較DRC的類型和數量。(3)分析DRC 結果發現,兩種flow 產生DRC的類型相同而數量不同,但深入了解MSOA flow和LEF-DEF flow 可知兩者在place 和route 階段處理方式上存在差異會導致DRC的數量有不同。
3.2.4 Innovus 使用相同database 分別對OA 格式和LEF-DEF 格式進行比較
將傳統LEF -DEF flow 生成的database 進行OA database的轉換,比較兩者LVS 和DRC的區別,發現兩種方式結果一致。
通過對實際5 nm 項目中的模擬模塊進行詳細分析、評估,最終整理出針對模擬設計的MSOA flow 相關規范和約束,通過搭建相關自動化flow 提升模擬版圖設計效率。
5 nm MSOA flow 評估主要針對如下兩點:
(1)5 nm 模擬設計效率提升
①評估Innovus 布局和布線在模擬設計中的應用場景;②通過評估MSOA flow 建立高效準確的數據管理和傳遞流程;③嘗試通過腳本實現模擬設計自動化和標準化。
(2)MSOA flow 通用設計規范的建立
通過評估,建立5 nm MSOA RapidPDK flow 通用設計規范。
4.2.1 基于網表的Mix Signal Design
傳統的LEF-DEF flow 和MSOA flow在調用Innovus工具時,所需要的命令和存儲方式主要區別見表1。

表1 LEF-DEF Flow 和MSOA flow的對比
傳統Lef-def flow 保存的database 也可以用OA的方式打開以及存儲,示例如下:

4.2.2 基于Schematic的Mix Signal Design
MSOA flow 和傳統模擬設計flow 主要區別是attatch PDK 不同,見表2。

表2 傳統flow 和MSOA flow的對比
傳統Virtuoso flow 保存的layout 也可以使用OA的方式通過Innovus工具打開以及存儲,示例如下:


4.2.3 基于Schematic的custom digital block設計
在5 nm設計中,很多模擬模塊是通過需要調用自定義的數字cell 進行設計,這類模塊可以統一為custom digital block,評估過程中將其內部調用的custom digital cell 參考數字stdcell的方式進行規范化處理,使Innovus可以對這類block 進行自動布局布線,處理方式如下:
(1)使用abstract generater 對所有custom digital cell 提取lef 文件;
(2)由于5 nm 是double patten,因此LEF 中一定要有FIXEDMASK 屬性,對底層金屬color lock;
(3)創建Innovus自動布局布線時所需要的site 定義,舉例如下:

規范化處理custom digital cell 后,使用innovus 對custom digital block 進行自動布局布線,包括使用TCL 腳本的方式添加physical cell、電源地線等,輸出結果如圖1~圖3 所示。

圖1 Custom digital block Schematic View

圖2 custom digital block open in Innovus

圖3 custom digital block open in Virtuoso
4.2.4 基于Schematic的custom stdcell設計
5 nm custom digital block 評估過程中中調用的custom stdcell的創建也可以用MSOA flow 通過調用Innovus 實現自動布線,可以通過添加routing 相關constraint 對工具繞線方式進行約束,滿足designer 需求,如圖4、圖5 所示。

圖4 custom stdcell open in Innovus

圖5 custom stdcell open in Virtuoso
4.2.5 基于Schematic的Innovus 繞線和效率提升
5 nm工藝下模擬設計的block在復雜度、net 數量和面積方面都有大幅度提升,如果一味地要求版圖工程師使用手動或者VSR的方式在Virtuoso 中繞線,會使整個block設計所需的人力和精力相較之前的工藝都有所增加,而Innovus NanoRoute 引擎對于大規模繞線有較好的處理方式,因此在模擬設計中對走線精度要求較低的大規模芯片可以采用Innovus 進行自動化繞線大幅度提高速率,節省人力,同時也可以添加相關constraint 約束Innovus 繞線的方式。
Innovus NanoRoute 目前支持的繞線方式有:NDRrouting,shielding,differential pair match length,resistance match,layer match,bus routing,length control。相關約束命令舉例如下:

4.2.6 基于Schematic design的數據集成
(1)schematic-driven 和netlist-driven design 通過OA db可以代替GDS 文件實現database的傳遞,這樣無論數字還是模擬工程師在打開彼此數據時的速度都會有所提升。
(2)schematic-driven的block 可以通過Innovus 中提取LEF/DEF的相關命令來生成數字所需要的LEF/DEF 文件,同時生成的文件在一致性和準確度方面都有所提升,文件中也不會包含純模擬相關的數據,影響數字工具使用,相關命令如下:

(3)Innovus 中在5 nm工藝下對double patten 有add_track的定義,通過參考Innovus 中對track的定義,可以在Virtuoso 中添加對應的WSP rule,避免了數模之間交互時遇到的很多DRC 問題。
下述模擬設計的規范是在5 nm MSOA flow 評估過程中整理出來的相關約束條件,可以幫助MSOA flow在5 nm設計中得到更廣泛的應用。
4.3.1 Schematic 規范
(1)Power 和Ground pin 必須是Power Ground 屬性,不能定義為signal。
(2)對于signal pin 必須使用tie cell 進行VDD/VSS的連接,不可直連。
4.3.2 版圖規范
(1)使用generate from source 創建layout,保留Schematic的連接關系。
(2)避免使用pcell的方式創建VIA,Innovus 會將pcell識別為block,而丟失net 連接關系。
(3)必須使用create->P&R objects的方式創建pr boundary,且pr boundary的原點在(0 0)。
(4)Block type design的pin shape 必須在邊界。
(5)使用create->pin 來創建pin,且pin的金屬層次需要在M0 或M0 以上。
(6)Power nets 使用geometric nets 即create->shape->path 創建,確保"part of a route"為false.
(7)signal nets 使用symbolic type route,即create->wiring->bus/wire.
(8)確保Schematic 和layout 之間關系是XL complience。
4.3.3 Abstract 規范
AbstractView 必須確保color lock,對應的LEF 中有FIXEDMASK 屬性。
(1)創建自動化flow 相關的TCL 腳本,將重復性操作統一腳本化,優化整個flow,讓模擬工程師通過簡潔的操作界面調取相關的Innovus/Virtuoso 腳本。
(2)使用TCL/PERL 腳本實現模擬工程師在Innovus 中自動生成power mesh、endcap、welltap、filler 等physical cell,為模擬設計師提供流程上更多選擇性,相關腳本參考:

(3)通過參考Innovus 中對track的定義,在Virtuoso 中使用skill 語言規定WSP rule,幫助項目中模擬工程師在繞線時避免DRC violation,相關腳本參考:

對于數字工程師來說,通常直接使用bsub的方式啟動Innovus 就可以對數字block 進行編輯,而模擬工程師對Virtuoso GUI 界面的操作更加熟練,使用Virtuoso 中自帶的VDI 也可以直接啟動Innovus,load Innovus 相關腳本命令,后續使用方式和直接啟動Innovus 相同,如圖6~圖9 所示。

圖6 Open VDI in Virtuoso

圖7 MSOA flow VDI 相關配置(1)

圖8 MSOA flow VDI 相關配置(2)

圖9 MSOA flow VDI 調用的相關腳本
針對custom digital block,分別嘗試使用傳統Virtuoso flow 和MSOA Innovus flow 完成版圖物理實現,結果如表3所示。嘗試了布局布線,以及physical cell 擺放等全流程,發現MSOA flow在physical cell 擺放時通過自動化腳本可以大幅縮減擺放時間,提升效率。

表3 custom digital block 評估結果
該階段主要嘗試了傳統flow Virtuoso 布局布線和使用MSOA Innovus flow 進行布局布線的效率比較,評估結果如表4 所示。發現在繞線階段,如果對custom stdcell的繞線要求較低,沒有定制化需求則使用MSOA flow 方式會有大幅效率提升,但同時由于MSOA flow 有相關規范需求,因此在初期需要話較多時間滿足MSOA 規范要求。

表4 custom stdcell 評估結果
該階段主要嘗試使用Innovs 和Virtuoso 分別開啟模擬和數字的OA database,和傳統使用GDS 方式比較速率提升,同時嘗試使用Innovus的方式輸出模擬OA db的LEF和DEF 文件交付給數字后端進行調用,比較LEF 和DEF文件輸出的速率提升。數據傳遞評估結果如表5 所示。

表5 數據傳遞評估結果
對于power mesh 和重復性的routing 腳本,MSOA 使用有著一定的局限性,在前幾個評估的case 中可見,對于大尺寸、繞線要求低、但繞線多的情況下,MSOA 對design速率有很大提升,但如果設計定制化要求高,Virtuoso 和Innovus 所需要的時間會比較接近,MSOA flow 對于這種情況下只是向designer 多提供了一種選擇方式,具體如何使用由designer 決定,Power mesh 也是同理。power mesh 和routing 評估結果如表6 所示。

表6 power mesh 和routing 評估結果