徐藝 黃靜



摘 要:隨著雷達實時成像處理器的發展,使得系統中的運算愈加復雜且數據量大,這就要求系統在進行快速運算的同時能對大量數據進行快速傳輸和存儲。轉置存儲器是合成孔徑雷達實時處理器和逆合成孔徑雷達實時處理器的一個重要組成部分,它的效率直接決定了整個系統的性能。文中創新性地提出了一種將FPGA作為控制邏輯,DDR2作為外部緩存的轉置存儲器方案,該方案針對DDR2連續對同一bank的同一行進行讀寫操作時效率最高這一特點,設計了一種可以在雷達成像系統中通用的轉置存儲器,使用該存儲器對4 096×512×32 b的數據在125 M時鐘下做轉置,只需80 ms,完全滿足系統實時性的要求。
關鍵詞:實時成像處理器;FPGA;轉置存儲器;DDR2
中圖分類號:TP211 文獻標識碼:A 文章編號:2095-1302(2016)06-00-02
0 引 言
轉置存儲器(Corner Turning Memory,CTM)是合成孔徑雷達實時處理器和逆合成孔徑雷達實時處理器的一個重要組成部分,它的效率直接決定了整個系統的性能。在實時性要求不高的系統中,通常使用DSP作為成像處理的核心,配合DSP內建的SDRAM控制器,使用軟件的方法,利用SDRAM對數據進行轉置運算。但是采用DSP作為處理核心,DSP在功耗體積和抗輻射方面都不能滿足當前對于SAR成像信號處理的實時性和微型化要求。也有同樣基于DDR2的CMT在FPGA中的實現方法,此方法基于三頁式思想來設計,其設計圖如圖1所示。將存儲器按照實際需求分為A、B、C三頁,在每頁將距離壓縮后每個距離向的數據按行的方式存儲,而列的長度為方位向采樣的一半,按行寫入而按列讀出。這樣, 在寫入A頁的同時,可以讀B、C頁;寫入B頁的同時, 可以讀A、C頁;寫入C頁的同時,可以讀A、B頁。雖然用頁的輪轉工作實現了處理上的流水作業,在功能上可滿足需求,但其并沒有對DDR2的使用效率加以考慮,因為每次連續對DDR2進行跨行的讀寫操作會產生很長的延時,對DDR2的利用率降低,很難提高外部輸入輸出數據的時鐘頻率。
本設計充分考慮了DDR2的工作效率,即當對DDR2進行讀寫操作,連續對同一bank的同一行進行尋址時,DDR2對于連續的讀或寫命令間需要保持的延時最小,即對DDR2來說,進行此種操作的工作效率最高。同時也考慮到雷達實時成像系統所處理的數據大小是變化的,且方位向點數和距離向點數都是2的n次冪,所以可以利用數據大小的特點把轉置存儲器設計為通用的,將處理的方位向點數和距離向點數設計為輸入,并對分塊矩陣進行轉置來實現矩陣轉置功能。
1 基于矩陣分塊思想的設計方案
為了在讀寫數據時都是對同一bank的同一行進行操作,設計將輸入矩陣數據按行寫入DDR2,然后把該矩陣劃分為大小相等的矩陣塊,再按照其位置和不同的尋址規律把矩陣塊劃分為三類,對分類的矩陣塊按規律一行一行從DDR2中讀出并寫入FPGA中的RAM資源內,對RAM內的數據進行地址跳變的讀出,相當于對小的矩陣塊做了轉置處理,最后把轉置后的數據存入同一片DDR2內的正確地址處。矩陣分塊方法如圖2所示。
(1)白色矩陣塊表示對角模式的分塊,對此種模式的矩陣塊進行處理,首先要按行將數據讀入RAM,然后再對RAM進行跳讀,即對矩陣塊進行轉置處理,并把轉置后的數據按行存入DDR2,存入位置為之前讀出該矩陣塊的位置。完成對一個矩陣塊的處理后再進行下一矩陣塊的轉置處理。其間,除了對地址的連續操作外,還需要轉到下一行,回到轉置矩陣的最初位置,轉入下一個矩陣模塊等地址跳變操作。
(2)灰色矩陣塊表示非對角模式的分塊,對此種模式的矩陣塊進行處理,首先要把上三角的矩陣塊橫向分成兩個相等的部分,如圖2所示的矩陣塊1和矩陣塊1a,再把下三角的矩陣塊縱向分成兩個相等的部分,如圖2所示的矩陣塊4和矩陣塊4a。這是因為如果按照對角模式的處理方法,對數據進行轉置處理后存入DDR2相應的轉置位置會與仍停留在位置內的數據產生沖突。所以在該模式下讀和寫數據的順序和位置為先按行連續讀出模塊1的數據,再按行連續讀出模塊4的數據,然后對RAM中的模塊4數據進行跳讀,轉置處理后按行存入模塊1所在的位置,最后對RAM中的模塊1數據進行跳讀,轉置處理后按行存入模塊4所在的位置。接下來其轉入下一模塊的順序為先對(2,5)、(3,6)模塊分別進行上述操作,再對(1a,4a)、(2b,5b)、(3c,6c)進行操作。其中矩陣塊(3,6)表示MAX位置(標志對非對角分塊每行或每列的最后一個矩陣塊進行讀寫操作),矩陣塊(3c,6c)表示LAST位置(標志對非對角分塊偶數行或偶數列的最后一個矩陣塊進行讀寫操作)。其間,除對地址的連續操作外,還需要轉到下一行,操作到MAX位置后的地址跳變,操作到LAST位置后的地址跳變等對地址跳變不同規律的控制邏輯。
(3)斜紋的矩陣塊表示非對稱模式的分塊,對此種模式的矩陣塊進行處理,首先要按行將數據讀入RAM,然后再對RAM進行跳讀,即對矩陣塊進行轉置處理,并把轉置后的數據按行存入DDR2,存入轉置后該矩陣該塊所對應的位置。完成對一個矩陣塊的處理后再進行下一矩陣塊的轉置處理。在此種模式下,操作到每行的最后一個矩陣塊為MAX位置。其間,除了對地址的連續操作外,還需要轉到下一行,正確尋址轉置后的存入地址,讀寫完一個矩陣塊后如何轉到下一個矩陣塊,操作到MAX位置后的地址跳變操作。
按照這樣的操作順序是為了對DDR2的地址操作有規律可循,同時簡化控制著不同規律的地址跳轉的邏輯設計。轉置完成后各模式分塊的新位置如圖3所示。
2 本設計的特點
在本設計中,每個矩陣塊的大小是固定的,這樣更有利于控制邏輯的編寫。RAM的大小由FPGA中RAM緩沖資源的大小來確定,這樣間接通過RAM來進行轉置能保證對DDR2讀寫時的大部分操作都是對連續地址進行的,只有極少的操作需要連續對同一bank的不同行操作,所以相對于三頁式而言極大地提高了對DDR2的利用率。設計的用于轉置的RAM大小為64×64×32 b。
3 結 語
文中設計的通用矩陣轉置模塊建立在altera DDR2核可以穩定的對DDR2進行連續讀寫操作的基礎之上,充分利用DDR2連續對同一行進行讀寫能夠達到最大的帶寬利用率這一特點,對需要做轉置的數據先按照矩陣的形狀一行一行連續存入DDR2,再對矩陣按照不同的跳址規律劃分為三種矩陣塊,對每一種矩陣塊都完成轉置變化后再存入DDR2內的對應位置,當用戶需要時就可按行將轉置完后的數據讀出。測試中將4 096×512的數據在外部時鐘100 M的條件下,需要80 ms,由于系統設計時采用了兩組DDR2進行乒乓操作,所以當第三幅SAR圖像數據到來時可以被繼續處理,不會產生沖突。本方案能夠滿足雷達實時成像處理器的性能要求,達到對雷達信號進行實時成像處理的效果。
參考文獻
[1]白海龍,全英匯,王虹現,等.基于DDR2SDRAM的SAR成像轉置存儲器的FPGA實現[J].現代電子技術,2008,31(1):48-50.
[2]保錚,鄧文彪,楊軍.ISAR成像處理中的一種運動補償方法[J].電子學報,1992, 20(6): 1-6.
[3]盧光躍.逆合成孔徑雷達成像技術的改進[D].西安:西安電子科技大學,1999.
[4]劉暢,牛曉麗,王巖飛.基于微處理器的SAR成像處理轉置存儲[J].現代雷達,2005,27(4):32-34.
[5] Hiroki Fujisawa,Masayuki Nakamura.1.8V 800Mb/s/pin DDR2 and 2.5V400Mb/s/pin DDRI Compatibly Designed 1-Gb SDRAM With Dual-ClockInpnt-Latch Scheme and Hybrid Multi-Oxide Output Buffer[Z]. IEEE,2005.
[6] Blagomir Donchev,Georgi Kuzmanov.External Memory Controller for Virtex IIpro[Z]. 2006.
[7] DDR_PHY_Interface_Specification_v2_1[EB/OL]. http://wenku.baidu.com/view/cc2ba76527d3240c8447ef5a.html