C語言平臺 縮短SoC前期設(shè)計時間
在設(shè)計上能減少結(jié)構(gòu)探索時間的C語言平臺,在結(jié)構(gòu)上如何以新思考突破?
以往半導(dǎo)體業(yè)者大多使用FPGA(Field Programmable Gate Array)製作樣品(Prototype),接著鎖定幾項晶片重要規(guī)格,依此找出最適合該晶片的結(jié)構(gòu),這種方式最大缺點是作業(yè)時間非常冗長。然而,C語言平臺的設(shè)計方式則是,利用軟體模擬分析檢討晶片結(jié)構(gòu),以往FPGA平臺的樣品,大約需要半年左右的結(jié)構(gòu)探索時間,如果採用C語言平臺的設(shè)計方式,只需要花費約2周~1個月的時間。
目前開發(fā)最快的是日本沖電氣,以ARM為基礎(chǔ)的整合平臺及設(shè)計環(huán)境可應(yīng)用在晶圓專工的先進技術(shù),根據(jù)沖電氣的規(guī)劃,在內(nèi)部適用C語言平臺設(shè)計技術(shù)的SoC,是使用了三種架構(gòu),分別是:「μPLAT」+軟體、「μPLAT」+專用加速器度(accelerator)+軟體、硬體連線(hard wired)電路。
在「μPLAT」+軟體的部份,傳統(tǒng)FPGA也有支援此功能,因此IC設(shè)計公司可以利用IP來源業(yè)者的Process Core,再 以μPLAT為基礎(chǔ)開發(fā)SoC,例如目前ARM已經(jīng)將Process Core,封裝成軟體提供客戶使用。而關(guān)于「μPLAT」+專用加速器度(accelerator)+軟體、硬體連線(hard wired)電路結(jié)構(gòu)開發(fā)的晶片的部份,就是利用C語言平臺設(shè)計方式使開發(fā)更效率化,此外,「μPLAT」+專用加速器度(accelerator)+軟體中,專用加速器度還分成兩種執(zhí)行方式,分別是:將C語言資料轉(zhuǎn)換成System C,再將System C輸入至動作合成工具內(nèi),最后嵌入硬體連線(hard wired)電路,以及,利用合成使Process Core特定化,接著在該Process Core進行C語言演算作業(yè)。采用第一種方式的合成動作方式,可以使晶片發(fā)揮低耗功化效果,第二種的特定化Process Core合成方式,以資源共用的觀點而言確實相當(dāng)有效,不過耗功上經(jīng)常不如第一種的合成動作方式。
圖說:半導(dǎo)體業(yè)者大多使用FPGA制作樣品,依此找出最適合該晶片的結(jié)構(gòu),這種方式最大缺點是作業(yè)時間非常冗長。(School of Computer Science)
C語言平臺擺脫傳統(tǒng)刻板觀念
關(guān)于C語言平臺的SoC設(shè)計方式的流程是,首先需要從客戶端接收要求,以SoC處理的「C語言/C++描述的演算」與該SoC使用方法的「use case」,并收取「演算(Algorithm)測試環(huán)境」然后再開始進行SoC開發(fā)作業(yè)。此時必需先檢查收取的原始碼(Source Code),確認是否適合動作合成或是組合軟體,不適合的場合,則檢討原始碼的修正進行架構(gòu)探討。由于該工程被賦予「高精度評估」的角色,因此已經(jīng)擺脫傳統(tǒng)「設(shè)計」的刻板印象,此時短期可量產(chǎn)的優(yōu)先度比品質(zhì)更高,例如1個月內(nèi)完成探索的設(shè)計,只進行代表性項目的驗證,如此就能夠縮短探索工程的驗證時間,至于驗證品質(zhì)則在探索之后的后段工程透過設(shè)計方式維持。
結(jié)構(gòu)探索工程又分成:結(jié)構(gòu)草案的檢討,以及結(jié)構(gòu)初期模型的制作與檢驗。結(jié)構(gòu)草案的檢討是根據(jù)原始碼的分析結(jié)果,決定使用「動作合成的硬體連接」,或是專用處理器。功能不太複雜的晶片,要求低制作成本與低耗功時,大多選擇動作合成方式;要求相似功能進行復(fù)合性處理時,通常會選擇專用處理器方式。決定基本方針后立即檢討包括,演算位元的寬度、并聯(lián)處理電路的結(jié)構(gòu)、動作頻率、與軟體的搭配等等問題,接著制作晶片的結(jié)構(gòu)模型,再利用虛擬樣品模擬器(virtual prototyping simulator)驗證,模擬器除了晶片功能之外,還能夠分析包含晶片外部的資料轉(zhuǎn)送等系統(tǒng)整體與晶片的所有效能。
采用C語言平臺的設(shè)計方式,只需要花費2周~1個月的時間,就可以完成模擬分析檢討晶片的結(jié)構(gòu)。(National Center for Ecological Analysis and Synthesis)
目前在進行合成所面臨的問題
選擇動作合成方式時會面臨下列問題,分別是:演算轉(zhuǎn)換至System C化的工程數(shù)減少、轉(zhuǎn)換后以System C化為對象的高速化與高精度化等問題,因此System C化時演算部位必需以Untimed模型封裝,介面的部位則以定時模型封裝,利用上述溷合封裝追加埠,加上變數(shù)的有效位元長度設(shè)定等最低限度追加處理作業(yè),就可以達成System C化目標。
目前動作合成工具技術(shù)上還不成熟,若直接轉(zhuǎn)換成System C,閘道(gate)規(guī)模與消費電流值會變大,為了達成System C化必需特別設(shè)置Guide Line。有關(guān)介面部分,就可以使用原先慣用的雛型,透過再利用方式有效減少工程數(shù),如此一來數(shù)千行的演算,大約一周就能夠轉(zhuǎn)換成System C。
有關(guān)專用處理器,利用一般的處理器制作工具,同樣能夠輕易進行最適化探索作業(yè),進而使處理器的開發(fā)時間,從以往6個月壓縮至2~3個月。實際開發(fā)時必需先進行Profiling描述、決定管線結(jié)構(gòu),再根據(jù)Profiling描述結(jié)果,對各SoC進行複合指令等,最佳指令追加作業(yè),依此使參考用處理器達成SoC要求的最佳化目標,最后再利用指令設(shè)定,模擬分析估算成本、耗功等效能。
結(jié)構(gòu)探索作業(yè)結(jié)束后,再整合客戶的要求規(guī)格,評估客戶提出的規(guī)格時,此時為防與止晶片出現(xiàn)怪異現(xiàn)象,除了動作等級的System C之外,必需使用低抽象度RTL(Register Transfer Level)等級的設(shè)計資料。一旦取得客戶的許可后就可以同時進行System C的硬體、軟體設(shè)計。由于C語言平臺設(shè)計方式使用了,C語言演算、System C模型和RTL模型等多種模型,因此必需維持模型之間的理論等價性,然而實際上「形式驗證工具」還未達到實用階段,必需使用一般理論模擬分析,驗證上述設(shè)計資料的等價性,其中RTL等級的理論模擬分析非常耗時,因此它已經(jīng)成為C語言平臺設(shè)計有待克服的問題。
目前動作合成工具技術(shù)上還不成熟,若直接轉(zhuǎn)換成System C,Gate規(guī)模與消費電流值會變大。(Interconnect Systems)
C語言平臺的設(shè)計的特色
實際上利用C語言平臺的設(shè)計方式方面,例如日本某業(yè)者,曾經(jīng)開發(fā)以Pentium微處理器使用的壓縮處理技術(shù)硬體化 的SoC,使其具備MPEG-4單壓縮功能,基于資料處理并聯(lián)化對降低動作頻率非常有效等考慮,因此使用動作合成方式使SoC整體達成的硬體連線化目的。由于在結(jié)構(gòu)探索工程中已經(jīng)針對并聯(lián)處理段數(shù),等相異多結(jié)構(gòu)進行評估,因此檢驗結(jié)果與實際晶片的量測結(jié)果幾乎完全相同,證實C語言平臺設(shè)計方式可以實現(xiàn)高精度的結(jié)構(gòu)探索目的。
另外,也有業(yè)者在開發(fā)應(yīng)用在行動電話的長時間MP3音樂播放晶片,同樣具備MPEG-4單壓縮功能時,設(shè)計上被要求盡量降低耗功,因此設(shè)計人員決定採用動作合成方式,使SoC整體達成的硬體連線化目的。此外,該業(yè)者為了減少耗功與晶片面積,因此進行演算處理位元寬度最佳化設(shè)計,就展開調(diào)查各處理作業(yè)的資源消耗量,與演算位元寬度的關(guān)係,依此制作演算位元寬度、建立調(diào)整方桉、進行音質(zhì)檢驗、決定位元寬度,根據(jù)實測結(jié)果證實傳統(tǒng)同等級SoC的耗功為60mW,可以降至7mW。
東芝成立小組導(dǎo)入C語言設(shè)計平臺
目前可以感受到,隨著半導(dǎo)體制程的微細化,SoC的開發(fā)時間越來越長,在此同時短交期、低成本的要求依然沒變,因此大幅提高SoC的設(shè)計效率,成為開發(fā)SoC時非常重要的課題。以往SoC大多利用高抽象度動level設(shè)計硬體,設(shè)計資料使用C語言平臺描述,如此就能夠在SoC樣品晶片完成前,開始進行軟體驗證、修正作業(yè)。
所以,東芝在2005年就成立「R-CUBE」小組專研新晶片的前期設(shè)計規(guī)劃,來因應(yīng)此一變化,R-CUBE高階設(shè)計環(huán)境主要是由,軟、硬體協(xié)調(diào)驗證環(huán)境、結(jié)構(gòu)探索環(huán)境、高階驗證環(huán)境、高階合成環(huán)境,和整體驗證環(huán)境等等,5個次環(huán)境構(gòu)成。
實際的想法是,設(shè)計流程中最初會使用結(jié)構(gòu)探索環(huán)境,此時規(guī)格書中會將所有功能當(dāng)作ANSIC語言/C++演算描述,并將該演算分成實現(xiàn)軟硬體兩大單元。至于分割的妥當(dāng)性則利用效能分析工具驗證,如果驗證無誤就進入下個階段。此時設(shè)計流程可分成, 軟、硬體協(xié)調(diào)驗證,以及硬體的執(zhí)行(Implementation)兩大部份,軟、硬體協(xié)調(diào)驗證環(huán)境會整合了可以實現(xiàn)硬體部份的C語言平臺描述,以及微處理器核心的C語言平臺描述,并製作SoC整體的硬體模型。上述驗證會先確認軟、硬體之間的介面是否有不妥,接著進行軟體整體的驗證與修正作業(yè),由于此時要求實機的1/10~1/100左右的模擬分析速度,因此硬體的模式必需使用高抽象度C語言平臺進行描述。
圖說:沖電氣採用「μPLAT」+軟體的合成動作方式,可以使晶片發(fā)揮低耗功化效果。(Tanner Research)
在硬體的執(zhí)行設(shè)計方式方面,首先以人工方式將硬體的演算C語言平臺轉(zhuǎn)換成System C,再使用高階驗證環(huán)境驗證此System C的描述,該環(huán)境包含多種工具,例如,利用形態(tài)檢查器驗證System C描述意義的工具,以及是否已經(jīng)成為高階合成用資料的工具等等。高階驗證環(huán)境還包含東芝開發(fā)的可以檢查驗證進度(coverage)的工具, 它可以防止遺漏檢查,進行Line Coverage)、分岐含蓋范圍、條件含蓋范圍等檢查,經(jīng)過驗證的System C的描述,再利用高階合成環(huán)境轉(zhuǎn)換成RTL描述。
目前高階合成工具無法以一次的合成作業(yè),獲得令人滿意的高品質(zhì)輸出,必需對C語言平臺描述進行修正,并作反覆數(shù)次的高階合成動作。如果晶片已經(jīng)備妥全模組的RTL描述,就利用整體驗證環(huán)境進行晶片整體驗證作業(yè),在該環(huán)境下使用理論模擬器(Emulator)與硬體加速器(accelerator)等驗證專用電腦,再以時脈循環(huán)(clock cycle)的時序(timing)精度驗證SoC整體,若驗證沒有異常就結(jié)束高階設(shè)計作業(yè),接下來的晶片設(shè)計則與傳統(tǒng)RTL設(shè)計完全相同。
整體開發(fā)時間只有傳統(tǒng)的1/3左右
在實際設(shè)計例子上,東芝所開發(fā)的液晶電視用SoC,就此採用這樣的架構(gòu)平臺開發(fā)設(shè)計,此晶片有三個設(shè)計作業(yè)適合上述設(shè)計環(huán)境,分別是,統(tǒng)一平臺的開發(fā)、減少開發(fā)軟體的TAT(Turn Around Time),以及使用高階合成獲得的RTL描述。
在統(tǒng)一平臺的開發(fā)部分,由于晶片目標是廣用衍生型的SoC,并且主要訴求是開發(fā)容易,因此必需將共通部位定義成統(tǒng)一平臺,此時最重要的是On Chip匯流排的結(jié)構(gòu),與記憶體次系統(tǒng)的定義,設(shè)計人員利用上述環(huán)境,討論出如何能夠定義成最適宜的統(tǒng)一平臺。
具體步驟首先檢查匯流排的存取流通量(Throughput)、延遲、仲裁(Arbitration)功能、匯流排的擴充性(Scalability),接著利用C語言平臺描述進行效能模擬分析,再透過 定性優(yōu)劣比較作定量性分析,透過該分析就能夠定義最適當(dāng)?shù)慕y(tǒng)一平臺。
在減少開發(fā)軟體的TAT,由于是以廣用SoC為目標,所以必需充分應(yīng)用軟、硬體協(xié)驗證,因此在樣品晶片完成前,就需要成功驗證大部份的軟體,因此從樣品晶片公佈,一直到發(fā)佈軟體工具為止,整個的開發(fā)時間只有傳統(tǒng)的1/3左右,主要原因是Stream data能夠使用協(xié)調(diào)驗證所致。
此外即使使用應(yīng)用協(xié)調(diào)驗證環(huán)境,并不表示如此一來就不需要進行樣品晶片的實機驗證,因為C語言平臺描述的精度還有無法驗證Bug,例如記憶體初期化與電晶體的初期化設(shè)定錯誤,以及有關(guān)插入時序的不協(xié)調(diào),一般協(xié)調(diào)驗證都無法檢查。
在高階合成取得RTL的描述部分,這顆晶片的MPEG2解碼器后處理部分,非常適合使用高階合成,尤其是將動作頻率高達266Mhz的后處理方塊,當(dāng)作82K閘道(gate)規(guī)模的電路合成,可以獲得媲美人工設(shè)計的結(jié)果。至于軟、硬體協(xié)調(diào)驗證使用的硬體部位C語言平臺描述,就可以利用這顆晶片的C語言平臺描述作基礎(chǔ),只改寫變更部分即可。
IC設(shè)計業(yè)者已經(jīng)開始建立C語言設(shè)計平臺
目前許多IC設(shè)計公司已經(jīng)開始建立C語言平臺設(shè)計技術(shù),應(yīng)用在半導(dǎo)體晶片的設(shè)計,該技術(shù)除了能夠使晶片架構(gòu)在短時內(nèi)進行比較、檢討作業(yè),同時還可以應(yīng)用在各種SoC(System On a Chip)結(jié)構(gòu)的最佳化設(shè)計。以行動電話的語音處理晶片為例,C語言平臺設(shè)計技術(shù)可以使晶片的耗功降至1/10,預(yù)定今后2~3年內(nèi),市場上將會有20~30%的SoC,是採用C語言平臺設(shè)計技術(shù)。所以,通常SoC的開發(fā)要求同時滿足各式各樣規(guī)格,然而同時滿足高效能、低耗功、低制作成本的特性。
評論