很多人認為硬件加速器無非是一種速度更快的仿真器而已。毫無疑問,由于硬件加速器使用物理硬件進行仿真,使用硬件加速器驗證復雜的集成電路和大型片上系統(SoC)能比軟件仿真器快若干數量級。與仿真用通用計算機相比,仿真用單一功能計算機能提供更高容量、更高效的系統。 并且,許多擁有并使用硬件加速器的公司都發現,除具有加快仿真速度的功能外,硬件加速器還具有其他一些功能。例如,許多經驗豐富的硬件加速器用戶正在推動完整的端到端功能驗證的封裝,即待測設計的一端為驅動程序,另一端為其他目標外圍設備。端到端功能測試能實現在流片前確認大型SoC(包含如多媒體、PCIe、USB和以太網)的完整功能路徑。 與單純地加快仿真速度相比,能夠充分驗證驅動程序和硬件則有更顯著的價值。由于在硬件加速器上使用真實的驅動程序和精確的硬件外圍接口來進行調試,這給片上系統(SoC)的可用性帶來更多的保證。同時,經過全面測試的設備驅動程序能加快回片后的調試進度。 此外,硬件加速器的高速度和大容量使得待測設計(DUT)可以運行于和流片后一樣的硅芯片原生環境上,遠遠早于FPGA原型和樣片。硬件加速器使啟動實時操作系統(RTOS)、運行設備驅動程序、執行復雜的計算、發送指令到DUT并顯示結果成為可能。如此一來,硬件加速器用戶所能做的遠多于仿真加速,他們現在可以在硅的環境中驗證一個“虛擬”的SoC,完成和真實芯片一樣的測試。 用戶已成功地應用這種端到端驗證流程的其中一個領域就是驗證手機的圖形處理單元(GPU)。首先,在硬件加速器中對GPU核進行編譯。然后,調用驅動程序。而為了運行驅動程序,必須啟動RTOS,因為設備驅動程序需要借助RTOS中包含的功能才能運行。最后,GPU對圖像進行渲染,換句話說,就是DUT的輸出。整個過程中會涉及到一系列非常復雜的操作。啟動LinuxRTOS需要數十億時鐘周期。RTOS將一張原始圖像發送至設備驅動程序。設備驅動程序首先對圖像進行無數次計算和存儲操作,然后獲取和向GPU提供存儲地址等信息,最后指示GPU對圖像進行渲染。然后,GPU從這些地址中獲取所需的數據,以便進行圖片制作。所有這些活動都需要運行大量的軟件,而且需要數十億個周期將一系列幀轉變成視頻。 如此巨大的時鐘周期數,軟件仿真器是無法簡單完成的,而硬件加速器可以。例如,Mentor Graphics的Veloce硬件加速器可每秒運行一百萬個周期,所以用戶可在約兩個小時內就能運行一百億個周期。能夠在處理器上運行驅動程序,接收原始圖像,對圖像進行準備,將圖像發送至GPU進行渲染,然后處理成最終圖像,這些使得硬件加速器用戶能夠如同測試最終產品一樣充分測試待測設計。 Veloce的用戶還擁有一個獨特的優勢,就是使用運行于工作站上的VirtuaLAB多媒體分析組件將GPU渲染的圖像顯示出來,該組件可從硬件加速器中獲取多個幀并組合成視頻。這使得Veloce用戶能夠看到實時視頻,所以用戶就可以直觀地檢查是否存在響應時間慢、抖動、拖尾、重影等現象。 圖1: VirtuaLAB多媒體分析組件從運行于Veloce硬件加速器的待測設計中收集視頻和音頻流并對其進行分析和可視化。 只有Mentor Graphics的Veloce仿真環境可以提供這樣一個端到端功能驗證流程,因為只有Veloce具有這種流程要求的配套技術。Veloce提供了一個完整的功能驗證環境,包括斷言、功能覆蓋、低功耗驗證、全面的嵌入式軟件調試套件、虛擬和物理外設、虛擬探針、加速軟件執行、快速、準確的設計編譯、全芯片調試可視性和企業級服務器功能。 Mentor無與倫比的超高速數據通道能以閃電般的速度實現仿真器和工作站之間大量數據的傳輸,因此工程師可以在不中斷仿真運行的前提下在硬件加速器和工作站上進行調試。 圖2:硬件加速技術正變得不僅僅是加速仿真速度。 由于結合了驅動程序、RTOS和GPU,基于硬件加速器的端到端SoC功能驗證流程為用戶提供了很高的信心,正因為進行了全面的功能驗證,前述芯片的視頻接口、處理器和存儲子系統出現功能錯誤的可能性很小。并且由于驅動程序已經在硬件加速器實現的真實硬件上進行過充分調試,所以一旦芯片出現任何問題,設計團隊就會知道芯片存在制造方面的問題,因此不需要浪費時間在重新驗證GPU或GPU與處理器的接口上,從而大大提高流片信心和產品上市速度。 |