何時使用軟件仿真,何時使用硬件仿真
大約在 40 年前,Comprehensive Computing Systems and Services公司在市場上推出了首個名為 TEGAS 的商業(yè)數(shù)字軟件仿真器,該設備主要用于測試生成和軟件仿真系統(tǒng)。這一對門級電路進行仿真的系統(tǒng)由一個小型專家團隊開發(fā),而在此之前只有針對晶體管級電路進行仿真的模擬仿真軟件。TEGAS 是其專用的描述語言。這種語言僅用于生成數(shù)字電路測試向量。最終,仍須通過原型板進行設計驗證。
本文引用地址:http://cafeforensic.com/article/201711/371166.htm隨著 20 世紀 80 年代早期計算機輔助工程 (CAE) 行業(yè)的興起,數(shù)字軟件仿真器或邏輯軟件仿真也在電子工程界流行起來,成為設計驗證的主要手段。到 20 世紀 90 年代末,數(shù)字軟件仿真器逐漸發(fā)展演變?yōu)榧拇嫫鱾鬏敿?nbsp;(RTL) 軟件仿真器,這種軟件仿真器支持兩種流行的硬件描述語言 (HDLs)—— Verilog 和 VHDL?,F(xiàn)有的 EDA(電子設計自動化,CAE 和 CAD 的產(chǎn)物)供應商用了十多年的時間在同一個工具中支持這兩種語言。如今,Synopsys、Cadence 和 Mentor Graphics這三家大型 EDA 供應商,都提供各自的 HDL 軟件仿真器,在市場上呈現(xiàn)三足鼎立的狀態(tài)。
多年來一系列的改進使得 HDL 軟件仿真器變得愈加完美?,F(xiàn)在,它是一款不可限量的工具,是設計驗證和假設分析中必不可少的工具,但其還是有自身的局限性,即設計規(guī)模不能超過 1 億個 ASIC 等效門。這種限制較為隨意,事實上,仍然可以對更大型的設計進行軟件仿真,只是執(zhí)行速度奇慢無比。
一個示例
若要使用在 10 Hz 下運行的現(xiàn)代軟件仿真器來仿真在 100 MHz 下運行的 1 億 ASIC 門設計上的一秒鐘的真實數(shù)據(jù),這絕非易事。在這種設計復雜度下,可能需要花費 1 千萬秒的時間。即 2,778 小時,或者 115 天。一秒鐘的 100 MHz 真實數(shù)據(jù)等于 1 億個時鐘周期,這個數(shù)字相當大,可能會超出處理典型測試平臺的要求。在處理典型測試平臺時,一毫秒或者更短時間就足夠了,在大內(nèi)存配置的最新 PC 上運行時,則會將執(zhí)行時間縮短至一天或更短。這是個合理的目標。
HDL 軟件仿真器可以在 PC 場中并行運行,每個 PC 會處理功能完善的測試平臺。半導體公司有成千上萬臺 PC 構(gòu)成的計算場全天運行。
但 1 億周期仍不足以處理嵌入式軟件設計。由于處理軟件在本質(zhì)上為串行流程,所以對于這項任務來說,有必要按順序執(zhí)行數(shù)十億周期。然而,帶有 HDL 軟件仿真許可的 PC 場卻鞭長莫及。軟件程序無法在子集中進行拆分,再并行運行。
那么,要如何驗證 SoC 設計的嵌入式軟件呢?
進入硬件仿真時代
硬件仿真其實由來已久,它給設計人員在流片前提供了一種更為準確的電路行為描述,因為硬件仿真是通過真實的電路和邏輯來實現(xiàn)設計。硬件仿真始于 20 世紀 80 年代末,在 20 世紀 90 年代末盛行,當時主要是通過商業(yè) FPGA 進行實現(xiàn),用于驗證需要較長測試周期的處理器和圖形設計。它們也遇到諸如電路建模難度高以及可靠性低等各種問題。其成本也較為高昂,并且作為單用戶資源,其投資回報較低。然而,硬件仿真器的出色執(zhí)行速度仍使其成為長處理周期的必要工具。
還是之前的示例,在 1 MHz 下運行的硬件仿真器需要花費 100 秒來執(zhí)行 1 秒鐘的真實數(shù)據(jù)以及處理 1 億次周期。硬件仿真器可以在一小時左右的時間內(nèi)啟動操作系統(tǒng)。而且,硬件仿真器的投入比重新流片便宜得多。
圖 1:不同設計規(guī)模下軟件仿真與硬件仿真性能對比
HDL 軟件仿真器由于緩存缺失和內(nèi)存交換,其執(zhí)行速度會隨著設計規(guī)模增加而急劇下降。不過與之不同的是,在此情況下,硬件仿真器的性能只會受到輕微影響(見圖 1)。
由于商用 FPGA 硬件仿真器有一定的限制性,定制芯片硬件仿真器由此應運而生。這種硬件仿真器主要有兩種不同類型:由 Mentor Graphics 提供的定制 FPGA 硬件仿真器,又稱片上硬件仿真器;以及由 Cadence Design Systems 提供的基于處理器的硬件仿真器。同時,Synopsys 也支持使用比標準 FPGA 硬件仿真器更為先進且功能有所增強的最新商用 FPGA 硬件仿真器。
直到十年前,硬件仿真器才在電路硬件仿真 (ICE) 模式中被單獨部署為物理測試環(huán)境。由于當流片提供激勵和處理響應時,被測設計 (DUT) 將最終駐留在此環(huán)境中。因為難以進行設置,ICE 模式現(xiàn)在并不常見,而對更加靈活的測試環(huán)境的需求卻在不斷增長。應用硬件橋沒有可控性/可再現(xiàn)性,并且由于安裝時間和維護成本的增加,其還會增加測試環(huán)境的復雜度。由于可合成的測試平臺能在硬件仿真器內(nèi)部進行映射,并且無需依賴外部環(huán)境便可以硬件仿真器的最高速度執(zhí)行,因此該測試平臺區(qū)域還有其他可行的替代方案。不過遺憾的是,它們不易開發(fā)。
基于事務的驗證或加速(TBV 或 TBX)是業(yè)內(nèi)最看好的方法,具有兩方面的優(yōu)勢。首先,能采用少一個數(shù)量級的代碼行,在更高抽象層次寫入測試平臺,簡便而又不易出錯。其次,由于在硬件仿真器內(nèi)部映射晶體管的總線功能模型 (BFM) 實現(xiàn)了急劇加速,這些測試平臺比傳統(tǒng) RTL 平臺執(zhí)行更快。另一個益處是,當用戶切換設計或新用戶登錄時,TBV 或 TBX 不需要人為監(jiān)督來處理速度適配器。這種方式也適合于遠程訪問。
何時使用軟件仿真,何時使用硬件仿真
HDL 軟件仿真器適用于設計周期早期階段的硬件調(diào)試,早期階段的設計主要專注于模塊級別。憑借易用、快速設置、極速設計編譯等特點,它們可以極其靈活地調(diào)試硬件設計。它們還支持每天進行多次設計迭代…只要設計規(guī)模合理。但在數(shù)千萬門級別時會出現(xiàn)問題,這在現(xiàn)在看來只是典型的系統(tǒng)級設計驗證。如上所述,它們并不適合嵌入式軟件驗證。
相反,硬件仿真能找到幾乎所有設計缺陷,無論是在硬件中還是在 SoC 嵌入式軟件中。硬件仿真可處理任何設計規(guī)模,但需要較長時間進行環(huán)境搭建,至少一天,也可能更長時間。而且,相比軟件仿真器,其編譯速度相對較慢,大約需要一小時以上才能完成編譯(見圖 2)。
圖 2:基于性能、設計能力和設置/編譯時間的軟件仿真與硬件仿真對比
現(xiàn)代硬件仿真器支持多個并發(fā)用戶,包括通過遠程訪問,因此可增加投資回報。
評論