中國EDA的出路探討_風聞
半导体行业观察-半导体行业观察官方账号-专注观察全球半导体最新资讯、技术前沿、发展趋势。2021-05-24 15:01
來源:內容來自半導體行業觀察(ID:icbank)原創,作者:李飛。
隨着中國半導體行業的發展,EDA已經越來越成為行業發展的焦點。在大規模集成電路的設計中,EDA是一個必不可少的工具。整個EDA行業根據針對的設計環節不同,相應也有不同的工具,我們認為中國EDA行業雖然起步較晚,但是在一些環節仍然存在抓住設計範式改變的機會進入世界前沿的機會;而在其他環節中,則需要踏踏實實一步一步追趕,從而爭取在未來幾年內慢慢縮短和世界一流水準的差距,並實現獨立自主。
集成電路EDA環節簡述
在一個典型的集成電路設計流程中,通常會包括以下環節:
**1、前端設計和驗證:**前端設計是指電路工程師把電路設計實體化的過程,例如對於數字電路設計來説通常就是使用Verilog等RTL語言來描述設計,而對於模擬電路來説就是電路圖設計。而前端驗證則是指通過邏輯或者電路仿真來驗證設計是否符合預期。前端設計和驗證往往是最花費集成電路設計工程師時間和精力的環節,其中的EDA工具將會很大程度決定整個前端設計驗證的效率。目前在前端驗證環節常用的工具包括Synospys的VCS,Verdi,Cadence的Jasper,Virtuoso等。
**2、綜合和後端驗證:**在前端設計完成之後,需要把設計進一步轉化(綜合)成版圖(GDS)。對於數字電路來説,需要把使用RTL語言描述的邏輯設計綜合成為相應的標準單元庫網表,並進一步把該網表去做佈局佈線形成GDS。這兩步非常關鍵,也往往是數字集成電路EDA的核心競爭力。而對於模擬電路來説,由於設計規模較小而且自由度較高,通常是由工程師手動完成電路圖轉化到版圖的過程。在得到版圖之後,後端驗證則是無論數字還是模擬設計都需要的,包括DRC,LVS,形式驗證,可靠性驗證等。在綜合和後端驗證領域,目前主流的工具包括Synopsys的Design Compiler,IC Compiler,Cadence的Innovus,Mentor Graphics的Calibre等。
以上是目前集成電路EDA環節和主流工具的現狀。同時,隨着半導體行業的不斷革新,我們看到了一些EDA流程上改變的可能,而這也有可能成為中國EDA行業的機會。
前端設計革新:中國EDA的機會
回顧過去五年的全球集成電路的發展並展望未來,我們總結出了幾條顯著的發展動向:
**1、設計異構化:**隨着人工智能等對於計算效率和能效比有高要求的應用成為半導體行業的主流推動引擎,異構化的設計也在成為主流。與往常的“設計一個高性能通用平台並使用在各種應用中”不同,由於不同的應用無論對於算力、能效比、算法等都有顯著的不同,因此難以使用同一平台去適應,而必須針對不同的應用去設計相應的電路。
**2、芯片與算法系統融合:**在人工智能等應用中,通常是將電路與上層系統(包括算法)做協同設計和優化。
**3、敏捷化設計:**在過去幾年中,集成電路的公司不再是集中在幾家老面孔,而是由越來越多的公司跨界進入芯片領域,其中包括很多互聯網公司,如谷歌、亞馬遜、阿里巴巴、百度等。這些跨界的公司往往會希望建立一個較小的芯片部門,但同時又希望能在較短的時間內完成設計。
以上幾點相融合,其對於EDA的要求也就呼之欲出:即需要EDA能對不同的應用,實現算法和芯片設計之間的打通,並且能加速設計速度。
然而,傳統基於(System)Verilog等RTL語言的前端設計並不能滿足這些需求。其主要的問題在於RTL語言誕生之初着眼於邏輯電路設計,並沒有考慮到系統算法級設計,因此難以與算法打通;而在另一方面,RTL語言的密度也較低,描述一個簡單的設計也往往要用幾百行代碼(與之相對應的是,一個具有數億參數量的複雜神經網絡模型在Python中常常也僅僅需要一百行左右的代碼來描述),這也增加了前端設計的時間。
目前,已經有不少相關的項目旨在解決這些問題,其中不少還得到了業界的使用——有趣的是,這些項目背後的團隊往往並不是來自於傳統EDA公司,而大部分是來自於大學等科研機構和開源社區。例如,以Chisel, Magma為代表的新一代HDL語言依託Scala,Python等高級語言,從而能大大降低描述邏輯電路所需要的代碼量;另外,這些高級語言的靈活性較強,因此在修改設計需要修改時,往往在原本的設計上只需要做較小的改動即可,這也大大降低了設計迭代週期。目前,Chisel已經得到了谷歌等公司芯片部門大規模使用並幫助谷歌在較短的週期內完成設計交付,可以説已經獲得了業界的驗證。
Chisel,Magma等HDL語言着眼於通用性,往往能覆蓋所有幾乎Verilog的使用場景,其主要訴求是增加代碼密度以降低設計週期。除此之外,另外一個值得關注的是着眼於打通算法系統設計和電路的專用化語言(Domain-specific language,DSL)。這些DSL往往着重於覆蓋某些特定的設計類型,並不追求通用性;而在其覆蓋的類型中,DSL可以實現高效的設計描述,這樣一方面可以大大降低代碼量,另一方面則可以實現算法和電路的打通,因為算法描述可以通過DSL高效地映射到電路中,並且通過調整不同的設計參數去優化設計。這方面的例子如源於斯坦福大學的Spatial Language,該語言主要針對AI芯片等場景中常見的空間計算陣列,能大大加快設計速度。
我們認為,前端設計領域的EDA工具正在產生深刻的變化,至少在一些新興領域(如AI芯片設計)中所需要的EDA工具和流程與現有的方案有很大的不同。在這個領域,中國和外國的同行事實上處於同一起跑線,因此中國的EDA行業有可能通過抓住這個機會來實現技術山的趕超。在這方面,希望中國半導體行業,尤其是EDA行業,能保持開放心態,積極支持各類相關的學術研究和開源項目,因為在這個領域很多項目從大學研究/開源項目到被大公司真正採用往往並不遠(例如Chisel被谷歌和RISC-V業界廣泛使用),同時在一些項目得到行業認可後,中國的EDA公司應該積極考慮如何更好地支持這些新語言(例如,如何在仿真驗證debug環節更好地支持以這些新語言描述的設計)。另一方面,中國的半導體生態中從事AI芯片等相關適合使用DSL語言的芯片初創公司很多,這些新的初創公司生態也將很好地支持相關的下一代前端EDA工具在中國落地。
綜合和後端:踏踏實實力爭上游
與前端EDA存在抓住設計變革而實現趕超不同,在綜合和後端領域,目前還看不到有取巧的辦法來實現世界先進水平。事實上,在綜合和後端領域,大多數算法都是已知的,但是如何做到最優確實難度最大的地方。目前領先的公司(如Synopsys,Cadence等)都是在經過了數十年積累,其技術是在大量的項目中積累大量的工業實踐經驗堆起來的(而不是靠某個黑科技一蹴而就)。從技術上來説,對於中國EDA公司來説,想要實現趕超也是需要踏踏實實的技術積累。中國的EDA行業在後端的現狀是深度和廣度都不夠:深度是指在一些核心應用(例如邏輯綜合,佈局佈線)中的結果相比主流工具在PPA等指標中是否接近,是否能兼容最新工藝中器件新特性對於工具的新要求等;而廣度則是指是否能覆蓋後端和驗證中的各個環節,包括邏輯/版圖綜合、形式化驗證、時序驗證、物理驗證、寄生參數提取等等。
實現技術積累的路徑通常是通過大量實踐。中國的半導體行業對於EDA的需求非常旺盛,但是對於中國EDA公司來説,最難的是如何實現冷啓動,即如何讓客户開始使用自己的工具(包括芯片設計公司開始使用國產EDA工具做設計,同時代工廠為這些國產EDA工具提供支持),從而開始積累案例經驗。在這一點上,政府有機會能通過適當引導來解決這一問題:除了以資本方式支持之外,還可以構建中國代工廠-EDA-芯片設計公司的聯盟,以及鼓勵優先使用和支持中國EDA工具,以此來改進中國EDA公司積累技術的速度,從而能完成自主化。
我們認為,如果國內各界對於EDA行業的支持不減的前提下,中國的後端EDA領域有望在未來五年內實現較為快速的技術積累。在深度和廣度的取捨上,一個可取的策略是首先實現在一些成熟工藝上的廣度覆蓋,這樣至少可以保證大量無需使用最先進公司的產品可以實現自主化;與此同時,在深度方向在某些細分領域(例如thermal sign-off)中做到接近世界領先水平。