摘 要:介紹FPGA的特點及開發(fā)過程,闡述了其與單片機和DSP相結(jié)合的技術(shù)。<!--摘要CH(結(jié)束)←--><!--→關(guān)鍵CH(開始)-->
關(guān)鍵詞:單片機;數(shù)字信號處理器;現(xiàn)場可編程門陣列
<!--關(guān)鍵CH(結(jié)束)←--><!--→標題EN(開始)-->
<!--關(guān)鍵EN(結(jié)束)←-->1 FPGA概述
1.1 FPGA的基本結(jié)構(gòu)
FPGA是高密度的PLD,其集成度可達3萬門/片以上。圖1是Xilinx公司的FPGA,它由三種編程單元和一個用于存放編程數(shù)據(jù)的靜態(tài)存儲器構(gòu)成。這三種可編程單元是IOB(Input/Output Block可編程輸入/輸出單元),CLB(Configurable Logic Block可編程邏輯單元)和IR(Interconnect Resource互連資源)。它們的工作狀態(tài)全部由編程存儲器中的數(shù)據(jù)設(shè)定。CLB提供用 戶所需要的邏輯功能。由于這三部分都是可編程的,所以改變芯片的功能除了靠改變各CLB之間的連接,也可以通過改變各個CLB所實現(xiàn)的邏輯功能來完成。 FPGA中的編程信息將存儲在專用的靜態(tài)RAM中;RAM觸發(fā)器的每一位,存儲一個編程信息。系統(tǒng)上電時,編程信息就由外部傳入到這些存儲單元中, FPGA就可以按照這些信息來形成內(nèi)部的構(gòu)造和連接,以實現(xiàn)所需要的功能。
1.2 FPGA編程開發(fā)
FPGA中有大量實現(xiàn)組合邏輯的資源,可以完成較大規(guī)模的組合邏輯電路設(shè)計,而其中相當數(shù)量的存儲電路(觸發(fā)器)又可完成復雜的時序邏輯電路設(shè)計。通過使用各種EDA工具,用原理圖或硬件描述語言,可以很方便地將復雜的電路在FPGA中實現(xiàn)。像典型的數(shù)字系統(tǒng)分頻器,數(shù)字鐘,數(shù)字頻率計等等都可用 FPGA完成。
FPGA的開發(fā)系統(tǒng)包括軟件和硬件兩個部分。開發(fā)系統(tǒng)軟件指專用的編程語言和相應(yīng)的匯編程序或編譯程序。開發(fā)系統(tǒng)硬件部分包括計算機和編程器。編程器是對FPGA進行寫入和擦除的專用裝置,能夠提供寫入或擦除操作所需要的電源電壓和控制信號,并通過串行接口從計算機接收編程數(shù)據(jù),最終寫進FPGA之中。
90年代初Lattice首先推出了一種新型可編程邏輯器件———ISP—PLD(In-SystemProgrammable PLD在系統(tǒng)可編程邏輯器件),將原屬于編程器的寫入/擦除控制電路及高壓脈沖發(fā)生電路集成于FPGA中,這樣,在編程時就不必使用編程器,而且由于只需外加5V電壓,所以不必將FPGA從系統(tǒng)中取出,從而實現(xiàn)“在系統(tǒng)”編程。
FPGA設(shè)計主要分為設(shè)計輸入、綜合、功能仿真(前仿真)、設(shè)計實現(xiàn)、時序仿真(后仿真)、配置下載六個步驟。設(shè)計輸入包括硬件描述語言HDL、狀態(tài)圖與原理圖三種方式。對于簡單的設(shè)計,可以使用原理圖或A-BEL進行設(shè)計;對于較復雜的設(shè)計,可以用行為描述語言(如VHDL語言)和原理圖或二者結(jié)合進行設(shè)計。功能仿真用來驗證設(shè)計的邏輯功能;在設(shè)計的過程中,對部分功能或整個設(shè)計均可進行仿真。設(shè)計實現(xiàn)是指從設(shè)計輸入文件到位流文件(只對FPGA而言)。在該過程中,經(jīng)軟件自動地對設(shè)計文件進行映射、布局、布線,產(chǎn)生相應(yīng)的位流數(shù)據(jù)文件。時序仿真是在設(shè)計實現(xiàn)后,針對器件的布局、布線方案進行時延仿真和分析定時關(guān)系。
2 FPGA與單片機
FPGA等大規(guī)模可編程邏輯器件可以取代現(xiàn)有的全部微機接口芯片,實現(xiàn)微機系統(tǒng)中的存儲器、地址譯碼等多種功能。利用FPGA可以把多個微機系統(tǒng)的功能電路集成在一塊芯片上。
在功能上,單片機與FPGA有很強的互補性,單片機具有性能價格比高、功能靈活、易于人機對話以及良好的數(shù)據(jù)處理等特點,而FPGA具有高速、高可靠性以及開發(fā)便捷、規(guī)范等優(yōu)點。單片機可用總線方式和獨立方式與FPGA接口。由于其通信工作時序是純硬件行為,對于MCS-51單片機,只需一條單指令就能夠完成所需讀寫時序,也就是最常用的MOV@DPTR,A和MOVA,@DPTR。另外,在FPGA中通過邏輯切換,可使單片機與SRAM或ROM接口,這種方式類似于微處理器系統(tǒng)的DMA工作方式,首先由FPGA與接口的A/D等器件進行高速數(shù)據(jù)采樣,并將數(shù)據(jù)暫存于SRAM中,采樣結(jié)束后,通過切換,單片機可以與SRAM以總線方式進行數(shù)據(jù)通信。
目前許多實驗電路板都將FPGA與單片機有機地結(jié)合在一起,從而可以完成許多復雜的設(shè)計任務(wù)。通常單片機負責鍵控、顯示、計算、通信、簡單控制和系統(tǒng)協(xié)調(diào),而FPGA負責高速、高精度和高穩(wěn)定性等指標的實現(xiàn),也就是說,由單片機負責功能上的設(shè)計,F(xiàn)PGA負責指標上的設(shè)計。圖2就是一個典型的單片機與 FPGA通信的例子,通過EDA設(shè)計(原理圖或硬件描述語言)和單片機匯編語言或C語言的設(shè)計,由PC機發(fā)命令碼給FPGA,并將FPGA系統(tǒng)上測得的頻率顯示在PC機的屏幕上。這里的單片機起的是通信橋梁作用。
3 FPGA與DSP
數(shù)字信號處理(DSP)在許多領(lǐng)域有著廣泛的用途,如雷達、圖像處理、數(shù)據(jù)壓縮、數(shù)字電視和數(shù)字通信機等。一般情況下,采取兩種方案進行數(shù)字信號系統(tǒng)的設(shè)計,一種是用固定功能的DSP器件或FPGA器件,另一種是采用DSP處理器,如TMS320微處理器。
兩種方法中,固定的DSP器件或FPGA器件可以提供很好的實時性能,但其靈活性較差,不適合在實驗室或技術(shù)開發(fā)環(huán)境中的應(yīng)用;DSP成本低且速度較快,但由于軟件算法在執(zhí)行時的順序性,限制了它在高速和實時系統(tǒng)中的應(yīng)用。目前,大規(guī)模可編程邏輯器件為數(shù)字信號處理提供了第三種解決方案,F(xiàn)PGA與DSP 相結(jié)合,能夠在集成度、速度和系統(tǒng)功能方面滿足DSP應(yīng)用的需要。由于FPGA器件內(nèi)部提供了RAM,雙口RAM和FIFO—RAM,所以利用FPGA設(shè)計DSP系統(tǒng),同時具備DSP處理器的靈活性和固定功能的DSP芯片的實時性。
3.1 DSP的特點及其與FPGA相比的優(yōu)劣
DSP是一種具有特殊結(jié)構(gòu)的微處理器。其內(nèi)部采用程序和數(shù)據(jù)分開的哈佛結(jié)構(gòu),具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP指令,可以用來快速實現(xiàn)各種數(shù)字信號處理算法。DSP適用于條件進程,特別是較復雜的多算法任務(wù)。在運算上,它受制于時鐘頻率,而且每個時鐘周期所做的有用操作的數(shù)目也受到限制。從效果上看,采用DSP軟件更新速度快,可靠性、通用性和靈活性都很強,但DSP受到串行指令流的限制。
FPGA當中有很多自由的門,將這些自由的門連接起來可以形成乘法器、寄存器以及地址發(fā)生器等等。這些只要在框圖級完成,許多塊可以從簡單的門到FIR(有限沖激響應(yīng))和FFT(快速傅立葉變換)在很高的級別完成。但它的性能受門數(shù)及運算速度的限制。
超過幾MHz取樣率,一個DSP僅僅能完成對數(shù)據(jù)非常簡單的運算,而這樣簡單的運算用FPGA將很容易實現(xiàn),并能達到很高的取樣速率。在比較低的取樣速率時,整體上很復雜的程序可以使用DSP,而這對于FPGA是很困難的。
在實時視頻處理的應(yīng)用中,由于其對系統(tǒng)要求極高,只具備簡單功能的DSP無法完成。而FPGA利用并行處理技術(shù)實現(xiàn)視頻處理算法,并且只需單個器件就能完成期望的性能。在中值濾波器的應(yīng)用中,DSP處理器需要67個周期執(zhí)行算法,而FPGA只需工作在25MHz頻率下,因為FPGA能并行實現(xiàn)該功能,實現(xiàn)上述功能的DSP必須工作在1.5GHz頻率下。在此應(yīng)用中,F(xiàn)PGA解決方案的處理能力可達到100MHzDSP處理器的17倍。
3.2 FPGA+DSP方案的運用
上面提到,運用DSP受到串行指令流的限制,而利用FPGA的算術(shù)邏輯單元與外部存儲器相結(jié)合,可以解決線路板面積有限和有些數(shù)據(jù)處理需要大量存儲空間的矛盾;利用FPGA并行流水的特點解決了數(shù)據(jù)實時處理和有限D(zhuǎn)SP處理速度之間的矛盾,而FPGA運行模式的控制和接收上位機的命令、向上位機輸出目標數(shù)據(jù)的工作由DSP來完成,從而達到了系統(tǒng)的最佳配置。圖3是FPGA+DSP結(jié)構(gòu)典型的例子。

FPGA+DSP的最大特點是結(jié)構(gòu)靈活,有很強的通用性,適用于模塊化設(shè)計,從而能夠提高算法的效率;又由于其開發(fā)周期較短,系統(tǒng)易于維護和擴展,適用于實時信號處理。在實時信號處理中,低層信號預(yù)處理算法所處理的數(shù)據(jù)量大,對處理的速度要求高,但運算結(jié)構(gòu)相對比較簡單,適用于FPGA硬件實現(xiàn),這樣同時兼顧速度和靈活性。高層處理算法的特點是所處理的數(shù)據(jù)量較低層算法少,但算法的控制結(jié)構(gòu)復雜,適用于用運算速度高、尋址方式靈活、通信機制強大的DSP 芯片來實現(xiàn)。
應(yīng)用將一些能實現(xiàn)基本數(shù)字信號處理功能的DSP模塊嵌入FPGA的芯片是數(shù)字電路設(shè)計的一個趨勢。有些公司已經(jīng)計劃把基于ASIC的微處理器或DSP 芯核與可編程邏輯陣列集成在一塊芯片上。FPGA提供的性能已經(jīng)超過1280億MAC/s(乘法累加運算/秒),大大高于傳統(tǒng)的DSP性能。 QuickLogic公司推出的QuickDSP系列,提供了嵌入式DSP構(gòu)件塊和可編程邏輯器件。除了以前的可編程邏輯和存儲模塊,還包括專用的乘加模塊;這些合成的模塊可以實現(xiàn)DSP功能。
[此貼子已經(jīng)被作者于2010-11-17 11:59:54編輯過]