孫 恒,王仁平,蔡沅坤
(福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350000)
隨著集成電路產(chǎn)業(yè)不斷發(fā)展,芯片制造早已進(jìn)入深亞微米時(shí)代,一直以來,時(shí)序簽核一直是檢驗(yàn)芯片設(shè)計(jì)是否合格的重要標(biāo)準(zhǔn)之一,在綜合工具(Design Compiler,DC)、布局布線工具(Integrated Circuit Compiler,ICC)、時(shí)序分析工具(Prime Time,PT)中都嵌入了不同的時(shí)序分析引擎。當(dāng)工藝節(jié)點(diǎn)達(dá)到90 nm 及以下時(shí),為了使芯片在不同的極端環(huán)境下可以正常工作,就需要采用多工藝角多模式的物理設(shè)計(jì)方案來確保芯片在不同環(huán)境下穩(wěn)定工作[1-3]。在對多場景物理設(shè)計(jì)進(jìn)行時(shí)序分析時(shí),傳統(tǒng)PT 需要打開多個(gè)窗口反復(fù)切換場景以達(dá)到遍歷每一個(gè)場景的目的,隨后逐個(gè)場景進(jìn)行時(shí)序分析,這樣會(huì)使設(shè)計(jì)過程變得過于繁瑣,而且,對于同一路徑,不同場景下的時(shí)序違規(guī)可能會(huì)重復(fù)出現(xiàn),對時(shí)序分析帶來不必要的麻煩[4],工藝角或模式的合并,也會(huì)帶來各種各樣的問題,DMSA 的使用可以很好地解決這些問題。
DMSA 是STA 的一種特殊模式,其原理和STA 原理如出一轍。STA 是通過“窮舉法”抽取整個(gè)電路的時(shí)序路徑,計(jì)算時(shí)序路徑的傳播延時(shí),檢查信號是否滿足時(shí)序約束要求,其目的是保證所有路徑滿足內(nèi)部時(shí)序?qū)r(shí)間(Setup time)和保持時(shí)間(Hold time)的要求,從而實(shí)現(xiàn)時(shí)序簽核[5]。
STA 的實(shí)現(xiàn)主要分為三個(gè)步驟:(1)時(shí)序路徑的劃分,如圖1 所示,STA 在時(shí)序分析時(shí)一般將電路分為四種時(shí)序路徑[6]。(2)路徑延時(shí)的計(jì)算,靜態(tài)時(shí)序分析的路徑延時(shí)(Path delay)分為單元延時(shí)(Cell delay)和線延時(shí)(Net delay)。單元延遲多采用非線性延時(shí)模型(Nonlinear delay model),即用二維查找表進(jìn)行單元延時(shí)計(jì)算,兩輸入變量分別為輸入轉(zhuǎn)換時(shí)間(Input transition time)和輸出負(fù)載(Output load),同樣,線延時(shí)的計(jì)算通過ICC 中實(shí)際繞線情況,由Start-RC 抽取寄生參數(shù)值,根據(jù)特定的線延時(shí)模型進(jìn)行估算[7]。(3)路徑時(shí)序的檢測,就時(shí)序路徑而言,需要通過延時(shí)計(jì)算得到路徑的數(shù)據(jù)要求時(shí)間(Data required time)和數(shù)據(jù)到達(dá)時(shí)間(Data arrival time),然后通過比較數(shù)據(jù)要求時(shí)間和數(shù)據(jù)到達(dá)時(shí)間來判斷路徑是否存在時(shí)序違規(guī)問題[8-10]。
圖1 物理設(shè)計(jì)中時(shí)序路徑劃分
DMSA 是靜態(tài)時(shí)序分析的一種特殊模式,通過啟動(dòng)主進(jìn)程(Master)來充當(dāng)所有場景的管理者角色,主進(jìn)程是運(yùn)行在DMSA 模式里的特殊進(jìn)程,可以向從進(jìn)程(Slave)遠(yuǎn)程分配服務(wù)器資源和任務(wù),實(shí)現(xiàn)通過單個(gè)端口對所有的場景進(jìn)行時(shí)序分析的目的[11-12]。
在DMSA 的使用過程中,需要對三個(gè)關(guān)鍵變量進(jìn)行設(shè)置,確保時(shí)序分析準(zhǔn)確、高效的進(jìn)行。
(1)許可證數(shù)目。在DMSA 模式下進(jìn)行時(shí)序分析時(shí),主服務(wù)器(Master)需要分配一定數(shù)量的許可證(license)給從服務(wù)器(Slave)使用,沒有許可證的從進(jìn)程不能進(jìn)行工作,使用“set_multi_scenario_license_limit”命令可以對許可證的數(shù)量進(jìn)行設(shè)置,默認(rèn)情況下,主服務(wù)器會(huì)最大程度地分配許可證給從進(jìn)程,如果設(shè)置的從進(jìn)程的數(shù)量多于許可證的數(shù)量時(shí),沒有許可證的從進(jìn)程需要等其他從進(jìn)程任務(wù)完成后,分配到許可證才可以進(jìn)行工作。
9月的加州依然很熱,洛杉磯周邊的山路其實(shí)也不乏駕駛樂趣,但必須承認(rèn),林肯在中大型全能豪華SUV市場的最新成果很擅長營造輕松的駕乘體驗(yàn)。V6發(fā)動(dòng)機(jī)的動(dòng)力表現(xiàn)從容不迫,8速自動(dòng)變速箱升擋時(shí)也懂得回應(yīng)平順,轉(zhuǎn)向輕巧而柔和。據(jù)說CCD連續(xù)可調(diào)阻尼懸架在行駛中能以每秒約23000次的頻率掃描路面,盡可能根據(jù)路面情況過濾掉多余的顛簸,面對粗糙鋪裝路面時(shí)給我的路感反饋甚至比全新林肯領(lǐng)航員Navigator還要得體一些。前后車窗配置的聲學(xué)夾層玻璃,車輛底部與油箱加厚的吸音材質(zhì),配合ANC主動(dòng)降噪系統(tǒng),車內(nèi)靜音表現(xiàn)值得肯定。
(2)從進(jìn)程的數(shù)量。根據(jù)場景的數(shù)量,在主服務(wù)器通過“set_host_option -max_core -num_processes”命令對core數(shù)目、啟動(dòng)進(jìn)程數(shù)目進(jìn)行設(shè)置,一般情況下,場景的數(shù)目要小于等于從進(jìn)程的數(shù)目,確保每一個(gè)場景都有一個(gè)專用的從進(jìn)程,保證DMSA 順利進(jìn)行。
(3)場景的定義。DMSA 中場景的定義分為兩種:(1)每一個(gè)場景都由一個(gè)腳本定義,通過命令“create_scenario-name ${mode}_${corner} -specific_variables {mode corner} -specific_data {pt_setup.tcl}”主服務(wù)器將變量工作模式、工藝角組合分配到從服務(wù)器并執(zhí)行帶有變量工作模式、工藝角的腳本pt_setup.tcl。(2)時(shí)序分析使用“save_session”命令后,可通過“create_scenario -name -image”指定之前保存過的場景。許可證、從進(jìn)程、場景三個(gè)變量的設(shè)置是DMSA 設(shè)計(jì)方法能否并行運(yùn)行的關(guān)鍵,需根據(jù)待分析芯片的物理設(shè)計(jì)進(jìn)行正確的配置[13]。
芯片在流片(Tapeout)之前,要滿足時(shí)序約束和物理規(guī)則等要求,為了進(jìn)行更精確的時(shí)序分析,需要將ICC生成的網(wǎng)表以及提取的寄生參數(shù)文件導(dǎo)入PT 進(jìn)行時(shí)序分析[14],對于多場景的物理設(shè)計(jì),采用DMSA 設(shè)計(jì)方法,通過在terminal 中輸入“pt_shell -multi_scenario”便可進(jìn)入DMSA 模式。然后配置好相關(guān)路徑和服務(wù)器資源,通過“create_scenario”命令進(jìn)行場景創(chuàng)建,并將數(shù)據(jù)傳遞到每一個(gè)從進(jìn)程中,使用“start_hosts”命令來啟動(dòng)所有從進(jìn)程,完成環(huán)境配置之后“report_constraints-all_violators”命令可以查看合并后各場景下的時(shí)序違規(guī),然后使用“fix_eco_timing”命令進(jìn)行時(shí)序修復(fù),待時(shí)序修復(fù)完成,用命令“write_changes-format icctcl-output icc.tcl”生成時(shí)序修復(fù)后的工具命令語言(Tool Command Language,TCL)腳本,返回到ICC 中進(jìn)行時(shí)序修復(fù),再提取優(yōu)化后網(wǎng)表和寄生參數(shù)文件重新到DMSA 中進(jìn)行時(shí)序分析,循環(huán)往復(fù),直到實(shí)現(xiàn)時(shí)序簽核[15]。DMSA 時(shí)序修復(fù)流程如圖2所示。
圖2 DMSA 時(shí)序修復(fù)流程
本次實(shí)驗(yàn)基于Smic 90 nm 工藝庫,待測試芯片Cxdp13設(shè)有2 種模式,8 個(gè)工藝角,共有16 個(gè)場景。在硬件配置方面共設(shè)置16 個(gè)進(jìn)程,對應(yīng)16 個(gè)場景。時(shí)序分析時(shí),主進(jìn)程將所有從進(jìn)程中的時(shí)序信息整合篩選寫入到一個(gè)文檔報(bào)告中,自動(dòng)過濾掉過多的重復(fù)路徑,而不需要針對每一個(gè)場景進(jìn)行時(shí)序分析,這樣PT 在做時(shí)序修復(fù)時(shí)會(huì)顧及所有工藝角、模式的影響,可以有效減少各場景間的相互影響[16]。通過使用“fix_eco_timing -type hold-method{size_cell insert_buffer}-buffer_list $buf_list”命令和”fix_eco_timing -type setup -method{size_cell}”命令進(jìn)行時(shí)序違規(guī)的自動(dòng)修復(fù),經(jīng)過第三次迭代后,所有場景中時(shí)序違規(guī)全部修復(fù)完成。表1 是時(shí)序修復(fù)后通過“report_constraints”得到的所有時(shí)序和設(shè)計(jì)規(guī)則檢查(Design Rule Check)違規(guī),因?yàn)閙acro 端口后面沒有連接負(fù)載,所以出現(xiàn)最小電容(Min_Capacitance)違規(guī),此違規(guī)可以忽略。
表1 時(shí)序與設(shè)計(jì)規(guī)則檢查違規(guī) (pF)
本文介紹了DMSA 技術(shù)在MCMM 物理設(shè)計(jì)中時(shí)序簽核的應(yīng)用,并利用Cxdp13 芯片設(shè)計(jì)實(shí)例闡述DMSA 技術(shù)的實(shí)現(xiàn)過程。實(shí)踐結(jié)果表明,DMSA 模式下時(shí)序分析與修復(fù)可以并行進(jìn)行,時(shí)序修復(fù)過程中也會(huì)考慮其他場景的需要并且不需要進(jìn)行多窗口切換,提高了時(shí)序分析的效率,也大大縮減了時(shí)序修復(fù)的時(shí)間。另外,隨著科技的發(fā)展,普通計(jì)算機(jī)的硬件條件也足以支撐DMSA 技術(shù)的實(shí)現(xiàn)。因此,在如今的MCMM 物理設(shè)計(jì)中,DMSA 技術(shù)在時(shí)序簽核中得到了廣泛的應(yīng)用。