基于FPGA的LCoS驅動(dòng)和圖像處理系統設計
1.7 FFT模塊
FFTV 9.1 IP核采用Cooley-Tukey基-2 DIF算法,其FFT變換原始公式為:

因為采用了數據流模式,經(jīng)過(guò)變換的數據可以連續輸出,即輸出數據不會(huì )因為圖像數據的輸入而停止數據輸出,同時(shí)輸入數據也不會(huì )因為處理后的數據正在輸出而停止繼續輸入,保證了數據轉換和傳輸的連續性,提高了數據處理的速度和效率。因為FFT通過(guò)異步FIFO向屏幕輸出數據,而FIFO的讀數據是寫(xiě)數據的4倍速,假如讀時(shí)鐘和寫(xiě)時(shí)鐘都為100 MHz,那么有可能會(huì )在某一行里出現FIFO被取空,而無(wú)法向屏幕輸出有效數據的情況。為保證FIFO向屏幕輸出圖像數據的連續性,就要充分利用VBP,VFP,HBP和HFP的時(shí)間,在每一行的開(kāi)始,如果FIFO沒(méi)滿(mǎn),那么啟動(dòng)FFT進(jìn)行數據轉換。若圖像的分辨率為M×N并且在VBP期間FIFO已被寫(xiě)滿(mǎn),則FIFO,FFT核、行場(chǎng)周期以及圖像分辨率間關(guān)系的計算公式如下:

式中:Deepth是異步FIFO的數據深度,單位為B;THSYNC cycle是行周期;Tclk是異步FIFO,FFT核、行場(chǎng)時(shí)序控制器模塊的驅動(dòng)時(shí)鐘周期。當△>O時(shí),系統會(huì )連續實(shí)時(shí)地處理圖像;當△O時(shí),會(huì )導致在屏幕某些行的有效顯示區域沒(méi)有有效圖像數據可供顯示;這樣就破壞了圖像顯示的連續性??筛鶕陨瞎胶侠碓O計FIFO深度以及選取合適分辨率的圖像。該設計中,異步。FIFO,FFT核、行場(chǎng)時(shí)序控制器模塊的驅動(dòng)時(shí)鐘為100 MHz,FIFO深度為256 B,行周期為336個(gè)Tclk,M為174,N為144,經(jīng)計算△>0。
2 實(shí)驗仿真結果和測量結果分析
圖4是采用Modelsim 6.5b進(jìn)行功能仿真的結果。利用QuartusⅡV9.1自帶的TimeQuest Timing Analyzer進(jìn)行時(shí)序約束后,在實(shí)驗板上的場(chǎng)信號測量結果如圖5所示,場(chǎng)掃描頻率已達到368 Hz,經(jīng)測量其他引腳輸出信號也均滿(mǎn)足時(shí)序要求。由于FPGA器件資源限制,對圖像做了256點(diǎn)FFT變換,經(jīng)實(shí)驗驗證,該設計能夠實(shí)現圖像的實(shí)時(shí)處理,代碼達到了預期設計效果。本文引用地址:http://dyxdggzs.com/article/191137.htm
3 結語(yǔ)
采用Himax的LCoS屏HX7308BTJFA作為顯示器件,其尺寸為14.43mm×10.69mm,大小可跟1枚1元硬幣相比擬,很容易實(shí)現三維投影微顯示。因VerilogHDL有很強的可移植性,便于以后對代碼的升級和維護。FPGA內部資源畢竟有限,文中敘述可知,若顯示分辨率較大的圖像,光靠?jì)炔抠Y源實(shí)現異步FIFO是不可能的,所以在此提出兩種方案:第一,換一片性能較高的芯片,滿(mǎn)足寫(xiě)FIFO速率等于讀FIFO速率的要求,這樣就能達到讀/寫(xiě)數據的動(dòng)態(tài)平衡,保證了圖像的連續顯示;第二,采用外部存儲器SDRAM存儲源圖像和FFT處理后的數據,采用DDRII技術(shù)讀取數據,使讀/寫(xiě)FIFO的速率匹配。受FPGA芯片資源限制,該設計采用分辨率為176×144的圖像進(jìn)行了系統功能驗證,尚未實(shí)現圖像濾波以及FFT逆變換,未來(lái)可將代碼移植在高端的FPGA芯片上繼續開(kāi)發(fā)數據處理功能。
評論