一種用于激光告警機的圖像采集與處理系統(tǒng)設計
在數(shù)據(jù)的采集過程中,數(shù)據(jù)傳送的同步信號由 STROBE引腳產(chǎn)生,當數(shù)據(jù)在一個數(shù)據(jù)區(qū)存滿時,通過LVAL引腳通知FPGA 轉(zhuǎn)到另一數(shù)據(jù)存儲區(qū)。圖2 給出了數(shù)據(jù)采集的時序圖。其中CLK_IN是由FPGA的內(nèi)核數(shù)字時鐘管理模塊DCM 來實現(xiàn)倍頻得到。在時鐘控制和管理方面DCM比DLL功能更強大,使用更靈活。DCM的主要功能包括消除時鐘時延、頻率綜合和時鐘相位的調(diào)整。在本設計中對輸入時鐘STROBE作8倍頻處理,以實現(xiàn)數(shù)據(jù)一轉(zhuǎn)八串并轉(zhuǎn)換的鎖存輸出。
本文引用地址:http://www.ex-cimer.com/article/191837.htm
高速采集程序的設計主要有接口匹配、采集狀態(tài)機和數(shù)據(jù)存儲三部分。在接口匹配中由于LVDS 的輸入與輸出都是內(nèi)匹配的,所以LVDS 間可直接連接。在FPGA 內(nèi),需對差分輸入時鐘緩沖器(IBUFDS)、差分輸入的全局時鐘緩沖器(IBUFGDS)和差分輸出時鐘緩沖器(OBUFDS) 例化。
FPGA 的部分代碼如下:
component IBUFDS - - 差分輸入時鐘緩沖器( IBUFDS)
port (O : out STD_ULOGIC;
I : in STD_ULOGIC;
IB : in STD_ULOGIC) ;
end component ;
IBUFDS_INSTANCE_NAME: IBUFDS
port map (O=>user_O,I=> user_I,IB =>user_IB) ;
3.2數(shù)據(jù)處理模塊
Spartan3系列FPGA有豐富的乘法器資源,在不使用任何優(yōu)化算法的情況下每一個蝶形運算需要4個實數(shù)乘法器,因此在FPGA中每個蝶形運算可以用 4個乘法器在一個時鐘周期內(nèi)完成。豐富的RAM資源便于實現(xiàn)數(shù)據(jù)的流水操作,即對于輸入、輸出數(shù)據(jù)以及中間變量可以開辟不同的存儲區(qū),例如當計算第i組數(shù)據(jù)時,第i-1組計算結(jié)果正在輸出,第i+1組數(shù)據(jù)正在輸入。
由于在FFT運算中必然產(chǎn)生復數(shù),因此為使計算方便,在設計之初就將FFT變換器的數(shù)據(jù)輸入口分為實數(shù)和虛數(shù)。1024點復數(shù)FFT運算,按照基-2頻率抽取運算分成10級,每級包括1個雙端RAM,1個地址發(fā)生器,一個ROM用于存儲旋轉(zhuǎn)因子表,1個蝶形運算單元,2個選擇緩沖單元。為了簡化地址單元電路,將復數(shù)數(shù)據(jù)的實部虛部組合成一個數(shù)據(jù)存儲在RAM中。由于使用雙口RAM ,當一個存儲單元中的數(shù)據(jù)讀出做運算時,該存儲單元就能夠存儲上一級來的數(shù)據(jù),因此這種結(jié)構(gòu)的FFT 可以進行流水線操作,能夠?qū)π盘枠颖具M行實時連續(xù)的運算。選擇緩沖器的用途是拉齊數(shù)據(jù),將RAM 輸出的2個復數(shù)數(shù)據(jù)拆成4個實數(shù)數(shù)據(jù)輸入到蝶形運算單元,完成蝶形運算后的數(shù)據(jù)進入選擇緩沖器組合成2個復數(shù)數(shù)據(jù)輸出。
評論