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