張書政 趙振宇 馮超超
(國防科技大學計算機學院 長沙 410073)
在摩爾定律[1]的驅動下,集成電路集成度和技術節點飛速發展,十余年來集成晶體管數量從數百萬發展到了數十億[2]。這使得設計人員和計算資源無法跟上芯片復雜度快速上升的趨勢,導致了芯片設計成本和周期的增加,高效的設計方法是應對這個局面的關鍵。機器學習如今在各個領域都有廣泛的應用,其能學習數據規律建立模型從而快速推斷結果[4]。將機器學習應用于物理設計中可以挖掘設計規律,且基于推斷的求解可以越過EDA工具在物理設計NP 難問題上漫長的求解過程[5],從而加速芯片設計。國內外很多學者在此方面有了成功的研究,包括布線結果預測[6~7],時鐘樹綜合結果預測[8],光刻熱點檢測等[9~10]等。而在時序驅動的物理設計中,靜態時序分析(STA)的結果決定了設計是否合格,在設計的修改和優化中會反復進行求解,本文研究基于機器學習的高效STA分析方法。
在數字電路中,靜態時序分析需要使用描述各個單元時序信息的時序庫文件,它定義了單元在不同工藝、電壓、溫度(PVT)下從輸入端口到輸出端口信號的傳播延時。傳統方法最常用的Corner 為最佳、最快(fast,fast),最差、最慢(worst,worst)和典型(typical,normal)三種[11],這是由于運行時間成本,往往一個設計無法跑遍所有的Corner,一些混合Corner無法詳細地進行分析,只能用臨界情況來進行分析,這使得設計出現了很多設計裕量,浪費設計性能和資源。高效的多Corner 分析方法可以獲得性能和運行時間的共同優化。
時序庫中的Corner 是在不同PVT 下進行仿真得出來的,一些Corner之間存在部分PVT相同的情況,故存在著相關性,如表1 所示,編號第2、6、9 的Corner 間只有溫度不同,其必然存在很高的相關性。相關文獻[12]也表明了Corner 角之間的相關性。

表1 本工作Corner具體參數(Process均為16nm,Voltage均為0.6V)
為了發掘Corner時序結果之間具體的關系,可以將其建模為y=f(x),其中,x 和y 分別為一些Corner 的集合,f 為這些Corner 的相關關系,為了發掘具體關系,本文分別采用了線性和非線性兩種機器學習算法,建立從1~n 個已知Corner 結果預測n+1~N 個未知Corner 結果的模型,其中n 為已知Corner數,N為總Corner數。根據實驗來確定不同Corner之間的關系并選取合適的n值,實現已知Corner對剩余未知Corner的快速預測。
本文只研究保持時間,建立時間研究方法相同?;谝延械?4 個Corner(表1),針對118 萬單元規模的芯片取每個Corner 布線后時序結果的前10000 條最差時序路徑,之后取并集,將得出的26985 條時序路徑進行所有Corner 結果的獲取,在2.27GHz主頻的Intel Xeon服務器上,單Corner靜態時序分析運行時間約為1h。
3.2.1 多Corner互信息分析結果
為了顯示各個Corner 時序結果之間的關聯程度,采用互信息的計算方法。互信息可以量化的度量各種不同信息相關性,時序結果是連續量,其互信息公式如下[13]:

其中,p(x,y)是X 和Y 的聯合概率密度函數,p(x)和p(y)分別為X 和Y 的邊緣概率密度函數。之后利用公式將互信息縮放至0~1之間:

縮放后I′(X;Y)越靠近1,說明X 和Y的相關性越大。14 個Corner的互信息結果如圖1 所示,淺色代表相關性高,可以看出,1~10 存在廣泛的相關性,而11~14存在彼此之間的高相關。

圖1 不同Corner 之間互信息熱度圖
3.2.2 基于嵌入式算法的Corner選擇
由于本文是利用Corner 時序結果之間的相關性來通過一部分已知Corner 的時序結果來預測另一部分未知Corner 的時序結果,如何選取“已知”Corner 集合是一個比較重要的問題,下文把已知Corner 集合稱為訓練集,待預測的“未知”Corner 集合稱之為目標集。
選取合適的訓練集是典型的特征選擇問題。本文采用了嵌入式的特征選擇方法,即將特征選擇過程與機器學習模型訓練過程融合為一體,同時完成。此過程采用兩種機器學習算法:基于線性關系的嶺回歸(Ridge)和偏非線性關系的決策樹(Decision Tree)算法[14]。
實驗具體流程如圖2 所示,首先選取互信息累加和最高的Corner 為第一目標Corner,建立初始的13 個Corner 預測1 個目標Corner 的模型?;バ畔⒗奂雍妥罡弑砻髟揅orner 和其他Corner 關聯性較高,建模容易獲得理想的結果。而后進行模型的訓練和Corner 選擇過程,特征重要性排序最低的Corner 意味著其在在訓練集中作用很小,即與目標集中的Corner 項相關性很低或者在模型中可以在被其他Corner項表示,將其加入目標集。

圖2 Corner選擇流程
3.2.3 模型結果及分析
基于總數據集中26985 條路徑,進行5 折交叉驗證[15],以得到模型的平均表現,以平均絕對誤差(MAE)作為評估指標。分別對訓練集Corner 數從13 到1(目標集Corner數從1~13)進行了建模,結果如圖3所示。

圖3 兩種機器學習算法上不同Corner數量對應的平均絕對誤差
顯然,嶺回歸的算法表現更好,在利用7 個Corner 預測余下7 個Corner 時,能達到平均2.07ps(1.76%)的誤差,優于決策樹算法利用13 個Corner預測1 個Corner 的2.33ps,可見應采取線性模型來發掘Corner 時序結果之間的關系。模型訓練和預測的時間小于1min,遠小于商業STA 工具所需的1h。
模型的穩健性由模型的精度和有效性反映,具體檢驗模型在不同訓練集百分比下使用已知Corner 預測未知Corner 的表現,首先劃分訓練集和測試集,使訓練集分別占比70%,60%,30%,10%,5%,1%。之后針對不同的已知Corner數量,在訓練集上進行模型訓練并預測未知Corner。結果以精度損失百分比作為評判,定義為:

其中X為當前訓練集百分比下相應Corner的MAE,Y為在基準訓練集百分比下相應Corner的MAE。

圖4 模型在不同訓練集百分比下在相應Corner選取策略上的表現
結果如圖6 所示,顯然,當訓練集百分比從70%下降到1%時,其精度損失不大,具體數值不會超過0.15ps。這表明該建模方法具有很強的穩健性,具有使用極少量(1%)的訓練數據進行高精度預測的能力。與相關研究[16]對比,我們可以在可接受的精度損失下,采用更少的數據進行有效的預測,具備更好的應用價值。
不同設計,以及不同階段的STA,具有不同的誤差閾值,基于模型的高穩健性,可以針對不同的情況提取少量數據進行訓練而后預測,本工作模型訓練后會給出Corner 的具體選擇策略和對應的誤差值,據此可以實現約束驅動的Corner 選擇,從而很好地對未知Corner 進行預測,節省大量的時間。在本文的具體實驗中,基于設計所處的布線后時序分析階段,前期采用極少量數據進行建模,之后選取高精度的預測策略:采用9 個Corner 的數據預測未知5 個Corner 的數據,可以在小于1ps 的平均絕對誤差下,獲得1.56x的時間效率提升。
隨著工藝不斷進步和芯片功能需求的不斷上升,芯片復雜度將越來越高,由于物理設計本身的重要性和耗時性,對物理設計進行加速優化已經成為當今的熱點之一。機器學習模型可以從歷史數據學習設計經驗,并具有快速精準推斷結果的能力,可以減少設計重復率,縮短芯片物理設計周期。本文主要從STA的特點出發,利用機器學習發掘了多Corner時序結果的線性相關性,并建立部分已知Corner預測余下未知Corner的模型,其結果精度高,在大部分設計的誤差接收范圍內。同時基于模型的強穩健性,可以通過極少的數據進行高效準確的預測,從而達成約束驅動的Corner 選取,有效地減少多Corner下的STA 分析時間,顯著加速整個設計流程。