硬件仿真是唯一一個可以部署在多個操作模式中的驗證工具。事實上,它可應用于四個主要模式中,而且模式間的結合使用可以增加靈活性;谝韵聝蓚特征對硬件仿真的應用模式進行分類:對映射到硬件仿真器中被測設計(DUT)的激勵類型,以及DUT的響應過程。具體包括: 1.內電路硬件仿真(ICE)模式: 使用物理目標設備,通過頻率適配器來驅動硬件仿真器中的DUT。 2. 基于事務的硬件仿真或加速模式: 使用虛擬目標設備,通過驗證IP來驅動硬件仿真器中的DUT。 3. 軟件仿真測試平臺加速模式:通過程序語言界面(PLI)驅動硬件仿真器中DUT的寄存器傳輸級(RTL)測試平臺。 4. 嵌入式軟件加速模式:在硬件仿真器中的DUT處理器上執行軟件代碼。 將幾種模式組合起來似乎是很有道理的,例如同時處理嵌入式軟件及通過驗證IP驅動DUT的虛擬測試平臺。 ICE 縱觀以往,ICE模式是最早提出的一種架構,這也是三十年前開始設計硬件仿真的原因。在ICE模式中,DUT映射到硬件仿真器內部,而硬件仿真器連接到由真實芯片組成的目標系統。 ICE具有兩大關鍵優勢。第一,目標系統可在DUT內外生成真實流量,從而在本質上取代了基于軟件的傳統測試平臺。因此,無需創建測試平臺,即可消除耗時又容易出錯的工作,減輕驗證工程團隊因超負荷測試龐大設計所帶來的負擔。 第二,能夠以硬件仿真器的最大速度運行,較傳統的硬件描述語言(HDL)軟件仿真器而言,其速度提升了5~6個數量級。也就是兆赫與幾十赫茲之間的差別。而現如今,其可能不再那么精確了。 ICE模式存在諸多問題,有些已清楚明了,有些卻還尚未明確。首先,無法直連目標系統,因為相較于硬件仿真器內部DUT的時鐘,目標系統時鐘的運行速度提高幾個數量級,從而必須被限制到一或幾兆赫。 為解決該問題,必須在目標系統與映射至硬件仿真器內部的DUT之間插入速度適配器——基本上就是一種基于先進先出(FIFO)寄存器的協議相關接口。它能夠讓目標系統的快速時鐘適配硬件仿真器相對較慢的時鐘速度。這種方法存在一些缺點,因為適配器通常會通過犧牲部分功能和準確性來換取性能。同時,PCI Express(PCIe) 或以太網等高速協議也將會減速,以應對適配器中FIFO內在容量的不足。 圖1:帶有多個物理接口的SoC通過速度適配器和實際外圍設備進行建模。(由Mentor Graphics提供) 此外,適配器的周期精確行為由于同樣的原因也將與實際協議有所不同。配置僅局限于每個協議一個測試用例,且不涉及邊緣測試用例或任何“假設”分析。更不用說作為硬件的加速適配器針對電效應和磁效應所受到的影響。它們必須重置電路,需要磁屏蔽以及布設電纜和連接器,因為所有這些因素均可能影響其靈活性和可靠性。除此之外,相比軟件解決方案,它們所能獲得的利潤率較低。 另一個明顯的缺點就是在驅動DUT時,物理目標系統相對缺乏確定性行為或非重復性行為。多次運行同一測試時,其周期和時序可能會有所不同。也就是說,設計錯誤可能不會總在同一時刻出現。更糟糕的是,錯誤可能會完全不出現,影響問題的定位。此外,ICE模式無法實現物理目標執行保存和恢復的能力。硬件仿真只能保存 DUT 的狀態,而非目標系統的狀態。 然而,其最大的缺點就是它的極度不便性。如果沒有人在現場提供幫助,對每個用戶和設計相對應的速率適配器進行插拔,可能無法遠程訪問ICE模式的配置。 這一切均給ICE模式的使用帶來麻煩,因而需要尋找其他替代方法。一種方法就是將物理測試環境變更為通過事務接口連接DUT的虛擬測試環境。這種部署模式通常稱為基于事務的驗證或TBX,由Mentor Graphics推廣,適用于測試平臺加速。 基于事務的驗證 基于事務的驗證并不是一個新概念,它在軟件仿真領域已實踐多年,主要受到生成復雜測試場景需求的驅動,旨在應對片上系統(SoC)不斷攀升的復雜度。 從概念上講,這一構想十分簡單。測試通過一種高級語言(例如SystemVerilog、SystemC或C++)從高抽象層次編寫,并且從高級命令到位級信號的轉換任務由一個叫做驗證IP的專用實體執行(以下簡稱“驗證IP”)。 一般來說驗證IP包括可綜合的用于實現接口協議的狀態機功能模塊。它可以使設計人員專注于創建復雜的測試平臺,而無需理會討厭的細節問題。通過將物理接口的抽象層次從周期/位級提升至事務層,驗證IP可簡化SoC 與其外圍設備之間數據交換的描述。完成創建后,驗證IP可重復使用。驗證IP的示例包括一些通信協議,例如以太網、USB、PCIe、內存訪問、JTAG端口,甚至是數碼相機和LCD。 這一切聽起來都不錯,但卻存在一個問題。此方法會產生大量測試周期,導致軟件仿真器運行受阻。而軟件仿真器仍然會通過驗證IP執行從高級命令到位級信號的轉換。運行分析器,然后發現測試平臺所消耗的執行時間超過50%,甚至可能高達95%(其余時間由DUT消耗),這種情況并不少見。 硬件仿真平臺必須得伸出援手,幫助提升頻率性能,確保其速度不低于ICE。這是通過將驗證IP的后端部分映射至硬件平臺上實現的,而驗證IP主要執行從高級命令到位級信號的轉換。 以SystemVerilog、SystemC或C++等語言編寫的測試平臺會驅動驗證IP的前端部分,進而提供比基于事務軟件仿真快出5或6個數量級的執行速度,F在完全可以通過將一套速度適配器(以太網、PCI或USB)更換為對等的驗證IP來構建一個虛擬的測試環境,從而取代ICE測試平臺。 通過軟件控制 與ICE不同,驗證IP可從軟件控制中受益。它可幫助智能驗證環境實現高度靈活性并確保實現復用。例如,設計人員可以從動態主機中捕獲和回放流量;通過轉發設備與芯片之間的事務模擬內電路連接;或將轉換應用于事務的數據流以實現難以獲取的邊緣測試用例。 相關實例:通過PCI驗證IP,可將PCI軟件驅動程序插入含有PCI接口的硬件仿真設計中,這與在ICE中通過硬件速度適配器的執行操作類似。但是現在,軟件調試程序可以通過JTAG驗證IP與硬件仿真器相連,并以單步模式運行,而通過JTAG物理連接卻無法實現這一操作。 同樣重要的是,當設計人員完全控制并非由硬件測試平臺提供的設計時鐘時,調試就變得更加輕松,也更加有效了。通過控制時鐘頻率,可以停止建模,讀取內存內容,強制賦值寄存器或轉儲波形。 在ICE模式中調試需要硬件邏輯分析儀。如果使用ICE方法,設計人員就必須忍受真實硬件行為的突發狀況,并且以犧牲可重復性為代價。相反,基于驗證IP的虛擬測試環境可以幫助設計人員快速重現問題。此外,無需連結DUT與硬件測試平臺,讓設計人員在遠程位置執行DUT,開啟了通過遠程訪問創建仿真數據中心的大門。 由此看來,對于虛擬測試平臺這一方法來說,創建測試平臺似乎是唯一的一個缺點。而Mentor Graphics及其物理實驗室VirtuaLAB(包括在工作站控制的軟件中執行的所有外圍設備)已成功解決這一問題。 虛擬設備 虛擬設備的功能與物理外圍設備的功能相當,但虛擬設備不依賴于復位電路、電纜、連接器、磁屏蔽等硬件設備,也不會受到諸多麻煩的干擾。它們取決于全面的測試軟件IP,該IP與嵌入到映射至仿真器上的DUT中的特定協議RTL設計IP進行通信。 圖2:虛擬設備將在控制工作站(協同建模主機)上運行的軟件堆棧與通過TBX數據線在硬件仿真器上運行的通信協議IP組合起來。(由Mentor Graphics提供) 虛擬設備包括在工作站上運行的軟件堆棧,該工作站通過TBX數據線與仿真器相連。整個封裝可用于在設備級別上測試IP以及通過真實軟件或設備驅動程序本身執行DUT驗證。 與硬件ICE目標相比,虛擬設備的優勢更為豐富: 輕松實現遠程訪問,無需安裝連接到硬件仿真器的任何硬件設備。 自由靈活地在多個設計團隊中共享單個硬件仿真器,無需配置用于連接的速度適配器和電纜。 在控制工作站上運行的目標協議軟件堆棧清晰可見。 表1 總結了ICE的優點和缺點(相較于基于事務加速模式)。 然而,可能是出于習慣或者尚不知曉更好的替代方法,許多設計人員仍然沿用ICE模式。事實上,硬件仿真平臺的所有供應商均聲明支持ICE,雖然有些實現方案明顯優于其他。然而,一旦設計人員通過硬件仿真體驗了基于事務的驗證方法,他們的驗證觀點就會有所轉變。能夠快速創建強大的測試環境而不受繁瑣的ICE硬件的干擾,那么我們就可以更加輕松且更為有效地進行調試。這就是我認為ICE時代正在悄然離去的原因。 |