近年來(lái),高級(jí)綜合工具已成為在設(shè)計(jì)方案中使用或希望使用FPGA的工程師的必殺技。這種工具以應(yīng)用的高級(jí)表示法(比如用C語(yǔ)言或MATLAB的M語(yǔ)言編寫的表示法)為輸入,并生成面向FPGA的硬件實(shí)現(xiàn)的寄存器傳輸級(jí)HDL描述。
高級(jí)綜合工具 (HLST) 對(duì)兩種類型的潛在用戶非常有用,一是正在實(shí)現(xiàn)高強(qiáng)度數(shù)字信號(hào)處理 (DSP) 應(yīng)用的FPGA用戶,二是正在實(shí)現(xiàn)高強(qiáng)度數(shù)字信號(hào)處理(DSP)應(yīng)用的高性能DSP處理器用戶。這是因?yàn)樾盘?hào)處理工作負(fù)載非常繁重,通常需要較高的數(shù)據(jù)速率和高級(jí)并行處理能力,這種需求往往適合采用HLST的FPGA來(lái)實(shí)現(xiàn)。
對(duì)目前的FPGA用戶來(lái)說(shuō),HLST工具有望簡(jiǎn)化并加速設(shè)計(jì)進(jìn)程。而對(duì)目前的DSP處理器用戶而言,HLST則提供了一種獨(dú)特而相當(dāng)富有吸引力的作用,無(wú)需編寫RTL代碼就能移植到更強(qiáng)大的處理引擎FPGA上。因此,何樂(lè)而不為呢?
關(guān)鍵問(wèn)題在于,過(guò)去的高級(jí)綜合工具都不能生成高效的RTL代碼(就資源使用率而言)。大多數(shù)工程師都不愿犧牲手編的RTL代碼的性能和效率,因此這種工具未能贏得較大市場(chǎng)份額。不過(guò),最近出現(xiàn)的一些新鮮事例顯示,面向賽靈思FPGA的新型HLST工具效率和易用性都非常高。在這種自相矛盾的情況下,潛在用戶如何評(píng)判高級(jí)綜合工具到底是否值得考慮一下呢?
為了回答這一問(wèn)題, 獨(dú)立基準(zhǔn)測(cè)試與分析公司BDTI于2009年制定了BDTI高級(jí)綜合工具認(rèn)證計(jì)劃。我們的目標(biāo)是針對(duì)FPGA的HLST提供客觀可信的數(shù)據(jù)與分析,確保潛在用戶能快速了解其在高強(qiáng)度信號(hào)處理應(yīng)用中的功能及局限性。評(píng)估時(shí),我們是站在沒(méi)有FPGA開(kāi)發(fā)經(jīng)驗(yàn)但卻具有豐富DSP軟件開(kāi)發(fā)經(jīng)驗(yàn)的工程師角度,這也反映了大量潛在受益于HLST的處理器用戶的實(shí)際情況。
最初進(jìn)行評(píng)估的兩個(gè)HLST程序是Synfora的PICO和AutoESL的AutoPilot。2010年初,我們發(fā)布了首次評(píng)估測(cè)試計(jì)劃的結(jié)果,其中的一些結(jié)果讓許多FPGA和DSP處理器用戶都感到吃驚。
采用HLST實(shí)現(xiàn)應(yīng)用
我們采用HLST實(shí)現(xiàn)測(cè)試應(yīng)用的步驟先是對(duì)所需功能進(jìn)行高級(jí)語(yǔ)言描述,高級(jí)綜合工具由此生成RTL 實(shí)現(xiàn)。隨后賽靈思的RTL工具(集成綜合環(huán)境(ISE)和嵌入式開(kāi)發(fā)套件 (EDK) )將RTL實(shí)現(xiàn)轉(zhuǎn)化為比特流形式的完整FPGA實(shí)現(xiàn),用于對(duì)帶有I/O和存儲(chǔ)器的特定硬件平臺(tái)上的特定賽靈思FPGA進(jìn)行編程。
在本案例中,我們使用的平臺(tái)為賽靈思的XtremeDSPTM視頻入門套件——Spartan?-3A DSP版本,這是一款基于
Spartan-3A DSP FPGA的目標(biāo)設(shè)計(jì)平臺(tái)。
我們本可以評(píng)估僅限于高級(jí)綜合工具,忽略設(shè)計(jì)流程中的“RTL到比特流”部分的評(píng)估。不過(guò)我們認(rèn)為,潛在用戶應(yīng)該了解從高級(jí)應(yīng)用描述轉(zhuǎn)變到FPGA實(shí)現(xiàn)的整個(gè)流程情況,這項(xiàng)工作需要RTL工具以及高級(jí)綜合工具。因此,我們對(duì)整個(gè)實(shí)現(xiàn)流程進(jìn)行評(píng)估,不光是“C到RTL”部分,還包含賽靈思RTL工具鏈。
在任何硬件目標(biāo)上實(shí)現(xiàn)應(yīng)用的第一步通常都是重建初始C代碼。我們所說(shuō)的“重建”是指重新編寫初始的C代碼(初始的代碼主要是為了讓代碼變得更清晰,便于了解,而不是出于性能考慮),將其轉(zhuǎn)變?yōu)楦m合于目標(biāo)處理引擎的格式。比方說(shuō),在DSP處理器上,我們或許應(yīng)當(dāng)重新安排應(yīng)用的控制流程,確保中間數(shù)據(jù)始終適應(yīng)高速緩存要求。就面向FPGA的高級(jí)綜合工具而言,重建通常要提供應(yīng)用表示法,確保工具能提取潛在的并行性,從而優(yōu)化流水線實(shí)現(xiàn)。
一般而言, 高級(jí)綜合工具都不能自動(dòng)進(jìn)行重建,而是需要手工重建。事實(shí)上,設(shè)計(jì)人員可以不借助高級(jí)綜合工具來(lái)進(jìn)行重建。比方說(shuō),在我們的評(píng)估中,我們用Microsoft Visual Studio重建并驗(yàn)證C代碼。相對(duì)于重建和語(yǔ)言翻譯作為統(tǒng)一步驟出現(xiàn)的手編RTL代碼而言,完全用C語(yǔ)言進(jìn)行重建相對(duì)比較簡(jiǎn)單,出錯(cuò)的可能性也少,這是高級(jí)綜合工具的一大優(yōu)勢(shì)。
重建高級(jí)代碼后,用戶讓HLST綜合生成RTL HDL代碼形式指定功能的硬件實(shí)現(xiàn)。賽靈思的RTL工具(ISE和EDK)采用HLST生成的RTL代碼,執(zhí)行綜合和布局布線任務(wù),并報(bào)告實(shí)現(xiàn)的資源利用率,以及通知用戶各種時(shí)序問(wèn)題。
BDTI的工具認(rèn)證計(jì)劃
BDTI制定高級(jí)綜合工具認(rèn)證計(jì)劃的目標(biāo)就是進(jìn)行兩大關(guān)鍵點(diǎn)對(duì)比,以滿足兩類潛在HLST用戶需求。首先,我們希望比較基于HLST的FPGA應(yīng)用實(shí)現(xiàn)和基于手編RTL代碼實(shí)現(xiàn)的效率,這一信息對(duì)目前正在考慮是否要采用HLST加速開(kāi)發(fā)時(shí)間的FPGA用戶而言至關(guān)重要(就資源使用率而言)。其次,我們希望對(duì)用面向FPGA的HLST與用DSP處理器及相關(guān)軟件開(kāi)發(fā)工具實(shí)行同一工作負(fù)載時(shí)的性能與難度比較。這一對(duì)比使DSP處理器用戶能估算出將技術(shù)移植到FPGA設(shè)計(jì)方案上的難度有多大。
我們用明確定義的樣本應(yīng)用(即“工作負(fù)載”)評(píng)估高級(jí)綜合工具流程(包括相關(guān)的RTL工具)。上述應(yīng)用(下一節(jié)做了簡(jiǎn)要說(shuō)明)主要是指代表設(shè)計(jì)人員通常在FPGA上實(shí)現(xiàn)的高強(qiáng)度數(shù)字信號(hào)處理應(yīng)用,數(shù)據(jù)速率和計(jì)算強(qiáng)度均要求高。其他類型的應(yīng)用產(chǎn)生結(jié)果會(huì)與這里給出的結(jié)果可能會(huì)有所不同。
我們用不同方法實(shí)現(xiàn)這兩種應(yīng)用。首先,我們將高級(jí)綜合工具與賽靈思RTL工具結(jié)合使用,在目標(biāo)FPGA上實(shí)現(xiàn)給定的工作負(fù)載。隨后,采用傳統(tǒng)的RTL設(shè)計(jì)方法,或者用DSP處理器配合其相關(guān)開(kāi)發(fā)工具(取決于具體的工作負(fù)載),在相同的FPGA上實(shí)現(xiàn)相同的工作負(fù)載。這樣,我們就能比較出采用不同工具與芯片組合實(shí)現(xiàn)的應(yīng)用的結(jié)果質(zhì)量與生產(chǎn)力。
評(píng)估工作負(fù)載
我們用于評(píng)估目的的兩個(gè)應(yīng)用是BDTI Optical Flow Workload和BDTI DQPSK Receiver Workload。
“光流法”這個(gè)術(shù)語(yǔ)是指一種分析場(chǎng)景中對(duì)象運(yùn)動(dòng)和對(duì)象特性(如邊緣)的視頻處理算法。BDTI Optical Flow Workload操作720p分辨率(1,280 x720逐行掃描)的輸入視頻序列并生成一系列雙維矩陣,確定序列中的水平及垂直運(yùn)動(dòng)。在設(shè)計(jì)工作負(fù)載時(shí),我們集成了動(dòng)態(tài)數(shù)據(jù)依賴性決策和陣列索引,從而確保為工具提供嚴(yán)格的測(cè)試。
BDTI Optical Flow Workload涉及兩個(gè)操作點(diǎn),每個(gè)操作點(diǎn)都使用相同的算法,但針對(duì)不同的標(biāo)準(zhǔn)優(yōu)化。操作點(diǎn)1是固定工作負(fù)載,定義為每秒60幀的720p分辨率處理視頻。操作點(diǎn)1的目的就是最大限度的減少實(shí)現(xiàn)指定分辨率所需的資源利用率(資源利用率指的是實(shí)現(xiàn)工作負(fù)載所需資源占可用處理引擎資源的比例)。
與此同時(shí),操作點(diǎn)2的目的則是用所有可用資源來(lái)最大限度地提高吞吐量(以每秒幀數(shù)為單位)。
第二個(gè)工作負(fù)載BDTI DQPSK Receiver Workload為無(wú)線通信接收器基帶應(yīng)用,其中包含許多無(wú)線收發(fā)器中的傳統(tǒng)通信模塊。這是一種固定工作負(fù)載,只有一個(gè)單一操作點(diǎn)來(lái)處理輸入流,輸入流為復(fù)數(shù)調(diào)制數(shù)據(jù),速率為每秒1875萬(wàn)次采樣,接收器鏈的時(shí)鐘速率為75 MHz。接收器可生成每秒4.6875 M比特的解調(diào)輸出比特流。該工作負(fù)載的目的是最大限度地減少實(shí)現(xiàn)指定吞吐量所需的FPGA資源的使用。
對(duì)不同工作負(fù)載而言,存儲(chǔ)器的使用與存儲(chǔ)器的帶寬要求差異較大。BDTI DSPSK Receiver Workload只需使用最小的存儲(chǔ)器(因此無(wú)需外部存儲(chǔ)芯片),而B(niǎo)DTI Optical Flow Workload則需要存儲(chǔ)四個(gè)視頻幀(每幀1,280 x720像素)的歷史記錄,因此需要外部存儲(chǔ)芯片來(lái)配合Spartan-3A DSP FPGA。Optical Flow Workload操作點(diǎn)1需要單一外部存儲(chǔ)芯片與接口(帶寬約為每秒450 MB),而Optical Flow Workload操作點(diǎn)2通常需要兩個(gè)外部存儲(chǔ)芯片與接口,其帶寬之和約為每秒1.4GB。
就BDTI Optical Flow Workload而言,在典型的FPGA實(shí)現(xiàn)中,操作點(diǎn)1每個(gè)時(shí)鐘循環(huán)處理一個(gè)像素,而操作點(diǎn)2每個(gè)時(shí)鐘循環(huán)則處理兩個(gè)像素。BDTI DQPSK Receiver Workload實(shí)現(xiàn)每四個(gè)時(shí)鐘循環(huán)處理一個(gè)輸入樣品。
度量指標(biāo)和平臺(tái)介紹
此前,雖然用手寫RTL代碼在FPGA上實(shí)現(xiàn)的較高要求應(yīng)用通常能實(shí)現(xiàn)更優(yōu)異的質(zhì)量(即性能和效率較
高),但工作效率不高;而用DSP處理器實(shí)現(xiàn)的應(yīng)用工作效率雖高,但結(jié)果質(zhì)量差強(qiáng)人意。面向FPGA的高級(jí)綜合工具旨在提供二者相結(jié)合后的最佳水平,既提供較高質(zhì)量,又實(shí)現(xiàn)較高效率。因此,我們?cè)谠u(píng)估中考慮了兩組度量指標(biāo):結(jié)果質(zhì)量和可用性。
結(jié)果質(zhì)量度量指標(biāo)用于評(píng)估工作負(fù)載實(shí)現(xiàn)的性能和資源使用情況。BDTI Optical Flow Workload提供HLSTXilinx流程和DSP處理器流程的結(jié)果質(zhì)量度量指標(biāo)。BDTI DQPSK Receiver Workload提供HLST-Xilinx流程以及賽靈思根據(jù)典型業(yè)界設(shè)計(jì)實(shí)踐采用手寫RTL設(shè)計(jì)的傳統(tǒng)FPGA實(shí)現(xiàn)方案的結(jié)果流程,其中包括在適當(dāng)?shù)臅r(shí)候使用賽靈思CORE GeneratorTM知識(shí)產(chǎn)權(quán)模塊。
可用性度量指標(biāo)用于評(píng)估
HLSTXilinx設(shè)計(jì)方案的工作效率和易用程度,并以我們實(shí)現(xiàn)BDTI Optical Flow Workload 的情況為參考依據(jù)。這些度
量指標(biāo)將面向FPGA的HLST和賽靈思工具流相對(duì)于使用DSP處理器及其相關(guān)軟件開(kāi)發(fā)工具鏈的工作效率和易用性進(jìn)行比較。我們根據(jù)工具使用的九個(gè)方面量化評(píng)估可用性度量指標(biāo),其中包括直接體驗(yàn)、易用性、工具功能完整性、整體設(shè)計(jì)方法的效率以及文檔與支持質(zhì)量等。
就本次評(píng)估而言, 目標(biāo)FPGA為賽靈思Spar tan-3A DSP 3400(XC3SD3400A);就BDTI Optical F l o w Wo r k l o a d而言, 賽靈思XtremeDSP Video Starter Kit—Spartan-3A DSP Edition為目標(biāo)平臺(tái)。我們使用了賽靈思RTL工具,包括ISE和EDK工具套件(版本 10.1.03,lin64)以及高級(jí)綜合工具等。
本項(xiàng)目中的目標(biāo)DSP處理器為德州儀器的TMS320DM6437。這款面向視頻的處理器采用600-MHz TMS320C64x+ DSP內(nèi)核以及視頻硬件加速器(硬件加速器不適用于BDTI Optical Flow Workload,因此我們并未使用)。評(píng)估中采用了德州儀器的DM6437 Digital Video Development Environment作為目標(biāo)平臺(tái),并采用了德州儀器的Code Composer Studio工具套件(版本為V3.3.82.13,Code Generation Tools版本為 6.1.9)。
實(shí)現(xiàn)與認(rèn)證進(jìn)程
我們將兩個(gè)工作負(fù)載的實(shí)現(xiàn)工作分配給兩個(gè)芯片,并根據(jù)使用的芯片和工具鏈來(lái)選擇采用賽靈思和BDTI不同的高級(jí)綜合工具廠商。HLST廠商使用其自有工具以及賽靈思的工具實(shí)現(xiàn)兩個(gè)工作負(fù)載,并將性能和資源使用結(jié)果提交給BDTI進(jìn)行驗(yàn)證與認(rèn)證。我們通過(guò)經(jīng)認(rèn)證的結(jié)果生成了本文的結(jié)果質(zhì)量度量指標(biāo)。
與此同時(shí),我們的工程師接受了HLST廠商的培訓(xùn),并分別用高級(jí)綜合工具和賽靈思工具獨(dú)立實(shí)現(xiàn)了BDTI Optical Flow Workload的某些部分。
這一過(guò)程為BDTI提供了工具鏈易用性及其生成結(jié)果質(zhì)量的第一手信息。我們還在DSP處理器上實(shí)現(xiàn)了BDTI Optical Flow Workload,而賽靈思則實(shí)現(xiàn)手寫RTL FPGA版的BDTI DQPSK Receiver Workload(隨后也經(jīng)BDTI驗(yàn)證與認(rèn)證)。
結(jié)果質(zhì)量:性能和效率如圖1所示,用高級(jí)綜合工具為BDTI Optical Flow Workload創(chuàng)建的FPGA實(shí)現(xiàn)方案的性能比 DSP處理器實(shí)現(xiàn)方案高出約40倍。我們?cè)俜治鲆幌滦酒杀?,圖2所示的是相應(yīng)的性價(jià)比優(yōu)勢(shì),F(xiàn)PGA實(shí)現(xiàn)方案大約有30倍的優(yōu)勢(shì)。顯然,配合高級(jí)綜合工具使用的FPGA能為某些類型的應(yīng)用提供出色的性價(jià)比優(yōu)勢(shì)(更多詳細(xì)結(jié)果請(qǐng)參見(jiàn) 。)
?
?
圖 1——使用HLST的Spartan-3A DSP FPGA在BDTI Optical Flow Workload視頻應(yīng)用上以720p的分辨率獲
得了每秒195幀的成績(jī),而同樣情況下C64x+ DSP處理器的成績(jī)僅為5.1幀每秒。
?
?
圖 2——Spartan-3A DSP FPGA上使用HLST的BDTI Optical Flow Workload (720p) 性價(jià)比優(yōu)于600-MHz TI
C64x+架構(gòu)的DSP。
我們還就BDTI DQPSK Receiver Workload對(duì)基于HLST的FPGA實(shí)現(xiàn)方案與采用手寫RTL實(shí)現(xiàn)相同工作負(fù)載的效率進(jìn)行了評(píng)估。我們?cè)俅伟l(fā)現(xiàn),HLST的表現(xiàn)非常出色。如表1所示,AutoPilot和PICO都能生成效率(即資源使用情況)相當(dāng)于手寫RTL代碼的RTL代碼。HLST和手寫RTL的效率結(jié)果相當(dāng)并非偶然;我們?cè)谠u(píng)估工作開(kāi)始時(shí)就為AutoESL和Synfora提供了手寫RTL實(shí)現(xiàn)方案的資源使用示意圖,這兩家公司可能用該圖作為其優(yōu)化實(shí)現(xiàn)方案的目標(biāo)(不過(guò)我們也應(yīng)當(dāng)注意,這種信息并非是高效使用高級(jí)綜合工具所必需的,而且HLST廠商并未獲得RTL設(shè)計(jì)方案)。
我們還采訪了使用 AutoESL 和
Synfora 高級(jí)綜合工具的設(shè)計(jì)人員,他
們確認(rèn)了資源使用情況的真實(shí)性。事實(shí)
電子發(fā)燒友App




















評(píng)論