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

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