將ARM AXI4用于FPGA 把恒星裝入瓶中
很明顯,我們需要對設計進行深層研究。我們的解決方案是采用自主開發(fā)的 FireStark 協(xié)議,它是一種基于 UDP 的協(xié)議,位于 AXI 以太網 DMA 驅動程序內部。通過調整 MicroBlaze Linux 內核驅動程序和把 FPGA 放在專用網絡上,我們現(xiàn)在能夠在 60 秒內完成對整個 2Gb 數(shù)據(jù)的下載,速度提高 70 倍。如果使用高達 6Kb 的巨型幀進行測試,速度還可以翻倍,即超過 70Mb/s。關鍵之處在于,這說明使用 DMA,即便是在較慢的 100MHz 的 MicroBlaze 時鐘下,也能夠在存儲器和網絡之間實現(xiàn)極高的數(shù)據(jù)吞吐能力。
本文引用地址:http://m.butianyuan.cn/article/127296.htm
圖 3:連接到 MAST 托卡馬克裝置的 RF 電子設備能夠將接收到的 6GHz 至 40GHz 的信號降頻為 250MHz 帶寬信號,供 FPGA 數(shù)據(jù)采集盒處理。
FPGA 到 PC 機的時延經測量為 129µs +/- 13µs(真正的時延會更低,因為該測量值包含數(shù)據(jù)包穿越交換機、通過 PC 內核、到達網絡堆棧以及最終進入用戶區(qū)域的時延)。我們還準備測量 FPGA 之間的時延,預計會更低。
時鐘同步
我們的托卡馬克裝置有許多診斷裝置和系統(tǒng),它們都需要同步為 10MHz 的全局實驗時鐘。我們從這個時鐘信號中派生出 250MHz 的數(shù)據(jù)采集時鐘,同時這個派生出的信號還為 ADC 板提供時鐘。剩余的 FPGA 邏輯則由板載晶振時鐘來驅動。
我們的系統(tǒng)有一個特別的地方,就是不會連續(xù)發(fā)送實驗時鐘,只在有觸發(fā)事件的時候發(fā)送大約 10 秒鐘。在此期間之外,我們需要切換到內部生成的時鐘。因此我們需要在兩個時鐘之間來回切換,即在外部時鐘和內部時鐘間切換。
對兩個 FPGA 板有一個重要要求,就是它們必須精確同步。在理想情況下,我們的采樣周期為 4ns,那么在所期望的最高頻率下 ADC 的可讀輸入正弦的周期為 8ns,相當于 360 度。如果我們需要 5 度的相位精度,我們能夠容忍的最大歪斜為8X (5/360)=111ps。這種程度的精度很難實現(xiàn),因為即便是光在這么短的時間內也只能行進 3.3cm。
我們?yōu)閮蓧K板子設計的固件完全相同。我們使用 DIP 開關來啟用或者停用每塊板子需要的不同功能。這樣可以大幅度地節(jié)省開發(fā)時間,因為我們只需要對固件進行一次綜合。
時鐘由兩塊板中的一塊生成,然后通過兩個臨近的 SMA 端口輸出,隨后反饋到與每塊 FPGA 板的 FMC 端口相連的 ADC 板(使用相等長度的線纜)。這樣可以保證每塊板都能夠精確地運行在相同的時鐘上,唯一的相位差是信號離開 FPGA 板時兩個 SMA 端口之間的相位差。圖 4 更加清楚地說明了這種設計方法。
評論