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