新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 學習FPGA的一些常見誤區(qū)解讀

學習FPGA的一些常見誤區(qū)解讀

作者: 時間:2013-10-09 來源:網(wǎng)絡 收藏

3、本身不算什么,一切皆在之外這一點恐怕也是很多學的菜鳥最難理解的地方。

FPGA是給誰用的?很多學校解釋為給學微電子專業(yè)或者集成電路設計專業(yè)的學生用的,其實這不過是很多學校受資金限制,賣不起專業(yè)的集成電路設計工具而用FPGA工具替代而已。其實FPGA是給設計電子系統(tǒng)的工程師使用的。這些工程師通常是使用已有的芯片搭配在一起完成一個電子設備,如基站、機頂盒、視頻監(jiān)控設備等。當現(xiàn)有芯片無法滿足系統(tǒng)的需求時,就需要用FPGA來快速的定義一個能用的芯片。

FPGA

前面說了,F(xiàn)PGA里面無非就是一些“真值表”、觸發(fā)器、各種連線以及一些硬件資源,電子系統(tǒng)工程師使用FPGA進行設計時無非就是考慮如何將這些以后資源組合起來實現(xiàn)一定的邏輯功能而已,而不必像IC設計工程師那樣一直要關(guān)注到最后芯片是不是能夠被制造出來。本質(zhì)上和利用現(xiàn)有芯片組合成不同的電子系統(tǒng)沒有區(qū)別,只是需要關(guān)注更底層的資源而已。要想把FPGA用起來還是簡單的,因為無非就是那些資源,在理解了前面兩點再搞個實驗板,跑跑實驗,做點簡單的東西是可以的。而真正要把FPGA用好,那光懂點FPGA知識就遠遠不夠了。因為最終要讓FPGA里面的資源如何組合,實現(xiàn)何種功能才能滿足系統(tǒng)的需要,那就需要懂得更多更廣泛的知識。

目前FPGA的應用主要是三個方向:

第一個方向,也是傳統(tǒng)方向主要用于通信設備的高速接口電路設計,這一方向主要是用FPGA處理高速接口的協(xié)議,并完成高速的數(shù)據(jù)收發(fā)和交換。這類 應用通常要求采用具備高速收發(fā)接口的FPGA,同時要求設計者懂得高速接口電路設計和高速數(shù)字電路板級設計,具備EMCEMI設計知識,以及較好的模擬電路基礎(chǔ),需要解決在高速收發(fā)過程中產(chǎn)生的信號完整性問題。FPGA最初以及到目前最廣的應用就是在通信領(lǐng)域,一方面通信領(lǐng)域需要高速的通信協(xié)議處理方式, 另一方面通信協(xié)議隨時在修改,非常不適合做成專門的芯片。因此能夠靈活改變功能的FPGA就成為首選。到目前為止FPGA的一半以上的應用也是在通信行業(yè)。

第二個方向,可以稱為數(shù)字信號處理方向或者數(shù)學計算方向,因為很大程度上這一方向已經(jīng)大大超出了信號處理的范疇。例如早就在2006年就聽說老美將 FPGA用于金融數(shù)據(jù)分析,后來又見到有將FPGA用于醫(yī)學數(shù)據(jù)分析的案例。在這一方向要求FPGA設計者有一定的數(shù)學功底,能夠理解并改進較為復雜的數(shù)學算法,并利用FPGA內(nèi)部的各種資源使之能夠變?yōu)閷嶋H的運算電路。目前真正投入實用的還是在通信領(lǐng)域的無線信號處理、信道編解碼以及圖像信號處理等領(lǐng)域,其它領(lǐng)域的研究正在開展中,之所以沒有大量實用的主要原因還是因為學金融的、學醫(yī)學的不了解這玩意。不過最近發(fā)現(xiàn)歐美有很多電子工程、計算機類的博士轉(zhuǎn)入到金融行業(yè),開展金融信號處理,相信隨著轉(zhuǎn)入的人增加,F(xiàn)PGA在其它領(lǐng)域的數(shù)學計算功能會更好的發(fā)揮出來,而我也有意做一些這些方面的研究。不過國 內(nèi)學金融的、學醫(yī)的恐怕連數(shù)學都很少用到,就不用說用FPGA來幫助他們完成數(shù)學運算了,這個問題只有再議了。

第三個方向就是所謂的SOPC方向,其實 嚴格意義上來說這個已經(jīng)在FPGA設計的范疇之內(nèi),只不過是利用FPGA這個平臺搭建的一個嵌入式系統(tǒng)的底層硬件環(huán)境,然后設計者主要是在上面進行嵌入式軟件開發(fā)而已。設計對于FPGA本身的設計時相當少的。但如果涉及到需要在FPGA做專門的算法加速,實際上需要用到第二個方向的知識,而如果需要設計專用的接口電路則需要用到第一個方向的知識。就目前SOPC方向發(fā)展其實遠不如第一和第二個方向,其主要原因是因為SOPC以FPGA為主,或者是在 FPGA內(nèi)部的資源實現(xiàn)一個“軟”的處理器,或者是在FPGA內(nèi)部嵌入一個處理器核。但大多數(shù)的嵌入式設計卻是以軟件為核心,以現(xiàn)有的硬件發(fā)展情況來看, 多數(shù)情況下的接口都已經(jīng)標準化,并不需要那么大的FPGA邏輯資源去設計太過復雜的接口。而且就目前看來SOPC相關(guān)的開發(fā)工具還非常的不完善,以 ARM 為代表的各類嵌入式處理器開發(fā)工具卻早已深入人心,大多數(shù)以ARM為核心的SOC芯片提供了大多數(shù)標準的接口,大量成系列的單片機嵌入式處理器提供了相關(guān)行業(yè)所需要的硬件加速電路,需要專門定制硬件場合確實很少。通常是在一些特種行業(yè)才會在這方面有非常迫切的需求。即使目前Xilinx將ARM的硬核加入 到FPGA里面,相信目前的情況不會有太大改觀,不要忘了很多老掉牙的8位單片機還在嵌入式領(lǐng)域混呢,嵌入式主要不是靠硬件的差異而更多的是靠軟件的差異來體現(xiàn)價值的。

我曾經(jīng)看好的是cypress的Psoc這一想法。和SOPC系列不同,Psoc的思想史載SOC芯片里面去嵌入那么一小塊 FPGA,那這 樣其實可以滿足嵌入式的那些微小的硬件接口差異,比如某個運用需要4個USB,而通常的處理器不會提供那么多,就可以用這么一塊FPGA來提供多的USB 接口。而另一種運用需要6個UART,也可以用同樣的方法完成。對于嵌入式設計公司來說他們只需要備貨一種芯片,就可以滿足這些設計中各種微小的差異變化 要的差異化仍然是通過軟件來完成。但目前cypress過于封閉,如果其采用ARM作為處理器內(nèi)核,借助其完整的工具鏈。同時開放IP合作,讓大量的第三方為它提供IP設計,其實是很有希望的。但目前cypress的日子怕不太好過,Psoc的思想也不知道何時能夠發(fā)光。

4、數(shù)字邏輯知識是根本。

無論是FPGA的哪個方向,都離不開數(shù)字邏輯知識的支撐。FPGA說白了是一種實現(xiàn)數(shù)字邏輯的方式而已。如果連最基本的數(shù)字邏輯的知識都有問題,學習 FPGA的愿望只是空中樓閣而已。而這,恰恰是很多菜鳥最不愿意去面對的問題。數(shù)字邏輯是任何電子電氣類專業(yè)的專業(yè)基礎(chǔ)知識,也是必須要學好的一門課。很多人無非是學習了,考個試,完了。如果不能將數(shù)字邏輯知識爛熟于心,養(yǎng)成良好的設計習慣,學FPGA到最后仍然是霧里看花水中望月,始終是一場空的。

以上四條只是我目前總結(jié)菜鳥們在學習FPGA時所最容易跑偏的地方,F(xiàn)PGA的學習其實就像學習圍棋一樣,學會如何在棋盤上落子很容易,成為一位高手卻是難上 加難。要真成為李昌鎬那樣的神一般的選手,除了靠刻苦專研,恐怕還確實得要一點天賦。


上一頁 1 2 下一頁

關(guān)鍵詞: FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉