《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > BDTI研究認證以DSP為核心的 FPGA 設(shè)計的高級綜合流程
BDTI研究認證以DSP為核心的 FPGA 設(shè)計的高級綜合流程
來源:電子技術(shù)應(yīng)用2010年第9期
Jeff Bier1, Jennifer Eyre White2
1. 伯克利設(shè)計技術(shù)公司(BDTI)總裁; 2.伯克利設(shè)計技術(shù)公司DSP分析師
摘要: 以往,,手寫RTL代碼在FPGA上實現(xiàn)的高強度應(yīng)用通常能實現(xiàn)較高的質(zhì)量,但是生產(chǎn)力不高;而用DSP處理器實現(xiàn)的應(yīng)用生產(chǎn)力雖高,,但結(jié)果質(zhì)相對較差,。權(quán)衡可編程DSP處理器和FPGA的使用問題時,開發(fā)時間對許多系統(tǒng)設(shè)計人員而言都是一大障礙,。BDTI的評估顯示,,高級綜合工具可以在很大程度上消除這一障礙,能夠簡化DSP開發(fā)人員用 FPGA 實現(xiàn)設(shè)計的工作,。
關(guān)鍵詞: FPGA DSP 高級綜合工具(HLST)
Abstract:
Key words :

摘  要: 以往,,手寫RTL代碼在FPGA上實現(xiàn)的高強度應(yīng)用通常能實現(xiàn)較高的質(zhì)量,但是生產(chǎn)力不高,;而用DSP處理器實現(xiàn)的應(yīng)用生產(chǎn)力雖高,,但結(jié)果質(zhì)相對較差。權(quán)衡可編程DSP處理器和FPGA的使用問題時,,開發(fā)時間對許多系統(tǒng)設(shè)計人員而言都是一大障礙,。BDTI的評估顯示,高級綜合工具可以在很大程度上消除這一障礙,,能夠簡化DSP開發(fā)人員用 FPGA 實現(xiàn)設(shè)計的工作,。
關(guān)鍵詞: DSP;FPGA,;高級綜合工具(HLST)

    近年來,,高級綜合工具(HLST)已成為在設(shè)計方案中使用或希望使用FPGA的工程師的必備工具。這種工具以應(yīng)用的高級表示法(例如用C語言或MATLAB的M語言編寫的表示法)為輸入,,并生成面向FPGA的硬件實現(xiàn)的寄存器傳輸級HDL描述,。
    高級綜合工具對兩種類型的潛在用戶非常有用,一是正在實現(xiàn)高強度數(shù)字信號處理(DSP)應(yīng)用的FPGA用戶,,二是正在實現(xiàn)高強度數(shù)字信號處理(DSP)應(yīng)用的高性能DSP處理器用戶,。這是因為信號處理工作負載非常繁重,通常需要較高的數(shù)據(jù)速率和高級并行處理能力,,這種需求往往適合采用HLST的FPGA來實現(xiàn),。
    對目前的FPGA用戶來說,HLST工具有望簡化并加速設(shè)計進程,。而對目前的DSP處理器用戶而言,,HLST則提供了一種獨特且相當(dāng)富有吸引力的作用,無需編寫RTL代碼就能移植到更強大的處理引擎FPGA上,。
    過去的高級綜合工具都不能生成高效的RTL代碼(就資源使用率而言),。大多數(shù)工程師都不愿犧牲手編的RTL代碼的性能和效率,因此這種工具未能贏得較大市場份額,。不過,,最近出現(xiàn)的一些新鮮事例顯示,面向賽靈思FPGA的新型HLST工具其效率和易用性都非常高。在這種情況下,,潛在用戶要如何去評判高級綜合工具是否有使用價值呢,?
    為了回答這一問題,獨立基準(zhǔn)測試與分析公司BDTI于2009年制定了BDTI高級綜合工具認證計劃,。其目標(biāo)是為FPGA的HLST提供客觀可信的數(shù)據(jù)與分析,,確保潛在用戶能快速了解其在高強度信號處理應(yīng)用中的功能及局限性。評估時站在沒有FPGA開發(fā)經(jīng)驗但卻具有豐富DSP軟件開發(fā)經(jīng)驗的工程師角度,,這也反映了大量潛在受益于HLST的處理器用戶的實際情況,。
    最初進行評估的兩個HLST程序是Synfora的PICO和AutoESL的AutoPilot。2010年初,,BDTI發(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到比特流”部分的評估,但評估者認為,,潛在用戶應(yīng)該了解從高級應(yīng)用描述轉(zhuǎn)變到FPGA實現(xiàn)的整個流程情況,,而這項工作需要RTL工具以及高級綜合工具,因此還是應(yīng)對整個實現(xiàn)流程進行評估,,不只是“C到 RTL”部分,,還包含賽靈思RTL工具鏈。
    在任何硬件目標(biāo)上實現(xiàn)應(yīng)用的第一步通常都是重建初始C代碼,。這里所說的“重建”是指重新編寫初始的C代碼(初始的代碼主要是為了讓代碼變得更清晰,,便于了解,而不是出于性能考慮),,將其轉(zhuǎn)變?yōu)楦m合于目標(biāo)處理引擎的格式(例如在DSP處理器上重新安排應(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的工具認證計劃
    BDTI制定高級綜合工具認證計劃的目標(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ā)工具實行同一工作負載時的性能與難度比較,。這一對比可幫助DSP處理器用戶估算出將技術(shù)移植到FPGA設(shè)計方案上的難度有多大,。
    用明確定義的樣本應(yīng)用(即“工作負載”)評估高級綜合工具流程(包括相關(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)給定的工作負載,。隨后,,采用傳統(tǒng)的RTL設(shè)計方法,或者用DSP處理器配合其相關(guān)開發(fā)工具(取決于具體的工作負載),,在相同的FPGA上實現(xiàn)相同的工作負載,。這樣就能比較出采用不同工具與芯片組合實現(xiàn)的應(yīng)用的結(jié)果質(zhì)量與生產(chǎn)力。
評估工作負載
    用于評估目的的兩個應(yīng)用是BDTI Optical Flow Workload和BDTI DQPSK Receiver Workload,。
    “光流法”是指一種分析場景中對象運動和對象特性(如邊緣)的視頻處理算法,。BDTI Optical Flow Workload操作720 p分辨率(1 280×
720逐行掃描)的輸入視頻序列并生成一系列雙維矩陣,,確定序列中的水平及垂直運動。在設(shè)計工作負載時集成了動態(tài)數(shù)據(jù)依賴性決策和陣列索引,,從而確保為工具提供嚴(yán)格的測試,。
    BDTI Optical Flow Workload涉及兩個操作點,每個操作點都使用相同的算法,,但針對不同的標(biāo)準(zhǔn)優(yōu)化,。操作點1是固定工作負載,定義為60幀/s的720 p分辨率處理視頻,。其目的就是最大限度地減少實現(xiàn)指定分辨率所需的資源利用率(資源利用率指的是實現(xiàn)工作負載所需資源占可用處理引擎資源的比例),。
    與此同時,操作點2的目的則是用所有可用資源來最大限度地提高吞吐量(以每秒幀數(shù)為單位),。
    第二個工作負載BDTI DQPSK Receiver Workload為無線通信接收器基帶應(yīng)用,,其中包含許多無線收發(fā)器中的傳統(tǒng)通信模塊。這是一種固定工作負載,,只有一個操作點來處理輸入流,,輸入流為復(fù)數(shù)調(diào)制數(shù)據(jù),速率為18.75 MS/s,,接收器鏈的時鐘速率為75 MHz,。接收器可生成4.687 5 Mb/s的解調(diào)輸出比特流。該工作負載的目的是最大限度地減少實現(xiàn)指定吞吐量所需的FPGA資源的使用,。
    對不同工作負載而言,,存儲器的使用與存儲器的帶寬要求差異較大。BDTI DSPSK Receiver Workload 只需使用最小的存儲器(因此無需外部存儲芯片),,而 BDTI Optical Flow Workload則需要存儲4個視頻幀(每幀1 280×720像素)的歷史記錄,,因此需要外部存儲芯片來配合Spartan-3A DSP FPGA。Optical Flow Workload操作點1需要單一外部存儲芯片與接口(帶寬約為每秒450 MB),,而Optical Flow Workload操作點2通常需要兩個外部存儲芯片與接口,,其帶寬之和約為1.4 Gb/s。
    就BDTI Optical Flow Workload而言,,在典型的FPGA實現(xiàn)中,,操作點1每個時鐘循環(huán)處理一個像素,而操作點2每個時鐘循環(huán)處理2個像素,。BDTI DQPSK Receiver Workload實現(xiàn)每4個時鐘循環(huán)處理1個輸入樣品,。
度量指標(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)用于評估工作負載實現(xiàn)的性能和資源使用情況。BDTI Optical Flow Workload提供HLST-Xilinx流程和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ù)工具使用的9個方面量化評估可用性度量指標(biāo),,其中包括直接體驗,、易用性、工具功能完整性,、整體設(shè)計方法的效率以及文檔與支持質(zhì)量等,。
    就本次評估而言,目標(biāo)FPGA為賽靈思Spartan-3A DSP 3400(XC3S-
D3400A),;就BDTI Optical Flow Work-
load而言,,賽靈思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)與認證進程
    將兩個工作負載的實現(xiàn)工作分配給兩個芯片,,并根據(jù)使用的芯片和工具鏈來選擇采用賽靈思和BDTI不同的高級綜合工具廠商,。HLST廠商使用其自有工具以及賽靈思的工具實現(xiàn)兩個工作負載,并將性能和資源使用結(jié)果提交給BDTI進行驗證與認證,。利用認證的結(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驗證與認證),。
結(jié)果質(zhì)量:性能和效率
    如圖 1 所示,,使用HLST的Spartan-3A DSP FPGA 在BDTI Optical Flow Workload視頻應(yīng)用上以 720 p的分辨率獲得了195幀/s的成績,而同樣情況下C64x+DSP處理器的成績僅為5.1幀/s,。前者的性能比后者高出約40倍,。再分析一下芯片成本,圖2所示的是相應(yīng)的性價比優(yōu)勢,,Spartan-3A DSP FPGA 上使用HLST的BDTI Optical Flow Workload(720p)性價比優(yōu)于600 MHz TI C64x+架構(gòu)的DSP,,F(xiàn)PGA實現(xiàn)方案大約有30倍的優(yōu)勢。顯然,,配合高級綜合工具使用的FPGA能為某些類型的應(yīng)用提供出色的價性比優(yōu)勢(更多詳細結(jié)果請參見www.BDTI.com),。

    此外還就BDTI DQPSK Receiver Workload對基于HLST的FPGA實現(xiàn)方案與采用手寫RTL實現(xiàn)相同工作負載的效率進行了評估。再次發(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è)計人員確認了資源使用情況的真實性,。他們表示該工具所產(chǎn)生的結(jié)果優(yōu)于通過手寫RTL代碼所能實現(xiàn)的結(jié)果,,而且還減少了大量設(shè)計和驗證工作——這是一個巨大的成就。
易用性度量指標(biāo)
    易用性度量指標(biāo)主要用于評估高級綜合工具流程相對于DSP處理器工具鏈的易用性,。對每個易用性度量指標(biāo)都相應(yīng)給出優(yōu)秀,、很好、好,、一般和差等評分,。在打分時,要考慮完整項目的整體設(shè)計方法——先是C語言應(yīng)用規(guī)范,,最后是目標(biāo)芯片(FPGA或DSP處理器)上的實時實現(xiàn),。易用性度量指標(biāo)如表2所示。


    通常,,PICO和AutoPilot都便于安裝和使用,,甚至無需FPGA設(shè)計經(jīng)驗就能進行。與此形成對比的是,,在安裝和使用賽靈思的RTL工具時遇到了很大困難,,最終還是決定邀請經(jīng)驗豐富的FPGA工程師協(xié)助設(shè)置運行在FPGA上的設(shè)計方案。例如,,需要讓FPGA工程師解讀賽靈思RTL工具發(fā)出的錯誤消息,,并將HLST生成的RTL模塊與I/O和存儲器模塊連接在一起,,以生成可在FPGA上運行的完整設(shè)計方案??傮w而言,,高級綜合工具之外發(fā)生的設(shè)計問題相當(dāng)難以解決。如果HLST用戶沒有RTL設(shè)計和工具技能,,那么在設(shè)計流程的這一階段就需要具有相關(guān)經(jīng)驗的工程師予以幫助,。
    不過,即便考慮到與流程中 RTL-比特流部分相關(guān)的挑戰(zhàn),,從表2中仍能看出,,HLST-Xilinx工具鏈仍能夠?qū)崿F(xiàn)出色的易用性和生產(chǎn)力業(yè)績,,且并不比DSP處理器流程所產(chǎn)生的業(yè)績差,。總之,,如果有經(jīng)驗豐富的 FPGA 工程師幫助開展流程中的某些工作,,則可發(fā)現(xiàn)在TI DSP處理器上實現(xiàn)BDTI Optical Flow Workload的工作量與采用兩種HLST在賽靈思FPGA上加以實現(xiàn)的工作量基本相同。
    上述結(jié)論意義重大,,可能會讓很多DSP軟件工程師感到驚訝,。在比較可編程DSP處理器和FPGA的使用時,開發(fā)時間對許多系統(tǒng)設(shè)計人員來說都是一大障礙,。BDTI的評估顯示,,這種新方法在很大程度上為 BDTI Optical Flow Workload 等應(yīng)用消除了時間障礙。
HLST:規(guī)則改變者
    BDTI早先對FPGA和DSP處理器進行的基準(zhǔn)測試(發(fā)表于2007年的“用FPGA完成DSP工作任務(wù)”報告中)顯示,,用傳統(tǒng)RTL設(shè)計方法實現(xiàn)FPGA時,,F(xiàn)PGA在某些應(yīng)用中具有較大的性能和性價比優(yōu)勢。新的分析結(jié)果確認了上述性能優(yōu)勢,,這表明FPGA配合使用高級綜合工具也可實現(xiàn)類似的性價比優(yōu)勢,。此外還發(fā)現(xiàn),目前所評估的兩種高級綜合工具——Synfora的PICO和AutoESL的AutoPilot所實現(xiàn)的資源使用效率相當(dāng)于通過手寫RTL代碼所實現(xiàn)的效率,。盡管沒有直接評估HLST相對于手寫RTL代碼的時間節(jié)約優(yōu)勢,,但根據(jù)對目前HLST用戶的采訪結(jié)果可以相信時間方面的優(yōu)勢也會相當(dāng)顯著。
    用傳統(tǒng)手寫RTL編碼創(chuàng)建的FPGA設(shè)計方案通常比DSP處理器上用軟件實現(xiàn)的同類應(yīng)用花費更加多的工作量,,這較好地解釋了很多DSP處理器用戶不愿意改變工作方法的原因,。因此,本項目最令人驚訝的結(jié)果或許就在于,,在FPGA上(用AutoPilot或PICO配合賽靈思工具)實現(xiàn)評估工作負載與使用DSP處理器所需的工作量基本相當(dāng),。
    對FPGA用戶而言,我們的研究充分說明HLST可在無顯著負面影響的情況下提升生產(chǎn)力,。而對于DSP處理器用戶,,F(xiàn)PGA顯而易見確實值得考慮,,HLST正快速成為改變格局的重大技術(shù)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。