由於市場對晶片功能的整合度要求持續提升,加上半導體製程進步,單一晶片上具有數千萬,甚至上億個閘極的SoC,現在已經比比皆是。但對IC設計者而言,不斷膨脹的晶片規模,已經使開發團隊必須用更長的時間來完成用FPGA建構晶片原型的作業。有鑑於此,益華電腦(Cadence)近日發表新一代原型建構系統Protium,可協助IC設計團隊用更快速度建構出晶片原型,進而加快產品開發時程。
Cadence資深產品行銷經理Zaid Rodriguez表示,在IC設計的作業流程中,有兩個環節會涉及到FPGA,一個是設計模擬(Emulation),另一個則是原型建構(Prototyping)。雖然這兩個步驟都會用到FPGA,但使用的目的不同。
設計模擬是設計驗證的一個階段,IC設計工程師將晶片設計的原始碼移植到FPGA上,主要目的是為了進行除錯(Debug),晶片的運作效能則不是重點。因此,對模擬工具來說,重點在於提供完善的移植跟除錯工具,讓工程師可以快速地把RTL碼轉換成可以移植到FPGA上的格式,展開硬體除錯作業。
至於原型建構,主要目的則是為了爭取時效,讓韌體/軟體開發工程師可以在還沒有拿到ASIC、SoC的工程樣本時,就開始為晶片撰寫軟體。是故,原型建構工具的使用者,除了同樣需要快速將設計移植到FPGA上之外,對晶片的效能要求會比模擬來得高很多,還需有完整的軟體除錯工具,以及基本的硬體除錯。理論上,當IC設計進行到原型建構這個階段時,硬體本身應該已經沒有太多Bug,但實務上還是難免會遇到有漏網之魚的情況。
也因為模擬跟原型建構的需求不同,雖然兩者都是以FPGA為基礎,但所使用的工具平台是不同的。以Cadence為例,針對設計模擬需求,該公司提供的是Palladium平台,至於原型建構工具則是Protium。
但由於IC設計的規模越來越大,因此工程團隊要將IC設計的原始碼移植到FPGA上,所遇到的挑戰變得比以往更為艱鉅。首先,設計ASIC或SoC所使用的硬體描述語言,跟FPGA的硬體描述語言是不同的,因此工程團隊要將IC設計的原始碼移植到FPGA上,得花更多時間進行編譯。其次,雖然拜半導體製程技術進步之賜,FPGA的容量也變得越來越大,但遇到非常複雜的SoC設計時,常常還是得把一顆SoC切割(Partitioning)成多個部分,分別在多顆FPGA上執行。
設計分割是非常耗時而且吃重的工作,因此Protium提供了自動化切割功能,可以顯著壓縮設計切割的時間。但Rodriguez也指出,如果從效能面來考慮,工程師手動切割所獲得的成果,還是會比用自動化功能來得好,因此Protium提供的切割工具是很靈活的,工程師可以自行指定一部分區塊讓自動化工具幫忙切割,其他部分則仍維持手動切割,以便在工作時間跟產出品質之間取得更好的平衡。
利用FPGA建構晶片原型所耗費的時間越長,原型建構的存在價值就越低,因為原型建構的主要目的就是爭取時間,讓軟體團隊可以在還沒拿到晶片硬體的時候,就開始著手撰寫程式。如果原型建構就要耗時數週,甚至一兩個月,軟體團隊很可能工作才進行到一半,晶片的工程樣本就已經從晶圓廠送回來了。
這就是Cadence為何要發展Protium平台的原因。傳統的原型建構方法已無法滿足IC設計團隊對工作時程的需求,但為了盡可能加快產品上市的腳步,原型建構還是有存在的必要性。因此,解決方法就是加快原型建構的速度。藉由Protium跟Palladium聯手,IC設計團隊可以在一兩天內就完成原型建構,而不是好幾個禮拜,甚至好幾個月。
Rodriguez相信,傳統的原型建構方法,例如IC設計團隊自己從無到有打造專屬於自己的原型建構軟硬體,會越來越不可行。畢竟,當代SoC跟FPGA都已經變得太複雜了,DIY只能適用在某些比較簡單的設計專案,大型、高複雜度的設計專案,還是需要靠專業工具輔助。