芯片設(shè)計(jì)流程
了解谷歌的工作我們首先要知道芯片的設(shè)計(jì)過程
首先要確定項(xiàng)目需求,這個(gè)階段主要工作室規(guī)劃芯片的功能以及各項(xiàng)指標(biāo),接著進(jìn)行系統(tǒng)級(jí)別的設(shè)計(jì),對(duì)芯片的各個(gè)子模塊進(jìn)行建模,然后進(jìn)入具體的設(shè)計(jì)流程,分為前端和后端,前端主要包括RTL設(shè)計(jì)與驗(yàn)證,硬件仿真驗(yàn)證,DFT還有電路綜合,后端流程中主要包括版圖設(shè)計(jì)、物理驗(yàn)證、版圖后仿真等等,直到最后的GDS
下面是從網(wǎng)上找的一張流程圖
那么谷歌的論文是做的哪部分呢?答案是后端中的版圖任務(wù),具體來說是布局規(guī)劃任務(wù)。
谷歌工作介紹
標(biāo)題
Superhuman floorplans for microchips/在芯片布局任務(wù)中超越人類
標(biāo)題部分其實(shí)谷歌就已經(jīng)告訴大家了,我們的研究集中在芯片布局這個(gè)任務(wù)
摘要
? A machine-learning system has been trained to place memory blocks in microchip designs. The system beats human experts at the task, and offers the promise of better, more-rapidly produced chip designs than are currently possible ?
? 我們訓(xùn)練了一個(gè)機(jī)器學(xué)習(xí)系統(tǒng)用于在芯片布局中放置存儲(chǔ)塊。系統(tǒng)在這項(xiàng)任務(wù)中擊敗了人類專家,未來能夠?qū)崿F(xiàn)更快更好的芯片設(shè)計(jì) ?
芯片的布局任務(wù)究竟在做什么?
經(jīng)過前端的RTL設(shè)計(jì),再使用綜合工具,將RTL代碼轉(zhuǎn)換為門級(jí)網(wǎng)表。最后在布局任務(wù)中,將門級(jí)網(wǎng)表作為輸入,劃分成不同的模塊,對(duì)模塊進(jìn)行布局,布局的意義在于,通過合理的拓?fù)鋬?yōu)化,減少信號(hào)的延遲,提高時(shí)鐘的質(zhì)量,保證芯片的工作頻率。一顆高端芯片的晶體管數(shù)量可以達(dá)到上百億,這么多晶體管分布在大大小小很多模塊中,所以這部分工作,原本就是由EDA工具通過算法實(shí)現(xiàn)的,傳統(tǒng)的布局布線算法采用模擬退火算法。
論文將布局規(guī)劃問題總結(jié)為
? 芯片布局規(guī)劃涉及將網(wǎng)表放置在芯片畫布(二維網(wǎng)格)上,以便優(yōu)化性能指標(biāo)(例如,功耗、時(shí)序、面積和線長(zhǎng)),同時(shí)遵守對(duì)密度的嚴(yán)格限制和路由擁塞。?
這個(gè)問題的實(shí)現(xiàn),完全不涉及芯片本身的功能設(shè)計(jì),更加不涉及芯片的架構(gòu)設(shè)計(jì),是一個(gè)單純的算法問題,抽象起來就是給很多方塊,擺放在指定區(qū)域內(nèi),對(duì)他們的密度、走線、時(shí)序具有要求,這是一個(gè)搜索空間很大的圖論問題。所以傳統(tǒng)的EDA中才會(huì)使用模擬退火等算法去實(shí)現(xiàn)它。
谷歌做了什么
簡(jiǎn)要的概括就是在芯片設(shè)計(jì)的后端流程--布局規(guī)劃中,提出使用強(qiáng)化學(xué)習(xí)的模型去取待傳統(tǒng)的人工配合算法的方法,與媒體所宣稱的AI自舉完全對(duì)不上。
媒體的標(biāo)題是
? 人類需要幾個(gè)月才能設(shè)計(jì)出的芯片,谷歌的人工智能在不到六個(gè)小時(shí)的時(shí)間內(nèi)設(shè)計(jì)出來。?
可實(shí)際上是
? 在后端的布局布線任務(wù)中,谷歌的人工智能能夠在不到六個(gè)小時(shí)的時(shí)間內(nèi)完成,傳統(tǒng)的版圖工程師需要幾個(gè)月時(shí)間 ?
而整個(gè)芯片設(shè)計(jì)周期占據(jù)主導(dǎo)地位的架構(gòu)規(guī)劃、RTL實(shí)現(xiàn)、RTL驗(yàn)證等任務(wù),谷歌并沒有涉足,這些步驟的時(shí)間比后端所需要的時(shí)間可能會(huì)更加長(zhǎng),從半年到兩三年不等。
系統(tǒng)具體如何工作
芯片布局規(guī)劃類似于具有不同部分(例如,網(wǎng)表拓?fù)?、宏?jì)數(shù)、宏尺寸和縱橫比)、棋盤(不同的畫布尺寸和縱橫比)和獲勝條件(不同評(píng)估的相對(duì)重要性)的游戲指標(biāo)或不同的密度和路由擁塞約束)
上面這張圖是強(qiáng)化學(xué)習(xí)的一個(gè)簡(jiǎn)要表示,其實(shí)簡(jiǎn)單理解就是一個(gè)反復(fù)迭代系統(tǒng),從當(dāng)前的布局中根據(jù)密度、線長(zhǎng)、延時(shí)等等計(jì)算出加權(quán)獎(jiǎng)勵(lì),同時(shí)使用神經(jīng)網(wǎng)絡(luò)從布局中進(jìn)行特征提取,最后智能體通過強(qiáng)化學(xué)習(xí)決策,得到調(diào)整布局的動(dòng)作,然后去調(diào)整布局。反復(fù)的重復(fù)這個(gè)過程,就能不斷地優(yōu)化布局。
強(qiáng)化學(xué)習(xí)系統(tǒng)需要精心設(shè)計(jì)的獎(jiǎng)勵(lì),谷歌的·布局規(guī)劃系統(tǒng)的獎(jiǎng)勵(lì)設(shè)計(jì)為“線長(zhǎng)、擁塞和密度的加權(quán)總和”。
值得注意的是,系統(tǒng)中使用的深度神經(jīng)網(wǎng)絡(luò)是使用監(jiān)督學(xué)習(xí)開發(fā)的。監(jiān)督機(jī)器學(xué)習(xí)需要標(biāo)記數(shù)據(jù)在訓(xùn)練期間調(diào)整模型的參數(shù)。谷歌的科學(xué)家創(chuàng)建了“一個(gè)包含 10,000 個(gè)芯片placements的數(shù)據(jù)集,其中輸入是與給定布局相關(guān)的狀態(tài),標(biāo)簽是該布局的獎(jiǎng)勵(lì)。”
總結(jié)
未來的EDA工具中,AI算法的介入肯定會(huì)越來越多,例如在綜合階段,利用AI實(shí)現(xiàn)更好的電路綜合方案,在驗(yàn)證階段,利用AI去搜索驗(yàn)證空間中更加可能出現(xiàn)bug的用例,時(shí)鐘樹綜合的時(shí)候,也可能使用AI算法去優(yōu)化時(shí)鐘樹,未來可期。
但是,媒體現(xiàn)在宣傳的神經(jīng)網(wǎng)絡(luò)幾個(gè)小時(shí)就能實(shí)現(xiàn)芯片設(shè)計(jì),就是標(biāo)題黨,外行的總結(jié),希望各位不要被這種觀點(diǎn)迷惑了。
END