誤解和徹底的謬誤會歪曲人們對硬體模擬(hardware emulation)的認知,那些謬論包括:

1.硬體模擬器是幕後的驗證工具,僅用於需要更嚴謹除錯的最複雜設計

在1980年代末期和1990年代初期硬體模擬器(emulator)剛出現時,這種說法的確沒錯;不過,在跨入21世紀之後、也就是過去15年來,情況全然不同。這一轉變有賴於幾次技術演進和創新;新架構、新功能和簡化的使用方法推動了硬體模擬器在半導體產業各個領域的部署應用,從處理器/繪圖處理器擴展到網路、多媒體、儲存、汽車和航太。

如今,硬體模擬器被用於任何規模和任何類型的設計,它們可以驗證硬體、整合硬體和嵌入式軟體,也可以驗證嵌入式軟體和整個系統單晶片(SoC)設計。

2.專案團隊因硬體模擬時間太長而避免使用硬體模擬;準備硬體模擬器時需要設置設計並調整旋鈕,太耗費精力又得不償失

同樣,這種說法在多年前沒錯,現在卻並非如此了;編譯(compilation)技術的進步,簡化並提高了待測設計(DUT)到硬體模擬器的映射。DUT 準備、編譯以及硬體模擬器設置的過程曾非常耗時,現在已從數個月縮短為幾天;如果設計複雜度較低或屬於新的複雜設計的衍生,甚至只需一天。

3.硬體模擬器採購與維護成本高昂

過去確實如此,如今並不盡然;考量到現代硬體模擬器的驗證功能和靈活性,其採購成本簡直不值一提。硬體模擬器是迄今為止功能最多的驗證引擎。它具備解決最複雜的除錯情境所需的性能和能力,通常包括嵌入式軟體內容。只要想想,在1990年代初期要驗證每個邏輯閘的單位成本需5美元,如今則只要幾美分甚至更低。

20160513 emulation TA 01FIG1
圖1 硬體模擬如今已進展至應用導向的新紀元。(來源:Mentor)



也許聽起來很怪,但是若以週期(cycle)為基礎來計算,工具的多用途使硬體模擬成為最廉價的驗證解決方案。其整體擁有成本也大幅下降;需要由一整個應用工程師團隊「在幕後」操作和維護硬體模擬器的時代已一去不復返,相關產品的可靠性得到大幅提高,維護成本大幅降低,此外其易用性簡化了使用過程。

4.硬體加速模擬僅用於內電路硬體模擬(ICE)模式

需要指出的是,在ICE模式中,硬體模擬器內映射的DUT由投片後IC將進駐的目標系統來驅動;這也是推動硬體模擬概念形成和發展的部署模式,換言之,就是透過實體目標系統產生的真實世界流量來測試DUT。

雖然很多使用者仍採用這一模式,但這並不是部署硬體模擬器的唯一方式;除了ICE,硬體模擬器還可用於多種模擬加速模式。

此外,還可以透過PLI介面使用基於軟體的測試平台驅動硬體模擬器;這種方式雖然因為加速的限制而未得到廣泛應用,但仍可用於縮短將設計從軟體模擬(simulation)切換至硬體模擬的時程。或者透過基於事務處理(transaction-based)的介面(如TBX或TBA)驅動硬體模擬器,因為硬體加速係數達到與ICE相當的水準,其應用也隨之增加;至少目前某些硬體模擬器是這樣。

將可合成的測試平台與DUT一起映射到硬體模擬器內部之後,各種硬體模擬器加速模式可使用於單機模式(SAA);它們還可以加速儲存於電路板上或緊密連結記憶體中的嵌入式軟體驗證。或者以上多種模式也可以組合運用。

5.在基於事務處理的加速模式中,硬體模擬毫無用處

人們對硬體模擬器仍存在一種普遍的誤解,即基於事務處理的方法不適用,或者與ICE相較之性能有限;此概念起源於1990年代末期的IKOS系統並且起了作用。而在Mentor Graphics收購IKOS之後,以TBX之名改進和推動了此一技術發展,做為替代ICE的一種可行方案。

筆者曾擔任總經理與行銷副總裁的一家新創硬體模擬公司EVE(Emulation Verification Engineering),在建立之初就以基於事務處理的硬體模擬為主要部署模式。Mentor和EVE都證明了基於事務的硬體加速模式不僅可行,其執行速度也能媲美ICE、甚至可能更快。

基於事務處理的硬體加速之另一個獨特優勢,在於能夠建立一個運作DUT的虛擬測試環境,支持偏僻個案分析 (corner-cases analysis)、假設分析(what-if analysis)等ICE無法實現的功能,例如Mentor Graphics的VirtuaLAB工具;VirtuaLAB能在虛擬環境中建立整個目標系統的模型,例如USB、乙太網路或HDMI。

20160513 emulation TA 01FIG2
圖2 VirtuaLAB能在虛擬環境中建立USB、乙太網路或HDMI等系統模型。



6.硬體模擬器將替代HDL模擬器軟體

這個說法不但錯誤,而且永遠不會發生。硬體描述語言模擬器(HDL simulator)能夠快速設置和編譯,並且具備靈活、全面性設計除錯功能等固有優勢,使其成為產業界獨一無二的最佳驗證工具;但HDL模擬器有一個重大的侷限:當設計規模擴大到某個程度、尺寸達到數億個邏輯閘時,它們的性能就會大幅下降。而硬體模擬器正可在此時發揮作用。

假定設計規模會繼續擴大,而HDL模擬器對大規模設計的執行速度不會提高,那麼硬體模擬器將成為唯一可行的系統層設計驗證手段;模擬器軟體將繼續應用於矽智財(IP)和功能區塊(block)設計層級。

但你可能會問,那模擬集群(simulation farms)呢?在模擬集群中,大規模DUT不會分解成小塊並分佈到大量PC中,讓一個工作站各自負責執行DUT的一個部分;這種方法在過去超過25年來已被多次重複嘗試,但結果並不盡如人意。

模擬集群中的每個工作站會執行同一個設計的副本,不論其規模大小;每份設計副本由功能完善且獨立的不同測試平台(testbench)執行,因此設計規模仍扮演主導性角色。模擬集群廣泛使用於以非常大規模設計平台進行的回歸測試(regression testing)。

目前模擬器軟體與硬體模擬器的使用比例可能是80%對20%;但筆者預期這種情況會在十年後反轉,變成20%比80%。

7.硬體模擬和FPGA原型除了名稱有別,本質並無不同;FPGA原型能夠、並將取代硬體模擬器

這也是個錯誤的說法;雖然硬體模擬器可以使用FPGA元件(事實上有一些硬體模擬器確實使用了FPGA元件),但這兩種是截然不同的工具。

FPGA原型(pototyping)的設計旨在實現盡可能最高的執行速度;在內部打造時,每個原型都針對某個特定設計的目標速度進行最佳化,在DUT映射工作、DUT除錯功能(限制到最低,常常毫無用處),以及佈署靈活性、多功能性等方面做權衡。它們可應用於晶片問世之前的嵌入式軟體驗證,以及終端系統驗證。

而無論硬體模擬器是以客製化處理器、客製化單晶片硬體模擬器(custom emulator-on-chip)或商用FPGA為基礎,它們貢獻了幾個與FPGA原型電路板或系統區隔的特性;例如:

· 硬體模擬器和FPGA原型系統在DUT映射和編譯在耗時方面有著天壤之別,一個以天計算,一個是以月計算。

· 硬體模擬器針對硬體除錯,因此支援100%的設計可見性,不要求探針編譯(compilation of probes);不同硬體模擬器在關鍵功能方面也有差異,但相較於它們與FPGA原型系統之間的差別,那些差異微不足道。

· 硬體模擬器能以數種運作模式使用,支援從硬體驗證、軟硬體整合,到韌體/作業系統測試和系統驗證的一系列驗證目標。此外它們還可用於多電源域設計驗證,以及以產生支援功率估算的切換率(switching activity)。

· 硬體模擬器支援多使用者/多工引擎,但FPGA原型系統能讓單一使用者一次處理一個任務。

以上幾點解釋了FPGA原型不會取代硬體模擬器的原因。

8.硬體模擬器必須安裝在一個固定地點,不能遠端使用,例如做為資料中心資源

早期的硬體模擬器確實如此,但已經不再是這樣;現在所有的硬體模擬器都可以遠端存取。不過這種方法在ICE模式中太繁瑣,因為在將不同設計上傳到硬體模擬器時,需要人工監督來安裝和切換速率配接器(speed-ratead apter)。事實上,ICE模式的多使用者或多工任務非常不利於遠端存取部署。

儘管如此,ICE模式的多使用者、遠端存取(在TBX/TBA或SAA模式下)和大規模配置,是硬體模擬器資料中心的基礎。顯然,高效率且順暢的運作需要管理軟體,這就是各種硬體模擬器實例的不同之處。

9.硬體模擬不支援SoC中的嵌入式軟體驗證,這意味著這種工具無法支援軟硬體體協同驗證

事實完全相反。硬體模擬是唯一能執行這項艱鉅任務的工具。為驗證包括韌體與作業系統在內的嵌入式軟體於底層硬體(內建單個或多個CPU核心的SoC)的交互作用,驗證工程師需要以下三種要素:

· 能追蹤SoC內任何地方錯誤的、週期精確之設計呈現;硬體模擬器可以提供最準確的設計呈現,只是少了真正的矽晶片。

· 可達到數百KHz或MHz等級的超高執行速度 ─當然是越快越好;硬體模擬器可以實現那樣的速度。

· 完整的硬體設計能見度;硬體模擬器提供了100%的設計能見度,但不同硬體模擬器的存取速度也會有差異。

10.功率估算是一項關鍵的驗證任務,但硬體加速模擬沒有能力分析SoC的功耗

這又是一個錯誤的說法。功耗分析基於對設計內部所有元素之切換率的追蹤,設計呈現越細緻、分析就越準確;遺憾的是,高細微度會降低設計人員的靈活性,阻礙其做出可改善功耗的重大設計變更,因此最好是從架構層級實現此分析。

20160513 emulation TA 01FIG3
圖3 硬體模擬為各領域工程師強化驗證,降低各種風險。(來源:Mentor)



硬體模擬可以實現現代SoC在設計暫存器傳輸層次(RTL)與邏輯閘層次(gate level)的功耗分析;只有硬體模擬才有處理大量邏輯以及產生針對所有元素的切換率原始力量。

11.所有的硬體模擬器都一樣

今日市面上的所有硬體模擬器有很多共同特性、都能夠執行任務,不過在特定模式下,有些硬體模擬器的表現更好。以架構的角度來看,硬體模擬器之間的區別在於技術基礎。

以下是三種來自三家主要EDA供應商的商用產品:

· 以客製化處理器為基礎的架構:

由IBM所設計,是自1997年就經驗證的技術,在2000~2010的十年間佔據主流地位;其優勢包括快速編譯、良好的可擴展性、在ICE模式下執行速度快、來自全面性速度橋接目錄(catalog of speed bridges)的支援,以及卓越的除錯功能。缺點是在TBA模式下的執行速度有限、功耗大,並且實體尺寸比採用同等設計容量的商用FPGA硬體模擬器更大。

· 以客製化單晶片硬體模擬器為基礎的架構:

單晶片硬體模擬器架構是由一家名為Meta Systems的法國新創公司1990年代中期率先設計,以高度最佳化的客製化FPGA為基礎;該種FPGA包含能夠快速編譯的互連網路,並且可以實現「正確建構(correct-by-construction)」的編譯。其設計能見度以假定不要求探針編譯和快速的波形追蹤下的100%存取實現於矽晶片結構中;但它有幾個缺點:需要一個工作站群集以支援快速編譯,而相較於以同等設計容量商用FPGA為基礎的硬體模擬器,速度更慢、實體尺寸更大。

· 以商用FPGA為基礎的架構:

在1990年代首度被使用,但因為幾個缺點而不及以客製化處理器為基礎的架構;在過去10年,新一代商用超大FPGA幫助克服了舊商用FPGA的很多弱點,其實體尺寸和功耗在同等設計容量架構中都是最小。與另兩種架構相比,它執行速度更快;但其缺點是編譯速度低於另外兩種架構,至少在1,000萬個或以下邏輯閘的設計中。其設計能見度是透過折衷更高的硬體模擬速度來達成。

以上這三種架構都具備可擴展性,能夠處理任何設計規模,從IP功能區塊到超過10億邏輯閘的完整;它們支援多使用者,其中以客製化處理器為基礎的架構可以容納最多使用者,它們還支援所有部署模式和驗證目標。