Robert Roe最近在Scientific Computing World網(wǎng)站上發(fā)表了一篇題為《OpenCL是否會(huì)為FPGAs開啟大門?》的文章,這篇文章關(guān)注了FPGA各種各樣不同的應(yīng)用。他的文章包含了很多領(lǐng)域而不是僅僅局限于OpenCL。如果你對(duì)FPGA的印象還停留在20世紀(jì),也就是說(shuō)FPGA更適合來(lái)實(shí)現(xiàn)膠連邏輯,那么這篇文中的一些引用確實(shí)會(huì)讓你有所思考。以下就是來(lái)自于這篇文中的一些引述:
“FPGA剛出現(xiàn)的時(shí)候,它只能做一些非常基本的邏輯比如說(shuō)布爾代數(shù),那時(shí)它確實(shí)只是用來(lái)實(shí)現(xiàn)膠連邏輯的。但是在過(guò)去的這些年里,F(xiàn)PGA已經(jīng)進(jìn)步和進(jìn)化了,它擁有了更多專用化的硬化結(jié)構(gòu)。”
“在過(guò)去的這些年里,F(xiàn)PGA已經(jīng)從實(shí)現(xiàn)膠連邏輯轉(zhuǎn)變?yōu)閷?shí)現(xiàn)更加復(fù)雜的設(shè)計(jì),比如說(shuō)做了很多數(shù)字信號(hào)處理運(yùn)算的radio head系統(tǒng),高性能的視覺(jué)應(yīng)用平臺(tái),無(wú)線電,醫(yī)療裝備以及雷達(dá)系統(tǒng)。所以它們被用在高性能的計(jì)算中,一般用于特定算法的運(yùn)算。”
“人們選擇用FPGA來(lái)做這些應(yīng)用的理由很簡(jiǎn)單,與利用軟件代碼實(shí)現(xiàn)這些應(yīng)用相比,F(xiàn)PGA具有更低的單位功耗。”
—— Larry Getman,Xilinx戰(zhàn)略市場(chǎng)營(yíng)銷計(jì)劃部副總裁
有這樣一個(gè)讓人糾結(jié)的問(wèn)題。FPGA具有優(yōu)越的性能和良好的功耗,但怎么樣讓那些不精通VHDL或者Verilog語(yǔ)言的開發(fā)者,更容易的享受到這些好處呢?
由定義可知,這些HDL(硬件描述語(yǔ)言)是用于描述硬件系統(tǒng)的語(yǔ)言,但系統(tǒng)描述不應(yīng)限制于HDL這個(gè)詞,這恰好是目前流行的系統(tǒng)級(jí)描述語(yǔ)法。上世紀(jì)九十年代之前,電路圖作為一種描述語(yǔ)法可以被選擇。但是當(dāng)數(shù)字系統(tǒng)變得過(guò)于復(fù)雜時(shí),就不能用電路圖來(lái)描述,即使是分層次的電路圖也不行。同時(shí),由于HDL編譯器變得越來(lái)越優(yōu)秀,因此HDL開始被設(shè)計(jì)界接受并且保持了長(zhǎng)達(dá)25年的統(tǒng)治地位。那是一個(gè)又好又長(zhǎng)的過(guò)程,讓我們幾乎忘記了電路圖這種設(shè)計(jì)方法——一種在被HDL代替之前已經(jīng)持續(xù)了差不多100年的設(shè)計(jì)方法。這一切都在緩慢地變化。
巧合的是,EEJournal的Kevin Morris最近發(fā)表了一篇題為《HLS是新的黑馬》的文章。在這篇文章中,Kevin寫道:“今天,你可以用C,C++,或者SystemC之類的語(yǔ)言寫一些行為性的代碼,然后把他們放在HLS工具中,然后迅速返回得到一個(gè)詳細(xì)的硬件設(shè)計(jì),這個(gè)設(shè)計(jì)確實(shí)要比你自己花費(fèi)好幾個(gè)月時(shí)間用RTL級(jí)描述法做出的設(shè)計(jì)好的多。這種方法的產(chǎn)出率是驚人的。一個(gè)優(yōu)秀的硬件工程師如果使用HLS連續(xù)設(shè)計(jì)硬件,這跟一個(gè)沒(méi)有使用HLS的工程師相比,他的工作速度要提高5到10倍。同時(shí),當(dāng)一個(gè)使用了HLS的工程師想去做結(jié)構(gòu)上修改的時(shí)候,他的工作量和做RTL級(jí)修改相比,是非常小的。”Morris幾乎可以很容易在25年前寫一篇關(guān)于HDLs的文章,一個(gè)HLS很接近的詞。
Xilinx最近發(fā)布了三個(gè)工具,統(tǒng)稱為SDx,目的是讓系統(tǒng)開發(fā)團(tuán)隊(duì)使用除了Verilog和VHDL的其他描述語(yǔ)法和語(yǔ)言,來(lái)開發(fā)復(fù)雜的數(shù)字系統(tǒng)。Xilinx 的SDAccel 開發(fā)環(huán)境提供了類似GPU的工作環(huán)境,認(rèn)可OpenCL,C和C++語(yǔ)言寫的代碼。這是專門為那些喜歡便利的GPU編程和追求速度,但是卻又不想在享用高性能的GPUs時(shí),伴隨著高功耗的開發(fā)者而設(shè)計(jì)的。SDAccel應(yīng)用于數(shù)據(jù)中心加速時(shí),可以讓你系統(tǒng)的性能/功耗比提升25 倍。
在Scientific Computing World文章中,Getman寫道:“我們的目標(biāo)就是讓FPGA像GPU一樣容易編程。以O(shè)penCL為基礎(chǔ)的SDAccel,允許開發(fā)者使用OpenCL,C或者C++進(jìn)行編程,而且他們可以以一個(gè)很高的層次來(lái)開發(fā)FPGA了。”
Xilinx發(fā)布的最新SDx是集成與SDSoC開發(fā)環(huán)境,SDSoC是業(yè)界第一個(gè)C/C++全系統(tǒng)優(yōu)化編譯器。這是一個(gè)更加通用的開發(fā)平臺(tái),提供系統(tǒng)級(jí)分析,可編程邏輯自動(dòng)SW加速,系統(tǒng)連接自動(dòng)生成,加速編程庫(kù)以及一個(gè)提供給客戶和第三方開發(fā)平臺(tái)開發(fā)者的設(shè)計(jì)流程。
SDx的第三個(gè)成員是更加專業(yè)化的SDNet。SDNet允許創(chuàng)建”軟“定義網(wǎng)絡(luò),這項(xiàng)技術(shù)遠(yuǎn)超今天的軟件定義網(wǎng)絡(luò)(SDN)架構(gòu)。軟定義網(wǎng)絡(luò)支持SDN功能,同時(shí)也允許軟件可編程數(shù)據(jù)平臺(tái)硬件的差異,這種軟件可編程硬件平臺(tái)具有在處理包括性能,靈活性和基于內(nèi)容的網(wǎng)絡(luò)安全挑戰(zhàn)方面能和控制平臺(tái)軟件動(dòng)態(tài)地合作的內(nèi)容智能。在與應(yīng)用優(yōu)化庫(kù)連接使用中SDNet系統(tǒng)描述是高等級(jí)規(guī)范的。SDNet將這些規(guī)范轉(zhuǎn)化成一個(gè)基于Xilinx全可編程器件的優(yōu)化硬件實(shí)現(xiàn)。由此產(chǎn)生的設(shè)計(jì)實(shí)現(xiàn)了在最優(yōu)成本,功耗和性能方面的線速處理。
SDNet也是復(fù)雜數(shù)字系統(tǒng)不需要從Verilog或者VHDL開始的另一有力證據(jù)。
現(xiàn)在如果你是硬件描述語(yǔ)言的發(fā)燒友,祝賀你,Verilog和VHDL將不會(huì)很快退出去。Xilinx 的 Vivado 設(shè)計(jì)套件提供了工業(yè)級(jí)的硬件描述語(yǔ)言編譯器,隨著每一個(gè)新的軟件版本的推出而變得更加地強(qiáng)大,尤其是在配合推出了Xilinx UltraScale 和UltraScale+器件時(shí)。SDx開發(fā)環(huán)境的設(shè)計(jì)不是取代硬件描述語(yǔ)言,而是補(bǔ)充它們。他們提供快捷和簡(jiǎn)化的方式讓系統(tǒng)跑起來(lái),讓它們更快地走出實(shí)驗(yàn)室。請(qǐng)確信一點(diǎn):在此之下的本質(zhì)仍是真正的硬件描述語(yǔ)言。
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7608瀏覽量
137177 -
FPGA芯片
+關(guān)注
關(guān)注
3文章
246瀏覽量
39823 -
c語(yǔ)言編譯器
+關(guān)注
關(guān)注
0文章
5瀏覽量
7160
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論