目前FPGA的應(yīng)用方向:
第一個方向,也是傳統(tǒng)方向主要用于通信設(shè)備的高速接口電路設(shè)計,這一方向主要是用FPGA處理高速接口的協(xié)議,并完成高速的數(shù)據(jù)收發(fā)和交換。這類應(yīng)用通常要求采用具備高速收發(fā)接口的FPGA,同時要求設(shè)計者懂得高速接口電路設(shè)計和高速數(shù)字電路板級設(shè)計,具備EMC/EMI設(shè)計知識,以及較好的模擬電路基礎(chǔ),需要解決在高速收發(fā)過程中產(chǎn)生的信號完整性問題。FPGA最初以及到目前最廣的應(yīng)用就是在通信領(lǐng)域,一方面通信領(lǐng)域需要高速的通信協(xié)議處理方式,另一方面通信協(xié)議隨時在修改,非常不適合做成專門的芯片。
第二個方向,可以稱為數(shù)字信號處理方向或者數(shù)學(xué)計算方向,因為很大程度上這一方向已經(jīng)大大超出了信號處理的范疇。例如早就在2006年就聽說老美將FPGA用于金融數(shù)據(jù)分析,后來又見到有將FPGA用于醫(yī)學(xué)數(shù)據(jù)分析的案例。在這一方向要求FPGA設(shè)計者有一定的數(shù)學(xué)功底,能夠理解并改進(jìn)較為復(fù)雜的數(shù)學(xué)算法,并利用FPGA內(nèi)部的各種資源使之能夠變?yōu)閷嶋H的運算電路。
目前真正投入實用的還是在通信領(lǐng)域的無線信號處理,其它領(lǐng)域的研究正在開展中,之所以沒有大量實用的主要原因還是因為學(xué)金融。不過最近發(fā)現(xiàn)歐美有很多電子工程、計算機類的博士轉(zhuǎn)入到金融行業(yè),開展金融信號處理,相信隨著轉(zhuǎn)入的人增加,F(xiàn)PGA在其它領(lǐng)域的數(shù)學(xué)計算功能會更好的發(fā)揮出來,而我也有意做一些這些方面的研究。不過國內(nèi)學(xué)金融的、學(xué)醫(yī)的恐怕連數(shù)學(xué)都很少用到,就不用說用FPGA來幫助他們完成數(shù)學(xué)_運算了,這個問題只有再議了。
第三個方向就是所謂的SOPC方向,其實嚴(yán)格意義上來說這個已經(jīng)在FPGA設(shè)計的范疇之內(nèi),只不過是利用FPGA這個平臺搭建的一個嵌入式系統(tǒng)的底層硬件環(huán)境,然后設(shè)計者主要是在上面進(jìn)行嵌入式軟件開發(fā)而已。設(shè)計對于FPGA本身的設(shè)計時相當(dāng)少的。但如果涉及到需要在FPGA做專門的算法加速,實際上需要用到第二個方向的知識,而如果需要設(shè)計專用的接口電路則需要用到第一個方向的知識。
就目前SOPC方向發(fā)展其實遠(yuǎn)不如第一和第二個方向,其主要原因是因為SOPC以FPGA為主,或者是在FPGA內(nèi)部的資源實現(xiàn)一個“軟”的處理器,或者是在FPGA內(nèi)部嵌入一個處理器核。但大多數(shù)的嵌入式設(shè)計卻是以軟件為核心,以現(xiàn)有的硬件發(fā)展情況來看,多數(shù)情況下的接口都已經(jīng)標(biāo)準(zhǔn)化,并不需要那么大的FPGA邏輯資源去設(shè)計太過復(fù)雜的接口。而且就目前看來SOPC相關(guān)的開發(fā)工具還非常的不完善,以ARM為代表的各類嵌入式處理器開發(fā)工具卻早已深入人心。
大多數(shù)以ARM為核心的SOC芯片提供了大多數(shù)標(biāo)準(zhǔn)的接口,大量成系列的單片機/嵌入式處理器提供了相關(guān)行業(yè)所需要的硬件加速電路,需要專門定制硬件場合確實很少。通常是在一些特種行業(yè)才會在這方面有非常迫切的需求。目前Xilinx已經(jīng)將ARMcortex- A9的硬核嵌入到FPGA里面,未來對嵌入式的發(fā)展有很大推動,不過,不要忘了很多老掉牙的8位單片機還在嵌入式領(lǐng)域混呢,嵌入式主要不是靠硬件的差異而更多的是靠軟件的差異來體現(xiàn)價值的。
我曾經(jīng)看好的是cypress的Psoc這一想法。和SOPC系列不同,Psoc的思想史載SOC芯片里面去嵌入那么一小塊FPGA,那這樣其實可以滿足嵌入式的那些微小的硬件接口差異,比如某個運用需要4個USB,而通常的處理器不會提供那么多,就可以用這么一塊FPGA來提供多的USB接口。而另一種運用需要6個UART,也可以用同樣的方法完成。對于嵌入式設(shè)計公司來說他們只需要備貨一種芯片,就可以滿足這些設(shè)計中各種微小的差異變化。其主要的差異化仍然是通過軟件來完成。
無論是FPGA的哪個方向,都離不開數(shù)字邏輯知識的支撐。FPGA說白了是一種實現(xiàn)數(shù)字邏輯的方式而已。如果連最基本的數(shù)字邏輯的知識都有問題,學(xué)習(xí)FPGA的愿望只是空中樓閣而已。而這,恰恰是很多菜鳥最不愿意去面對的問題。數(shù)字邏輯是任何電子電氣類專業(yè)的專業(yè)基礎(chǔ)知識,也是必須要學(xué)好的一門課。很多人無非是學(xué)習(xí)了,考個試,完了。如果不能將數(shù)字邏輯知識爛熟于心,養(yǎng)成良好的設(shè)計習(xí)慣,學(xué)FPGA到最后仍然是霧里看花水中望月,始終是一場空的。
評論