利用MCMM技術(shù)解決時(shí)序難以收斂的問(wèn)題以及降低了芯片設(shè)計(jì)周期設(shè)計(jì)
如今的集成電路(Integrated Circuit,IC)設(shè)計(jì)往往要求芯片包含多個(gè)工作模式,并且在不同工藝角(corner)下能正常工作。工藝角和工作模式的增加,無(wú)疑使時(shí)序收斂面臨極大挑戰(zhàn)。本文介紹了一種在多工藝角多工作模式下快速實(shí)現(xiàn)時(shí)序收斂的技術(shù)---MCMM(Multicorner-MulTImode)技術(shù),該技術(shù)將工藝角和模式進(jìn)行組合,對(duì)時(shí)序同時(shí)進(jìn)行分析和優(yōu)化,到達(dá)快速實(shí)現(xiàn)時(shí)序收斂的目的。該技術(shù)應(yīng)用于一個(gè)80萬(wàn)門基于TSMC 0.152μm logic 工藝的電力網(wǎng)載波通信(PLC)芯片設(shè)計(jì),設(shè)計(jì)實(shí)例表明,利用MCMM 技術(shù)不但可以解決時(shí)序難以收斂的問(wèn)題,而且大大降低了芯片設(shè)計(jì)周期。
1 引言
隨著集成電路工藝的不斷發(fā)展,芯片受工藝、電壓、溫度(Process、Voltage、Temperature,PVT)的影響越來(lái)越嚴(yán)重,需要使用更多的工藝角來(lái)保證芯片在不同條件下能穩(wěn)定工作;與此同時(shí),隨著芯片測(cè)試需求的增加和功能的增強(qiáng),芯片的工作模式也在不斷增加,這給芯片版圖設(shè)計(jì)者帶來(lái)了一系列的困難,其中最困難的當(dāng)然是如何快速實(shí)現(xiàn)時(shí)序收斂,縮短設(shè)計(jì)周期。設(shè)計(jì)者必須保證芯片在相同工作模式不同工藝角下的時(shí)序收斂,當(dāng)工藝角和工作模式數(shù)量多的時(shí)候,使用傳統(tǒng)的方法來(lái)實(shí)現(xiàn)時(shí)序收斂絕非一件易事,需要大量的人工工作進(jìn)行大量反復(fù)迭代,分析并消除模式之間的影響,有時(shí)甚至?xí)霈F(xiàn)時(shí)序難以收斂的情況。我們實(shí)驗(yàn)室設(shè)計(jì)的PLC 芯片,正是采用了Synopsis 公司IC Compiler 軟件的MCMM 設(shè)計(jì)技術(shù),完全放棄了傳統(tǒng)的時(shí)序收斂方法,有效加速了實(shí)現(xiàn)時(shí)序收斂,縮短了設(shè)計(jì)周期。
2 傳統(tǒng)的時(shí)序收斂實(shí)現(xiàn)方法
在傳統(tǒng)的時(shí)序收斂和分析方法下,版圖設(shè)計(jì)工程師需要在不同的工作模式之間來(lái)回切換設(shè)計(jì)約束進(jìn)行分析優(yōu)化,以滿足同一時(shí)序路徑在不同模式下的時(shí)序要求,如圖1所示。
從圖1中可以看出,這種方法的缺點(diǎn)是版圖工具無(wú)法同時(shí)覆蓋到所有模式下的時(shí)序,必須以串行的方法來(lái)修復(fù)各個(gè)模式的時(shí)序,還必須保證修復(fù)過(guò)程中模式之間沒有影響,這無(wú)疑增加了各個(gè)模式之間的切換迭代次數(shù)和人工手動(dòng)ECO 的時(shí)間。如果芯片的工藝角和模式越多,切換迭代次數(shù)就越多,工作量會(huì)大到讓設(shè)計(jì)者難以接受的地步。
3 基于MCMM 技術(shù)
快速時(shí)序收斂實(shí)現(xiàn)方法MCMM 技術(shù)實(shí)現(xiàn)時(shí)序收斂的基本思想是,工藝角和模式組成場(chǎng)景(scenario),版圖設(shè)計(jì)軟件IC Compiler"吃進(jìn)"所有scenario 的時(shí)序約束,激活關(guān)鍵的scenario,讓軟件自行評(píng)估和優(yōu)化。同一條違例時(shí)序路徑可能出現(xiàn)在不同的scenario中,評(píng)估這條違例路徑在不同scenario中的時(shí)序裕量大小,例如一條路徑在scenario1 中的裕量為-1,在scenario2中的裕量為-0.2,則認(rèn)為其在scenario1中的權(quán)重更高,在權(quán)重最高的scenario1 中進(jìn)行修復(fù)。很明顯,與傳統(tǒng)方法相比,MCMM 技術(shù)將時(shí)序收斂的處理變以往的"串行"為"并行",并且模式之間的影響完全交給版圖軟件來(lái)分析,省去了人工手動(dòng)ECO的工作,從而大大減少了時(shí)序收斂的迭代次數(shù)和設(shè)計(jì)時(shí)間。
4 應(yīng)用舉例
以實(shí)驗(yàn)室一款PLC芯片為例,具體介紹如何使用MCMM技術(shù)來(lái)加速時(shí)序收斂。
4.2 基于MCMM 的時(shí)序收斂實(shí)現(xiàn)
在同時(shí)激活10 個(gè)scenario 的情況下,會(huì)出現(xiàn)服務(wù)器內(nèi)存溢出,死機(jī)等狀況,導(dǎo)致設(shè)計(jì)無(wú)法順利進(jìn)行。我們對(duì)這10 個(gè)scenario 進(jìn)行了分析,其中MBIST_MAX,SHIFT_MAX,CAPTURE_MAX,MISSION 60_MAX 這4 個(gè)scenario 中,時(shí)鐘頻率最大的是MISSION60_MAX 中的60MHz,其余三個(gè)scenario 時(shí)鐘頻率只有10MHz,建立時(shí)間裕量都在9.9ns 以上,即使在修復(fù)過(guò)程中不激活,修復(fù)其它scenario 時(shí)帶來(lái)的影響在承受范圍之內(nèi),也不會(huì)對(duì)后續(xù)的繞線產(chǎn)生影響;在MISSION90_MAX 這個(gè)scenario中,時(shí)鐘頻率是90MHz,建立時(shí)間雖然沒有違例,但是留下的裕量只有0.84ns,不足以抵擋修復(fù)其它scenario時(shí)帶來(lái)的影響;剩下的5 個(gè)scenario 中,都有保持時(shí)間違例,必須進(jìn)行修復(fù)?;谝陨戏治觯覀冞x擇同
時(shí)激活MISSION90_MAX, MISSION_MIN, MISSION 60_MIN, MBIST_MIN, SHIFT_MIN, CAPTURE_MIN這6個(gè)關(guān)鍵scenario 進(jìn)行時(shí)序收斂,具體腳本如下:set_acTIve_scenarios {MISSION90_MAX MISSION90_MIN MISSION60_MIN MBIST_MIN SHIFT_MIN CAPTURE_MIN}(激活關(guān)鍵scenario)foreach scenario [all_acTIve_scenarios] {
current_scenario scenario set_clock_uncertainty -hold 0.2 [all_clocks]set_clock_uncertainty -setup 0.6 [all_clocks] set_prefer -min{tcb0152gbwp7twc/DEL015BWP7Ttcb0152gbwp7twc/DEL02BWP7T}set_fix_hold_opTIons -preferred_buffer set_fix_hold [all_clocks]}(設(shè)定每個(gè)關(guān)鍵scenario 的時(shí)序裕量,用指定的std cell 來(lái)修復(fù)hold timing)update_clock_latency(更新clock 延遲)psynopt(進(jìn)行時(shí)序修復(fù))
4.3 結(jié)果分析
經(jīng)以上操作,6個(gè)scenario 的時(shí)序路徑同時(shí)經(jīng)過(guò)優(yōu)化之后,結(jié)果如表2 所示。
表2中結(jié)果表明,幾乎所有模式都已經(jīng)滿足了時(shí)序要求, 只有MISSION90_MAX 的scenario有setup 時(shí)序的違例,為了修復(fù)該違例,只需激活該scenario,重新一次“psynopt”就可以到達(dá)時(shí)序要求。
我們也嘗試用傳統(tǒng)方法來(lái)修復(fù)該芯片的時(shí)序,由于模式數(shù)量多,導(dǎo)致模式間來(lái)回切換次數(shù)多于20次,加上模式之間時(shí)序干擾嚴(yán)重,人工參與分析工作量很大,時(shí)序收斂所需要的時(shí)間遠(yuǎn)遠(yuǎn)多于用MCMM技術(shù)所花的時(shí)間,MCMM 技術(shù)優(yōu)勢(shì)非常明顯,具體結(jié)果如表3所示。5 結(jié)語(yǔ)和展望
本文介紹了IC Compiler 的MCMM 同步優(yōu)化技術(shù),用一個(gè)設(shè)計(jì)實(shí)例闡述該技術(shù)的具體實(shí)現(xiàn)過(guò)程,結(jié)果顯示大大節(jié)省了設(shè)計(jì)時(shí)間,也為版圖設(shè)計(jì)工程師解決了人工分析干預(yù)的難題,具有一定的實(shí)際應(yīng)用價(jià)值。在設(shè)計(jì)過(guò)程中我們從CTS 階段后才開始采用MCMM 技術(shù)來(lái)達(dá)到芯片時(shí)序收斂的目的,在今后更復(fù)雜,要求更高的設(shè)計(jì)中,把MCMM 技術(shù)應(yīng)用到一些關(guān)鍵步驟中,比如邏輯綜合和place 等,并且綜合考慮芯片功耗問(wèn)題。
4.1 scenario 的定義
該芯片有2 種正常工作模式,時(shí)鐘頻率分別是90Mhz和60Mhz,3種DFT 測(cè)試模式,分別是shift模式,capture 模式和mbist 模式,需要工作在兩個(gè)工藝角下,WCCOM 和BCCOM,也就是5種模式2個(gè)工藝角組成了10 個(gè)scenario,每個(gè)scenario 指定對(duì)應(yīng)的寄生模型(TLU+ 文件),worst 和best,如表1所示。在WCCOM工藝角下檢查建立時(shí)間(setup time),在BCCOM 工藝角下檢查保持時(shí)間(hold time)。定義scenario 的具體腳本如下:
create_scenario MISSION90_MAX (建立一個(gè)名叫MISSION90_MAXX 的scenario)set_operating_conditions
-analysis_typeon_chip_variation -max_library tcb0152gbwp7twc -max WCCOM(指定時(shí)序分析類型和對(duì)應(yīng)corner下的lib 庫(kù))set_tlu_plus_files -max_tluplus ./test/cl0152g_lp6m_worst.tlup -tech2itf_map ./techfiles/tluplus/star.map_6M(設(shè)定相應(yīng)corner 的RC 寄生模型)source . /netlist /KOALA_ASIC_TOP_compiled_pass3_mission_90_mode_post.sdc(讀入該模式的時(shí)序約束文件)。