您當(dāng)前的位置:檢測(cè)資訊 > 科研開(kāi)發(fā)
嘉峪檢測(cè)網(wǎng) 2024-12-01 11:10
從事芯片行業(yè)的朋友對(duì)于GDS(Graphic Data System,圖形數(shù)據(jù)系統(tǒng))應(yīng)該不會(huì)感到陌生,在半導(dǎo)體設(shè)計(jì)的多個(gè)階段GDS都有著廣泛的應(yīng)用,比如電路設(shè)計(jì)、版圖設(shè)計(jì)和制造工藝等環(huán)節(jié)。
1. GDS以及GDS merge操作
GDS是一種用于描述和存儲(chǔ)半導(dǎo)體芯片的版圖信息的二進(jìn)制文件格式,其包含了設(shè)計(jì)中的各種幾何形狀、層級(jí)結(jié)構(gòu)、電路器件和連線信息等。
不同的應(yīng)用場(chǎng)景下,GDS的應(yīng)用方式也有所區(qū)別,例如,在晶圓廠(Fab)提供的標(biāo)準(zhǔn)單元庫(kù)中,每一個(gè)標(biāo)準(zhǔn)單元(standard cell)都可以被單獨(dú)存儲(chǔ)為一個(gè)GDS文件,這便于多人分工合作,分別繪制不同的標(biāo)準(zhǔn)單元,并進(jìn)行物理驗(yàn)證以確保每個(gè)單元的準(zhǔn)確性。而在設(shè)計(jì)公司(Fabless)中,一個(gè)完整芯片的GDS文件通常非常龐大且復(fù)雜,為了高效地完成這一大型工程,設(shè)計(jì)過(guò)程往往采用類似流水線的方式,將整個(gè)芯片的GDS文件拆分若干個(gè)獨(dú)立的部分,每個(gè)部分由不同的團(tuán)隊(duì)或個(gè)人負(fù)責(zé)完成,最終再通過(guò)“合并” (即merge)操作,將所有部分整合成一個(gè)可以用于流片的完整GDS文件。
2. GDS merge的場(chǎng)景
GDS merge操作是在特定的設(shè)計(jì)環(huán)境中進(jìn)行的,通常針對(duì)的是幾種特定類型的對(duì)象,主要包括:
(1) 芯片設(shè)計(jì)中包含第三方IP:如果芯片設(shè)計(jì)中使用了第三方提供的IP,為了確保IP與自定義設(shè)計(jì)的兼容性和一致性,需要在流片前進(jìn)行GDS merge。這是因?yàn)镮P vendor可能會(huì)要求到晶圓廠進(jìn)行merge,以確保IP與主設(shè)計(jì)準(zhǔn)確集成;
(2) 模擬電路和數(shù)字電路的合并:在SoC (系統(tǒng)級(jí)芯片) 設(shè)計(jì)中,模擬電路和數(shù)字電路通常分別設(shè)計(jì),并生成各自的GDS文件。在最終將它們合并為一個(gè)完整的SoC芯片版圖時(shí),需要進(jìn)行GDS merge;
(3) Fab提供的IP:在某些情況下,工藝廠會(huì)提供特定的IP,這些IP需要在工藝廠進(jìn)行merge,以確保與工藝庫(kù)的兼容性;
(4) Dummy fill,在實(shí)際設(shè)計(jì)過(guò)程中,我們通常會(huì)遇到設(shè)計(jì)chip GDS和dummy GDS進(jìn)行merge的操作,主要目的是為了避免芯片設(shè)計(jì)中出現(xiàn)大面積的空白區(qū)域,通過(guò)填充一些dummy結(jié)構(gòu),可以保持芯片密度的均勻性,從而確保制造的一致性和可靠性。
3. GDS merge操作方式
在進(jìn)行GDS merge時(shí),通常需要使用專門(mén)的EDA(電子設(shè)計(jì)自動(dòng)化) 工具,主要工具包括ICC2、Innovus、Virtuoso、calibredrv、Skipper等。這些工具可以將生成的GDS文件進(jìn)行拼接和整合,常用的實(shí)現(xiàn)方式包括EDA工具的GUI和命令行兩種。考慮到GDS merge的靈活性和實(shí)用性,以下主要介紹calibredrv中的merge命令,操作語(yǔ)法如下所示:
(1) 進(jìn)行少數(shù)幾個(gè)GDS的merge操作,可以在命令行輸入以下指令:
# terminal input
calibredrv -shell
layout filemerge -in A.gds -in B.gds -out merge_output.gds -createtop topcell_name -mode rename
以上是對(duì)A和B兩個(gè)GDS進(jìn)行merge的操作,其中:
-in:是指定輸入GDS (A.gds和B.gds);
-out:是指定輸出GDS (merge_output.gds);
-createtop:是為輸出GDS創(chuàng)建名為topcell_name的topcell,如果不創(chuàng)建新的topcell就會(huì)面臨出現(xiàn)兩個(gè)topcell的風(fēng)險(xiǎn),這種hierarchy結(jié)構(gòu)看上去比較混亂;
-mode:是cell的命名模式,包括rename、overwrite、append、forcerename和reportconflictsonly五種模式,是為了避免具有相同名字的cell出現(xiàn)而進(jìn)行的操作,通常可選擇rename模式。
(2) 進(jìn)行大量GDS的merge操作
# terminal input
calibredrv -a layout filemerge -in A.gds -indir gds_dir/ -out merge_output.gds
對(duì)于數(shù)量較多的GDS進(jìn)行merge操作,比如大量的standard cell需要merge到topcell里,就可以將standard cell放在一個(gè)文件夾下,然后進(jìn)行以上操作,這里:
-indir:指定了存放GDS的路徑。
(3) GDS merge代碼實(shí)現(xiàn)
當(dāng)需要進(jìn)行大量的GDS merge操作時(shí),上述介紹的GUI和命令行方法的效率可能無(wú)法滿足快速設(shè)計(jì)迭代的需求。此時(shí),通過(guò)編寫(xiě)代碼腳本來(lái)實(shí)現(xiàn)批量處理不僅能顯著提高效率,還能確保操作的準(zhǔn)確性。在實(shí)際項(xiàng)目中,這種方式更為常見(jiàn)。
GDS merge在芯片設(shè)計(jì)流程中的重要性不言而喻,通過(guò)在設(shè)計(jì)初期將模塊化研發(fā)的成果進(jìn)行GDS merge,可以及早發(fā)現(xiàn)并解決不同設(shè)計(jì)之間的兼容性和匹配問(wèn)題,避免因后期修改而導(dǎo)致的成本增加。高效的GDS merge流程不僅能夠縮短從設(shè)計(jì)到生產(chǎn)的時(shí)間周期,還能加速新產(chǎn)品的市場(chǎng)投放,從而實(shí)現(xiàn)芯片的高效研發(fā)和設(shè)計(jì)。
來(lái)源:且聽(tīng)芯說(shuō)