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