伴隨著AI、5G通信、云計算等專用計算領域的發(fā)展,面向專用計算領域的計算機系統(tǒng)結構也進入了一個新的黃金時代。描述這個黃金時代的兩個重要畫筆是開源硬件(芯片)和敏捷開發(fā):開源能夠降低芯片設計的門檻,進而敏捷設計縮短開發(fā)周期。
開源指令集RISC-V引發(fā)了開源硬件的熱潮。但是,芯片的設計和生產過程比軟件長,需要更多的工具和過程。EDA也開始轉向依靠開源社區(qū)的模式來解決復雜的設計問題,降低開發(fā)成本。然而,國內EDA技術一直是一個弱點。當?shù)谽DA企業(yè)還沒有發(fā)展壯大。如何應對開源EDA的新技術形式和生態(tài)模式?這些問題在中國計算機學會青年精英大會(YEF2021)技術論壇【芯片智能設計-敏捷設計與開源EDA之路】上進行了激烈的討論。
開源芯片成為新的發(fā)展趨向。
說到開源芯片,RISC-V是開源的代表。去年,RISC-V國際基金會將總部搬到瑞士。目前,它有1000多名成員,約有200家企業(yè)。中國在其中發(fā)揮著重要作用,中國企業(yè)占20%以上,19名理事會成員中有9名來自中國。
隨著開放指令集RISC-V逐漸受到業(yè)界的追捧,開源芯片的概念逐漸進入人們的視野,受到全世界的關注和投資。早在2019年國際計算機系統(tǒng)結構旗艦會議ISCA的前景研討會上,包括圖靈獎得主DavidPatterson教授在內的許多美國工程院院士,以及MIT、UCBerkeley、UCSD、Stanford、Google、Nvidia、DARPA等頂尖大學、企業(yè)和政府機構的專家都聚焦于面向下一代計算的敏捷開放硬件的前沿熱點,包括指令集、EDA工具鏈開源、設計流程、高層次綜合、形式化驗證。
看國內,十四五規(guī)劃也開始布局開源芯片。十四五規(guī)劃第五章第十五章第一節(jié)提到,支持數(shù)字技術開源社區(qū)等創(chuàng)新聯(lián)合體的發(fā)展,完善開源知識產權和法律體系,鼓勵企業(yè)開放軟件源代碼、硬件設計和應用服務。
開源芯片有哪些創(chuàng)新機會?中國科學院計算技術研究所副所長包在技術論壇上說:RISC-V是指令集開放,其實是指令集手冊的開放。比如英特爾CPU的指令集手冊有5000多頁,ARMCPU的指令集手冊有2000多頁,而RISC-V的指令集手冊只有200多頁。如果把指令集變成真正的結構,這個時候會產生很多設計文檔,那么文檔可以公開;根據(jù)設計文檔變成源代碼,源代碼也可以公開;EDA工具鏈可以把開源代碼變成芯片地圖,所以EDA設計工具也可以開源。
他總結說,開源芯片主要包括三個層次:(1)指令集(2)處理器微架構設計/實現(xiàn)(3)設計流程/工具。
除了指令集,芯片設計指令集,芯片設計工具也很重要。EDA工具是開源芯片設計的基石。如今,各種開源EDA工具基本上涵蓋了芯片設計中的模擬、邏輯綜合、布局布線、物理實現(xiàn)和驗證功能。
全球EDA市場已被Cadence、Synopsys、Mentor(2021年1月更名為SiemensEDA,即西門子EDA)壟斷。它們規(guī)模大,產品線完整,能提供全過程的完整解決方案。相反,國內EDA工具在中國的市場份額不到5%,全球市場份額僅為0.2%。而國內EDA公司規(guī)模小,產品單一,多為點工具,只能提供局部解決方案。單一的EDA工具很難滿足設計師對IC設計的全過程需求,不同工具之間的切換為數(shù)據(jù)的完整性增加了風險。因此,市場對開源平臺的呼聲日益增加。
開源EDA問題繁多。
鵬城實驗室和中國科學院計算所的解壁偉認為,開源EDA是支持開放芯片生態(tài)的重要保證。許多成功經(jīng)驗表明,開源開放是建設繁榮技術生態(tài)和工業(yè)生態(tài)的必要基礎。例如Linux操作系統(tǒng)支持整個開源生態(tài)系統(tǒng);再比如Android移動操作系統(tǒng),雖然現(xiàn)在已經(jīng)關閉,但是從開源開始,統(tǒng)一了除iOS之外的整個移動互聯(lián)網(wǎng)生態(tài);在人工智能領域,Caffe、TensorFlow、Pytorch、Paddle可以說是整個AI技術生態(tài)系統(tǒng)的基石。
開源EDA工具可以降低芯片設計的門檻,如人力、IP、EDA等。也可以為EDA領域的基礎科研和人才培養(yǎng)提供良好的思路,無論是企業(yè)、大學、學術研究機構、芯片還是EDA方向的個人愛好者。如果開源EDA能聚集各種力量,將有助于中國加快趕上國際先進水平。
然而,中國EDA軟件的基礎相對薄弱,在開源領域幾乎空白。開源EDA仍面臨許多挑戰(zhàn):用戶少、貢獻者少、框架結構不清晰;論壇還討論了一些解決方案。 具體如下:
(1)用戶少:開源EDA工具質量與商業(yè)工具相比差距較大,用戶數(shù)量非常有限。解決方案是提高工具質量,強調生產環(huán)境下的項目檢驗,即開源EDA工具不僅要停留在學術論文和軟件代碼上,還要與其他工具匯聚成工具鏈,支持完整的芯片流片驗證,產生有效的用戶反饋。比如美國的Magic經(jīng)過了幾次流片驗證,論文中有實際的芯片測試數(shù)據(jù)。
(2)貢獻者少:EDA領域相對較小,其開源社區(qū)更是人丁單薄,Yosys、abc、magic、OpenROAD等開源工具的貢獻者多為10余人。由于EDA學科的特點,開源EDA貢獻者需要同時具備CS、Math、EE、MicroE的知識,技術門檻高。每一個開源EDA工具的開發(fā)都是不開放的,基本上是一個學校,一個研究機構,一個公司的內部團隊,外部參與者很少,也很難參與。解決辦法是充分拆解、抽象、描述EDA技術問題,分類轉化為數(shù)學、算法、高性能等專業(yè)領域可以理解的語言表達,動員多學科的社區(qū)力量。
(3)框架結構不清晰:代碼不統(tǒng)一、復用率低是開源軟件的通病,但開源EDA工具與算法綁定較強,問題更加突出。設計新算法通常需要大量重寫代碼,失去了開源的意義。有兩種解決方案。一是模塊化設計,從基礎框架設計出發(fā),再深入算法層,抽象共享操作和數(shù)據(jù)格式,從代碼中探索迭代重構規(guī)律,形成精簡、高效、模塊化的基礎框架。該模塊化設計還便于利用分布式并行計算結構加快EDA設計過程。二是規(guī)范抽象,利用MulTI-levelintermediateresentaTIon(MLIR)等優(yōu)秀的編譯設計理念,對整個設計過程(特別是前端設計)進行多層次的抽象劃分,方便各領域專家專注于各自的抽象層次,同時通過多層次的編譯打開EDA工具鏈,完成敏捷方便的全過程驗證。這樣,即使是一個點工具也可以通過標準的轉換格式靈活地連接到開源EDA工具鏈中,完全驗證其開發(fā)工具的性能和質量。目前,北美工業(yè)界和學術界正在形成這種趨勢。
對于開源EDA項目,無論從低工藝(110nm)到高工藝(55nm,40nm甚至28nm)。從高校教學級應用到企業(yè)產品級應用,從小型ASIC芯片到更大型SoC項目,都要堅持研究與應用相結合的策略,以實用為牽引,以研究與研究為導向。從工具鏈、點工具、基準測試集、示范應用、工業(yè)級開源工藝庫五個方面逐一突破。
行業(yè)研究進展
值得注意的是,在ASPLOS2021大會上,剛剛從GoogleBrain跳槽到明星RISC-V公司SiFive的ChrisLattner博士(LLVM項目的主要發(fā)起人和作者之一,Clang編譯器的作者)做了TheGoldenAgeofcompilerdesignininaneraofHW/SWCo-design的演講,提出了基于MLIR編譯技術打造的全新統(tǒng)一的EDA(ElectronictesignAutomation)框架,為EDA設計工具鏈提供了完整、靈活的基礎設施。CIRCT項目與MLIR相同,在硬件設計和軟件編譯方面容易形成生態(tài)一致性。
在開源EDA軟件的道路上,國內EDA學術和行業(yè)都在努力尋找合適的位置為開源EDA做出貢獻。
在開源芯片領域,中國科學院計算所于2019年啟動了RISC-V處理器芯片和RISC-V原生操作系統(tǒng),并在國內28nm技術上構建了具有性價比優(yōu)勢的開源芯片技術體系。此外,他們還在探索開源EDA設計的開源芯片,基于現(xiàn)有的開源工具,構建了一套基于Python的RTL到GDSII的設計流程;去年8月,國立科技大學五名本科生用開源EDA工具設計了兩年的果殼-1芯片,實現(xiàn)了流片。
中國科學院還開發(fā)了芯片敏捷設計云平臺AgileServe,該平臺集成了各種開源元素,可以支持用戶快速定制處理器芯片和軟件開發(fā),降低芯片設計門檻。對于學生來說,他們可以隨時隨地進行芯片設計;對于教師來說,他們可以在線指導學生。
南京集成電路設計服務產業(yè)創(chuàng)新中心有限公司(以下簡稱EDA創(chuàng)新中心)執(zhí)行副總經(jīng)理陳剛介紹了國內EDA通用底座(openEDI)的開源方式。考慮到國內EDA點工具的獨立性,建設國內生態(tài)的通用底座,有望將點工具連接起來。EDA通用底座的研發(fā)目標是支持所有國產EDA工具,聚合成套EDA工具鏈,成為國內生態(tài)的通用底座。下面是EDA通用底座架構。底部是數(shù)據(jù)層,承載著所有EDA在內存和磁盤上的數(shù)據(jù)庫和數(shù)據(jù)模型,包括各種解析器模塊、用戶界面模塊等。上層是通用算法層和計算框架。
北京大學的林亦波在會上介紹了著名的深度學習輔助布局布局優(yōu)化項目。他講述了利用深度學習改進傳統(tǒng)布局布局算法的故事。在這個過程中,必須使用開源布局工具,否則很難獲得深度學習樣本。未來,他們將繼續(xù)改進算法,提高穩(wěn)定性和泛化能力。有望發(fā)布像ImageNet這樣開放的EDA數(shù)據(jù)集,以吸引學術界和產業(yè)界的共同競爭和發(fā)展。
東南大學國家專用集成電路系統(tǒng)工程技術研究中心的嚴浩講述了寬電壓近閾值設計方法的研究和開源EDA的進展。他介紹說,EDA工具的技術挑戰(zhàn)是不斷演進的技術和蝕刻尺寸帶來的偏差建模和優(yōu)化算法的開發(fā)。他指出,在做研究的時候,最大的挑戰(zhàn)是需要花費大量的精力來復制別人的代碼,所以他們也與NiiCEDA等國內EDA企業(yè)合作,積極開發(fā)開源時序分析工具。
寧波大學儲著飛分享了多邏輯自動綜合工具的研究進展。他說,邏輯綜合是將所有設計數(shù)字電路的RTL級描述轉化為指定工藝庫中單元電路的連接。邏輯綜合主要包括翻譯、優(yōu)化和工藝映射三個階段。他指出,不同邏輯完整集開發(fā)的綜合方法適用場景不同?,F(xiàn)有的EDA工具都是基于傳統(tǒng)的布爾邏輯開發(fā)的,新的計算符可以帶來更多的機會,如Reed-Muller、TB和RM雙邏輯等。在EDA開源方面,他指出了邏輯綜合工具的發(fā)展趨向:一是AIforEDA以AI的方式推斷了邏輯綜合優(yōu)化轉換的順序,讓沒有任何經(jīng)驗的工程師得到優(yōu)化腳本;第二,EDAforAI以搜索表的形式推動邏輯操作,達到與神經(jīng)網(wǎng)絡訓練權重相同的目的;第三,OpTImalSolution給定了一個數(shù)字電路。現(xiàn)有的方法高度依賴SAT解決方案,獲得最小節(jié)點數(shù)、最小邏輯深度等最佳解決方案,但SAT解決方案本身就是一種啟發(fā)算法,可以通過數(shù)字電路模擬幫助SAT進行更高效的搜索;第四,TechnologyEnabler,開發(fā)新的邏輯抽象方法,幫助一些二維材料等新技術的評估和發(fā)展。不管是訓練集,搜索優(yōu)化和新模型都會從開源生態(tài)中獲益。
EDA生態(tài)在技術標準、安全性和流片風險方面存在風險。IEEE標準運行規(guī)范成熟,相對安全。但是許多事實標準實際上是三大EDA公司的私有標準。即使開源社區(qū)有免費的私有標準,也有與標準相關的隱藏專利風險。需要制定國內標準,掌握關鍵技術,防范專利風險。
開源EDA軟件的可信度和安全性是一把雙刃劍。一方面,開源EDA工具中可能會有惡意代碼泄露用戶核心設計數(shù)據(jù),也可能會在設計中植入惡意硬件木馬;另一方面,EDA工具代碼是開源的,貢獻者基本可以追溯到源頭,相關責任也很容易追究,所有在陽光下的風險都是可控的。