close



半導體集成電路的設計技術是門內容異常豐富、涵蓋特別廣泛的學科。但因半導體芯片的品類繁多,如大型數字SOC,電源管理模擬,混合信號ADC/DAC,MEMS,存儲,射頻模擬等,不同品類的芯片的設計技術之間也有着天然的鴻溝。

對投資人來說,在調研半導體集成電路設計公司時,若暫時沒有芯片產品去驗證其技術能力,則需通過訪談等手段來評估團隊的設計能力,早期項目尤甚。因此,在不同品類半導體芯片的設計技術中,哪些需要被着重關注?這對投資人來說是相當重要的。

01

數字集成電路設計

CPU、GPU、TPU、DPU、AI、MCU、DSP、AP等都是偏重於數字邏輯的芯片,另外各種SOC基本都可以劃到數字集成電路的範疇中。雖然這些數字芯片都或多或少有模擬電路的部分,如各種物理接口(DDR、PCIE)的PHY,再如產生時鐘的PLL、對外交互的IO接口等等,但大部分都是以IP的形式進入整個芯片的設計流程,因此對於大多數設計公司來說主要人力的分配還是集中在數字邏輯部分。

02

數字集成電路設計的流程

數字集成電路不論規模大小,大致流程都是:規格定義->系統設計->前端設計->後端實現->製版投片,當然在前端設計和後端實現中又能夠細分出十餘種工序流程。在目前集成電路設計產業化自動化的環境中,數字集成電路特別是大規模SOC的設計是一項比較模式化規範化的工作。

數字集成電路從RTL到具體的製造都有EDA工具和晶圓廠封測廠來保駕護航。得益於EDA工具的強大以及晶圓廠封測廠對製造的包攬,芯片設計公司只要有功能正確的RTL代碼,然後使用各種仿真、綜合、時鐘樹、布局布線、規則檢查、版圖合併等EDA工具,加上第三方供應商提供的所需要的模擬IP,就可以生成版圖,而版圖交由晶圓廠後,晶圓廠將會保證製造出合規格的芯片,再經封測廠封裝測試,最終返回到設計公司手中。

03

數字集成電路設計的規格定義

縱觀整個業界,數字電路的邏輯設計人才是非常多的,普遍各大理工院校都有數字電路的課程,看似寫軟件代碼的RTL編寫(事實是RTL要寫得好必須有深厚的硬件思維)的技術掌握也相對較易。也就是說,數字芯片的前端設計所需要的人力資源是比較容易獲取的。而另一方面,數字芯片的後端設計涉及的專業性相對強一些,而且中小規模的公司養一個後端團隊相對來說性價比不高。但業界中眾多的設計服務公司可以替設計公司完成部分甚至絕大部分的工作,這些工作主要是後端方面的,但也可以覆蓋到前端階段,視設計服務公司的能力而定。

這麼看來,似乎就算整個設計團隊只有一個人,只要能夠定義出需要的芯片規格,有充足的資金去購買IP,請設計服務公司和投片(直接請設計服務公司用Turnkey模式也可以),就可以做出想要的數字芯片。實情也是這樣,對一些功能比較確定的大規模數字芯片,自身不投入人力完全用設計服務Turnkey模式來做是可以的,例如當年的礦機芯片。

但是麻煩就出在「只要能夠定義出需要的芯片規格」這句話上,對於數字集成電路,特別是規模龐大,功能齊全,性能強勁,單價高企的芯片來說,如何準確的定義出芯片的規格,而能夠在芯片返回上市銷售時獲得市場客戶的青睞,是相當關鍵且困難的事情。

數字集成電路的規格將會影響後續芯片設計實施過程的方方面面,例如接口功能的增減大概率會影響IP的採購;性能、功耗的高低會影響工藝的選擇、影響系統設計;邏輯功能的多少會影響芯片的規模,從而影響芯片成本、進度。用「觸一發而動全身」來形容大規模數字集成電路的規格修改實不為過。如果芯片的規格定義只是略微影響了研發進度、資金投入、芯片成本,而芯片面世後還能夠符合市場的需求,能夠大規模出貨,那已經是萬幸了。最擔心的是投入大量資金、花費大量時間投片返回的芯片已經不符合屆時的市場需求,就算功能性能跟規劃定義的完全一致,卻也無人問津。

綜合來說,進行芯片規格定義就是一項多方面折衷的決策過程,需要從芯片的功能、性能、功耗、成本,芯片開發的周期、投入、供應鏈等多方面進行trade off,力圖定義出能夠大規模銷售的芯片。尤其在近年半導體供應鏈的特殊情況下,對芯片設計公司定義芯片規格的能力又提出了更高的要求。就算是國產替代,芯片的規格定義若盲從國外龍頭的規格而不考慮公司和產業上下游的實際情況,也有可能會產生負面的影響。芯片規格定義的影響對於數字集成電路來說特別顯著,規模越大影響越大。

04

數字集成電路設計的系統設計

在進行具體RTL編寫之前的系統設計對於數字集成電路的設計來說也是相當關鍵的一個環節。目前各種中大規模的數字集成電路基本都會集成處理器核,無論是ARM的M系列/A系列,還是RISC-V,更或者是小眾的MIPS等,都可以在處理器核上運行規模不一的軟件。那麼對於芯片規格定義中約定的某種功能,是用軟件來實現還是用硬件來實現,或者是軟硬結合來實現,再深入到軟硬結合中哪些用軟件,哪些用硬件來實現,都是系統設計中需要解決的一個關鍵問題。

用芯片的硬件來實現,性能高,但是會加大芯片的成本,而且一旦流片,就無法更改(花錢花時間當然可以更改);用軟件在芯片的處理器上來實現,性能相對較低,但是不會增加實際的芯片成本,而且可以快速迭代修改。同樣,芯片規格中定義的功能的軟硬件劃分也是一個折衷的過程,找到最適合的才是最重要的。因為系統設計並沒有一個標準答案,要做得好就顯得非常困難。

即使軟硬件劃分方面的系統設計做得使各方滿意,落實到數字集成電路的硬件架構方面的系統設計也是經常讓人煩惱的事情。例如僅僅看總線的系統設計,選擇什麼總線,用NoC還是用AXI,總線分多少級,各級各自有多少個端口,哪些模塊可以放在同一個端口等等問題,都是很難下決心拍板的。

系統設計雖然只是寫寫文檔,畫畫框圖,但是會直接影響數字集成電路硬件的性能,規模,模塊布局等方方面面(這裡假設規格定義中約定的功能都是完整實現的),從而會引起後續IP選擇、時序收斂、布局布線等芯片實現中流程的延遲,再遠一點,還有可能會影響最終的封裝設計。總體來看,系統設計也是一個對數字集成電路成敗影響很大的關鍵因素。

05

數字集成電路設計的IP選擇

大規模數字集成電路的設計中或多或少都會採購第三方的IP來加速芯片的研發過程。一般來說,一些外圍的接口,如DDR、PCIE、USB;核心的處理單元,如CPU核,GPU核,音視頻codec;獨立的模擬電路,如ADC/DAC,PLL,efuse/OTP;總線,如AXI/APB,NoC等等,都有眾多供應商提供IP以供芯片設計公司使用。極端情況下,一款數字集成電路的硬件電路全部由外部採購的IP來組成也是沒有問題的。

上述列舉的IP中,核心處理單元IP、總線都是純數字電路的IP,供應商有提供原始的RTL代碼、加密的RTL代碼、網表甚至版圖等多種商業模式(總線提供版圖的較罕見)。而上述列舉的外圍接口和模擬電路則為模擬電路類的IP(接口中控制器是數字電路,PHY是模擬電路),模擬電路類的IP基本都以版圖的形式提供。

向第三方採購IP,然後用到自己設計的芯片中,等於將芯片的部分命運交由第三方來編寫,對於IP的功能性能,只能選擇相信供應商,一旦選好IP的供應商後,設計公司在這方面就再也沒有退路了。如果是純數字的IP,並且是以原始RTL代碼的模式交付的話,在芯片設計公司的研發過程中,還可以去驗證甚至去修改(需要有相應能力),而且純數字IP的一個特點是跟流片的工藝不綁定,其物理實現是結合到全芯片的數字部分中的。反之,模擬類的IP是跟流片工藝直接綁定的,這使得芯片設計公司在IP的選擇上又加大了難度。簡單的說,對於芯片設計公司,數字IP的可控性比模擬IP要強很多,因此模擬IP特別是高端模擬IP的選擇是非常關鍵的,如DDR這種核心接口IP,可以影響芯片的生死。

由於模擬IP與流片的工藝是綁定的,那麼在實際的IP供應情況上,同一款功能性能的IP在不同工藝上的產品是不一樣的IP產品,其供應商的數量、IP的價格、交付的周期、silicon proven的次數都是不一樣的。極端情況下,模擬IP的選擇會反過來影響工藝的選擇,而這種情況必然會影響芯片的研發進度。

總體來說,雖然研發數字集成電路的IP採購是常規的花錢買技術買進度的行為,具有普遍性,但是對於芯片設計公司來說,每一款IP的供應商選擇(尤其是模擬IP)也是對芯片成本、進度、性能的一次折衷考慮。

06

數字集成電路設計的功能驗證

個人認為另一個在數字集成電路的研發中需要關注的地方是數字邏輯的功能驗證(RTL function verification,本文的驗證特指這個流程)。眾所周知芯片的數字邏輯設計,就是用RTL來描述寄存器、邏輯門等時序邏輯/組合邏輯的行為。而編寫出來的RTL代碼是否能夠真實反映設計意圖,一直是令設計公司頭疼的問題。

理論上來說,用窮舉的方式,可以在驗證時把邏輯電路的各種工作場景統統列舉,自然就知道邏輯電路是否有功能缺陷了。但是在實際操作層面,窮舉這個方案是無法實現的。首先是仿真時間的問題,在真實世界中,芯片運行一秒鐘其內部電路的翻轉過程放到RTL階段的仿真(還不考慮更慢的後仿真)中來說,可能需要幾天到幾年的仿真時間(視數字芯片規模而定)。儘管近年各大EDA工具廠商提供了數種硬件仿真加速器,能夠大大加速RTL的驗證過程,但相比較真實的芯片運行,要模擬幾小時/幾天的芯片的真實運行也可能要仿真到天荒地老。

另外,真實的芯片運行環境是無法完全預測的,力圖窮舉邏輯電路的所有工作場景本身就是不可能的事情。數字集成電路的工作過程就是芯片內部各個門電路、寄存器的0/1電平的翻轉,當芯片的規模越來越大時,電路狀態的排列組合數量是以幾何級數的速率增長的,若要遍歷,也要到天荒地老。因此真正的驗證用例,是由對被驗證的數字邏輯的功能非常熟悉的專業人員來規劃設置的。

儘管設計公司再努力,數字集成電路在面向市場推出時,總有概率存在一些讓芯片產生問題的邏輯缺陷,而驗證工作的開展,就是盡最大努力去降低這個概率。總而言之,數字集成電路的邏輯功能驗證是直接影響芯片功能完備性的一個環節,而設計公司會在研發進度和缺陷風險中進行折衷。

小結

數字集成電路的設計製造的大部分流程都可以由EDA工具和晶圓廠封測廠保證,只要有充足的資金和時間。本文闡述的幾點是個人認為在數字集成電路設計領域中一些需要關注的地方,並不是說其他設計流程不重要,而是其他的設計流程大都是「所見即所得」,也就是說流程的目標是否達成是清晰可見的,對前後的其他設計流程影響也不是特別大。在與創始團隊交流技術時,本文也許能起一點幫助,後續將繼續探討模擬集成電路和其他一些集成電路的設計領域的關注點。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()