用全定制芯片設(shè)計方法設(shè)計礦機芯片
作者 / 迎九 毛爍 《電子產(chǎn)品世界》編輯
本文引用地址:http://m.butianyuan.cn/article/201810/393361.htm摘要:在日前廈門海滄舉行的“2018集微半導(dǎo)體峰會”的“AI/5G論壇”上,礦機(區(qū)塊鏈服務(wù)器)及其芯片的黑馬——深圳比特微電子有限公司的董事長、總經(jīng)理兼CTO楊作興博士登臺,介紹了新的全定制設(shè)計方法,并稱采用該方法設(shè)計的16nm區(qū)塊鏈芯片BT1800,與競品相比,功耗和成本均降低了50%左右。該芯片用于9月19日發(fā)布的神馬M10礦機,算力指標(biāo)是33T到35T。
比特微的全定制芯片非常高效,希望這種設(shè)計方法學(xué)可以推廣至其他芯片設(shè)計領(lǐng)域,例如AI領(lǐng)域。
1 新的“全定制設(shè)計方法”
全定制設(shè)計不是新方法,其誕生于20世紀(jì)八九十年代,后來被興起的EDA工具所掩蓋。
其實,仍然有些公司在用全定制設(shè)計方法學(xué),例如高通、蘋果等公司的手機芯片也許還在采用這種方法,但很少對外界說。
全定制有幾個特點。圖1上半部分是業(yè)內(nèi)通常采用的芯片設(shè)計流程,方法是由高級語言寫代碼,還有代工廠單元庫,綜合成門級網(wǎng)表,然后做自動布局,然后再用工具生成時鐘,之后再布線,形成GDS。
全定制設(shè)計有三個不同地方,如圖1下半部分。
第一是不用代工廠的單元庫,用自己的單元庫。為什么用自己的單元庫?因為代工廠的單元庫是面向所有客戶的,要考慮所有應(yīng)用的范圍,所以在一些局部特殊的場景下,可能在面積、功耗、速度方面不是最優(yōu)的。
第二邏輯綜合?,F(xiàn)在又重新回到手動寫門級網(wǎng)表的時代。
第三是看似最笨的一件事情,就是手動布局。很多人會覺得這比較瘋狂,因為做PCB(印制電路板)的時候,有幾塊芯片、幾百個電阻電容,對它們可以進(jìn)行手動布局;但是在芯片里,在幾千萬個單元器件的情況下,有誰會傻到用手動去布?但是有些時候不可能的事情其實是有可能的,比特微進(jìn)行了手動布局,用自己的庫手動寫門級網(wǎng)表,稱之為“全定制設(shè)計”。當(dāng)然還有比這更極端的,據(jù)說高通公司能夠做自己的PDK MODEL,是除了代工廠之外能夠自己做PDK MODEL的公司!
2 全定制的優(yōu)勢
比特微做了三個實驗,可以說明全定制好在哪里。
第一個實驗是2011年做的900MHz RFID TAG(射頻識別標(biāo)簽)芯片,它有一個重要特征:是無源的,所有的能量來自電磁波,從空中吸收電磁波。此時還不是全定制設(shè)計,楊作興博士只做了一件事:把幾千門的邏輯手動地寫下來。結(jié)果功耗優(yōu)化了5倍,功耗×面積優(yōu)化比例達(dá)到了11倍。
第二次實驗是在2015年(當(dāng)時做了一個28nm的BTC(比特幣)芯片。之前的APR方法做出來的功耗是513 W,友商全定制的方法達(dá)到了300 W,功耗×成本優(yōu)化比例達(dá)到了4.28倍。采用比特微的全定制方法設(shè)計后,與APR方法相比,同樣的功能、工藝下,功耗和成本減少了一半,功耗×成本優(yōu)化了11.88倍。
第三次實驗是在兩年后的2017年,在16nm上嘗試BTC的芯片應(yīng)用。比特微又把功耗優(yōu)化到了65 W,功耗×成本優(yōu)化比例達(dá)到了5.54倍。
3 如何實現(xiàn)全定制設(shè)計?
這里有四個關(guān)鍵點:單元庫,手動布局,時鐘,手動門級網(wǎng)表。
單元庫。比特微做的庫的功耗、面積、速度有很大優(yōu)勢。但是有些很特殊應(yīng)用環(huán)境,如果處理不好會出問題。比特微的庫從28nm到16nm,做了所有的庫。
手動布局。一般APR方法是做到50%~70%,在比特微全定制里最好的記錄是能做到97%。因為在比特微的設(shè)計里,每個地方都是寸土尺金,不能讓版圖里有空檔。
時鐘。傳統(tǒng)設(shè)計方法是SKEW越小越好,但是在全定制里是反過來——所有的寄存器不能在同一個時鐘相位工作,需按照一定的規(guī)劃錯峰執(zhí)行,這樣在功耗和速度方面會有很大的好處。
門級網(wǎng)表。需要前后端耦合在一起設(shè)計,其難度較大。因為傳統(tǒng)的芯片設(shè)計是邏輯設(shè)計和物理設(shè)計分開做,各部門存在一定的隔閡。例如寫代碼的人不知道最終單元器件是什么樣,不知道自己的作品最終是什么樣。后端工程師也不知道這個功能是怎么一回事。而全定制設(shè)計在寫代碼的時候要知道你所寫的器件的面積、功耗、速度是不是唯一的,如果不是唯一的,要問一下有沒有更好的選擇。在設(shè)計一個器件的時候,需要考慮你需要跟誰連,線有多長,它的速度是多少,功耗是多少,會不會不平衡等問題。
本文來源于《電子產(chǎn)品世界》2018年第11期第17頁,歡迎您寫論文時引用,并注明出處。
評論