隨著人類航天活動的不斷開展,空間碎片的空間密度已經對航天器安全造成了威脅,特別是近地軌道,碎片密度更大,且其數量仍在迅速增加,航天器遭受空間碎片撞擊事件時有發生??臻g在軌目標數量不斷增加,對空間目標進行碰撞預警所需要的計算量也在迅速增加,鑒于并行計算速度很快,因此適合應用并行計算對危險目標進行篩選,進而進行預警操作。利用FPGA中的CAM(內容可尋址存儲器)和MicroBlaze軟核控制器可以實現危險目標的快速并行篩選。
1 CAM
1.1 CAM概述
CAM是一種特殊的存儲器,它是將數據項存儲在一個陣列中。每個數據項的位數叫作字寬,CAM中所有數據項的條數叫作CAM的深度。字寬和深度可以表征CAM的容量。
CAM基于內容尋址,通過硬件電路實現快速匹配。CAM的并行處理特性使得它在數據分選領域倍受青睞,被廣泛應用于以太網網址搜尋、數據壓縮、模式識別、高速緩存、高速數據處理、數據安全和數據加密等。
1.2 CAM工作原理
CAM最基本的兩個端口是數據線和地址線,數據線作為輸入端口,存放需要由CAM來處理的數據,而地址線作為輸出端口,輸出CAM的處理結果——匹配數據所在地址。圖1所示為深度為4、字寬為4的CAM,如果將二進制數1100放在數據線上,輸出的匹配結果將會是0011,如圖1所示,結果中的每一位二進制數對應CAM內部每一條數據,數據線上數據與CAM內部數據相等則對應位輸出為1,不相等則輸出為0。由于CAM具有并行匹配特性,所以很適合對空間多個目標進行同時并行匹配處理。
2 MicroBlaze軟核控制器
MicroBlaze是基于Xilinx公司FPGA的微處理器IP核,它和其他外設IP核一起可以完成可編程系統芯片(SOPC)的設計。MicroBlaze處理器采用RISC架構和哈佛結構的32位指令和數據總線,內部有32個32位寬度的通用寄存器;其內部結構圖如圖2所示。
使用Xilinx公司提供的EDK(嵌入式系統開發套件),可以在參數化的圖形界面下方便地完成嵌入式處理器系統的設計。其突出的優點:一是設計靈活性;二是可以整合用戶自定義IP核,使得算法可以在硬件中并行的執行而不是在軟件中串行的執行,從而極大地加速軟件的執行速度。
3 算法設計
3.1 算法分析
對空間目標進行碰撞預警,實際上可以轉化為通過對目標之間的距離進行判斷比較,找出有碰撞危險的目標。由于空間目標的位置可以用三維空間坐標表示,因此對任意兩個目標之間距離的判斷又可進一步轉化為他們之間坐標的比較。
3.2 算法描述
假設只有3個目標需要進行坐標匹配處理,它們的坐標分別為A(xA、yA、zA),B(xB、yB、zB),C(xC、yC、zC),需要一個深度為3的CAM,首先處理z坐標,將3個目標的x坐標存入CAM,如圖3所示。
然后分別將xA、xB、zC放在數據線上進行匹配操作,經過3次匹配操作得到3個匹配結果RxA,RxB,RxC,對于y和z坐標進行相同操作,分別得到y和z的匹配結果為RyA,RyB,RyC和RzA,RzB,RzC,所得到的結果均為3位的二進制數,然后對每個目標進行內部坐標對比,例如將目標A的3個匹配結果RxA,RyA,RzA進行對比,就可知道是否存在與目標A的3個坐標均相同的項,例如RxA,RyA,RzA分別為101,101,101則說明目標A與目標C的坐標是匹配的,進而可以判斷目標A與目標C有碰撞的可能。
與常規存儲器和軟件匹配方式有所不同,CAM對于數據的匹配操作是并行執行的,這樣就可以大大提高數據匹配速度,進而提升系統效率。
4 硬件平臺搭建及運行
4.1 CAM模塊實現
利用賽靈思公司提供的IP核資源,通過配置CAM IP核參數化圖形界面,如圖4所示,在FPGA內部例化了一個深度為16,字寬為32的CAM模塊,其基本參數如表1所示。
如表1所示,選擇存儲器類型為Block Memory這樣就可例化一個以FPGA片內BRAM為基礎的CAM模塊,與基于SRL16(16 bit移位寄存器查找表)的CAM相比,其寫周期只需2個時鐘周期,寫操作所需時間為后者的1/8,提升了系統速度。
輸出地址編碼方式有3種可供選擇的方式:非編碼多位匹配(Multi Match Unencoded)、非編碼單一匹配(Single Match Unencoded)和二進制編碼(Binary Encoded)。第一種編碼方式可以從地址線上輸出所有可能的匹配項,而后兩種編碼方式則只能在地址線上輸出一個匹配項。
經過實際驗證,由ISE綜合工具XST進行綜合后得出的綜合報告顯示,在型號為XC3S700AN的FPGA芯片中實現一個深度為16,字寬為32的CAM占用的資源情況如表2所示。
由表2可知,實現一個深度為16,字寬為32的CAM所占用的資源中,塊RAM所占比重較大,這是由于在FPGA內部所實現的CAM模塊正是基于FPGA的塊RAM資源的,所以對塊RAM資源消耗比較多,因此在實際應用中選用FPGA芯片時應選擇塊RAM資源豐富的芯片。
4.2 MicroBlaze軟核控制器與CAM的連接
在FPGA芯片中配置一個MicroBlaze軟核控制器以實現對CAM的一系列控制,如復位、寫入數據、讀取數據等,MicroBlaze通過PLB總線與CAM相連,同時為便于調試,在PLB總線上連接了串口等外設模塊,系統模塊圖如圖5所示。
4.3 系統執行
系統執行過程中,Microblaze作為控制器通過執行由C語言編寫的軟件程序實現對CAM的控制,它的具體操作流程如圖6所示。
在系統內部,整個工程的實現和下載共分成4步:首先產生系統的硬件網表,即對嵌入式系統進行綜合;其次產生系統硬件架構的比特流文件;再次編譯軟件,并將軟件代碼生成的比特流和系統硬件的比特流合二為一,構成完整的系統描述比特流;最后將完整的比特流下載到FPGA芯片中。
4.4 驗證結果分析
經過對處理結果分析可知,此系統驗證了設計算法的正確性。所搭建系統時鐘頻率為62.5 MHz,時鐘周期為16 ns,通過在代碼內部添加時鐘計數器,并且使用ChipScope邏輯分析儀進行波形分析,可知系統執行一次篩選操作所需要的時鐘周期數為114 296 649個,即1.8 s左右。
4.5 系統擴展能力分析
在后續研究中通過對CAM容量的擴展,可以增加待篩選目標的數量。CAM容量的擴展,需要占用更多的FPGA芯片資源,同時其運行頻率會有所降低,以某Spartan3A芯片為例,三者之間的關系如表3、表4、表5所示。
考慮到成本問題,本設計所使用的芯片為賽靈思公司的型號為XC3S700AN,由表3~表5可知,在擴展CAM容量時,需要綜合考慮所需CAM容量、所選FPGA芯片資源情況以及運行頻率三者之間的關系。
5 結論
采用賽靈思公司MicroBlaze軟核控制器和內容可尋址存儲器(CAM)所搭建的目標碰撞預警平臺實現了總目標數為16的目標群中危險目標的篩選操作。軟核控制器與CAM模塊同在一片FPGA芯片中實現,管理和操作起來比較方便,便于系統實現小型化、集成化。受到FPGA自身容量的限制,在擴展CAM容量時可以考慮選用更大容量的FPGA芯片,或者應用外接大容量專有CAM芯片,實現大規模目標的并行匹配操作。
評論
查看更多