王玉喜
哈爾濱智路科技開發有限公司
基于FPGA的數字系統設計方法
王玉喜
哈爾濱智路科技開發有限公司
FPGA(FiledProgrammableGateArray)是20世紀80年代中期出現的一種新概念—用戶現場可編程門陣列集成電路。PGA具有更多的門電路,體積小,成本低,并且方便隨時修改設計直至滿足實驗要求等優點,目前FPGA也被廣泛應用于通信、自動控制、信息處理等諸多領域,因此進一步加強對其的研究非常有必要。基于此本文分析了FPGA的數字系統設計方法。
FPGA;數字系統;設計方法
隨著可編程器件的出現和計算機技術的發展,使EDA技術得到了廣泛應用,設計方法也因此發生了根本性的變化。由傳統的“自底向上”的設計方法轉變為一種新的“自頂向下”的設計方法,其設計流程如下:第一步,進行行為設計,確定電子系統或ASIC芯片的功能、性能及允許的芯片面積和成本等。第二步,進行結構設計,根據電子系統或芯片的特點,將其分解為接口清晰、相互關系明確、盡可能簡單的子系統,得到一個總體結構。第三步,把結構轉化為邏輯圖,即進行邏輯設計。在這一步中,希望盡可能采用規則的邏輯結構或采用已經經過驗證的邏輯單元或模塊。第四步,進行電路設計,將邏輯圖轉化為電路圖。最后一步是進行ASIC的版圖設計,即將電路轉換成版圖,或者用可編程ASIC實現。
FPGA通稱為可編程邏輯器件,它們都是在PLA,PAL 和GAL等邏輯器件的基礎上發展起來的,主要有Altera公司和Xilinx公司生產的系列產品。許多生產可編程器件的公司為了推廣它們產品都有自已的開發軟件,其中應用較廣的有Altera 公司的MAX+pluaII 軟件,它有以下主要優點: (1)開放的接口;(2)與結構無關的設計開發環境,具有強大的邏輯綜合與優化功能;(3)支持各種HDL輸入選項,支持VHDL硬件描述語言;(4)全集成化的輸入開發環境;(5)豐富的設計庫資源;(6)有豐富的在線幫助功能。因此特別適合初學者使用,可作為數字電路系統的設計和開發軟件。在指導學生進行課程設計時,應先學習MAX+pluaII軟件和VHDL語言的編程方法,掌握CPLD/FPGA實驗開發系統的使用。
FPGA(Field-ProgrammableGateArray),即現場可編程門陣列,它是隨著人們對技術的要求提高而發展的產物。這里使用FPGA來實現針對脈沖邊沿觸發型的單光子探測器符合計數器的設計。
針對脈沖邊沿觸發型的單光子探測器進行符合計數器的設計,為保證符合計數有意義,必須保證探測器是同時被觸發的,即探測器對同一路觸發脈沖邊沿的響應保持較高的一致性。探測器輸出的脈沖經過電路處理,為固定脈寬的脈沖。
采用邊沿檢測法對信號進行采樣,這也是FPGA最常用的檢測方式。由于輸入的脈沖信號對FPGA采樣時鐘來說是異步信號,并且兩路信號從探測器輸出到輸入到FPGA內這期間引入的路徑延時不一定具有嚴格的一致性,因此必須對輸入的兩路脈沖進行聯合整形處理,即將它們跨越采樣時鐘邊沿兩側但實際上屬于同時到達的信號整形為同時到達信號,如圖1:

圖1
通過VerilogHDL語言進行功能程序編寫,對兩路信號進行聯合整形的FPGA代碼如下:

對兩路信號完成整形后再對它們進行符合計數測量就不會再出現差錯。由于只有觸發時刻脈沖邊沿觸發型的單光子探測器才可能有信號的輸出,因此對輸出信號進行延時符合時要以觸發時鐘的周期為單位。在FPGA中對固定延時的控制可以通過計數器的方式實現,根據采樣時鐘和探測器觸發時鐘的周期關系,用延遲較小的那路信號啟動計數器,在計數器達到指定計數時判斷另外一路是否有信號到達。對采樣時鐘頻率50M,探測器觸發脈沖為5M時候的VerilogHDL代碼如下:


cnt==20'hfffff為計數數據傳出和清零重新計數的時刻,上述代碼中考慮了該時鐘周期內可能出現符合計數可能的情況。
通過QuartusⅡ調用ModelSim-Altera進行仿真,在0延遲下計算2000個符合脈沖(其中1000個上升沿錯位),以及二路信號延遲一個觸發時鐘周期(T=200ns)計算1000個符合脈沖的仿真。
按鍵key用來控制延時的設置,延時狀態用led來指示,001表示0延遲,010表示二路信號延遲一個觸發時鐘周期,led的狀態控制和實現延時符合計數的狀態機是相對應的。
4.1 與信號處理器進行結合
在實際開發過程中,有不少對數字信號進行處理的方法。例如,使用DSP或者各種微型處理器等。而現在,FPGA同樣可以被作為運算核心進行數字信號處理的系統的開發。特別是FPGA具有運算速度快這一優勢,使FPGA能夠適用于對處理速度要求越來越高的信號處理系統。
4.2 IP核庫的使用
Altera與Xilinx等公司均為自己的FPGA產品開發了相應的IP核庫,IP核大體可分為兩類:一種是開發廠商將硬件及其配套接口作為IP硬核嵌入到FPGA當中。另一種是通過Verilog/VHDL等語言編寫的具有各種功能的IP軟核,開發者可以在程序中直接調用這些IP模塊,并對模塊的部分參數進行設置,以完成一些重復且復雜的功能,大大減少了開發者的工作量以及大幅降低了系統開發設計難度。
4.3 SOPC技術的發展
SOPC技術是一種基于FPGA的SOC解決方案,實現SOPC的方法主要有以下三種:一是將IP硬核嵌入FPGA的SOPC系統;二是將IP軟核嵌入FPGA的SOPC系統;三是基于HardCopy技術的SOPC系統。
總之,FPGA具有很多優勢,因此也是得多了進一步應用。本文分析了FPGA的數字系統設計,以期提供一些借鑒。
[1]葉忠彬.基于FPGA的數字頻率合成系統的設計與實現[D].電子科技大學,2011.
[2]梁彬.基于FPGA的PCM數字解碼系統的設計[D].電子科技大學,2003.
[3]王永維.一種基于FPGA的數字秒表設計方法[J].電子元器件應用,2012,01:10-13.