柴永劍,張立軍,嚴雨靈,謝東東,馬利軍
(蘇州大學軌道交通學院,江蘇蘇州 215000)
時序是芯片設計過程中需要考慮的最重要的性能指標之一,正確的時序關系是實現(xiàn)電路具體功能的基礎。靜態(tài)隨機存取存儲器(SRAM)作為SOC 芯片的重要組成部分,其性能對SOC芯片的影響很大[1]。因此,時序分析是SRAM 設計的重要流程[2]。
將電路圖和對應版圖抽取的RC 信息相結合,在不同工藝、電壓、溫度下對SRAM 進行模擬仿真,最終生成包含時序、功耗、泄漏等性能指標的liberty 文件。一套完整的SRAM 模擬仿真可能需要幾百個小時。因此,需要對后仿真結果的時序值進行一定的預測。目前已有的研究主要是對前仿真時的標準單元庫進行表征預測[3],以及對一些典型的標準單元,如INV、AND、OR 等通過其晶體管的一些參數(shù)進行時序預測[4];而對芯片后仿真結果中完整時序預測的研究較少。該文擬將BP 神經(jīng)網(wǎng)絡應用于后仿真讀時序數(shù)據(jù)回歸模型的建立,使用蟻獅算法優(yōu)化網(wǎng)絡的初始權值,將R2、絕對誤差、均方誤差等作為評估標準,結果顯示該模型收斂速度較快,預測精度較高,具有良好的預測效果。
SRAM 的時鐘周期(Tcyc)主要受到讀周期的影響,因此該文主要考慮讀周期中的時序信息。芯片后仿真環(huán)節(jié)中通常采用關鍵路徑(Critical Path,CP)的方法取代完整電路的仿真,以節(jié)省時間成本[5]。該文通過提取14 nm 單端口SRAM CP 電路的數(shù)據(jù)信息得到原始數(shù)據(jù),采用的關鍵路徑時序分析方法如圖1所示。

圖1 SRAM關鍵路徑時序分析方法
圖1 中給出了該文SRAM 的基本結構,由存儲單元陣列(Cell Array)、行地址譯碼器(XDEC)、字線延時追蹤(TK)、靈敏放大器(SA)等組成。將存儲陣列簡化為4 個cell 單元,在電路基本連接信息正確的前提下,通過版圖抽取的RC 信息將重復出現(xiàn)的電路單元以負載(loading)的形式替換。關鍵路徑時序分析方法通常提供兩種情況:最差路徑Path1 和最優(yōu)路徑Path2,該文分析了最差路徑Path1 的時序信息。
當存儲器電路結構較為復雜時,采用分段拓展的方法計算存儲器的延時,可利用公式計算得到相應的延時信息[6]。該文從后仿真生成的liberty 文件中的查找表(Look Up Table,LUT)提取了幾種時序參數(shù),具體內容如表1 所示。

表1 提取的讀周期時間參數(shù)
由于芯片制造中不可避免的工藝偏差,同一芯片上不同位置的MOS 管性能會有所差異。針對新型制造工藝,采用統(tǒng)計學0CV—SOCV 模型進行補償,生成該文采用的corner:FFG、SSG、TT[7]。此外,溫度(T)、供電電壓、存儲容量參數(shù)、附加功能(F)等也會對SRAM 的讀時序產(chǎn)生影響。該文提取了由上述參數(shù)構成的9 種數(shù)據(jù)特征及每組數(shù)據(jù)對應的時間參數(shù)值。每個時間參數(shù)均包含16 960 組數(shù)據(jù),總共67 840 組數(shù)據(jù)。
1.2.1 特征量化
BP 神經(jīng)網(wǎng)絡的輸入通常為數(shù)字信息,因而需要對采集到的數(shù)據(jù)特征中的文本信息進行量化,以保證模型的良好應用[8]。需要優(yōu)化的特征如表2所示。

表2 特征的描述與量化
表2 中的每一個定量值代表該特征的不同狀態(tài),并作為BP 神經(jīng)網(wǎng)絡不同輸入節(jié)點的特征值。
1.2.2 特征歸一化
以特征量化完成后的Tcq部分數(shù)據(jù)為例,如圖2所示。可以觀察得到,溫度的變化范圍較大,在-40~125 間隔取值;而電路的字線、位線數(shù)則以2 的指數(shù)次冪增長式取值。

圖2 處理后的部分Tcq數(shù)據(jù)
這類數(shù)量級較大的數(shù)據(jù)特征會對BP 網(wǎng)絡的梯度更新產(chǎn)生影響,影響網(wǎng)絡的收斂速度,因而需要對數(shù)據(jù)進行歸一化處理。該文使用Min-Max 對時序數(shù)據(jù)進行歸一化處理,變換函數(shù)如式(1)所示:
設計代碼時,通過sklearn.preprocessing 庫中的Min-Maxscaler 方法實現(xiàn)數(shù)據(jù)到[0,1]范圍的等比縮放。處理完成后將數(shù)據(jù)按4∶1 的比例隨機劃分為訓練集和測試集。
BP 神經(jīng)網(wǎng)絡是一種依據(jù)輸出誤差反向傳播的前饋神經(jīng)網(wǎng)絡,被廣泛應用到各個領域的預測研究中[9]。該文采用三層BP 神經(jīng)網(wǎng)絡,基本結構如圖3所示。輸入層節(jié)點數(shù)為9,即數(shù)據(jù)的9 種特征;隱含層節(jié)點數(shù)的選擇將在下文實驗中確定;輸出層節(jié)點數(shù)為1,即時序預測輸出值。

圖3 三層BP神經(jīng)網(wǎng)絡的基本結構
該文用于特征轉換的激活函數(shù)f均采用Sigmoid函數(shù),具體表述為:
將預測樣本的均方根誤差作為模型的損失函數(shù),若損失函數(shù)未達到理想要求則進行反向傳播。尋找網(wǎng)絡的最優(yōu)權值,即要使損失函數(shù)取到極小值。該文對各參數(shù)的修正采用負梯度方向的最速下降法。
按各參數(shù)的修正值修改網(wǎng)絡權值,使得輸出誤差信號最小。該文將BP 神經(jīng)網(wǎng)絡的學習率lr設置為0.5,在損失函數(shù)不震蕩的前提下盡可能提高網(wǎng)絡的收斂速度。
蟻獅優(yōu)化(Ant Lion Optimizer,ALO)算法模擬自然界中蟻獅的狩獵機制,常用來對網(wǎng)絡模型進行優(yōu)化[10]。蟻獅在沙地中挖一個漏斗狀的陷阱并藏在底部,等待隨機游走的螞蟻落入陷阱。蟻獅將其捕食后修理陷阱以備下一次捕獵。ALO算法的具體步驟如下:
1)確定螞蟻和蟻獅的初始數(shù)量,對螞蟻和蟻獅的初始位置進行隨機處理:螞蟻的隨機游走根據(jù)式(3)的來確定:
式中,t表示隨機游走的步數(shù),tn為最大迭代次數(shù),r(t)為一個隨機函數(shù)。ai和bi分別表示第i維變量隨機游走的最大值和最小值分別表示第i維變量在第t次迭代的最小值和最大值。
2)螞蟻落入陷阱:螞蟻隨機游走的路線受陷阱影響,提出數(shù)學模型如下:
螞蟻進入陷阱后,其隨機游走的范圍急劇下降,該過程可用式(5)-(6)模擬:
式中,I為比例,T=tn,w是一個常數(shù)。
3)當蟻獅適應度比螞蟻大時,蟻獅將其捕獲,更新蟻獅的位置:
式中,f為適應度函數(shù)。
4)每次迭代結束,選擇適應度最好的蟻獅作為精英蟻獅。則第i只螞蟻在第t+1 次迭代位置由精英蟻獅確定,如下:
針對BP 神經(jīng)網(wǎng)絡在進行時序預測時收斂速度較慢,損失函數(shù)容易陷入局部極小值等問題,采用ALO 算法尋找神經(jīng)網(wǎng)絡的最優(yōu)權值[11],具體過程如圖4 所示。為驗證ALO-BP 算法對時序數(shù)據(jù)的預測效果,使用Python 語言進行模型搭建。種群數(shù)量Number=20,由BP 網(wǎng)絡的各層數(shù)計算得到自變量個數(shù)dim=144,設定最大迭代次數(shù)Max_iteration=100。

圖4 ALO-BP模型實驗流程圖
BP 神經(jīng)網(wǎng)絡的迭代次數(shù)epochs=1 000,隱含層數(shù)量m根據(jù)經(jīng)驗公式(9)初步劃定范圍為[3,13]之間的整數(shù)。通過5 折交叉驗證的方法[12],計算出不同隱含層數(shù)的平均預測均方誤差,當隱含層數(shù)為13 時,預測均方誤差最小,即為該文的最佳隱含層數(shù)。
其中,n為輸入節(jié)點數(shù),l為輸出節(jié)點數(shù),b為[0,10]之間的整數(shù)。
為評估模型性能,選取平均絕對誤差MAE、均方根誤差RMSE 和絕對系數(shù)R2作為評價指標。需要注意的是在計算模型預測的絕對誤差和均方根誤差時對預測結果做反歸一化處理,否則結果不夠直觀。絕對誤差MAE能最直接地反應預測效果,如下:
采用均方根誤差RMSE 評價預測的分布情況,值越小說明預測的數(shù)據(jù)結果越穩(wěn)定[13],如下:
采用決定系數(shù)R2評價回歸模型擬合度[14],如下:
其中,R2≤1,其值越大說明模型對數(shù)據(jù)的擬合度越好;R2<0 時,表示模型無法對數(shù)據(jù)進行擬合。
首先以時間參數(shù)Tcq的預測為例,初步評價該文模型的預測效果。ALO-BP 神經(jīng)網(wǎng)絡的訓練過程如圖5 所示。

圖5 ALO-BP模型對Tcq預測的迭代圖
由圖5 可知,BP 神經(jīng)網(wǎng)絡對測試數(shù)據(jù)的預測均方誤差約為0.001 25,即ALO 算法適應度函數(shù)的初始值。該迭代過程的收斂速度較快,在第12 次迭代時就基本獲得了適應度函數(shù)的極小值為0.001 05。通過學習過程優(yōu)化神經(jīng)網(wǎng)絡的權值和閾值,最終得到該文模型對Tcq參數(shù)的預測效果。
從圖6 中可以直觀地看出ALO-BP 網(wǎng)絡的預測效果較好,散點圖顯示該模型能夠有效地對數(shù)據(jù)進行精確擬合。為了驗證該文算法對時序數(shù)據(jù)預測的精確性,文中將K 近鄰算法[15]、隨機森林算法[16]、BP神經(jīng)網(wǎng)絡及基于ALO 的優(yōu)化算法4 種方法的結果進行對比,Tcq的預測效果如表3 所示。

表3 4種算法對Tcq預測的評價指標對比

圖6 ALO-BP模型的預測結果
該文需要預測的數(shù)據(jù)值數(shù)量級均在10-2~10-1之間,單位為ns,導致各個模型的絕對誤差和均方根誤差都偏小。通常要求SRAM 的時序誤差不超過2 ps,因而只有BP 網(wǎng)絡和該文算法的MAE 滿足該精度要求。表3 中,隨機森林算法對數(shù)據(jù)的擬合度較好,但預測誤差偏大;相比之下,K 近鄰算法減小了預測誤差,但擬合度下降。BP 網(wǎng)絡能在提高模型擬合度的同時進一步縮小預測誤差,但受到網(wǎng)絡初始權值和閾值的影響,其預測結果不夠穩(wěn)定。ALO-BP 算法很好地解決了上述其他方法的預測問題。
為進一步驗證該文算法對其他時序數(shù)據(jù)的適應性,采用上述4 種方法對4 種時序參數(shù)進行了預測,模型擬合結果如表4 所示。

表4 不同時序數(shù)據(jù)的模型擬合度對比
表中數(shù)據(jù)顯示,4 種方法對不同時序參數(shù)數(shù)據(jù)都能進行有效的擬合,其中K 近鄰的擬合效果最差,BP網(wǎng)絡的擬合效果不夠穩(wěn)定;而該文所采用的優(yōu)化算法平均擬合度最高,能夠對各種時序數(shù)據(jù)進行高精確度的預測。
保證時序正確是設計芯片功能的重要前提。為了預測不同工藝角下的時序參數(shù),該文提出了蟻獅優(yōu)化BP 神經(jīng)網(wǎng)絡的時序預測模型,對較大數(shù)據(jù)量的不同時序參數(shù)值進行了較為準確地預測。通過測試結果和不同算法對比可以看出,該文模型對時序數(shù)據(jù)的擬合效果最好,模型平均擬合度可以達到0.98以上。