機器學習在IC設計中的應用(二)--根據GBA時序結果來預測PBA


本文轉自:自己的微信公眾號《集成電路設計及EDA教程》

機器學習在IC設計中的應用(二)--根據GBA時序結果來預測PBA

 

AOCV

AOCV全稱:Advanced OCV,28nm及以下工藝節點開始逐漸使用的STA方法。與之前的OCV(設置全局的timing derate值)相比能顯著降低時序分析的悲觀程度,使得時序分析結果更加接近真實結果。

 

 GBA與PBA 

AOCV有兩種模式,如下:

GBA (Graph-Based Analysis) : 一個Cell的delay,取多個輸入的input transition的最差值去查表;

PBA (Path-Based Analysis):一個Cell的delay,不同path,分別按照input transition的真實值計算查表;

兩者的區別如下圖所示:

 

因此GBA的Timing會過於悲觀,但是好處是計算保守,試想在最差情況下Timing如果滿足的話,PBA mode下timing會更滿足(如下圖所示,GBA mode的包絡線將所有PBA的點全部囊括在內)。

 

PBA mode與GBA mode相比,減少了分析的悲觀程度,讓分析結果更加接近真實的情況(現在的POCV等手段都是為了這個目的)。因此PBA mode的分析結果更加真實,一般用來Signoff timing用。

 

那你可能會問,PBA mode更加精確的話為什么還會去用GBA mode呢?

那是因為GBA mode有一個優點:計算速度快。

所以GBA和PBA是一個速度和精度的trade off。

下圖給出了對數坐標下PBA與GBA模式下運行時間的比值,用的EDA工具是商用Signoff STA工具,工藝是28nm FDSOI。橫坐標是設計的復雜程度,從4K flip-flop 40K個單元到 350K flip-flop 990K個單元。

 從上圖可知,隨着設計復雜度的增加,PBA的運行時間的增加程度比指數增長還要快。

下圖給出了GBA mode與PBA mode下兩者在path arrival time上的對比結果,最差情況下偏差可達110ps。

 那么問題來了,考慮到PBA mode運行時間的恐怖程度與GBA分析結果的悲觀程度,有沒有什么好的方法,能減小GBA的悲觀程度,同時又不犧牲運行時間呢?這就是本推文要介紹的內容—如何基於GBA的timing結果去預測PBA timing?

 

實現思路 

訓練階段:同時將GBA和PBA時序分析的結果作為特征提取和模型訓練的輸入對模型進行Training。

測試/應用階段:

根據GBA時序分析的結果去預測PBA結果。

  

具體細節和算法見參考文獻:

《Using Machine Learning to Predict Path-Based Slack from Graph-Based Timing Analysis》

 

文章早期嘗試了多元自適應回歸樣條(Multivariate Adaptive Regression Splines, MARS)模型。結果: 90%的endpoint的PBA slack預測值與PBA slack真實值之間偏差在5ps以內。如下圖所示:

 

MARS介紹:

https://github.com/KeKe-Li/tutorial/blob/master/assets/src/RAM/RAM.0.4.md

從上圖可以看出這種思路是可行的,且效果較好,但是該模型存在一些問題,文章提出了一個基於決策樹和時序路徑中stage bigrams電氣和物理特征的模型。並取得了不錯的結果。

 

結果 

 下圖是真實的GBA/機器學習預測的PBA結果與真實的PBA結果的對比曲線:

 

 

從圖中可以看出與傳統的GBA分析結果相比,基於GBA和機器學習的方法在一定程度上降低了GBA模式的悲觀程度,且與真實的PBA分析結果的線性度更高,GBA和PBA之間的結果離散程度比較大。雖然該成果的效果不是非常明顯,但是思路非常新穎,擴展了我們的視野,相信以后在該方面會有更大的突破。

 

尾注 

研究生階段做過ML的算法和芯片,上述內容部分基於參考文獻、已有的ML經驗、IC設計經驗,還有一些胡思亂想,哈哈哈,希望在腳踏實地做IC的同時也能采用一些大膽新穎的想法來讓IC設計變得更有效率,把活兒干的更漂亮,同時讓自己更加出色。

 

多分享,多點贊;

您的支持是我更新的動力,謝謝您的關注,更多資料請移步公眾號《集成電路設計及EDA教程》

 

網易雲課堂視頻課程

  

鏈接:https://study.163.com/course/introduction/1005909004.htm

Calibredrv教程-提高流程自動化

##  為了方便大家交流討論  ##

##  建了一個QQ群  ##

## 集成電路設計及EDA教程  ##

## 加群請備注:EDA  ##

##  群二維碼如下  ##

# 本公眾號有個紅包和資料福利微信群  #

#  集成電路設計及EDA教程福利群  #

#  為了避免亂七八糟的人加進來  #

#  可以先加我微信,我拉你進群  #

#  加我微信 請備注下面問題的答案  #

#       ASIC的全稱       #


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM