將ARM AXI4用于FPGA 把恒星裝入瓶中
很明顯,我們需要對(duì)設(shè)計(jì)進(jìn)行深層研究。我們的解決方案是采用自主開發(fā)的 FireStark 協(xié)議,它是一種基于 UDP 的協(xié)議,位于 AXI 以太網(wǎng) DMA 驅(qū)動(dòng)程序內(nèi)部。通過(guò)調(diào)整 MicroBlaze Linux 內(nèi)核驅(qū)動(dòng)程序和把 FPGA 放在專用網(wǎng)絡(luò)上,我們現(xiàn)在能夠在 60 秒內(nèi)完成對(duì)整個(gè) 2Gb 數(shù)據(jù)的下載,速度提高 70 倍。如果使用高達(dá) 6Kb 的巨型幀進(jìn)行測(cè)試,速度還可以翻倍,即超過(guò) 70Mb/s。關(guān)鍵之處在于,這說(shuō)明使用 DMA,即便是在較慢的 100MHz 的 MicroBlaze 時(shí)鐘下,也能夠在存儲(chǔ)器和網(wǎng)絡(luò)之間實(shí)現(xiàn)極高的數(shù)據(jù)吞吐能力。
本文引用地址:http://www.bjwjmy.cn/article/127296.htm

圖 3:連接到 MAST 托卡馬克裝置的 RF 電子設(shè)備能夠?qū)⒔邮盏降?6GHz 至 40GHz 的信號(hào)降頻為 250MHz 帶寬信號(hào),供 FPGA 數(shù)據(jù)采集盒處理。
FPGA 到 PC 機(jī)的時(shí)延經(jīng)測(cè)量為 129µs +/- 13µs(真正的時(shí)延會(huì)更低,因?yàn)樵摐y(cè)量值包含數(shù)據(jù)包穿越交換機(jī)、通過(guò) PC 內(nèi)核、到達(dá)網(wǎng)絡(luò)堆棧以及最終進(jìn)入用戶區(qū)域的時(shí)延)。我們還準(zhǔn)備測(cè)量 FPGA 之間的時(shí)延,預(yù)計(jì)會(huì)更低。
時(shí)鐘同步
我們的托卡馬克裝置有許多診斷裝置和系統(tǒng),它們都需要同步為 10MHz 的全局實(shí)驗(yàn)時(shí)鐘。我們從這個(gè)時(shí)鐘信號(hào)中派生出 250MHz 的數(shù)據(jù)采集時(shí)鐘,同時(shí)這個(gè)派生出的信號(hào)還為 ADC 板提供時(shí)鐘。剩余的 FPGA 邏輯則由板載晶振時(shí)鐘來(lái)驅(qū)動(dòng)。
我們的系統(tǒng)有一個(gè)特別的地方,就是不會(huì)連續(xù)發(fā)送實(shí)驗(yàn)時(shí)鐘,只在有觸發(fā)事件的時(shí)候發(fā)送大約 10 秒鐘。在此期間之外,我們需要切換到內(nèi)部生成的時(shí)鐘。因此我們需要在兩個(gè)時(shí)鐘之間來(lái)回切換,即在外部時(shí)鐘和內(nèi)部時(shí)鐘間切換。
對(duì)兩個(gè) FPGA 板有一個(gè)重要要求,就是它們必須精確同步。在理想情況下,我們的采樣周期為 4ns,那么在所期望的最高頻率下 ADC 的可讀輸入正弦的周期為 8ns,相當(dāng)于 360 度。如果我們需要 5 度的相位精度,我們能夠容忍的最大歪斜為8X (5/360)=111ps。這種程度的精度很難實(shí)現(xiàn),因?yàn)榧幢闶枪庠谶@么短的時(shí)間內(nèi)也只能行進(jìn) 3.3cm。
我們?yōu)閮蓧K板子設(shè)計(jì)的固件完全相同。我們使用 DIP 開關(guān)來(lái)啟用或者停用每塊板子需要的不同功能。這樣可以大幅度地節(jié)省開發(fā)時(shí)間,因?yàn)槲覀冎恍枰獙?duì)固件進(jìn)行一次綜合。
時(shí)鐘由兩塊板中的一塊生成,然后通過(guò)兩個(gè)臨近的 SMA 端口輸出,隨后反饋到與每塊 FPGA 板的 FMC 端口相連的 ADC 板(使用相等長(zhǎng)度的線纜)。這樣可以保證每塊板都能夠精確地運(yùn)行在相同的時(shí)鐘上,唯一的相位差是信號(hào)離開 FPGA 板時(shí)兩個(gè) SMA 端口之間的相位差。圖 4 更加清楚地說(shuō)明了這種設(shè)計(jì)方法。
評(píng)論