Sébastien Fuhrmann,理學(xué)碩士
研發(fā)工程師
巴黎CNRS-ENSEA-UCP ETIS實驗室(現(xiàn)就職于Elsys Design) se.fuhrmann@gmail.com
Bertrand Granado,博士
教授
巴黎CNRS-ENSEA-UCP ETIS實驗室和UPMC LIP6 實驗室 bertrand.granado@lip6.fr
采用自動方法為兩種圖像處理IP核實現(xiàn)類似于手工RTL編碼的效果
FPGA被廣泛用作信號處理應(yīng)用中的原型設(shè)計或SoC實現(xiàn)工具。它們具備大規(guī)模并行處理功能、豐富的片上存儲器異構(gòu)模塊以及DSP構(gòu)建塊,是一款高 效的實現(xiàn)方案,往往能夠比肩標(biāo)準(zhǔn)的微處理器、DSP和GPU。而集成ARM® 硬處理器和可編程邏輯的賽靈思28nm Zynq®-7000 All Programmable SoC的問世,則使賽靈思器件對嵌入式系統(tǒng)來說更富吸引力。
盡管FPGA具有優(yōu)異的特性,極富吸引力,但一些設(shè)計人員出于對編程復(fù)雜性(編程工作晦澀難懂而且涉及VHDL和Verilog等硬件描述語言)的 顧慮仍然避免使用該器件。而實用的電子系統(tǒng)級(ESL)設(shè)計的問世則有望確保簡化設(shè)計任務(wù)并使更多設(shè)計工程師掌握FPGA編程技術(shù)。
ESL工具在業(yè)內(nèi)由來已久,其可將設(shè)計抽象提高到主流寄存器傳輸級(RTL)之上的水平。[1]在經(jīng)過無數(shù)次失敗之后,這些高層次的設(shè)計工具最終在 實際應(yīng)用中得到了廣泛采用。賽靈思已經(jīng)在其最新設(shè)計工具Vivado® 設(shè)計套件中采用ESL方法來解決FPGA的可編程性問題。Vivado HLS是一種內(nèi)置ESL的高層次綜合工具,能夠自動將C、C++或SystemC轉(zhuǎn)換為HDL語言設(shè)計。
Vivado HLS與Zynq SoC的推出激發(fā)了我們團隊在工業(yè)學(xué)術(shù)合作項目IP圖像處理解決方案研發(fā)過程中對ESL方法和手工編碼進行對比分析的想法。我們希望我們的工作能夠為其他 有興趣的設(shè)計團隊提供公正獨立的案例研究結(jié)果,因為這些工具仍然比較新,而且有關(guān)一般用戶使用體驗的參考文獻也不是很多。BDTI實驗 [2, 3]從總體上很好地反映了在更高層面將ESL工具用于FPGA的性能和潛力。但為了能通過ESL工具來實現(xiàn),BDTI團隊以最佳方式對源應(yīng)用 (source application)程序進行了重寫。
相比之下,我們則采用針對PC編寫的最初算法的源代碼。
在將IP的手工編碼模塊(之前曾在賽靈思競爭對手的40nm中端產(chǎn)品上驗證過)與Zynq SoC上的ESL編程方法進行對比時我們發(fā)現(xiàn),ESL結(jié)果在多個方面都可以媲美手動實現(xiàn)方案,唯有時延明顯例外。此外,ESL方案還能顯著縮短開發(fā)時間。
我們的關(guān)鍵目標(biāo)是:
• 在不修改或者盡可能少改動的情況下,評估現(xiàn)有(C/C++)代碼向硬件移植的工作量/質(zhì)量;
• 進行具體的設(shè)計空間探索(ESL與手工編碼IP);
• 研究生產(chǎn)力權(quán)衡因素(效率與設(shè)計時間);
• 檢查可移植性問題(移植到其它FPGA或ASIC上);
• 衡量ESL工具對硬件、軟件和系統(tǒng)設(shè)計人員的易用性。
基于VIVADO的方法
我們采用賽靈思Vivado HLS 2012.4 (ISE® 14.4)設(shè)計工具和基于Zynq SoC的ZedBoard(XC7z20clg484-1)對所提出的實驗進行原型設(shè)計。我們從針對掃描應(yīng)用的現(xiàn)行圖像處理FPGA-SoC合作項目中的 10個IP核中選出兩個。所選IP均為項目中最復(fù)雜的IP核。這些IP采用Verilog優(yōu)化設(shè)計并在賽靈思競爭對手的40nm產(chǎn)品上進行過驗證,可針對 業(yè)界合作伙伴Sagemcom公司的掃描產(chǎn)品執(zhí)行特定的圖像處理功能。
圖1概括說明了使用賽靈思工具的實驗流程。為達到實驗?zāi)康?,我們從算法最初的C源代碼開始。值得注意的是,該代碼通過傳統(tǒng)方式針對PC進行編寫,而且就嵌入式系統(tǒng)高效移植而言并非最佳代碼。

圖1 – 針對Zynq Z20 SoC的硬件測試系統(tǒng)
我們的目標(biāo)是,理想情況下對代碼進行最少修改甚至不修改。盡管Vivado HLS可支持ANSI C/C++,我們?nèi)孕栳槍討B(tài)存儲器分配和復(fù)雜結(jié)構(gòu)體指針等問題做一些基本調(diào)整。根據(jù)賽靈思技術(shù)文檔的建議,我們在沒有觸及核心編碼的情況下完成了這一任 務(wù)。我們在函數(shù)自變量上創(chuàng)建AXI4主/從(AXI-Lite)接口,并利用各種約束條件在Vivado HLS中處理代碼。我們使用指令來指定這些約束條件,以便創(chuàng)建不同的解決方案,并利用ZedBoard在Zynq Z20 SoC上對其進行驗證。
為便于比較,我們必須設(shè)定涉及時延的唯一約束條件。我們必須假定:在相同的頻率下,Zynq SoC的AXI4接口與手工編碼設(shè)計中競爭對手FPGA總線的時延具有可比較性。將RTL代碼(IP核)移植到賽靈思環(huán)境非常簡單直觀,但對接口進行重新 設(shè)計則超出了我們的工作范圍。
在開發(fā)板上進行原型設(shè)計之前,我們利用Vivado HLS工具的內(nèi)置SystemC協(xié)同仿真功能來驗證生成的硬件。事實上Vivado HLS也為IP生成軟件驅(qū)動器(訪問函數(shù)),這會進一步加快IP驗證與調(diào)試的速度。
我們使用Zynq器件中ARM Cortex™-A9 MPCore的666.7 MHz Core 0以及一個533.3 MHz 的DDR3接口,并通過AXI4定時器進行時延測量。圖2給出了FPGA原型設(shè)計所采用的驗證流程。首先在ARM上利用初始的C源代碼對圖像進行處理,以 獲得“黃金”參考結(jié)果。然后利用IP處理相同的圖像,將它們進行比較并驗證結(jié)果。

作為獨立項目,我們還評估了100-MHz MicroBlaze™處理器的兩個IP模塊的時延測量值。該處理器帶有8+8KB I+D高速緩存,以及通過AXI4總線與DDR3直接相連的硬件乘法器和除法器單元。我們將MicroBlaze上兩個IP核的時延測量值作為參考值,用 以比較由Vivado HLS生成IP和ARM處理器所實現(xiàn)的加速效果。這種加速性能為FPGA設(shè)計人員帶來了可觀的軟件計算能力。
實驗結(jié)果
現(xiàn)在我們來具體看一下兩個IP核的設(shè)計空間探索問題,并利用HLS工具將它們標(biāo)記為IP1和IP2。我們已經(jīng)詳細(xì)概述了IP1 的實驗,但為了簡便起見,對于IP2,我們只給出其結(jié)果。最后,我們還將針對賽靈思專家就賽靈思ESL工具中AXI4 “Burst”實現(xiàn)效率問題所給出的反饋意見進行討論。
表1和表2按步驟(表示為S1、S2等)列出了IP1設(shè)計空間探索的細(xì)節(jié)。在實驗中,我們采用了256 x 256像素的灰度測試圖。需要注意的是時鐘周期、時延和功耗數(shù)據(jù)僅為在對多次實現(xiàn)結(jié)果交叉分析進行快速綜合后,通過工具給出的參考值。正如您在FPGA原 型設(shè)計結(jié)果(表2)的討論中所看到的,最終實現(xiàn)后,實際值會發(fā)生顯著變化。

表1 – 針對IP1的HLS探索結(jié)果
*工具的功耗值用于迭代比較,因此沒有單位

表2 – 針對IP1探索的FPGA原型設(shè)計結(jié)果
*參考值,請參閱方法章節(jié)
**從XPower分析器得到的動態(tài)功耗
S1:源代碼轉(zhuǎn)換
在第一步中,我們首先編譯沒有最優(yōu)約束條件的代碼(除了前面所述的必須修改項)。從表1中可以看到,硬件占用了大量資源。當(dāng)我們根據(jù)Vivado HLS快速綜合報告和GUI設(shè)計查看器工具分析資源分配詳情時,可以很清楚地看出算法中的幾個除法運算占用了絕大部分資源。與乘法器不同,在FPGA中沒 有用于除法的硬模塊,因此除法運算會占用大量邏輯。因此,我們首先要解決的就是優(yōu)化這個問題。
S2:S1結(jié)合共享除法器
直觀地說,對于如何減少除法硬件資源消耗問題,我們首先想到的是采用資源共享的方式來解決,但這同時也會降低性能。不幸的是,在我們所使用的工具版 本中很難甚至是不太可能直接將定制約束條件應(yīng)用于運算符。不過解決方法也很簡單,我們可以用函數(shù)來替代除法運算(/),這樣就可將約束條件應(yīng)用于函數(shù)。在 默認(rèn)情況下,此工具可將函數(shù)作為內(nèi)聯(lián)函數(shù)來使用,可為每個除法運算生成完整的除法硬件。我們在除法函數(shù)上應(yīng)用“Allocation”指令,運用不同的值 來進行實驗,并監(jiān)控其對時延的影響。最后我們選擇了一個共享除法硬件。正如您在表1中所看到的,這種方式顯著減少了查找表(LUT)、觸發(fā)器(FF)和其 它邏輯資源的使用量,而且對時延的影響也可以忽略不計,完全達到了雙贏效果。
S3:S2結(jié)合除數(shù)到乘法的轉(zhuǎn)換
接下來我們選擇將除法運算轉(zhuǎn)換為乘法。這種轉(zhuǎn)換是可行的,因為該應(yīng)用使用的是常數(shù)值除法。我們這樣做的目的有兩方面:首先,盡管已決定采用一個共享 除法器來完成所有的除法運算,但除法硬件依然比較昂貴(約2000個LUT和觸發(fā)器);其次,這種共享除法器完成除法運算的速度相當(dāng)緩慢,需要34個周 期,而且我們所使用的賽靈思工具僅支持HLS庫中的一種除法器類型。但在接下來的步驟中,我們可以看到實現(xiàn)乘法則有多種選擇。
因此,在本步驟中,我們將除法運算轉(zhuǎn)換為乘法運算(我們通過使用C語言的#ifdef指令來保持代碼的可移植性)。通過AXI-Lite從寄存器將 近似值作為函數(shù)參數(shù)提供。這就是在此步驟中表1能夠顯示性能和資源使用量得到顯著改善的原因,但乘法運算量的加大必須采用更多DSP。
S4:S3結(jié)合緩沖存儲器分區(qū)
源算法采用統(tǒng)一布置在存儲器分配(malloc)模塊中的多個內(nèi)存緩沖器(8位、16位和32位)。在準(zhǔn)備好算法Vivado HLS這一轉(zhuǎn)換初始階段(圖1)中 ,存儲器模塊會轉(zhuǎn)變?yōu)閮?nèi)部片上存儲器(Block RAM)。
盡管對于共享外部存儲器來說采用統(tǒng)一的存儲器分配模塊是一種比較普遍的選擇,但是當(dāng)使用內(nèi)部片上存儲器時,更好的做法則是利用存儲器分區(qū)來實現(xiàn)更快 的吞吐量。因此在這個步驟中,我們將比較大的存儲器模塊分成若干獨立的小存儲器(8位、16位和32位)。表1顯示的結(jié)果突出了明顯的性能改善效果,而且 分區(qū)也只是少量增加了BRAM數(shù)量(表2)。此外,這種技術(shù)還大幅減少了邏輯資源占用,原因可能是用于存儲器訪問的控制邏輯得到了簡化。
S5:S4結(jié)合共享32/64位帶符號或無符號乘法器
在這個步驟中,我們受S2中共享除法器實驗的啟發(fā),使用共享資源對DSP模塊進行了優(yōu)化。首先,我們使用設(shè)計查看器實用工具詳細(xì)分析生成的硬件,并 將其與C源代碼進行相互參考。分析結(jié)果顯示在原始模式下硬件正在使用的26個不同種類的乘法器單元,可被分為無符號16/32/64位乘法和32位帶符號 乘法。與S2實驗一樣,我們構(gòu)建了一個由32位帶符號、32位無符號和64位無符號乘法器(用函數(shù)替代“*”運算)組成的系統(tǒng)。然后,我們應(yīng)用了一個分配 約束條件,即只用一個單元來完成這三種截然不同的運算。表1顯示盡管性能有些損失,但是DSP的使用量顯著減少。這一結(jié)果激發(fā)我們進一步研究智能共享方 案。
S6:S5結(jié)合智能乘法共享
為減少由乘法器共享帶來的性能損失,需要以更加巧妙的方式對其加以利用。我們創(chuàng)建了兩個附加乘法器類型,即16位無符號乘法器和具有64位返回值的 32位無符號乘法器。我們以相互獨立的方式使用這些乘法器并改變它們的數(shù)量,經(jīng)過多次實驗后得出的最終解決方案包含兩個無符號64位乘法器、兩個無符號 32位乘法器、一個帶符號32位乘法器、一個無符號16位乘法器以及一個獨立的帶64位返回值的無符號32位乘法器。這種技術(shù)可使性能得到小幅改善(如表 1所示),但是也會小幅增加DSP的使用量。
S7:S6結(jié)合乘法器時延實驗(組合乘法器)
在乘法器優(yōu)化的最后階段,我們完成了兩次用以改變乘法器時延值的實驗。默認(rèn)情況下,Vivado HLS所使用的乘法器的延遲時間介于2至5個時鐘周期之間。硬IP核中的乘法器要么是單時鐘周期要么是組合乘法器。在這個步驟中,我們使用“資源”指令并 從庫中選擇相應(yīng)的組合乘法器,將乘法器的時延設(shè)定為0。結(jié)果如表1中所示,延遲時間得到了改善。然而,從時序的角度來看設(shè)計明顯變差了許多,因此FPGA 設(shè)計的時鐘速度減慢可能會將性能提高變?yōu)榻档托阅堋?/p>
S8:S6結(jié)合乘法器時延實驗(1時鐘周期乘法器)
在這個步驟中,我們不使用組合乘法器,而是從庫中選擇一個單時鐘周期乘法器。結(jié)果如表1所示。我們可以看到時延略有增加,但出人意料的是時鐘周期顯著增大,從而導(dǎo)致硬件變慢。
S9、S10、S11:Burst訪問實驗
到目前為止,所有探索步驟對C代碼功能方面的知識要求很少或者根本不要求。在最后的實驗中,我們探索了Burst訪問。對基于共享存儲器系統(tǒng)的IP 來說Burst訪問幾乎是必不可少的,因為用于小塊數(shù)據(jù)或隨機數(shù)據(jù)訪問的總線具有較高的時延。為此,我們分析了C代碼的算法結(jié)構(gòu),以便探究實現(xiàn)Burst 訪問的可能性,因為從一般的軟件角度來說根本就沒有Burst訪問這一概念。但是值得格外關(guān)注的是,即便是在Burst訪問實驗中,我們也從未改變過軟件 的代碼結(jié)構(gòu)。
Burst訪問實驗分兩個步驟執(zhí)行。首先我們使用轉(zhuǎn)儲方法(盡管并不實用,但不失為獲得技術(shù)信息的良好途徑),此時整個圖像被快速送到內(nèi)部存儲器緩 沖器中,并在實施最后快速輸出完整結(jié)果。通過使用較小的圖像并確保FPGA中有充足的片上存儲器,就可以很輕松做到這點。我們將此迭代步驟稱為 “superburst”(S9)。
在第二階段,我們在確保不改變源代碼結(jié)構(gòu)的限制條件下實現(xiàn)了智能的交互式Burst(S10,S11)。結(jié)果如表1中所示。我們根據(jù)賽靈思提供的實 例教程,利用標(biāo)準(zhǔn)的“memcpy”函數(shù)在C語言中實現(xiàn)了Burst功能。遺憾的是,當(dāng)在代碼中插入memcpy 函數(shù)時無法看到時延值。但FPGA的實現(xiàn)結(jié)果 (表 2)可以說明實驗所獲得的性能。
所選步驟的FPGA原型設(shè)計
使用ESL工具的最大優(yōu)勢之一是能夠?qū)崿F(xiàn)快速的設(shè)計空間探索。我們可在幾分鐘之內(nèi)評估以上列出的所有探索步驟和表1所示結(jié)果,從而避免針對少數(shù)最終 所選迭代執(zhí)行冗長的FPGA實現(xiàn)階段。表2給出了表1中部分所選步驟在Zynq Z20 SoC上的最終實現(xiàn)結(jié)果;同時也給出了在MicroBlaze處理器上(作為參考)和ARM Cortex-A9上實現(xiàn)初始源代碼所獲得的等效結(jié)果(時延), 以體現(xiàn)出Zynq SoC帶給FPGA設(shè)計人員的強大計算能力。該表還給出了由賽靈思XPower分析器計算得出的動態(tài)功耗估計值。
我們利用賽靈思工具將最優(yōu)手工編碼IP轉(zhuǎn)化為RTL,從而獲得手工編碼IP在Zynq SoC上的實現(xiàn)結(jié)果。我們不得不使用之前實驗得到的時延測量結(jié)果并將競爭對手的FPGA作為參考,因為向AXI4總線進行移植超出了我們的實驗范圍。這進 一步凸顯了HLS工具的潛力,即可幫助設(shè)計人員更加輕松地向多種協(xié)議移植。
如果我們將表2與表1中的結(jié)果進行比較,會發(fā)現(xiàn)幾個有意思的現(xiàn)象。首先,ESL的快速綜合會得出比實際情況(尤其是對于LUT和觸發(fā)器)更好的估計結(jié)果;對存儲器和DSP而言,綜合器有時可顯著改變資源數(shù)量以進行優(yōu)化。
其次,時序收斂會成為最后實現(xiàn)階段的大問題。我們可以看到FPGA實現(xiàn)后獲得的頻率與HLS估計結(jié)果相比發(fā)生了顯著變化。最后,令人驚訝的是,即便 對于Burst訪問實驗, HLS預(yù)計值與手工編碼IP得到的時延值也存在明顯差別。這也使我們對HLS工具生成的DMA的質(zhì)量更加感興趣。
新的IP,相似的結(jié)果
我們以類似方式來研究第二個IP(即IP2)。根據(jù)之前對IP1的深入討論,表3和表4中所列結(jié)果也就不言自明。值得注意的一點是表3中的步驟8。 與IP1的情況一樣(詳見S2和S3討論內(nèi)容),無論從資源使用還是時延的角度來說,除法器都是高消耗器件。與IP1不同的是,IP2使用實數(shù)除法運算, 因此除法器不能移除。但遺憾的是,當(dāng)前版本的ESL工具只有一種除法器,其延遲時間為34個時鐘周期。S8表明,如果使用時延為一個時鐘周期的除法器(就 像手工編碼IP中提供的除法器),理論上其可實現(xiàn)30%的性能提升。表4顯示了所選步驟的FPGA原型設(shè)計結(jié)果。


VIVADO HLS的DMA/BURST效率問題
通過比較手工編碼IP和ESL技術(shù)得到的結(jié)果可得出一些結(jié)論。盡管研究嵌入式系統(tǒng)所用的初始源代碼(幾乎不做修改)并非以最佳方式編寫,但ESL工 具所提供的結(jié)果仍可以在資源利用率方面與經(jīng)過優(yōu)化的手工編碼IP相媲美。ESL與手工編碼IP在實驗結(jié)果上的顯著區(qū)別在于時延,后者得到的時延性能要遠(yuǎn)遠(yuǎn) 優(yōu)于前者。
針對這一問題,我們觀察到手工編碼IP與ESL IP在構(gòu)建方式上存在較大差異,(這也是IP2的資源消耗量存在較大差異的原因)。由于源代碼類型不同,在ESL IP中只有一條用于輸入和輸出的數(shù)據(jù)總線,相比之下,在手工編碼IP中則有兩條。此外,手工編碼IP中的FIFO更適合處理Burst訪問。而ESL IP則由于其源代碼的固有特性,很難建立一個理想高效的Burst處理機制,因而只能通過緩沖器來實現(xiàn)Burst。由于ESL硬件需要根據(jù)代碼結(jié)構(gòu)將這些 存儲器作為任務(wù)緩沖器和Burst緩沖器,因此ESL方案會影響B(tài)RAM的使用。此外,Burst是根據(jù)賽靈思AXI4主接口教程,通過C語言的 memcpy函數(shù)來完成的。
我們還與賽靈思專家交換了意見,他們建議使用外部DMA來實現(xiàn)最佳性能。因為就我們所使用的Vivado HLS版本而言,其生成的AXI4主接口尚處于測試階段,但會在未來得到升級。這些因素可能會導(dǎo)致時延值的顯著差異,同時也是未來實驗研究的良好出發(fā)點。
生產(chǎn)力與效率
這次的具體實驗工作揭示出ESL設(shè)計的幾個重要方面,同時也清除了一些誤區(qū)。ESL工具自推出以來已取得了長足進步,現(xiàn)可支持ANSI C/C++,并能給出具有競爭力結(jié)果,還可依照硬件/系統(tǒng)設(shè)計實踐方法,采用約束指令的形式開發(fā)出多種設(shè)計方案(不僅限于過去的循環(huán)開發(fā))。
事實上,我們發(fā)現(xiàn)用ESL獲得的所有結(jié)果(延遲時間除外)都可達到最佳值。此外,若通過工具的高級特性實現(xiàn)精確位類型(而非實驗中使用的一般C語言類型),還能進一步優(yōu)化資源使用,即類似于代碼部分重寫所取得的效果。
研究工作還使我們了解到生產(chǎn)力與效率間的權(quán)衡問題。圖3給出了IP模塊開發(fā)時間(包括設(shè)計、軟件、FPGA實現(xiàn)及驗證等)的對比情況。ESL設(shè)計能 快速轉(zhuǎn)化為解決方案,尤其是對于驗證工作,其所獲得的結(jié)果不亞于最佳實現(xiàn)方案。值得注意的是設(shè)計與驗證時間高度依賴于設(shè)計人員的技術(shù)水平。因此,手工編碼 設(shè)計與ESL設(shè)計都由同一組人員完成。
圖3對流程的實現(xiàn)效果進行了公正的比較。考慮到設(shè)計人員對IP設(shè)計與集成的傳統(tǒng)RTL方法更加熟悉,而對ESL工具比較陌生,因此從長期來看一旦這種新工具被人們所熟悉,其開發(fā)設(shè)計所需時間很可能會顯著縮短。

ESL的未來發(fā)展?
從技術(shù)和商業(yè)角度來看,應(yīng)該會制定一些針對ESL工具約束結(jié)構(gòu)的EDA標(biāo)準(zhǔn),以便輕松地向其它FPGA或ASIC移植設(shè)計(這種靈活性是RTL工具 所固有的,從原則上講,采用ESL工具應(yīng)該更容易做到這一點)。ESL工具供應(yīng)商應(yīng)該像對待RTL工具一樣,提高ESL工具的質(zhì)量和效果。
這是一個復(fù)雜、需要長時間探討的論題,我們不再在這篇短文中對以下問題做出詳細(xì)解答:軟件設(shè)計人員是否能利用ESL工具對FPGA進行編程?ESL 是否將取代RTL設(shè)計/工作?誰是ESL工具的最大受益者?但從本次實驗所獲得的經(jīng)驗來看,我們認(rèn)為ESL工具可以讓所有相關(guān)人員受益,尤其是系統(tǒng)設(shè)計人 員。
對硬件設(shè)計人員而言,這種工具在創(chuàng)建或評估設(shè)計片段時非常有效,其有助于快速構(gòu)建可支持總線接口的測試用基礎(chǔ)設(shè)施。嘗試設(shè)計硬件的軟件設(shè)計人員也是 ESL工具的主要受眾之一。盡管ESL工具為此已取得了很大進步,但仍有很長的路要走。例如在我們的項目中, ELS工具為軟件設(shè)計人員將硬件復(fù)雜性降到了非常低的程度。然而,當(dāng)涉及到約束和優(yōu)化工作時,要實現(xiàn)好的設(shè)計仍需要從硬件方面進行考慮。這個問題將隨著 ESL工具的進一步發(fā)展而得到逐步好轉(zhuǎn)。
隨著軟硬件協(xié)同設(shè)計在SoC領(lǐng)域中不斷推廣采用,系統(tǒng)設(shè)計人員也變得越來越普遍,對于他們來說,ESL工具可能形成一種雙贏局面。系統(tǒng)設(shè)計人員可在多個層面上探索這些工具。
在硬件方面,之所以選擇賽靈思28nm 7系列FPGA中的Zynq-7000 All Programmable SoC,關(guān)鍵原因之一就是要探究將ARM硬核與FPGA邏輯集成在同一芯片上到底有多大潛力。正如我們在實驗結(jié)果中所看到的, ARM雙核為FPGA設(shè)計人員帶來了前所未有的計算性能。而事實上,Zynq SoC為嵌入式設(shè)計人員帶來了一款微型超級計算機,而且可利用緊密集成的FPGA架構(gòu)對其進行定制。
鳴謝
我們感謝產(chǎn)業(yè)合作伙伴Sagemcom為我們提供的資金支持與技術(shù)協(xié)助。同時,我們還要感謝賽靈思?xì)W洲公司的專家Kester Aernoudt和Olivier Tremois為本次項目提供及時的技術(shù)指導(dǎo)。
參考資料
1. G. Martin,G. Smith,“高層次綜合:過去、現(xiàn)在及未來”,IEEE 計算機設(shè)計與測試,2009年7/8月
2. BDTI 報告,“賽靈思FPGA的高層次綜合工具”,2010年
3. BDTI報告,“AutoESL AutoPilot高層次綜合工具”,2010年