當前開源芯片仍存在“死結(jié)”。具體而言,芯片設(shè)計階段需要投入大量的人力、電子設(shè)計自動化(EDA)和IP成本,因此開發(fā)人員或企業(yè)不愿意將其設(shè)計的芯片與IP開源;這導(dǎo)致業(yè)界與社區(qū)無高質(zhì)量的開源芯片與IP可用,于是企業(yè)只能購買高價的IP;這進一步推高了開發(fā)代價,導(dǎo)致企業(yè)希望充分驗證設(shè)計來提高流片的成功率,這又需要投入更多的人力和時間進行驗證??如此循環(huán),最終形成了一個“死結(jié)”。
通過深入的調(diào)研并結(jié)合近年來的一些實踐經(jīng)驗,中科院計算所團隊分析了國內(nèi)外開源芯片生態(tài)發(fā)展現(xiàn)狀與趨勢,認為隨著開放指令集(如RISC-V)、硬件描述新語言(如Chisel)、硬件生成器敏捷開發(fā)模式、開源EDA工具、云計算等技術(shù)涌現(xiàn)與普及,多種技術(shù)之間相互組合并不斷產(chǎn)生新的“化學(xué)反應(yīng)”,促進開源芯片發(fā)展到了一個新的轉(zhuǎn)折點,因此開源芯片面臨的“死結(jié)”有望被打破。但是構(gòu)建完善的開源芯片生態(tài)是一個長期而艱巨的系統(tǒng)工程,正如今天開源軟件生態(tài)也是20余年積累而成。目前的開源芯片生態(tài)就如1990年代初的開源軟件生態(tài),全世界范圍都處于起步階段,尚無法構(gòu)成一個獨立(self-contained)生態(tài)——即完全采用開源模式,用開源EDA工具鏈開發(fā)開源IP,進而完成開源SoC芯片設(shè)計。
要實現(xiàn)開源芯片生態(tài)目標,我們認為需要在四個方面積極投入并取得突破:(1)開放指令集、開源IP與SoC設(shè)計;(2)開源EDA工具鏈;(3)低成本的芯片開發(fā)驗證平臺;(4)快速適配芯片的系統(tǒng)軟件。
1.開放指令集、開源IP與SoC設(shè)計:
“指令集→處理器核→SoC芯片”是芯片設(shè)計的三個階段,每個階段均存在三種模式:開放免費(open&free)、可授權(quán)(licensable)、封閉(closed)。
在2010年左右,加州大學(xué)伯克利分校(UC Berkeley)認識到只有基于開放的指令集,才能實現(xiàn)開源處理器核以及開源SoC芯片。因此他們推出了一套開放指令集RISC-V,允許全世界免費自由地使用RISC-V指令集規(guī)范設(shè)計各自的處理器。但值得一提的是指令集(SA)僅僅是規(guī)范標準,往往用一本書甚至幾張紙即可描述,需要根據(jù)規(guī)范編寫出相應(yīng)的源代碼,才是處理器核。因此僅有開放指令集還遠不足以構(gòu)建開源芯片生態(tài),還需要一系列開源的IP和SoC設(shè)計。
開源IP和SoC設(shè)計要成為主流需要解決兩個問題:一是解決P核的質(zhì)量控制難題。開源IP核并不是一種新的模式,事實上提供開源P核的OpenCores社區(qū)已經(jīng)存在了20年,到如今已經(jīng)擁有超過30萬會員。但是OpenCores存在的核心問題是絕大多數(shù)開源IP核未經(jīng)嚴格測試驗證,質(zhì)量不可靠。解決IP質(zhì)量控制問題可以從兩方面入手,首先是完善芯片敏捷開發(fā)流程,通過Chisel這樣的具有更高抽象的硬件描述語言,實現(xiàn)基于一套代碼同時生成用于測試的仿真模擬代碼以及用于流片的代碼,提高測試效率,快速定位錯誤,從而改善IP核質(zhì)量;其次實現(xiàn)IP核與工藝庫高效對接的流程,從而推進IP核達到可流片的成熟度,并通過建立快速流片認證與測試機制,為開源社區(qū)提供經(jīng)過流片驗證的IP核組合。通過這兩種方式積累出定數(shù)量的高質(zhì)量IP核,就可以形成支持90%重用的開源SoC框架。
二是可擴展的松耦合架構(gòu)支持社區(qū)協(xié)作開發(fā)。傳統(tǒng)處理器采用緊耦合架構(gòu),模塊之間的交互非常緊密,不利于開源社區(qū)多人協(xié)作開發(fā),也不以利于用戶的自定義擴展。傳統(tǒng)基于互連總線的可擴展方式具有較好的靈活性,但編程與訪存效率低下,需要軟件顯式地進行數(shù)據(jù)移動。基于RISC-V進行可擴展指令是一種更高效的機制,但仍需要深入研究。對比開源軟件生態(tài),大型開源軟件的多人協(xié)作開發(fā)模式已經(jīng)比較成熟,面向?qū)ο笏枷?、微?nèi)核思想等一系列新技術(shù)與理念使大型軟件開發(fā)可分解、可擴展、可組合,這些思想與理念值得處理器設(shè)計領(lǐng)域?qū)W習與借鑒。
2.開源EDA工具鏈:
開源EDA工具鏈涉及硬件開發(fā)語言與綜合、布局布線工具,類比于開源軟件生態(tài)中的編程語言與編譯器。如今工業(yè)界廣泛使用的硬件描述語言Verilog已經(jīng)是1980年代初的產(chǎn)物,一直沿用到今天。但相比于軟件領(lǐng)域,幾乎每十年都有更高效、更抽象的開發(fā)語言出現(xiàn),比如C、C++、Java、Python、Go、Rust等。近年來,硬件開發(fā)語言開始出現(xiàn)變革,Chisel、PyMTL等更高抽象的硬件開發(fā)新語言涌現(xiàn)出來。以Chisel為例,它基于函數(shù)式語言Scala,通過元編程、面向?qū)ο蟆⒑瘮?shù)式編程等諸多高級特性,極大地提升了開發(fā)效率。我們團隊前期研究工作也證明了Chisel比傳統(tǒng)Verilog在開發(fā)效率方法可提升一個數(shù)量級,且具有相當?shù)拈_發(fā)質(zhì)量。
近年來,在DARPA的支持和推動下,出現(xiàn)了越來越多的開源EDA項目。在芯片設(shè)計的前端(從RTL到網(wǎng)表)與后端(從網(wǎng)表到GDS版圖)均有一系列開源工具組件。同時也出現(xiàn)像QFlow、OpenRoad、Hammer等開源EDA框架。我們通過實驗驗證了現(xiàn)有開源EDA工具鏈已經(jīng)可以滿足小規(guī)模芯片開發(fā)—基于中芯國際180nm工藝庫,使用全開源EDA工具鏈可將一個32位的RISC-V開源核生成GDS版圖。但是,當前開源EDA工具鏈的挑戰(zhàn)是在先進工藝支持、穩(wěn)定性和可用性方面仍與商業(yè)版有很大差距。
未來,提升開源EDA工具鏈質(zhì)量可在四方面加強研究:一是與先進工藝庫有機結(jié)合,二是提高開源組件的算法效率,三是針對領(lǐng)域?qū)S眉铀倨髟O(shè)計定制開源EDA組件,四是更好地支持Chisel等更高級硬件描述語言。今年8月在CCF容錯大會上,北京大學(xué)、中科院計算所、清華大學(xué)等國內(nèi)十余所大學(xué)與研究機構(gòu)共同發(fā)起了OpenBelt倡議,將會在開源EDA方向積極投入,做出中國的貢獻。
3.低成本的芯片開發(fā)驗證平臺:
芯片開發(fā)過程中的模擬仿真與驗證環(huán)境是非常耗時耗錢的環(huán)節(jié),一些加速仿真平臺(如Cadence的Palladium平臺)甚至單臺價格就達上千萬元人民幣。是否有可能將模擬仿真與驗證的成本降低1~2個數(shù)量級?我們認為基于云租賃模式可降低這方面的門檻。而基于云平臺進行芯片開發(fā)、仿真與驗證平臺將是未來趨勢,尤其是針對中小企業(yè)用戶。
FPGA云平臺只是芯片設(shè)計過程中的一個環(huán)節(jié),要更大幅度地降低成本,還需進一步與公用云平臺結(jié)合,支持運行開源EDA工具鏈、下載與集成開源IP核的開源SoC芯片完整開發(fā)流程,實現(xiàn)構(gòu)建更完善的芯片開發(fā)/驗證/測試云平臺。國際一些大學(xué)與企業(yè)也在朝著這個方面努力:加州大學(xué)伯克利分?;?a href="http://www.socialnewsupdate.com/tags/亞馬遜/" target="_blank">亞馬遜F1 FPGA云平臺研制了FireSim平臺,目標是構(gòu)建使用FPGA加速的時鐘級精確的全系統(tǒng)硬件模擬平臺;SiFive公司正在研發(fā)的DesignShare平臺則希望在云平臺上提供芯片開發(fā)所需要的各種資源,包括IP庫、EDA工具鏈等;Astera Lab與Synopsys合作,實現(xiàn)了完全在云上進行設(shè)計與驗證的SoC。
4.系統(tǒng)軟件與開發(fā)環(huán)境:
上述三方面的目標是允許開發(fā)者重用90%的已有功能、只需專注10%的創(chuàng)新功能,從而數(shù)量級降低芯片開發(fā)成本與周期。而快速經(jīng)濟地定制領(lǐng)域?qū)S眯酒菓?yīng)對物聯(lián)網(wǎng)(IoT)面臨的“昆蟲綱”挑戰(zhàn)(碎片化問題)的有效途徑。但這對系統(tǒng)軟件與軟件開發(fā)環(huán)境如何能快速適配新芯片則是很大的挑戰(zhàn)。當一款新的芯片推出,軟件需在三個層次予以適配:第一層是操作系統(tǒng)與編譯器,針對新擴展的指令或者新加的傳感器等;第二層是功能軟件層,如Apache、MySQL等;第三層是面向用戶和程序員,需要為用戶提供易用的操作方式,也需要為程序員提供更好統(tǒng)一的API,就如移動領(lǐng)域安卓的作用。
-
云計算
+關(guān)注
關(guān)注
39文章
7976瀏覽量
140019 -
soc
+關(guān)注
關(guān)注
38文章
4387瀏覽量
222701 -
eda
+關(guān)注
關(guān)注
71文章
2923瀏覽量
177922
發(fā)布評論請先 登錄
開放原子開源生態(tài)大會OpenHarmony生態(tài)主題演講報名開啟
學(xué)習hadoop需要什么基礎(chǔ)
學(xué)hadoop需要什么基礎(chǔ)
如何構(gòu)建基于LEON開源軟核的SoC平臺?
OpenHarmony技術(shù)日舉辦,華秋電子助力開源生態(tài)繁榮
華秋電子成為開放原子開源基金會OpenDACS捐贈人,共建 OpenDACS開源生態(tài)
華秋電子成為開放原子開源基金會openDACS捐贈人,共建openDACS開源生態(tài)
共建 openDACS開源生態(tài) 華秋電子成為開放原子開源基金會openDACS捐贈人
大禹智芯宣布加入歐拉開源社區(qū),助力構(gòu)建DPU行業(yè)發(fā)展新生態(tài)
開發(fā)CTI系統(tǒng)需要什么知識?
物聯(lián)網(wǎng)需要什么技術(shù)之上才能完全實現(xiàn)?
元宇宙需要什么技術(shù)
AI智能眼鏡都需要什么芯片

評論