將ARM AXI4用于FPGA 把恒星裝入瓶中
本文引用地址:http://www.104case.com/article/127296.htm

圖 2:使用新穎的 PCB 天線的微波成像相位天線陣列
AXI4 問世之前
為滿足我們系統的需要,位于 Virtex-6 上的 MicroBlaze™ 處理器必須能夠訪問 DDR3 SDRAM 存儲器,這樣 Linux 才能訪問我們采集到的實時數據。為此,我們必須采用一個能同時被 MicroBlaze 總線和實時串流 IP 訪問的存儲器控制器。起初我們試圖使用 PLB 總線,但發現基于 PLB 的存儲器控制器存在局限性,使我們無法在要求的頻率下連接 64 位寬的接口,而只能提供 32 位寬。我們意識到這個任務會很艱難,我們又編寫了一個能夠通過低層 NPI 協議直接與存儲器控制器進行通信的內核,但只能實現 2Gbps 的速率。雖然這個速率已經令人驚嘆,而且打破了我們能夠實現的所有速度記錄,但仍然不能滿足我們的要求。
幸運的是賽靈思隨后推出了 AXI4 互聯和存儲器控制器,能夠以 400MHz 的雙倍數據速率(每秒 8 億次事務處理)對整個 64 位寬度實現完全訪問。這樣可以有效實現 6.4Gbps 的數據吞吐能力,這個速度已經超過了我們要求的每板 4Gbps的速度。這正是我們所需要的。
我們實際上找到了兩種實現這個速度的途徑:一個是修改 axi_v6_ddrx 存儲器控制器(隱含在AXI 互聯層下)。另一種方法是用系統生成器 (System Generator) 生成 AXI Master PCore。PCore 可以以 AXI External Master 的形式附加給 Xilinx Platform Studio (XPS) 里的MicroBlaze 系統。
兩種解決方案都能夠以 5Gbps 的速度向 DDR3 存儲器中傳輸數據。AXI 編程簡便,采用獨立的讀寫通道,可以實現非常高的存儲速度。XPS 工具則為 AXI 設計賦予了極大的靈活性。我們把這種靈活性轉化為我們的優勢,例如我們可以根據需要只選擇一條寫入通道,從而能夠簡化邏輯設計,釋放更多資源。
軟處理器界面
這款賽靈思工具集有一項獨特的功能,即 MicroBlaze 軟處理器。它的“軟”在于能夠使用 FGPA 邏輯。在賽靈思及其合作伙伴的努力下,該處理器能夠得到主流 Linux 內核的全面支持。我們被這種努力所打動,決定把開發工作放在 Linux 環境中進行。
這項功能的意義在于,我們可以給 FPGA 系統構建一個類似 PC 的界面。這樣做的意義非常重大,例如,可以在 FPGA 上實現 Web 和 SSH 服務器。我們可以在 Linux 下安裝 System ACETM 閃存(格式化為 MSDOS),這樣我們就可以遠程更新固件。
網絡流
鑒于我們能夠在 0.5 秒內在每個 FPGA 板上采集 2Gb 的數據,我們現在要解決的問題是如何在合理的時間內通過標準的接口將數據從 FPGA 板上輸出。實踐證明,在 Linux 環境中使用簡單協議(比如 UDP),利用 MicroBlaze 處理器通過千兆位以太網所實現的網絡速度太慢,只能達到 0.5 Mb/s。以這種速率下載 0.5 秒內采集的數據,我們需要等上一個多小時!
評論