FPGA最初的應用領域也是傳統的應用領域,通信領域,但隨著信息產業以及微電子計數發展,FPGA的應用范圍編輯航空航天、汽車、醫療、工業控制等領域。下面分4個方面介紹FPGA的用武之地:視頻圖像處理、通信領域、數字信號處理和其他領域。
1. 視頻圖像處理領域
視頻圖像處理是多媒體領域中的熱門技術,因為視頻圖像處理的數據量越來越大。基于這些大量的數據,可分為視頻編解碼和目標識別兩大類。
1.1 視頻編解碼
從信道容量的角度考慮數據的傳輸帶寬,如何壓縮圖像,采用什么樣的算法這已經相對成熟了。目前正在用的視頻編解碼器可達數百種,但常用的還是少數的幾種。
MPEG-2
比如很老但還在使用的MPEG-2,主要在廣播信號和DVD電影的編碼,但隨著高清DVD逐漸采用VC-1和H.264標準進行編碼,MPEG-2將會逐漸退出。
MPEG-4
相比MPEG-2,其能夠以更低的速率傳送視頻卻能保持相同的圖像質量。它引入了描述 自然的或合成的對象等新概念來構成場景,并支持與用戶交互,給視頻節目制作商提供了改進的內容保護功能和創建更加靈活、可復制內容的能力。這些優點,使得其在衛星視頻傳送中得到應用
H.264
它其實是MPEG-4中的第十部分,主要以其高數據壓縮率和質量走紅。
還有一些JPEG等算法。
1.2 目標識別
目標識別主要是用來提取相關信息,比如圖像邊緣提取,同時結合一些人工智能等方面的知識,相對來講還是處在一個快速發展階段,也是圖像處理研究的前沿內容。特別是移動目標檢測與跟蹤技術,在機器人視覺、交通檢測、機器導航等民用領域有著廣泛的應用,同時在火力攔截、導彈電視和紅外視頻制導等軍用方面也發揮著重要作用。
可識別的視頻行為包括:突然入侵、移動物體、運動路徑、遺留物體、指向接近、移走物體六大類檢測。試想,動車上應該也有這個視頻檢測技術,車頭應該有檢測多少范圍內前方是否有車,當然這肯定不是視野范圍內的,采用雷達或者其他測試手段,但是肯定有視頻圖像傳輸與識別制導系統。原因在這不探討,但是既然發生這樣撞尾事件,我們視頻檢測制導還是很有我們需要提高的,去努力的方向。
有人會說,不是有專門的視頻處理的 DSP 器件么,DSP 書上說它做這個,FPGA 也說做這個,到底是哪個做這個?似乎有自夸自的嫌疑。對傳統上是采用 DSP 處理,只是我們列出的這些算法和應用對計算性能的要求已遠遠超出了傳統 DSP 處理器的能力,即使采用高端的 DSP 處理器,如果將 DSP 單做這部分的話完全可以,只是在應用中,DSP 做的事情比較多,這個時候,FPGA 就可以用做協處理器來承擔性能關鍵的處理工作。與標準 DSP處理器相比,FPGA 構造的并行計算特性可支持更高的采樣速率和更大的數據吞吐能力,同時計算功效也更高。
1.3 圖像處理支持資源
(1)相關 IP 核
Xilinx 和 ALTERA 都提供了視頻 IP 核組,以供視頻監控系統中快速設計、仿真、實現和驗證視頻和圖像處理算法,其中包括設計用的基本基元和高級算法。
CCM、CFA插值、DPC :
Gamma Corrction
等等大量的IP資源。
2. 通信領域
通信領域是FPGA應用的傳統領域,到如今依舊是FPGA應用的熱點和研究的熱點。這里將無線通信領域分為有線通信領域和無線通信領域介紹。
2.1 有線通信
有線通信,顧名思義,借助線纜傳送信號的通信方式。線纜可以指金屬導線、光纖等有形媒質傳送方式,信號可以指代聲音、文字、圖像等。
有線通信的另一種叫法稱為固網,我們不得不信,很多的進步都是基于很大的欲望的驅使,僅僅是十幾年的時間,全世界被一個叫做 Internet 的網絡給連接在一起。這是有線通信的最大的一個實例,當然有線通信的例子還有一些我們近的不能再近的有線網絡,最開始用的座機電話網、有線電視網等。
在維持和保證這些網絡給我們帶來幸福的同時,無形的促進了一些技術的產生,這些技術包括交換機、路由器、防火墻、網關、數據收發器、高速接口等網絡設備方面的開發技術。有線網絡的網絡質量的好壞直接決定于這些網絡設備的提高。當年做網絡設備的中興、華為如今已成為該領域的巨頭。
有線網絡如火如荼的發展了十幾年至到今天,雖說已經比較成熟了,但是依然充滿著很大的挑戰和沖擊,電信市場正在經歷新一輪整合發展時期,因特網的需求仍在繼續推動產業的創新。目前,家庭視頻和高級商業服務業務的快速發展對全球電信網絡的帶寬提出了更大挑戰。這一挑戰始于網絡接入邊緣,并直接延伸到城域網絡和核心網絡。為了響應上述需求,運營商正在追求包括 40Gbps SONET(OC-768 和 OTU3)以及 40G 以太網在內的更高的端口速率。越來越多的運營商更是將瞄準了 100G 端口速率。
商業和經濟的發展形勢迫切地需要可擴展的、靈活的且高效益成本的技術解決方案,從而滿足電信行業不斷變化的需求和標準。為了跟上這些變化,加快超高帶寬系統的部署,有線通信設備生產商正在從傳統的專用集成電路(ASIC)和成品(ASSP)芯片轉向可編程硬件平臺和 IP 解決方案。
2.2 無線通信
在有線通信的基礎上,人們在傳輸上為了更方便、距離更遠,無線通信技術在以前所未有的速度向前發展。無線發報機、BB 機、大哥大這些是我們很早用到的無線通信終端,再到我們現在用的 2G、3G 手機,已足以見得發展的迅猛。
無線系統通信類型可以分為微波通信系統、無線電尋呼系統、蜂窩移動通信、無繩電話系統、集群無線通信系統、衛星通信系統、分組無線網等典型的通信系統,其中的移動通信技術在世界范圍內獲得了廣泛的應用,從以模擬系統為特征的第一代帶今天的一征繳頻分復用接入(OFDMA)和多輸入多輸出(MIMO 為特征的第四代數字系統。其表現就是要求越來越高的數據服務。
為了滿足我們這個高數據率服務,有越來越大的寬帶無線接入技術的需求就浮出了,這就需要一個可以提供較寬處理帶寬,具有產品及時面市優勢的靈活硬件平臺來滿足這些需求。
以上是從大方向的角度考慮 FPGA 在今后無線通信應用領域的需求,細化起來,就設計到標準通信系統的各個模塊了,標準的數字通信系統框圖如圖:
從圖上分析信源、信宿、信源編譯碼,信道編譯碼一般屬于基帶,調制又可分為一級調制、二級調制,通過一級調制將信號調制到中頻,通過二級調制將信號調制到可以發射出去的射頻。
在基帶中涉及到如何將信號采樣,信號量化;各種信源編碼譯碼算法,比如簡單點 等長碼,復雜點 變長碼,典型的是這個 Huffman 編碼,圖像數據的話比如 MEPG-2、H.264等;信道編碼譯碼算法,又分為線性分組碼、循環碼、BCH 碼、卷積碼、糾正碼、交織、 Turbo 碼等等,典型 OFDM 系統中的用到這個 RS 碼、LDPC 碼、交織等信道相關處理。
調制過程中用到這個調制方式,采用調頻、調幅還是調相,調相是采用是 QPSK 還是用更高效率的 NQPSK,以及相對應的解調處理;還包括這些功能模塊在系統中數據傳送的通信接口協議,低速的有這個典型的 RS232,高速的有這個百兆千兆以太網、吉比特 IO、光纖等等。從上面的分析看出,FPGA 在通信系統領域的使用說雖是傳統依然熱是有道理的,還需大家的力量融入其中。
2.3 通信領域支持資源
由于 FPGA 在通信領域的成熟性,不管是哪個 FPGA 廠商,對通信領域的 IP 的支持都是很豐富的,這里將 Xilinx 和 altera 兩大巨頭在這個領域的支持的 IP 陳列出來,具體的 IP核功能描述大家可以參看附錄 XX。
AlteraIP:略
3.數字信號處理領域
數字信號處理(Digital Signal Processing,DSP)。我們最初使用的系統都是模擬系統,比如第一代的移動通信系統,以及最初用的模擬電視,還是黑白的。隨著數字時代的到來,很多模擬系統以及模擬產品都轉向了數字化,手機上也弄了一個模擬接收器,開始轉向第二代移動通信系統。數字系統相比于模擬系統有如下幾大優點:
(1) 抗干擾性強;
(2) 便于進行各種數字信號處理;
(3) 易于實現集成化;
(4) 經濟效益超過模擬通信
(5) 傳輸與交換可結合起來,傳輸電話與傳輸數據也可以結合起來,成為一個統一體,有利于實現綜合業務通信網;
(6) 便于多路復用;
3.1 數字處理系統模型
數字系統雖然有這些優點,但是我們實際傳送過程中還都是模擬信號,包括最開始的信號來源,和最終傳送發送出去的信號都是模擬信號。所以我們要進行數字處理,就必須采用兩種器件將我們這個模擬世界和數字世界給連接起來,這兩種器件分別是模數轉換器 ADC和數模轉換器 DAC。我們可以得到典型的數字信號處理的一個模型,如圖 。
模數轉化器 ADC 周期性的對輸入的模擬信號采樣,并做量化,其實 ADC 是由采樣保持和量化編碼器構成的。采樣需要滿足奈奎斯特采樣定理,采樣位寬數和采樣速率決定了后期數字信號處理的精度。
采樣得到的數字數據后,開始在做 DSP 處理了,應用不同,處理的算法和過程就不一樣,目前數字信號可以干的事情可以列表如表 。
從表中可以看出,廣泛的看幾乎是采用數字的系統和產品應用里都涉及到數字信號的處理,包括表中還列出了前面我們講到的通信領域和視頻圖像處理領域相關的應用,同時表中列出了通用領域的一些算法,這是數字信號處理較普遍性、較專對性的。
經過數字信號處理之后,得到的仍然是數字信號,數模轉換器DAC將會對這些數字信號進行模擬化后發送出去,在通信過程中一般是在射頻或是中頻做這個處理。
3.2DSP 實現方式
講到數字信號處理的實現方式很多人的第一反映就是數字信號處理器,就是我們這個硬件 DSP。沒錯它是一個專門做數字信號處理的,但是除此之外,其實還有幾種做數字信號處理的方式,所以在本節最開始的時候就講到大家要區分一下我們這里數字信號處理DSP和數字信號處理器 DSP,以免內心一直存在這么一個糾結的問題影響這一節的學習。
除了專用的硬件 DSP 外,通用微處理器、專用的 ASIC 硬件、還有專用的 FPGA也可以做數字信號處理。我們來一一分析一下。
通用處理器
首先是通用微處理器,也可以稱為中央處理器(CPU)或者微處理器(MPU),通過在處理器中運行適當的 DSP 算法可以執行 DSP 任務。特別是在近幾年來很火的 GPU,這個專門做圖像處理的處理器里,它內部采用很多個處理器并行操作,在數字圖像的相關處理可謂相當的專業,在一些高端顯卡里面一般都配置有 GPU。
ASIC 硬件
其次是專用的 ASIC 硬件,這一塊主要是客戶化的執行 DSP 任務的硬件實現,相對來說,實現的功能單一,只能實現實現定義好的功能。這一類的器件比如數字濾波器芯片、數碼相機里的專用圖像處理芯片等等。但是優點是功能經過全面的驗證,并優化后,做成 ASIC化,運行非常穩定,速度也非常快。
專用的數字信號處理器(DSP處理器)
第三種就是專用的數字信號處理器,它是一種特殊的微處理器芯片,經過了專門的設計,執行 DSP 任務時比通用的微處理器要快更高效,同時也比專用 ASIC 更加靈活。那么它特殊在哪里呢?在我們上一小節列舉的那些 DSP 算法中,有一個共同地方就是,需要大量的乘法和加法來完成,再怎么復雜的算法也都是有許許多多的這樣的乘加來構成的。而乘法在硬件里用邏輯來搭建的話不管是面積上還是速度性能上都不是很理想,在通用的微處理器里,即使有硬件乘法器,數量也是有限,做其復雜算法來,速度性能上還是欠佳。于是硬件 DSP 這樣擁有大量的乘加結構的處理器出現了,這就是它的特殊之處。
缺點:盡管是專門做數字信號處理的器件,但是它依然存在問題,針對它的開發依然是基于串行的任務隊列的軟件模式開發,效率和靈活性依然有限。
專用的 FPGA硬件
第四種就是專用的 FPAG 硬件,剛才我們有講到列舉的那些 DSP 算法的一個共同特點是大量用到乘加操作,如果想要把 DSP 算法做好,確實是需要這些做這些乘加操作的硬件支持。細心的讀者會發現,這里說的是專用的 FPGA 硬件,和之前在 FPGA 原理里提到的各種 FPGA 并沒有很大的出路,只是在它們的基礎上再添加了這些專用用來做 DSP 的乘加硬件,如圖
專用來做DSP的硬件
用 FPGA 來做數字信號處理的好處在于,完全是硬件化并行化編程操作,可以在速度和面積之間的轉變有很大的靈活性,在下一節里我們將通過一個例子來看看它的體現。
3.3 FPGA 做數字信號處理優勢
這里給出 DSP 處理的最基本的乘加例子,實現的算方表達式如下:
Y=(A1?A2) +( A3?A4)
采用 FPGA 的并行機制,假設乘法器都是并行操作,我們得到如下圖實現的電路。從圖上我們看到,這種方式執行的時間相當與一個乘法器和一個加法器實現的時間,速度非常快,但是他卻消耗了兩個乘法器和一個加法器。
由于 FPGA 的編程的靈活性,我們也可以采用 資源共享的方式來得到一個串行的實現電路
在圖中可以看到,它消耗了兩個二選一多路器、一個乘法器、一個加法器和一個觸發器。雖然多了兩個二選一多路器和一個觸發器,但是這資源比乘法器的資源還是節約了不少。但是它的速度就降下來了,通過開關 Sel 來控制,先做 A1 和 A2 的乘法,結果在時鐘驅動下保留在寄存器中,然后翻轉 Sel,再做 A3 和 A4 的乘法,結果和上次運行的存放在寄存器中的結果做加法,在第二個時鐘驅動下存儲最終結果。這樣共享用一個乘法器,速度相比第一種情況慢,好的地方就是節約了面積。但是需要提的是,即使是這樣的共享式的實現速度也會比 DSP 專用芯片的軟實現速度要快。
相比之下得出,采用專用的 FPGA 做 DSP,不但可以在速度和面積上靈活調節,至少實現速度還是比專用的DSP 要快一點。通常我們很多場合,專用DSP 的使用還是如日中天,一個原因是我們專用的 FPGA 的做 DSP 的資源還不是很富足,二個原因是專用 DSP 的開發采用的是軟件式開發,而 FPGA 采用的是硬件開發,這對很多工程師來講還是會選擇前者的,第三個原因是這個成本問題,畢竟傳統的專用的 DSP 芯片比專用的 FPGA 芯片要便宜。
3.4 DSP 支持資源
各 FPGA 廠商對數字信號處理的資源支持還是比較強大的,這包括前面提到的在通信領域和圖像處理領域提供的支持資源,有相關的 IP 核、相關的使用工具和一些參考設計方案,這里我們就不再重復,只是做一些補充。
4.嵌入式領域
傳統的 控制系統 都是在 微處理器的控制下執行各種控制和數據的處理應用,這些微處理器包括單片機、ARM、PowerPC等等。隨著 FPGA 的使用普遍性,越來越多的系統 用 FPGA 作為高速數據接口 粘合以及做一些協同處理。出現了微處理器+FPGA 的片上系統的架構。
通常這樣的架構是在單板上設計,如下圖所示的一個系統:
單板系統
從圖上看到,除了微處理器外還有DSP 器件、FLASH與SDRAM 存儲器。系統安排CPU 做整體的控制,FPGA 做一些接口邏輯粘合和一些信號的預處理, DSPs 做一個復雜的算法,FLASH 和 SDRAM 分別作為程序存儲和數據緩存。這樣的系統安排在一塊或者數塊 PCB 板上,不僅調試難度大,而且系統維護也不是方便。關鍵的問題是電路板上如果有這么些器件的話,成本是一個問題,而且占用了相當的面積,增加了很多焊點,每一個焊點都是對電路的穩定性構成威脅。
于是,提出了一種 基于 FPGA 的片上系統的替代的方案,如圖所示
FPGA內嵌DSP和CPU
在FPGA 內部集成了CPU、DSP以及各種接口控制模塊,對有些存儲量要求不大的系統甚至外部的FLASH 和 SDRAM 都集成了。這樣做的思想會給帶來帶來哪些挑戰和機遇呢?這是我們接下來需要探討的問題。
4.1 創新挑戰和機遇
傳統的嵌入式開發完全是純軟件形式,而在 FPGA 平臺上,首先要面對的是怎么去規劃 FPGA,哪些是作為 CPU,如何實現?其實,系統中有硬件開發部分和軟件開發部分,如何在設計的時候支持這種硬件開發語言和軟件開發語言混合驗證,以保證系統正常工作?當然這些問題在現在來講已經解決了,但是我們能夠帶著這些問題來學習在后面的知識,這些問題在后面支持資源里都能夠得到解答。
那么機遇在哪?剛才有提到,首先如果一個系統有如圖似的需求的時候,采用FPGA 內嵌的方式占用的板級面積小,焊點少系統穩定,同時成本相比低,當然這里并不包括一些只需控制器做一些控制的系統和產品,如果將 FPGA 純當一個控制器用的話,成本相對單片機、ARM 來說還是有些高,這也是 FPGA 開發的一個問題,但是低端的 FPGA 芯片也能支持嵌入式處理器,資源有限。當哪天 FPGA 價格能夠等同于這些微處理器的時候,這些微處理器也將面臨退役了。其實是它可以很靈活的配置硬件外設,用來做控制系統驗證,對系統構架設計者來說,非常有用。最后是對一個工程師來講,不但要會做硬件程序開發還得會軟件開發,于公司來講,更愿意招這樣的全才。
基于 FPGA 的嵌入式的優點只有用的時候才能真正感受,同時,你也能感受其缺點。雖說在建好硬件平臺的之后是軟件開發,但是如果你是一個習慣于軟件開發的工程師,相信這里的軟件開發會讓你的意志力得到很大的提高,這種方式軟件開發編譯過程比傳統嵌入式開發要滿很多,這是各廠家有待需要提高的。
4.2 嵌入式支持資源
(1)硬核與軟核
硬核指的是一種專用的預定好的硬線邏輯塊實現的內核,各好的理解就是直接將那位微處理器給放到 FPGA 芯片里。目前主流的 FPGA 廠商都會選擇一個特定的處理器來實現硬核。如下表,開發者可以直接在相關開發平臺上使用這些硬核。
軟核與硬核不同,是將一組邏輯資源塊配置成一個微處理器。同時,還提供了很多外圍設備,比如定時器、中斷控制器、各種內存控制器、各種通信接口驅動等軟核,注意這里指代的軟核包括以 RTL 級網表形式,也包括布局布線后的 LUT 級形式。
需要說明的是,相比于硬核,軟核的速度要慢一些,這很好理解,但是軟核更簡單。在資源允許的情況下,我們可以配置多核,這個是硬核不行的,有多少個硬核你只能用幾個。同樣,主流的 FPGA 廠商也會做一個軟核,如表所示,其中 NIOS 是有 16 位和 32 位兩種架構,分別支持 16 位和 32 位數據寬度,而 MicroBlaze 只有 32 位的架構,Q90C1XX 確是一個 9 位的微控制器。
-
FPGA
+關注
關注
1626文章
21667瀏覽量
601858 -
圖像處理
+關注
關注
27文章
1282瀏覽量
56643 -
JPEG
+關注
關注
0文章
66瀏覽量
29938 -
工業控制
+關注
關注
37文章
1443瀏覽量
85787 -
目標識別
+關注
關注
0文章
41瀏覽量
10433
原文標題:淺析FPGA的應用領域
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論