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