設計中直接調用Altera公司提供的DDR2 SDRAM控制器,并選用一塊它可以驅動的芯片來提高工作效率。芯片可使用的緩存空間是要重點關注的。每個通道都要分配固定的緩存區域,所以要將有限的內存空間作合理的劃分。如果是圖像數據,單個通道至少要有緩存兩幀以上的空間。DDR2讀寫控制模塊直接調用DDR2 SDRAM控制器IP核,但由于該IP核提供給用戶端的接口使用不方便,需要按照其文檔上介紹的時序來進行突發式讀寫。
本模塊的功能主要是協調各通道采集數據的寫入和讀出。如圖3所示,寫操作時,各通道的數據首先用FPGA資源進行緩存,然后寫入控制狀態機通過輪詢的方式依次檢查各個通道已經緩存的數據量,如果足夠一次突發寫,則將其寫入SDRAM芯片的相應通道塊中,然后再檢查下一通道;讀操作時,讀出控制狀態機也依次檢查各個通道寫入SDRAM芯片的數據量,如果足夠一次突發讀,則將其讀出,通過網絡發送出去。

基于以上控制方式,設計對各通道的數據格式是不作限制,如圖1中所示,可以是PAL、Camera link、VGA等各種格式的圖像或組合,只是在采集之前向上位機報告各個通道的數據信息。但需要說明的是,這些數據的帶寬總和理論上不應超過千兆以太網的最大傳輸速率,這是采用輪詢方式得以成功的前提。其實,如今普通PC機的處理能力遠遠不能達到這個最大限制,當速度到達100 Mbit·s-1時,上位機丟包就已經很嚴重。如果是將采集的數據在上位機上顯示,最多可能只有70~80 Mbit·s-1;如果還要將數據寫入硬盤,那數據率則會更低,除了配備一塊上好的硬盤之外,還需要在上位機軟件的優化上多作努力。