文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.008
中文引用格式: 孫豐軍,李文強,陳思若. 高度整合硬件加速器的原型驗證平臺Protium[J].電子技術應用,2016,42(8):41-43.
英文引用格式: Sun Fengjun,Li Wenqiang,Chen Siruo. Highly integrated hardware acceleration platform Protium[J].Application of Electronic Technique,2016,42(8):41-43.
1 展訊手機芯片性能驗證的挑戰
隨著智能手機的快速發展,用戶對手機芯片的性能要求也越來越高,與之對應的是芯片的規模也越來越大,軟件也越來越復雜,為了提高用戶體驗,加速芯片上市時間,在芯片流片回來前,需要盡早啟動大量的軟硬件系統調試工作,而傳統的FPGA流程已經很難滿足要求。比如芯片性能測試中必須用到的GPU模塊,對應傳統的FPGA測試,一片Xilinx公司的Virtex7芯片已經無法容納一款中高性能手機芯片的GPU模塊,GPU模塊的特殊性又使得該模塊在FPGA上做partition變得很繁瑣困難。同時FPGA調試板由于其調試復雜性往往延遲到項目后期才能成熟和使用,對于軟件團隊來說存在著無米下炊的困惑。
2 現有仿真平臺在軟件調試上的局限
硬件加速器現在已經成為驗證流程里一個不可或缺的關鍵平臺。由于相對于軟件仿真(simulation)巨大的速度優勢和全面的debug調試能力,硬件加速器已經廣泛應用在硬件加速仿真,系統級驗證,軟件開發調試等各個階段,是整個驗證周期最早可以獲得的軟硬件協同的系統級驗證平臺。然而當RTL開發進入到成熟期后,硬件加速器的硬件debug能力已經不是必需的,反而是運行速度成為軟件工程師關注和體驗的焦點。硬件加速器的典型速度約在1 MHz~2 MHz,對于軟件工程師來說還是不夠快。另外當多個軟件工程師同時需要硬件加速器的資源進行調試時,將加劇硬件加速器的資源短缺,也增加了軟件調試開發的成本。
自研FPGA原型板或者是選擇商用FPGA原型板由于其運行速度的優勢也是目前廣泛使用的配套解決方案。可是其缺點也是非常明顯的。調試FPGA原型板往往由于FPGA先天調試能力的欠缺而使得整個調試周期冗長且不可控,而且也需要投入大量的人力資源做專門的維護,這對于時間預算緊張的項目來說往往意味著風險。有沒有一種解決方案可以結合硬件加速器調試能力和商用FPGA原型板的速度優勢呢?
3 Protium的基本特點和優勢
Protium是Cadence新近推出的基于FPGA的快速原型驗證解決方案,適用于早期軟件開發,回歸測試和高性能系統級驗證。Protium應用了最新一代的超大規模FPGA,提供了一整套從編譯到軟件調試的流程,具有快速啟動和簡單易用的特點。最有價值的是Protium完全兼容Cadence硬件加速器Palladium的編譯流程,可重用硬件加速器上廣泛使用的降速橋(speedbridge),用戶因此可以平滑快捷地從Palladium仿真環境過渡到更高性能的快速原型驗證平臺上來。Protium具有以下特點及優勢:
(1)基本特點
最大支持8 x Xilinx Virtex-7 2000T FPGA。
(2)與硬件加速器Palladium完美整合
①可重用Palladium仿真編譯環境,包括編譯和運行時腳本;
②兼容Palladium的speedbridge系列加速橋;
③自動生成post-partition 數據庫,可返回Palladium進行快速模型驗證。
(3)全自動的FPGA后端實現
①全自動的FPGA partition和布局布線(PNR);
②全自動的Memory Model轉換和模型化;
③全自動時鐘樹轉換(包括 gated clock, multiplexed clocks, latch etc.);
④全自動的timing closure,自動消除setup/hold time violations。
(4)多樣化的調試解決方案
①支持對存儲單元的數據上載和下載;
②支持force和release;
③可選的black-box解決方案,可支持高速設計模塊和接口;
④提供擴展子板支持用戶定制接口;
⑤可返回Palladium進行復雜調試。
4 Protium編譯運行流程
4.1 Protium系統級驗證環境
實驗室系統級驗證環境如圖1所示。
圖1 Protium系統驗證環境
(1)Palladium PXPII X16:硬件加速器72M gate。
(2)Protium:FPGA快速原型驗證系統,支持8 Xilinx Virtex-7 FPGA。
(3)JTAG & UART:通過SOC的JTAG接口連接ARM debugger;通過SOC的UART接口連接PC串口,用于打印軟件debug信息。
(4)Video speedbridge:通過SOC視頻輸出接口顯示實時視頻圖像。
(5)USB Device speedbridge:通過SOC USB接口連接U盤文件存儲器。
(6)DDR daughter board:Protium專用子卡,用于支持SOC外接的DDR。
4.2 Protium的編譯及運行流程
Protium編譯運行流程如圖2所示,主要步驟如下:
(1)在Palladium上做回歸仿真測試,確保RTL和主要端口工作正常,比如串口,JTAG,LPDDR4。
(2)復用Palladium的編譯腳本,加入FPGA控制命令,如board file, probes等。
(3)將步驟(1)產生的Palladium網表作為設計輸入,執行步驟(2)更新后的腳本完成HDLICE編譯和FPGA布局布線并產生最終FPGA可用的bitfile。
(4)下載步驟(3)產生的bitfile到Protium。
(5)復用Palladium仿真過程中使用的初始化腳本,以執行必要的初始化過程,比如 load image文件到ROM/SRAM/LPDDR4, force/release, setup trigger等。
(6)執行run命令。
圖2 Protium編譯運行流程
5 硬件調試過程
如果硬件運行不正常,可通過以下三種途徑調試:
(1)設置觸發條件,并通過Xilinx Chipscope下載信號波形調試。
(2)返回Palladium運行,執行同一運行時初始化命令腳本,排除RTL版本差異導致的功能性問題。
(3)利用編譯中產生的verification model直接在Palladium上運行,以排除FPGA后端處理階段可能產生的時序和功能性問題。
6 軟件調試過程
軟件測試目的為:Boot Android及Benchmark測試,包括Memory Copy,Antutu跑分等。
軟件的調試過程如圖3所示,首先是健全測試,包括JTAG連接,UART打印,DDR初始化及讀寫測試,這些是軟件調試的必要條件。主要步驟如下:
圖3 軟件調試過程
(1)JTAG & UART打印:相對簡單,調試比較順利。
(2)DDR測試:在Emulator平臺,包括Palladium XP及Protium,用的是專用DDR PHY與DDR 顆粒,與EDA仿真平臺用的Model不同,對于DDR的初始化及讀寫測試,需要軟件工程師與ASIC 設計工程師的緊密配合。在這個過程中,Palladium XP強大的Debug功能為Protium平臺DDR的調試工作提供了有力支持。
(3)Bootloader及DisplayC測試:不論是Boot Android及Benchmark測試,都需要屏幕顯示,Protium外接與Palladium XP相同的Video Speedbridge,在液晶顯示器上顯示圖像。
(4)GPU測試:包括GPU的driver調試,功能測試及GPU本身BenchMark評估。
(5)Android及Antutu相關的測試:包括ANTUTU-MEMORY Operation,ANTUTU-RAMSPEED,ANTUTU-SINGLE_INTEGER,ANTUTU-SINGAL-FLOAT等。
7 測試結果
測試結果如表1和表2所示。
8 總結
借助Protium平臺,在芯片流片前,成功完成了軟硬件協同的性能測試,包括Boot Android及Antutu跑分。Protium和Palladium XP相得益彰的特性,使得在Protium開發過程中遇到問題時,可以遷移回退到Palladium XP平臺進行Debug,問題解決后,再利用Protium的速度優勢,回歸到Protium平臺進行開發,如此縮短了項目的開發周期,加速了芯片的上市進程。