* n) e1 v( J+ A6 K! E 首先,IP核心可透過軟核或硬核兩種型式交付到客戶的手上。不論何種型式,顧客都會收到一套功能上已檢驗過的設計方案。軟核亦稱為可合成核心,可經由顧客合成後再建置到其SoC中。硬核,則已預先建置並可立即投入生產。(從技術面而言,設計方案須在投產後才算是建置完成。但在本文中,建置代表配線及其後段工程已完成生產準備)。SoC團隊僅須將硬核視為單一整合電路嵌入至晶片中。軟核與硬核有各自不同的問題與優點,以下我們將詳細介紹。* v, `/ t9 z# Q5 N4 V4 n
2 K- C. S$ P+ E2 U" X! `3 i
IP核心啟動(jump-starts)整體SoC研發流程的一部份。研發團隊取得已預先檢驗的設計方案,使他們能以更少的時間、更少的工程與EDA資源下完成晶片的研發。但是,將核心整合至晶片需要進行許多步驟,步驟的難易度視廠商提供的整體技術文件與支援而定。本文將詳細介紹讓客戶能輕易將核心整合至各個SoC研發階段的技術資料與技術支援。 J4 J2 w1 P+ h8 V: U
% c5 c+ L/ [: [0 r: m, W' Y
最後,顧客須考量IP廠商。IP產業仍處在萌芽階段,市面上存有許多良莠不齊的產品,且不僅是剛成立的新業者才會提供這類方案。因此,顧客不僅須評估IP核心,亦須評估IP廠商的整體能力。 1 i6 i& T# B# J. Z7 z6 @# D- }- O: L b) J+ c3 t6 K" T
研發SoC,核心CPU技術該挑軟?選硬?這是一個如何選擇的問題。因此,從本週起,技術論壇將針對此議題進行一系列的探討,本篇先就兩者的優劣勢進行比較。; h/ o0 h2 E4 F1 p" {* s; e
% Z) j* h0 Q& z! y! @9 ]
軟核與硬核的優缺點比較0 j0 W; V" u2 N$ U7 r( O
- b' @) u% |5 D# ^
■效能 8 e0 p4 ?5 a" z- i g+ \ ! J c* R, ?1 K# o5 z 由於軟核並未完成建置(Implement),故比硬核在功能與建置方面擁有更高的彈性。另一方面,因為這些核心會被應用在許多設計方案中,所以硬核研發業者能花更多的時間針對其建置作業進行最佳化。因此一般人都有硬核能提供較高效能的成見。 - C- f, b: r! b/ {3 C/ b. o & P5 d9 D* J" V$ M1 _6 I9 h9 b G 事實上,針對大多數先進製程所設計的完全客製化高階硬核,的確提供比軟核更優越的效能。由運用latch(拴鎖)型開關電路、動態邏輯、三相訊號、客製化記憶體等元件,完全客製化可達到超越完全靜態合成設計方案的效能。對於需要超越現有製程與研發技術效能極限的SoC而言,完全客製化的硬核較能滿足其需求。 @- n; @6 C2 |% S0 ? h# ]/ R o d% J0 @, Q" V! A$ s
但若效能目標落在軟核的支援範圍內,則硬核的優勢就無關緊要。SoC研發團隊可利用軟核先天俱有的彈性滿足其效能目標(隨著製程技術持續改進,軟核的最高時脈亦會隨之提高,讓它們成為更多SoC設計方案的理想選擇。) 6 |' q& C8 k$ p X2 y* p4 Q+ P3 H6 T' P/ l3 M- z- X* `. V
即使在較低的時脈頻率下,硬核亦能提供矽元件空間上的優勢。但這種優勢並非永遠存在。通常硬核運用ASIC型態的設計技術進行硬型化(hardened),這種流程無法在速度上產生優勢。在其它方面,完全客製化的核心無法針對每個製程世代重新進行最佳化調校,因而消弭在時脈與尺寸上的優勢。9 i& Z( w g7 G5 ~+ {8 |" ^0 L# }
x+ i" J. _% E. w+ m! K
■製程技術獨立性與移植彈性 3 C/ q& Y3 H% E; N5 C; ~7 v 6 C1 C! \3 E+ f/ W& x 軟核的其中一項優點就是製程技術獨立性。高階的Verilog或VHDL程式不需要運用某一特定的製程技術或標準的單元庫(cell library)。這意謂同一套IP核心可重複應用在多種設計,或是未來新世代的設計方案中。(部份軟核IP供應商開發出針對特定製程的方案,讓其核心不具製程技術的獨立性,但這種模式的優點尚不明確)。 6 ]% L4 N* p3 o9 z0 b3 ]4 T 0 X, d6 P) D4 @: o 另一方面,硬核則具有相當高的製程技術特定性。事實上,若晶圓廠商變更其製程參數或單元庫變數(cell library factor),硬核有可能就無法正常運作。因為IP供應商在製程參數改變後,須重新檢驗硬核,所以這種特性即衍生出運用上的風險。 4 H$ y" q1 _3 u5 ?8 L2 q) h- N & m [; {- z7 ^7 ] 硬核可移植到新的製程技術,但須投入相當可觀的心力與成本來重新進行最佳化調校。對於某些先進的微處理器核心而言,須耗費兩年甚至更長的時間。因此,硬核的尺寸通常會針對新製程等比例縮小。這種方法雖簡單且迅速,但可能減低研發團隊針對最初製程進行的最佳客製化效益。$ y7 }: \4 T$ g5 L
9 S( e+ N" J; `$ ] 此外,光學等比例縮小的作法會衍生額外的風險,因為它僅保證新設計能符合設計規則,但不保證正確的時序或功能。由於光學比例縮小是超捷徑式的設計模式,故業者在重新檢驗這類IP核心時會面臨很大的困難。2 q* u8 X. G2 r' n3 ~ s
3 K( L2 b5 |5 H, y1 H7 U& R
事實上,軟核可能是針對單一製程技術與單元庫為設計依據,設計本身與此一技術無關。針對製程技術與單元庫提供最佳的效能,類似的技術可能達到接近最佳化的成效,但是差異性較大的技術(例如搭配速度較慢的RAM)可能就無法達到相同的結果。此種現象並非絕對重要,所以軟核在最佳化的彈性方面優於等比例光學縮小的硬核。 ) n* ?1 q' s" q0 q: B8 v/ U. P % Z# c$ M3 j/ j' ]$ b ■速度╱尺寸╱功耗最佳化調校6 r- J/ s7 C3 ~/ x
7 G5 ~: y; o; K8 W2 V1 k6 ` 硬核在IP供應商進行建置時已做了一次最佳化。因核心僅進行一次最佳化,故IP供應商可投入較多的資源。因此,硬核的速度通常高於採用相同建置技術的軟核。即使運用單一技術,硬核僅是鎖定一個最佳化目標。若希望在合理的效能下降低晶片使用面積,則進行大幅效能最佳化的硬核,其面積可能過大。% Q6 g4 _6 L8 v. _
+ J5 c# c) p# j: J
相反的,軟核能進行「應用最佳化」的調校。時序、尺寸以及功耗率目標可機動的調整,以配合特定的嵌入式SoC設計方案。例如,若SoC運用200MHz的時脈,則原本為250MHz的IP軟核應將運作時脈調整為200MHz。這種作法能減少使用面積與功耗,同時也符合相關的設計要求。7 z j% C7 J _. A, }; S/ b) J
0 s+ \/ x2 q8 m6 R. ?9 q5 x+ n 低層級的I/O時序部份也可針對應用做最佳化的調整。軟核的I/O速度可配合核心所處的環境進行調整。反之,若硬核的輸出訊號較為遲緩,SoC研發人員就沒有太多可以改善這類時序問題的方法。2 c1 r% W( m: U. [5 | M- l* `$ ^
) v/ z' M U4 v- t0 V 若SoC的速度、尺寸以及功耗率即為最初硬核的目標,則這套硬核就能具備競爭力。但是對大多數的設計而言,軟核較能針對特殊SoC進行最佳化調校。" k J1 k5 @2 @& u& d$ X5 V2 K/ D
3 N ?# i# q6 W- z+ }5 s$ V6 g+ }
■客製化彈性. N8 K9 ~/ ^! X" _
- t1 @4 w' v: [: J- h 軟核另一項超越硬核的優勢就是:編譯當時才做客製化,在建置之前,可自行選擇許多設計選項。 5 K% j. |; a# F S, e. p3 B3 `, p5 `' N4 E: p2 L' A
快取記憶體大小是編譯時常見的一種客製化項目。軟核處理器讓使用者選擇其特定嵌入式系統所需的快取記憶容量。而硬核則無法進行這種客製化設定。! X3 f. g5 a/ z; Q& X; j4 a
5 \1 G4 w- i3 B 雖然SoC研發業者不會變更IP軟核中的RTL設計內容,然而在正常的晶片開發流程中的確會變更部份的功能。變更設計功能的例子包括插入掃瞄鏈(scan-chain)、時脈緩衝、以及RAM BIST。SoC團隊須能檢驗這些變更沒有影響核心的正常運作。 9 m! V7 q7 b2 ~4 y% R+ I B- G( L: L/ h 欲驗證新設計變更沒有影響到原來的設計,其中一種方法就是IP供應商提供一個能用來驗證核心是否正常運作的環境與測試方案。不幸的是,對於許多核心而言,完整的測試方案本身過於龐大,不適合作為IP核心的附加方案。因此,大多數IP供應商選擇提供部份的檢驗方案,能用來檢驗核心是否正常運作。大多數的情況下,這類子集合方案已足以用來偵測在變更後所可能衍生的任何錯誤。$ M+ T0 i, R1 R
- l1 S2 l7 s' p- k. R 然而,用正規驗證工具(formal verification tool)在確保運作正常的檢驗流程會更加完整。此種工具用數學方法來證明新的設計方案與原有的核心功能相同。支援正規驗證工具讓SoC團隊不須重新執行上述的邏輯閘層級檢驗作業。 : g' I! b. I& g, }; ?. t + Z# _- u. ]1 r& A8 t. H ■軟體協同開發的工具 " H) Q) D, S" E9 o$ e; g + W' @# J4 p8 G# R; t 針對新系統的軟體開發標準流程是先製造硬體樣本,然後再開發軟體於此一硬體上執行。在許多狀況下,這種流程會延長產品上市時程,因此軟體研發通常與硬體研發同時進行。6 V' w h) Z" ?( x
! f" @: V8 A5 p! T 研發軟體比開發硬體更需要快速的系統模擬機制。因此,IP供應商須提供極快速的IP核心功能模型。這種模型方案能提供充裕的效能以滿足低階軔體的研發需求。" t& ?7 n( O& [) Y9 V5 m& u
+ |/ b/ G+ c2 M# `0 @ 面對更快的模擬速度需求,業者有時會運用硬體邏輯模擬器,其執行速度超過純軟體模擬系統(雖然它們的速度仍比真正的硬體慢2到3級)。但眾所皆知,這些硬體模擬器很難使用,且需要進行特殊的合成。對於計畫同步研發硬體與軟體的SoC團隊而言,這方面的技術支援是IP核心的一項必備條件。 4 I t% J$ z9 q* p ]. ]2 n" U8 D0 K 如何評鑑IP供應商$ t4 F. ~1 a& B+ q; S* N* Q3 q; T% C. [
1 `$ j- v3 [& a/ h; u" e+ U5 M( I 市場上有許多供應IP核心的廠商。有些是剛成立的小型設計公司,有些是歷史悠久的大型公司,將IP核心視為另一種為顧客提供設計方案的新模式。不幸的是,公司的規模並不是IP核心品質的指標。SoC研發業者應瞭解供應商對IP核心產品的投入程度。 0 a- G3 G% |# r0 Y! ^9 z3 f. X% \5 y3 y2 {# S- k4 j, P" f
■是否設計成能夠重複使用? & @7 h4 o" h# B# \& G% I* ]( L) e% P7 ?
例如,本身不是專門開發IP方案的供應商,其IP核心產品可能只是將原有的設計方案重新包裝而成。全心投入開發高品質核心的廠商,在從頭開始研發時就會考量重複使用的能力。本節將詳細介紹能重複使用的設計方案具有那些特徵。 * b* U5 {* O' A. K & U$ _6 v0 ?3 r: p/ q4 \; L* A( k7 @ 首先需特別留意那些原始程式碼是否原本用於完全客製化的硬核,這些設計方案最初並未納入合成的考量,故比原本設計用來能夠合成的方案遜色。在開發硬核時,可根據已知的建置型態進行最佳化設計。然而,在軟核部份因尚未建置,故可能不適合採取這種方法,因為如此可能造成無法運作或次佳的建置。 ! z( h; j8 r. i" w $ S4 v4 Q/ } s# e c$ w/ K9 s 另一項軟核的重點就是各種被登錄(registered)的介面訊號,透過將I/O存入暫存器,SoC團隊就不必擔心IP核心內部邏輯的時序限制。此外,這種作法能輕易的預測時序,並讓SoC研發業者獲得完善的時序限制環境。以上所有效益都讓SoC的研發更為容易。 8 B( z3 f$ z: ` " m; d3 `2 F3 s& A" l$ b* a 一套從頭開始研發且設計成能重複使用的軟核,本身擁有更多可設定的選項,且在建置上有更高的彈性。這類方案亦有考量須支援多重研發環境。一個設計方案若在設計時沒有納入重複使用的考量因素,就可能較缺乏功能與建置上的彈性。- q6 h$ P+ R5 a/ O Z- m" ~9 ]2 L
- H! Z: ]- b' M; d* J ■完整系列產品1 q5 H& a- p; Q* m
) }$ L4 w4 x! I& Z- Y( z
理想IP供應商的另一項特徵就是完整的IP核心系列方案。若您選擇軟核,請確認該公司是否提供完整的軟核方案,以支援未來產品的改良需求。若您選擇硬核,須應確認廠商是否支援所有您正使用的製程技術。 : n+ m3 l0 J4 a" g; C+ I0 L0 h: Y8 \
此外,您應確認IP供應商對於未來IP核心有明確的研發方向。廠商是否計畫擴充其軟核方案?廠商對於硬核移植至新世代的製程有何規畫? : v# S1 _( M) W" E9 x4 u " `! f3 G. {: Z' y- u ■維護與支援 6 Z& Y4 \1 j; o) K* q( P) z, k 4 `; t! s) G3 h# x IP核心亦須注重產品維護與支援的品質。尤其須注意沒有提供專屬支援服務的新公司。即使是歷史較久的企業,亦須投入專屬的資源來支援維護IP核心的機構。以下是檢驗項目的清單:5 M9 i) V, r9 d8 m
. x% C% ~- K5 j
◆廠商是否有明文記載的說明,指引顧客如何獲得專人答覆所面臨的問題: e9 E$ [6 j2 e7 G( x* l# v
# v" ~/ v4 G _ ◆SoC團隊技術支援的收費模式?(您是否有無法獲得支援的危機?) + y( ~! p3 _$ {' o 7 S/ [ Y6 Z4 C) j) V8 r: Y ◆廠商是否坦承透露其設計方案中的錯誤(bug) / k0 d9 d- z/ m: h ]. _4 G- G' t9 M: H" k ◆廠商發佈新修正方案的頻率 1 S9 s% e0 G3 Z( A/ Q& T3 _5 m. k" ^+ E4 L( r0 u5 ^
◆IP供應商是否會發表維護版本方案,針對IP核心或其支援方案增加新的功能(例如像支援更多的EDA工具)?$ c1 [, t. Z) J X$ |
& j F c" O. T+ ?, s) R ◆當提出支援要求時,廠商會如何回應3 C) H7 q5 A& W7 X5 I6 T. z
$ Z1 f1 t, X+ b# \, f( O8 z ◆支援是否過於遲緩,問題是否會因而愈來愈嚴重 $ m7 G3 g) G# r. Z0 s X ' @8 B5 D" ~& T1 l5 n$ C; n ◆第一線的支援人員是否有充份的專業知識+ [0 J3 c" q2 R" D
3 g) V. M& B6 I
在許多案例中,支援的品質並未被列為IP核心的採購決策依據。然而,當設計團隊急需協助時,不完善的支援就會成為嚴重的問題。最高品質的支援是專案成功的必要因素。 ' }: J( l8 x# k 4 |4 F4 H: N, g/ \. p 結論4 Y* o9 C8 u& U, g! K) z
+ _, S+ j) V( @( b3 c IP核心設計是一個全新的領域。許多廠商積極搶攻這個迅速成長的市場。SoC設計業者須小心評估設計方案以及IP供應商,避免落入任何新技術經常遭遇到的陷阱。 5 K3 P8 b- {+ C' z" {* C8 D& { [4 i: b' T
對於少數正好能符合硬核設計目標的設計而言,運用最佳化的硬核是不錯的選擇。但對於大多數的設計而言,具有高彈性的軟核會是最佳的選擇。- `3 T8 P8 Q. {- A9 q$ b* x% ]$ D
) B+ v4 g: V$ t! F) F ◆應用最佳化 * E$ \- q: |9 {% g1 _$ \1 |1 Z $ u4 `" ], W; O ◆自行調整編譯時間' J X' R" N) C
L! N- n$ H" W5 S8 K: ` ◆技術的獨立性 / i5 G9 g+ u8 X C7 ]+ c 0 S3 l% H: m) `2 t+ Y& o ◆能輕易整合至SoC環境) s- W+ T+ [* p$ R+ I, w- N+ r1 a% j4 ^
1 } F6 o. @( O2 l7 q) k
技術文件與技術支援不足的IP核心,亦很難整合至SoC的開發流程中。因此,業者須注意評估IP核心的技術文件與技術支援,確認是否有支援所需的EDA工具以及所有SoC的研發流程。" E/ K1 S& h1 [
2 n" ~4 @' T* j e& o2 t
選擇IP供應商與選擇IP核心一樣重要。專注於開發IP核心是IP供應商的必要條件。此外,SoC團隊須確認未來IP供應商是否能為其產品提供支援以及繼續推出新產品。$ {) L- F# v" E4 w
+ _5 \- w7 _; O* s) t 現今的SoC研發業者面臨許多挑戰。運用知名廠商提供的高品質IP核心,讓客戶能輕易克服這些挑戰。 % _ r8 k O, x3 H ( A% N' S. [- ^(本文由MIPS Technologies, Inc.提供)資料來源 : digitimes