對於獲得IP授權的業者(註:以下簡稱IP受權業者)而言,軟形IP同樣地也提供了很大的好處。軟形IP讓半導體夥伴廠商能針對新的矽製程重做配置,加上利用自己內部設計流程中的各種特色,他們得以在核心設計中增加附加價值。
當IP代表的是一個複雜的元件時,比如說一個微處理器的核心,各階段業者必須確保的是硬形虛擬元件(VC)的開發或端末使用者的整合等作業上生產力的發揮不會受到限制。理想的狀況是儘可能簡化整合流程,將核心塑造成一個元件庫中的元件,則整合一個複雜核心的工作便能像整合一組RAM區塊一樣地簡單。
複雜IP方案的研發業者必須確保其IP不管實現在何種矽製程中,皆能有一致而確切可期的品質。同時,他們所開發的IP必須被保護好-一般是運用預防原始碼流入端末使用者的方式。這些要求看來似乎互相矛盾,所以對於IP供應商、受權業者、以及端末使用者而言,要達成這些要求最好的方式就是提供高品質的IP,以及一個成熟並且支援虛擬元件開發與整合的設計流程。
在以這些需求為目標情況下,ARM與Synopsys正專案合作,以一個「明星級(Star)」IP為核心的開放式設計系統為基礎,開發一套設計參考流程。
智慧財產的特性
矽智產大致可以區分為三類,分述如下:
「明星級」IP
「明星級」IP是屬於複雜而具機密性的設計,對端末使用者與受權廠商而言具有較高的價值。明星級IP的價值主要即源自於它的複雜度,它們往往須耗費數以年計的人力資源成本來開發。其它特性則包括像市場佔有率以及協力廠商的支援(用以保護端末使用者與受權廠商的投資),這些因素都對明星級 IP的價值有所貢獻。由於價值較高,明星級 IP的供應商一般會透過授權協議以及加密技術來保護自己的資產,例如提供加密後的模型而非原始碼。市面上像是ARM的處理器核心或MIPS、Rambus等、以及其它廠商提供的IP便屬明星級的IP。
「標準型」IP
第二類IP為「標準型」IP。包括像PCI、USB、IEEE-1394等介面邏輯及其他IP。雖然這些技術標準均已有詳細的規格記述,這類型IP的價值則通常在於使用階段。直接採用預先設計與驗證完成的複雜區塊,通常會比自行從頭設計(好比重新發明輪子)來得具有效益。
「必需品型」IP
第三類則為「必需須品型」的IP,它包括基本的標準元件庫以及各種較為複雜的建構區塊,例如像Synopsys的DesignWare角艇颾w裡面所包含的一些元件。這類型IP的價值在於提升設計團隊基本的「每日邏輯閘數」生產力,它們常常搭配各種合成工具(例如Synopsys的Design Compiler炕^做好最佳化。
IP通常由軟形IP開始 - 如一份以Verilog 或VHDL暫存器轉移層(RTL)的敘述,之後再針對特定的矽技術硬形化成為「虛擬元件(VC)」。這個將IP轉化成硬形(硬形化)的過程可利用各種合成工具來自動化,其中也可加入一些客戶自己的設計,以因應高效能或類比訊號支援的需求。
IP供應商或受權廠商通常會負責執行將IP硬形化的過程。ARM提供給夥伴(受權廠商)各種硬形與軟形處理器核心。軟形的矽智產給予受權廠商充裕的彈性,來精確地滿足其顧客(端末使用者)的需求;他們可以在硬形化的過程中加入附加價值,區隔出產品的功能特色。例如以一個處理器核心的設計而言,設定快取記憶體不同的容量與特性,便會大幅影響該處理器所表現出來的效能。
此外,受權廠商也可利用矽製程的各種特色,來提高產品的效能或降低耗電功率。當新的矽製成問市時,這些受權廠商可以快速地針對新的製程對核心設計重做配置,迅速地向顧客提供產品以爭取及時上市的優勢。這種IP供應的形式同時兼具軟形IP的彈性以及硬形IP的可預測性,讓受權廠商得以藉由最佳的設計或子系統,來強化其產品的競爭特色。
IP角色
從IP的開發一直到成功地建置虛擬元件,IP供應商、受權廠商、以及端末使用者之間的責任應妥善定義(圖一)。
(圖一) IP供應商負責開發與支援IP,並建立IP的保護機制,但不應造成使用上的限制。IP供應商應該要能夠提供一些使用上的指導與建議,並提供給受權廠商RTL的原始碼以及相關的文件與適當的訓練服務。
受權廠商負責建立虛擬元件,利用標的矽製程的各種特性將軟形IP硬形化。受權廠商必須直接或間接地向端末使用者提供虛擬元件,同時持續地保護原始IP。於是建置工作便須延伸至GDSII,也必須發展適當的模型、來支援受保護核心的整合。在某些情況下,受權廠商亦可能是端末使用者。
端末使用者或虛擬元件整合廠商必須能夠快速且有效率地將硬形化後的虛擬元件整合到SoC的設計裡。
虛擬元件整合廠商基本要求
許多開發複雜SoC的廠商轉向使用IP,是希望能提升整體的設計生產力,並縮短終端產品的上市時間。這些廠商同時也從IP供應商的專業技術與資源中獲得好處,他們採買已通過檢驗的虛擬元件以期降低風險。
SoC 設計團隊藉著整合IP來開發一個系統設計,這些IP可能來自於數個不同的來源、複雜度各異,也有可能同時混合著軟形與硬形IP區塊,並且包含自行研發的IP模組與嵌入軟體。他們必須要應付高階SoC開發過程中許多複雜的課題,其中包括高階架構、匯流排協定、驗證以及測試策略。若研發團隊散佈在不同地區或時區,則問題就會變得更為錯綜複雜。
所以漸漸地,SoC整合廠商體認到他們必須緊密結合IP與設計流程。而唯有如此,IP的整合工作才能儘量簡潔,以期達成及時上市承諾。
設計參考流程
ARM 與Synopsys已專案合作一項計畫,目標即在於緊密結合IP與設計流程。其成果將使虛擬元件建立者能有效率地客製、重新使用、重新驗證、做特性分析,以及建置複雜的軟形IP。由於虛擬元件建立者需要將軟形IP硬形化,上述這項計畫的成果將能提供給他們一個成熟的矽元件開發途徑,來做出最佳且功能確切可期的IP實體。而既然參考流程將使虛擬元件建立者能夠較容易地提供硬形化後的核心來因應其顧客的需求,接續在後面的SoC整合作業也就能夠跟著簡化了。
設計參考流程使用ARM946E-S作為這項合作案的核心。這是一款可合成、內含快取記憶體的處理器,它是以ARM9E-S n32位元的RISC核心為基礎,內含指令(I)與資料(D)快取記憶體以及記憶體保護單元(MPU)。它亦提供了與AMBA先進高效能匯流排(AHB),密接式I與D記憶體、嵌入型追蹤模組(ETM)、以及外部共處理器等連接的傳輸介面。原型設計的規格中有內建16K- byte I與D快取記憶體。原型主要鎖定臺積電0.18微米製程。
開放式設計模式
ARM 與Synopsys 瞭解顧客需要的設計參考流程不能建構在內部非開放型的資料庫上,而且必須能有彈性地替代其中的工具。
同樣地,任何設計流程在規劃上也不應只支援特定的IP對象。這個參考流程中並沒有任何一部份是針對ARM的IP所特別設計的,因此,它同時也可以被其他IP廠商的硬形化作業所採用。
為了達成開放式方法的目標,對於這套設計參考流程裡每一個「步驟模組」而言,只要不會犧牲到使用上的效能,則它們的輸入與輸出都必須要儘可能地符合業界的標準。認定業界標準的方式採取的是實用法則-被選擇到的是那些被「公認的(de facto)」並且被大力推動的標準,例如像是Synopsys的Liberty(STAMP 與.lib)便組成其中一部份時序方法模組的輸入 擖X規格。採用這些業界標準也能夠同時地減輕虛擬元件製造商技術支援的負擔。
模型的特性分析記錄
在虛擬元件建構與整合的過程中有各種需求,對於建立一套能夠因應這些需求的設計流程而言,建構精確且適當的模型是成功的關鍵之一。
要建構硬形化後的軟形IP的模型有許多條件。模型必須滿足IP研發廠商的保密需求。它們亦須能夠輕易地移植、驗證、以及除錯。模型必須針對其用途達到一定水準的精確度,並且要能夠搭配不同的設計作業。例如,若在邏輯合成、實體合成、靜態時序分析、以及佈局與繞線等作業下能夠有相同的環境來檢視時序面模型,便能讓設計流程的結果較為確切可期、並且降低錯誤與風險。模型除了必須能夠支援不同種類的模擬語言與模擬器之外,還要能夠做到有效率的模擬與分析。
設計流程中的關鍵步驟
ARM 核心客製化
為核心增加應用價值是核心受權廠商的首要任務。受權廠商亦須設定由供應商釋出的各項IP參數,藉由調整快取容量與密接式記憶體的大小、加入BIST功能、或甚至加入其它子系統,受權廠商便能滿足端末使用者的需求,並強化IP的特色。以上作業會產生一份該夥伴廠商所特有、對核心子系統的RTL描述。
VC建構過程
針對某特定的製程技術,對複雜核心做出一套最佳的實體,端賴於傳統的邏輯與實體合成技術。由於不可以因為要滿足時序的需求,就去變更核心設計的架構,那麼要做到時序能夠收斂,就只能單單依賴在「後段」設計過程中加把勁。正因如此,一種以時序為導向的實體合成的方式 - 在合成的過程中,同時以時序需求做為配置條件進行佈局配置,便為達成時序收斂的這個目的,提供了一個較為有效的途徑。
一般而言,支援特定處理器的硬形化工具皆會附有執行程式(script),來指揮合成的執行。合成策略與意向皆記錄在這些執行程式中,這些執行程式也同時傳達了另一層次的設計知識給夥伴廠商,以協助他們製造出一個最佳的核心實體。
模型的建立與特性分析記錄,是硬形化過程中一個基本的步驟。建立功能面、時序面、測試面、以及實體面等的模型,必須是這個流程中密不可分的一部份。這些模型的品質將會影響端末使用者SoC整合硬形化虛擬元件的效率。提供這些不同面向的模型,是為了要達成能讓端末使用者將複雜的虛擬元件視為一個元件庫的元件的這個目標一個重要的關鍵。
- (1)功能面:功能模型包括基本的編譯後模型(圖二),有可能是從以C、VHDL、或Verilog等語言所撰寫的原始IP區塊編譯過來的。
- Synopsys系列模型編譯器支援Verilog、VHDL、以及C (VMC, VhMC, CMC)等語言,它讓虛擬元件製造商能產生各種虛擬元件的模型,以因應顧客指名需求。將模型編譯成二進位目的碼(object code)確保模型不會輕易地被逆向解譯或解密。採用廣為採納的SWIFT介面能確保模型的可攜性,以支援不同的模擬器、語言、硬體平台、以及作業系統。SWIFT介面亦滿足業者對於優良除錯功能以及高效率模擬的需求。
- 在所產生的模型裡,儲存了時序資訊的時序「包裝介面(wrapper)」、與功能面原始碼編譯後的模型,是分開來的;於是這樣的模型具有極高度的彈性,能在各個設計程序裡,應用在不同層級的抽象解讀中。
- (2)時序面:時序模型必須支援邏輯與實體的合成程序,以及整個SoC的靜態時序分析。時序模型讓業者可以在不需要最終GDSII netlist的情況下,就能進行虛擬元件的佈局與繞線。
- 建立時序模型可使用像是Synopsys的PrimeTime這類靜態時序分析的工具。PrimeTime所提供的「extract_model」指令能對硬形化虛擬元件執行一套完整的時序特性分析,這項分析作業運用的是佈局與繞線過程所提供的寄生特性(parasitics),它的結果是擷取出一組獨立、精準、且具簽核(sign-off)品質的時序模型。時脈與I/O資訊被用來與特定操作條件一起微調出設計的時效表現。當硬形化虛擬元件完成時效微調後,PrimeTime即擷取出一個黑箱(black-box)模型。這個模型僅含有硬形化虛擬元件的連結埠資訊,以及各I/O埠之間的時序關聯鏈(timing arc)。擷取後的時序模型並沒有實體的細節資料,故可視為一個黑箱模型。
- 擷取後的時序模型可以寫成Synopsys 資料庫模型(db),或配合各種業界標準的需求,該模型也可以擷取成Liberty格式(STAMP與 .lib檔)。
- (3)測試面:建立一套編譯後的IP功能面模型,可讓端末使用者無法看到設計架構。然而,為了要能夠成功地測試整合後的元件,須要能夠對硬形化虛擬元件做一些設定,因此測試面模型就必須支援相關的設定功能。
- 測試包裝界面(wrapper)讓「可測試設計」的工具(在設計流程中的Synopsys DFT 編譯器)對設計做黑箱操作。把虛擬元件的掃瞄埠全部連接到I/O埠,並且提供核心的輸出入測試波形檔,那麼全晶片的掃瞄鏈合成、以及產生測試波形等作業的複雜度便得以降低了。
- (4)實體面:實體合成工具需要有關虛擬元件的實體特性資訊,方能精確地進行合成作業、以及配置相關的邏輯來跟硬形化虛擬元件連結。例如,Synopsys的Physical Compiler便需要知道實體元件的大小、半導體材質層的使用、跨越元件的繞線、連結埠與記憶體的位置、線路障礙等等的資訊。佈局與繞線工具所產生的LEF檔能提供這些資訊。或者,plib檔也可用來作為實體面的參考基礎。
VC驗證與相容認證
受權廠商可利用預先驗證好的RTL程式碼作為檢驗時「黃金版(golden)」的參考標準,並可利用檢查耗電功率與等同性(equivalency)的工具,例如像Synopsys的Formality,來驗證硬形化核心在每個設計階段的轉換是否正確。
AMBA認證檢查工具(AMBA Compliance Testbench)可用來支援獨立的、或系統內部的測試,它同時也提供了一套特定的測試流程,所有匯流排模組都必須通過這些測試,才能認證為與AMBA標準相容。這點對於開發AMBA相容系統與IP而言有顯著的益處,能確保元件之間的相容性。運用這套認證檢查工具,受權廠商可確保其核心的應用設計仍是與ARM相容的。
虛擬元件建置
建置虛擬元件可從兩個階段來看:IP原創廠商將軟形IP送交給受權廠商,以及受權廠商將硬形化的虛擬元件送交給端末使用者。
第一階段送交軟形IP的要求尚包括必須能允許客製化該元件的控制參數。由於軟形IP的客製化空間較大,故業者須注意限制這些控制參數的數量,僅允許受權廠商設定部份參數,以便仍能製造出功能確切可期且能通過驗證的虛擬元件。
核心方面的課題
到目前為止我們刻意地將所提到的方法描述地很具通用性,可適用於一般將軟形IP區塊硬形化的程序。然而,針對高速的虛擬元件,另有一些在介面時序管理上的問題須要克服。
連結虛擬元件主I/O與內部接腳元件的線路稱為「邊界」線路。實際上這不是一個真實的邊界,因為把硬形化的虛擬元件配置在SoC裡面合成後,最終所謂的邊界線路就成了「真實」的內部線路,串連著虛擬元件的接腳與SoC裡其它單元的接腳。
SoC設計師面臨的問題是如何在SoC實體設計完成之前,進行SoC的時序分析,以精確地量化出邊界線路的效應。最方便的作法就是將趨動閘配置在該虛擬元件的連結埠,這方法同時也簡化了設計流程。可是這種方式雖然簡單,卻無法達到最佳的效能,對於追求高效能設計的設計師而言可能無法接受。
另一種做法是為硬形化虛擬元件提供一個「包裝」時序模型,用以涵蓋邊界線路的問題。這樣在整合過程中,邊界線路就能在SoC中合併至其它線路,以便進行精確的時序分析。這個方式對整合流程會形成另一個新的需求,那就是必須正確地傳遞線路的寄生特性;不過這並不會額外造成效能上的犧牲。
解決這個問題正是ARM-Synopsys合作所直接產生的效果其中的一個例子。定義合適的合成與配置策略,以及透過命令執行檔來提供支援,能簡化建構邊界線路模型的工作,而且並不必因為採用了特別的設計方法,而使設計的效能打了折扣。
總結
開發這套開放式設計參考流程有雙重目的:一是為了要向受權廠商提供具有高彈性的軟形IP,二則是為端末使用者提供可預測的硬形IP;而所規劃出來的流程必須是一個有效率的硬形化與整合環境。這套設計參考流程提供通達矽元件一個確切可期的管道,這個管道是ARM與Synopsys針對ARM微處理器核心所推薦的方案。
以軟形IP提供給受權廠商各種微處理器核心,可以讓他們有更高的彈性,以便在硬形化的過程中自行客製並加入具有特色的功能。
預先硬形化的、複雜的、已詳加分析記述其特性的IP為最端末使用者的設計工作提供了顯著的價值。提供虛擬元件有助於降低風險,因為它提供了可預測的設計元件,讓SoC設計業者能加速整合作業。不過,這個潛力要能夠發揮的前提是:設計與使用已針對標的矽製程所完成硬形化的複雜型軟IP,一定要漸漸地變成與使用任何其他的IP一樣地容易才行。
向端末使用者提供已編譯好的模型而非原始碼,這樣保護IP的作法並不見得會需要犧牲IP整合作業上的效率。替代GDSII的其他資料庫格式通常會比較容易提高整合作業的效率,因為虛擬元件實在必須愈來愈像是一個元件庫的元件。
雖然這項合作計畫採用ARM的核心作為IP應用媒介,且設計流程中主要為Synopsys的工具,但這套方案設計上的意圖是要能夠為所有「具核心設計」所共用、並且可以轉型。在每個步驟模組皆採用符合業界標準的資料轉移格式,確保這個流程不會受限於任何非開放型的工具。