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